基于串口通信的單片機仿真和C語言開發(fā)
4.4 串行口通信模塊設(shè)計
51 單片機有一個全雙工的串行通信口,使單片機和計算機之間可以方便地進行通信。
電平范圍是電路能夠安全可靠識別信號的電壓范圍。
CMOS 電路的電平范圍一般是從0 到電源電壓。CMOS 電平中,高電平(3.5~5V)為邏輯1,低電平(0~0.8V)為邏輯0.
RS232 接口的電平范圍是-15V 到+15V,RS232 電平采用負邏輯,即邏輯1:-3~-15V,邏輯0:+3~+15V.
單片機的串口是TTL 電平的,而計算機的串口是RS232 電平,要使兩者之間進行通信,兩者之間必須有一個電平轉(zhuǎn)換電路,即單片機的串口要外接電平轉(zhuǎn)換電路芯片把與TTL兼容的CMOS 高電平表示的1 轉(zhuǎn)換成RS232 的負電壓信號,把低電平轉(zhuǎn)換成RS-232 的正電壓信號。典型的轉(zhuǎn)換電路給出-9V 和+9V.
本設(shè)計中實現(xiàn)邏輯電平轉(zhuǎn)換可以采用MAX232 芯片的轉(zhuǎn)換接口:MAX232 是MAXIM公司生產(chǎn)的,包含兩路驅(qū)動器和接收器的RS-232 轉(zhuǎn)換芯片。MAX232 芯片內(nèi)部有一個電壓轉(zhuǎn)換器,可以把輸人的+5V 電壓轉(zhuǎn)換為RS-232 接口所需的±10V 電壓,尤其適用于沒有±12V 的單電源系統(tǒng)。與此原理相同的芯片還有MAX202、AD 公司的ADDt101 以及SIL 公司的IC1232 芯片。
圖 4.6 MAX232 芯片引腳
由于 protues仿真時不需進行電平轉(zhuǎn)換,所以仿真時沒有用上MAX232 芯片電路,但做實物時需進行電平轉(zhuǎn)換,其硬件連線圖如圖4.7 所示。MAX232 芯片的T1in 引腳連接AT89C51 單片機的P3.1(TXD)引腳,MAX232 芯片的R1out 引腳連接AT89C51 單片機的P3.0(RXD)引腳;MAX232 芯片的T1out 引腳連接DB9 針接口的第2 引腳,MAX232 芯片的R1in 引腳連接DB9 針接口的第3 引腳。
圖4.7 電平轉(zhuǎn)換硬件連接圖
4.5 系統(tǒng)原理圖
由以上模塊化設(shè)計可得整個系統(tǒng)原理圖如圖4.8 所示:
圖4.8 系統(tǒng)原理圖
5 軟件設(shè)計
5.1 算法設(shè)計
編寫單片機異步通信程序步驟如下:
1. 設(shè)置串口工作方式
此時需對串行控制器SCON 中的SM0、SM1 進行設(shè)置。PC 機與單片機的通信中一般選擇串口工作在方式1 下。
串行控制器 SCON(98H)的格式如表1 所示:
表1串行控制器格式
評論