O 引言
單片機(jī)" title="單片機(jī)">單片機(jī)與PC機(jī)" title="PC機(jī)">PC機(jī)串行通信" title="串行通信">串行通信,又稱為下位機(jī)與上位機(jī)的串行通信,。采用這種通信方式,,可以解決工況條件差對工作人員帶來的危害,,又可以實現(xiàn)實時在線遠(yuǎn)距離集中監(jiān)控,對工作現(xiàn)場分散的單片機(jī)采用控制平臺管理,,既可以改善工作條件,,又可以提高工作效率。本文針對串行通信的電路設(shè)計和程序設(shè)計做出了具體的闡述,。
1 電路設(shè)計
通信接口標(biāo)準(zhǔn)有RS232,、RS423A、RS422A,、RS485等,,常用的接口標(biāo)準(zhǔn)有RS232和RS485。RS232在微機(jī)串行通信接口中廣泛采用,,在加裝了調(diào)制解調(diào)器(modem)的情況下,,這種通信可以通過電話線傳輸數(shù)據(jù),并且可以傳輸幾千公里遠(yuǎn)的距離,,如果沒有modem可以傳輸十幾米遠(yuǎn),。本課題采用的是RS-232直連無modem方式和DB-9連接器,單片機(jī)采用 AT89S52" title="AT89S52">AT89S52,,使單片機(jī)的串行輸入端(RXD)和串行輸出端(TXD)與PC機(jī)的COM口相連接,。
RS232是用正負(fù)電壓來表示邏輯狀態(tài),與TTL高低電平表示邏輯狀態(tài)的規(guī)定不同,。因此,,為了能夠同計算機(jī)接口相連或TTL器件相連,必須在RS232與 TTL之間進(jìn)行電平和邏輯關(guān)系的變換,。實現(xiàn)這種變換的方法可以用單立元件,,也可以用集成芯片,本文采用MAX232來完成TTL-EIA(美國電子工業(yè)聯(lián)合會)雙向電平轉(zhuǎn)換,。MAX232內(nèi)部有電壓倍增電路和轉(zhuǎn)換電路,,僅需+5 V電源便可工作,使用十分方便,,其與AT89S52連接時可以采用最簡單的方式連接(見圖1),,MAX232的T1 IN引腳與89S52的串行輸入口線P3.1TXD相連,R1 OUT引腳與89S52的串行輸入口線P3.0RXD相連,,MAX232的T1 OUT,、R1 IN分別于與RS232的2、3引腳相連,。MAX232泵電源引腳必須接0.1μf電容,,如圖中的C26、C27,、C28,、C29,。
因為電路中采用了電平轉(zhuǎn)換芯片,只需把單片機(jī)所用到的連接器和PC機(jī)串口所用的連接器的2,、3,、5管腳對應(yīng)連接起來,2,、3管腳不需交叉連接(如圖2所示),;如果是PC機(jī)之間或同一個PC機(jī)的兩個COM口相連,則兩個連接器的2,、3管腳需交叉相連,。
2 程序設(shè)計
主程序的設(shè)計是:AT89S52單片機(jī)采用定時器1,工作于方式2,,11.059 MHz的晶振,,波特率為9 600 Hz,時間常數(shù)是FDH,,由單片機(jī)先向PC機(jī)發(fā)送十六進(jìn)制的聯(lián)絡(luò)信號“aaH”,,PC機(jī)接收正確時回答B(yǎng)BH,以數(shù)組adr[]的和作為校驗和,,測試正常時發(fā)送數(shù)組tri[],。完整程序代碼如下:
上下位機(jī)間通信是否正常可以通過上位機(jī)安裝的串口調(diào)試軟件實現(xiàn),,上述程序經(jīng)過調(diào)試軟件調(diào)試后運行正常,。