串列埠除錯精靈的使用和串列埠程式除錯技巧

2021-04-13 23:02:12 字數 1707 閱讀 8179

串列埠除錯精靈的使用和串列埠程式除錯技巧

51微控制器有乙個全雙工的序列通訊口,所以微控制器和電腦之間可以方便地進行串列埠通訊。進行序列通訊時要滿足一定的條件,比如電腦的串列埠是rs232電平的,而微控制器的串列埠是ttl電平的,兩者之間必須有乙個電平轉換電路,我們採用了專用晶元max232進行轉換,雖然也可以用幾個三極體進行模擬轉換,但是還是用專用晶元更簡單可靠。我們採用了三線制連線串列埠,也就是說和電腦的9針串列埠只連線其中的3根線:第5腳的gnd、第2腳的rxd、第3腳的txd。這是最簡單的連線方法,但是對我們來說已經足夠使用了,電路如下圖所示,max232的第10腳和微控制器的11腳連線,第9腳和微控制器的10腳連線,第15腳和微控制器的20腳連線。電子製作實驗室**的提供的帶擴充套件元件的51微控制器實驗板上已經裝配好了全部硬體。

串列埠通訊的硬體電路如上圖所示

為了能夠在電腦端看到微控制器發出的資料,我們必須借助乙個windows軟體進行觀察,這裡我們利用乙個免費的電腦串列埠除錯軟體。

這是乙個綠色的軟體,無需安裝,可以直接在當前位置執行這個軟體。軟體介面如上圖,我們先要設定一下串列埠通訊的引數,將波特率調整為4800,勾選十六進製制顯示。串列埠選擇為com1,當然將**提供的51微控制器實驗板的串列埠也要和電腦的com1連線,將燒寫有以下程式的微控制器插入微控制器實驗板的萬能插座中,並接通51微控制器實驗板的電源,這時只要按下k1一次,在串列埠除錯助手軟體的接收區介面中就會增加乙個「af」字元,表示微控制器向電腦傳送「af」字元成功。串列埠實驗的源程式如下所示:

;這是乙個at89c51微控制器實驗開發板向pc機的串列埠單向傳送資料af的演示程式

;採用max232專用晶元作rs232/ttl電平轉換.

;通訊波特率為4800kbps,只要按下一次k1(就是p3.6引腳變成低電平)

;就傳送乙個16進製制的af字元

org 0000h

mov scon,#50h;設定成串列埠1方式

mov tmod,#20h;波特率發生器t1工作在模式2上

mov pcon,#80h;波特率翻倍為2400x2=4800bps

mov th1,#0f3h;預置初值(按照波特率2400bps預置初值)

mov tl1,#0f3h;預置初值(按照波特率2400bps預置初值)

setb tr1;啟動定時器t1

;以上完成通訊初始化設定

writ:jb p3.6,$;判斷k1是否按下,如果沒有按下就等待

acall delay10;延時10毫秒消觸點抖動

jb p3.6,writ;去除干擾訊號

jnb p3.6,$;等待按鍵鬆開

mov a,#0afh;將16進製制的字元af傳送到串列埠去

mov sbuf,a;將af通過串列埠傳送出去

ajmp writ

;10毫秒延時子程式

delay10:mov r4,#20

d2:mov r5,#248

djnz r5,$

djnz r4,d2

ret

end這是上面程式彙編以後獲得的程式設計器燒寫檔案:88.hex

串列埠程式除錯總結

除錯能否成功一方面在於方法,另外很大程度上取決於個人的經驗。但是在除錯的時候,通常要遵循以下一些原則 1 確定錯誤的性質和位置 分析 思考與錯誤徵兆有關的資訊,避開死胡同。除錯工具只是一種輔助手段,充分利用vc自帶的除錯工具可以幫助思考,但不能代替思考。通常避免使用 試探法,最多只能將它當作最後的手...

串列埠程式除錯總結

除錯能否成功一方面在於方法,另外很大程度上取決於個人的經驗。但是在除錯的時候,通常要遵循以下一些原則 1 確定錯誤的性質和位置 分析 思考與錯誤徵兆有關的資訊,避開死胡同。除錯工具只是一種輔助手段,充分利用vc自帶的除錯工具可以幫助思考,但不能代替思考。通常避免使用 試探法,最多只能將它當作最後的手...

不用串列埠線除錯串列埠通訊程式

linux qt embedded寫串列埠程式 在辦公室都是用串列埠連線兩台電腦來除錯串列埠程式。因為電腦多,用一根線連起來,這邊發那邊收,收的一邊xp裡用串列埠除錯助手,很方便。有時候手頭沒有兩台電腦可以連,或者兩台中有一台筆記本,只有usb轉串列埠線,我的筆記本裡只有linux,反正怎麼都不方便...