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