單片機經(jīng)典實驗實例精華詳解(附源程序) (五)
51單片機有一個全雙工的串行通訊口,所以單片機和電腦之間可以方便地進行串口通訊。進行串行通訊時要滿足一定的條件,比如電腦的串口是RS232電平的,而單片機的串口是TTL電平的,兩者之間必須有一個電平轉(zhuǎn)換電路,我們采用了專用芯片MAX232進行轉(zhuǎn)換,雖然也可以用幾個三極管進行模擬轉(zhuǎn)換,但是還是用專用芯片更簡單可靠。我們采用了三線制連接串口,也就是說和電腦的9針串口只連接其中的3根線:第5腳的GND、第2腳的RXD、第3腳的TXD。這是最簡單的連接方法,但是對我們來說已經(jīng)足夠使用了,電路如下圖所示,MAX232的第10腳和單片機的11腳連接,第9腳和單片機的10腳連接,第15腳和單片機的20腳連接。電子制作實驗室網(wǎng)站的提供的帶擴展元件的51單片機實驗板上已經(jīng)裝配好了全部硬件。
串口通訊的硬件電路如上圖所示,我們可以采用以下方法來判斷串口是否存在硬件問題,將MAX232的第9腳接地,測量一下串口的第3腳和第5腳之間是否輸出10V左右的直流電壓?將MAX232的第9腳接正5V,測量一下串口的第3腳和第5腳之間是否輸出-10V左右的直流電壓?這樣可以判斷MAX232是否完好和串口線的排線壓接處是否有接觸不良。
為了能夠在電腦端看到單片機發(fā)出的數(shù)據(jù),我們必須借助一個WINDOWS軟件進行觀察,這里我們利用一個免費的電腦串口調(diào)試軟件。
點擊這里可以下載并運行這個串口調(diào)試軟件,這是一個綠色的軟件,無需安裝,可以直接在當(dāng)前位置運行這個軟件。軟件界面如上圖,我們先要設(shè)置一下串口通訊的參數(shù),將波特率調(diào)整為4800,勾選十六進制顯示。串口選擇為COM1,當(dāng)然將網(wǎng)站提供的51單片機實驗板的串口也要和電腦的COM1連接,將燒寫有以下程序的單片機插入單片機實驗板的萬能插座中,并接通51單片機實驗板的電源,這時只要按下K1一次,在串口調(diào)試助手軟件的接收區(qū)界面中就會增加一個“AF”字符,表示單片機向電腦發(fā)送“AF”字符成功。串口實驗的源程序如下所示:
;這是一個AT89C51單片機實驗開發(fā)板向PC機的串口單向發(fā)送數(shù)據(jù)AF的演示程序
;采用MAX232專用芯片作RS232/TTL電平轉(zhuǎn)換。
;通訊波特率為4800KBPS,只要按下一次K1(就是P3.6引腳變成低電平)
;就發(fā)送一個16進制的AF字符
ORG 0000H
MOV SCON,#50H;設(shè)置成串口1方式
MOV TMOD,#20H;波特率發(fā)生器T1工作在模式2上
MOV PCON,#80H;波特率翻倍為2400x2=4800BPS
MOV TH1,#0F3H;預(yù)置初值(按照波特率2400BPS預(yù)置初值)
MOV TL1,#0F3H;預(yù)置初值(按照波特率2400BPS預(yù)置初值)
SETB TR1;啟動定時器T1
;以上完成通訊初始化設(shè)置
WRIT:JB P3.6,$;判斷K1是否按下,如果沒有按下就等待
ACALL DELAY10;延時10毫秒消觸點抖動
JB P3.6,WRIT;去除干擾信號
JNB P3.6,$;等待按鍵松開
MOV A,#0AFH;將16進制的字符AF發(fā)送到串口去
MOV SBUF,A;將AF通過串口發(fā)送出去
AJMP WRIT
;10毫秒延時子程序
DELAY10:MOV R4,#20
D2:MOV R5,#248
DJNZ R5,$
DJNZ R4,D2
RET
END
評論