基于VB實現(xiàn)PC機與單片機的串行通訊
引言
本文引用地址:http://cafeforensic.com/article/171809.htm隨著計算機技術(shù)尤其是單片微型機技術(shù)的發(fā)展,人們已越來越多地采用單片機來對一些工業(yè)控制系統(tǒng)中如溫度、流量和壓力等參數(shù)進行檢測和控制。PC機具有強大的監(jiān)控和管理功能,而單片機則具有快速及靈活的控制特點,通過PC機的RS-232串行接口與外部設備進行通信,是許多測控系統(tǒng)中常用的一種通信解決方案。因此如何實現(xiàn)PC機與單片機之間的通訊具有非常重要的現(xiàn)實意義。本文將論述在VB環(huán)境下PC機與單片機之間實現(xiàn)串行通訊的軟硬件方案。PC機的通訊程序使用Visual Basic編寫,VB是Microsoft公司推出的Windows應用程序開發(fā)工具,因其具有界面友好,編程簡便等優(yōu)點而受到廣泛的使用,而且 Visual Basic 6.0 版本帶有專門實現(xiàn)串行通訊的MSCOMM控件。
1、硬件原理
目前的PC機都有至少一個串行通訊端口RS-232,RS-232端口可用于兩臺計算機之間進行通訊,RS-232的邏輯電平用正負電壓表示,且信號使用負邏輯,邏輯0的電壓范圍是+5V~+15V,而邏輯1的電壓范圍是-5V~ -15V,RS-232端口是計算機與其他設備溝通的最常用的接口,不但實作簡單,而且價格便宜。在8051單片機的內(nèi)部有一個全雙工的異步串行I/O 口,它的輸入和輸出使用5V邏輯而不是RS-232電壓,如何進行兩種信號的轉(zhuǎn)換,是連接時需要解決的問題,事實上,解決的方法很簡單,只需使用一個諸如 MAX232這樣的專用芯片即可。
電路結(jié)構(gòu)見下圖。
MAX232包含兩個將TTL輸入轉(zhuǎn)換成RS-232輸出的驅(qū)動器,還包含兩個將RS-232輸入翻譯成CMOS輸出的接收器,這些驅(qū)動器和接收器具有反向的功能。4個外置的電容大小為1uF,如果使用極化電容,注意極性,引腳6的電壓為負,因此它的電容的正極連接到地,電容等級至少為15V。
2、軟件設計
本次通訊中,我們以一個測控系統(tǒng)的上位機和下位機之間的通信為背景,給出單片機部分和VB環(huán)境下的通信程序?qū)嵗?,系統(tǒng)中單片機負責數(shù)據(jù)采集、處理和控制,上位機進行現(xiàn)場可視化檢測,通信協(xié)議采用半雙工異步串行通信方式,通過RS232的RTS信號進行收發(fā)轉(zhuǎn)換,傳輸數(shù)據(jù)采用二進制數(shù)據(jù),上位機與下位機之間采用主從式通訊。
(1)單片機的串行通訊程序
8051單片機從外部采集到的一組數(shù)據(jù)(30個),存在片內(nèi)RAM20H~3DH區(qū)域,要求將這個數(shù)據(jù)塊傳送給PC機,為了保證傳送的正確,傳送前由單片機先向PC機發(fā)送數(shù)據(jù)# 55H(聯(lián)絡信號),PC機接收到后,向單片機回送數(shù)據(jù)# 0AAH(回應信號),經(jīng)檢驗正確后,單片機才開始向PC機傳送數(shù)據(jù)。
評論