微控制器序列不能傳送資料,求指點。程式如下

2023-05-22 20:25:14 字數 1507 閱讀 7442

1樓:匿名使用者

問題很簡單,也很多!首先你已經開串列埠中斷也就是es=1,需要相應的串列埠中斷服務程式,其次et1不需要51定時器1方式2就是用作串列埠通訊波特率的,最後你定義的unsigned char table 直接這樣傳送你不可以的,如果需要傳送漢字建議直接呼叫stdio標準輸入輸出庫中的printf函式,不過需要過載,你進入while(1)迴圈中就檢測ti是否等於1,問題你之前有沒有傳送過,ti復位等於0,所以ti永遠等不可能等於1,建議多看看書!我把程式稍微給你修改一下,這樣就可以了,如果還有問題可以qq

#include""

void main()

unsigned char i,j,k;

scon = 0x40;

tmod = 0x20;

th1 = 0xfa;(波特率是嗎)tl1 = 0xfa;

tr1 = 1;

while(1)

2樓:匿名使用者

給你一個除錯通過的微控制器串列埠例程吧;

串列埠軟體發到微控制器的串列埠資料,直接**回串列埠軟體;

希望能幫到你!!

設51微控制器的序列口按方式3工作,每分鐘傳+送6000個字元,則其波特率

3樓:一劍出血

方式3的一幀是1+9+1總共11位。

每分鐘6000個字元,也就是11×6000 = 66000位。

因此波特率為 66000÷60 = 1100 bps

微控制器與pc串列埠除錯時,微控制器收到的資料總是錯誤的,波特率與串列埠通訊方式都一樣

4樓:蘭色的閃電

不同的微控制器會略有差異。但總體結構是一樣的。

第一步,確認微控制器與pc電腦的波特率相同,微控制器的波特率通過示波器可以得知,你不斷的傳送0x55或0xaa。這樣子,很明顯的看到010101這樣的資料。通過測量脈衝的時間你可以計算出微控制器的波特率。

如果波特率不相等,則調整微控制器的波特率。直到相等。並確認微控制器傳送的資料位數,通常8個資料位加1個校驗,這是可以明顯看得到的。

起始位和停止位,不一定好檢視。

第二步,確認微控制器的校驗是否與pc一致。可以通過串列埠助手等軟體來修改pc的設定。多次幾次看看。

同樣傳送的資料還是0x55或0xaa。只有這樣子,你才能知道有多大差異。注意:

微控制器的傳送頻率不能太高,最好為每秒鐘傳送一個資料。這樣子不容易出現連續傳送導致的錯誤。

第三步,微控制器連續傳送資料。看看資料是否會出錯。如果出錯,修改pc的停止位個數。

5樓:匿名使用者

位數是否一樣?是rs232嗎?

求大神幫忙寫個程式 51微控制器P1口控制LED等亮滅,P2口

直到什麼也不剩下。那是夏季,或是季夏,我聽見你的足音哈哈,自東而西你走著 最後一次。而世上 失去手帕 書籍,人群。那是夏季,或是季夏,午後還有很多小時 51微控制器 led燈為什麼是p1口控制,而不是用p2口控制呢,到底怎麼看用哪個口控制呢 你看一下電路圖,led接在微控制器的那幾個引腳上就知道是那...

微控制器程式求完整註釋,會註釋的幫我一下,謝謝

真巧,我今天很閒 loop mov r2,20 置1s計數初值 mov r3,20 紅燈亮20s mov second1,25 東西路口計時顯示初值25s mov second2,25 南北路口計時顯示初值25s lcall display lcall statel1 呼叫狀態1 wait1 jnb...

急求用c8051微控制器組合語言編寫程式實現判斷

假如你要判斷的數在r0裡面,將它與2相除,shuwei是奇偶判斷位,自己可以隨意定義在哪 shuwei bit 20h.1 mov a,r0 mov b,2 div ab cjne b,00h,jishu clr shuwei jishu setb shuwei shuwei為0則為偶數 為1則為奇...