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