微控制器中 while TI 0 怎麼能實現等待功能?困惑了好久了

時間 2022-07-21 16:25:03

1樓:匿名使用者

首先,你要通過軟體設定好ti=0;

開始執行程式後,ti==0 這個條件為真,也就是while(1); 一直執行這條while(ti==0)程式,也就是所謂的等待,直到你要傳送的資料傳送完畢,cup產生一箇中斷,內部暫存器用於標識傳送中斷的ti位自動置1,此時,ti的置為1,也就是ti==0 這個條件不再成立,while(ti==0)這條語句就相當於while(0);於是程式跳出while()迴圈往下執行。

另外需要注意的是,只有while(ti==0);才行, 後面的分號不能省略,沒有分號編譯時,預設while(ti==0)這條語句後面的那條程式對坐while()迴圈的物件了。那就錯了!

2樓:

實際上是這樣:

while(ti==0);

意思是隻要ti==0就等待,應該是一個傳送完成中斷標誌;

先把資料放如傳送暫存器,暫存器空(資料傳送完畢以後)標誌ti自動置為1;

這個時候自動退出等待,繼續執行下面的程式。

請教微控制器高手,mode 0的串列埠傳送。while(!ti) 是什麼意思?它裡面的_nop_(); 會是死迴圈嗎?

3樓:匿名使用者

while(!ti)

的意思是當ti=0時,一直執行空操作,知道ti=1,退出。

4樓:匿名使用者

微控制器串列埠傳送過程中 ti 置 1,直到傳送完畢,硬體自動將 ti 置 0

while(!ti) 就是 直到串列埠傳送完畢就停止,由於 _nop_() 只是一個短延時,所以不會是死迴圈

5樓:一萬光年

nop() 不是死迴圈

while(!ti) 是 wait serial send data end

6樓:黃石佳誠家電維修

不是,_nop_();延時一1us

微控制器中while(ti==0);ti=0; 是什麼意思啊

7樓:匿名使用者

因為1為真,所以while(1)下面{}裡的內容將一直迴圈進行,無法跳出,通常放在主程式中

而while(t==0),這句是試探為0,若為0,即為真,將迴圈執行{}中的程式,不為零,直接跳出while下面得{}

8樓:

傳送資料發完的時候ti會自動置1向cpu發中斷申請,在while(ti==0)時ti已經被置1判斷為假,跳出迴圈。由於硬體自動將ti置1所以必須由軟體將其清0所以就用上了ti=0的賦值動作.

9樓:電子粉絲

ti==0 中的 == 判斷兩邊是否相同

ti=0;將數字0放入ti這個變數裡

10樓:匿名使用者

序列口傳送標記位,傳送完畢,ti為1,手動置0後又可下次傳送

11樓:匿名使用者

什麼叫while語句知道嗎?

判斷ti是否衡等於0

是的話 t1等於0

微控制器c語言中while(!ti)是什麼意思

12樓:

ti是串列埠傳送完成標誌,傳送完成ti值為1

while(!ti) 的意思就是等待串列埠傳送完成(未完成ti值為0,(!ti)值為1,迴圈,直到串列埠傳送完成,ti為1,(!ti)值為0,退出迴圈,向下執行)

13樓:匿名使用者

ti不等於1時,一直迴圈,直到ti=1時,執行下面的程式。

14樓:苦澀無人愛

while()是迴圈語句,t是判斷條件,當t為真或非0的話,執行迴圈,否則退出迴圈,比如t=1,迴圈會持續執行,t=0則退出迴圈,或者 t 可以是其他判斷語句,滿足ture時執行迴圈,為false則退出迴圈

15樓:匿名使用者

while(t)

相當於while( t!=0 )

t值為0時,條件為假

t值不為0時,條件為真

while( t )是while( t!=0 )的簡便寫法。

51微控制器中 (!ti)和(!ri)是什麼意思 ,是代表 ti和ri取反嗎?

16樓:江夢曲

這種寫法是用在條件語句中的。

例如:while(!ti);或者while(!

ri);另一種寫就是while(ti==0);或者while(ri==0); 這兩種寫法是等價的,怎麼寫都可以,就看個人的愛好了,這個沒有什麼硬性的規定。

寫程式時,會看到這樣寫的: while(!ti);ti=0,前面的while(!

ti)。是當ti=0時就在此迴圈等待傳送結束,當傳送結束時,ti=1了,這個條件不成立了,就不等待了,往下執行,緊接就是ti=0。

這是將ti清0,因為傳送一次,ti=1一次,傳送後必須清0,準備下一次傳送,對於標誌位ti=1,只能一次有效。

51微控制器是對所有相容intel 8031指令系統的微控制器的統稱。該系列微控制器的始祖是intel的8031微控制器,後來隨著flash rom技術的發展,8031微控制器取得了長足的進展,成為應用最廣泛的8位微控制器之一,其代表型號是atmel公司的at89系列,它廣泛應用於工業測控系統之中。

很多公司都有51系列的相容機型推出,今後很長的一段時間內將佔有大量市場。51微控制器是基礎入門的一個微控制器,還是應用最廣泛的一種。需要注意的是52系列的微控制器一般不具備自程式設計能力。

17樓:匿名使用者

你把整句寫出來啊,是不是while(!ti));這表示如果ti=0時,一直等待,如果ti=1,跳出語句。所以才有下面的ti=0。清0

請問,微控制器傳送sbuf=0x53; while(ti!=1); ti=0; delay(100); sbuf=0x01; while(ti!=1); ti=0; delay(10

18樓:生活如歌

只要是波特率等通訊引數一樣,那麼用串列埠助手或者其它程式控制元件就能收到。

19樓:匿名使用者

上位機的設定與這段程式無關,與串列埠初始化關係密切

微控制器 printf用完後為什麼要加上while(!ti)

20樓:

打個比方說, cpu 處理 "列印 100000 個字" 只需要 0.001 秒

但列印 100000 個字到螢幕上, 卻需要 1 秒,然後下一道指令是 "列印另外 100000 個字".

這個 while 的作用, 就是等完這 1 秒, 讓那 100000 個字完成列印到螢幕上, 然後才開始列印另外 100000 個字; 否則 0.001 秒之後, 就會開始 "列印另外 100000 個字". 那麼之前那 100000 個字, 從出現到消失, 根本快到看不到了.

21樓:肥肥的爆米花

while(!ti)的意思就是說當ti=0時!ti=1,則一直在迴圈。跟while(ti==0)是一樣的。

22樓:生活如歌

!ti就是if ti==0

微控制器中IE 0x82代表什麼,微控制器中斷程式中,「IE 0X82 」與「EA 1 ET0 1 」效果一樣是吧

楊子電影 e是中斷允許暫存器,其值為82時,二進位制為1000 0011,ie.7位為1表示cpu開放中斷,ie.1位也為1,表示允許定時器t0溢位中斷 ie.0位為1,表示允許外部中斷0中斷。mcs 51微控制器的邏輯部件,包括一個8位cpu及片內振盪器 80514b掩膜rom 87514kbep...

51微控制器的pc值怎麼算,51微控制器中如何進行相對定址?pc值怎麼計算?rel又怎麼給

鈺瀟 a 50h sp 50h 51h 30h 52h 50h pc 5030h a 50h sp 50h 因為在程式中,sp減了兩次,後來又加了兩次,在程式最後ret有在返回的時候減了兩次,即地址出棧,故最終結果是50h。51h 30h 52h 50h 因為ret指令返回時,出棧的結果是高地址 5...

51微控制器中的設定埠方向的P0M0,P0M1指的是什麼

小張智慧滑屏 這是部分微控制器才有的功能,非普通89c51,一般喲用的多的是stc15w204s,有8腳和16腳兩種,它們一個p口需要2個八位暫存器才能設定出它的4種狀態,設定每位的最低位是0還是1,比如,普通51埠狀態,p0m0可設定成0x00,m1設定成0x00就可以了,還有強強拉狀態,可以直接...