王平根
[摘要]本文介紹了PC機(jī)與多臺(tái)單片機(jī)間串行通信的硬件架構(gòu),敘述了利用VB8.0環(huán)境下的串行通信控件MsComm可實(shí)現(xiàn)PC機(jī)與多單片機(jī)之間的串行通信方法。給出了使用RS-232接口進(jìn)行串行通信的控件和單片機(jī)的匯編語言幾個(gè)基本程序。
[關(guān)鍵詞]PC機(jī);單片機(jī);VB8.0;匯編程序;串行通信
0引言
隨著計(jì)算機(jī)技術(shù)和通信技術(shù)的迅速發(fā)展,串行通信已經(jīng)成為計(jì)算機(jī)與其他設(shè)備進(jìn)行數(shù)據(jù)交換的最廣泛的途徑之一。串口通訊對單片機(jī)而言意義重大,不但可以實(shí)現(xiàn)將單片機(jī)的數(shù)據(jù)傳輸?shù)接?jì)算機(jī)端,而且也能實(shí)現(xiàn)計(jì)算機(jī)對單片機(jī)的控制。眾所周知,PC機(jī)的監(jiān)控和管理功能非常強(qiáng)大,而單片機(jī)則具有快速和容易控制的特點(diǎn),在實(shí)際應(yīng)用中,一般都通過PC機(jī)的RS-232串行接口與多臺(tái)單片機(jī)連接來進(jìn)行數(shù)據(jù)交換。在此,將討論如何實(shí)現(xiàn)PC機(jī)與多臺(tái)單片機(jī)之間串行通信的方法。
本文采用在Visual Basic8.0(簡稱VB8.0)環(huán)境下Pc機(jī)與多臺(tái)單片機(jī)之間實(shí)現(xiàn)串行通信的軟件及硬件方案。大家知道,在通信方面VB提供了專門的控件MsComm,VB進(jìn)行串口的關(guān)鍵在于MsComm控件,每個(gè)MsComm控件對應(yīng)于一個(gè)串行端口。使用多個(gè)串行口時(shí),要使用多個(gè)MsComm控件。因此,本文提出了以RS-232接口為基礎(chǔ),采用了RS-232/RS-485轉(zhuǎn)換器,利用VB提供的MsComm串行通信控件來編寫實(shí)現(xiàn)PC機(jī)與多臺(tái)MCS-51CPU的單片機(jī)之間通信程序,單片機(jī)的程序用匯編語言來寫。
1系統(tǒng)結(jié)構(gòu)簡介
本系統(tǒng)的組成主要是由一臺(tái)個(gè)人計(jì)算機(jī)和多臺(tái)以MCS-51CPU的單片機(jī)系統(tǒng)構(gòu)成。大家知道,每臺(tái)計(jì)算機(jī)都有至少一個(gè)串行通訊端口RS-232,它用于計(jì)算機(jī)之間進(jìn)行串行通信,而單片機(jī)則不同,它的的輸入、輸出電平與計(jì)算機(jī)的RS-232標(biāo)準(zhǔn)串行接口的電氣規(guī)范不一致,因此要將Pc機(jī)串行接口與單片機(jī)進(jìn)行電平轉(zhuǎn)換,轉(zhuǎn)換成符合RS-232C電氣標(biāo)準(zhǔn)的接口,才能實(shí)現(xiàn)單片機(jī)與Pc機(jī)之間的數(shù)據(jù)異步串行通信,因此,在Pc機(jī)與MCS-51CPU的單片機(jī)系統(tǒng)的連接中我們采用了RS-232/RS-485轉(zhuǎn)換器。系統(tǒng)結(jié)構(gòu)示意如下圖所示。
在這里,要說明的是,單片機(jī)系統(tǒng)是由一片MCS-51外加一片256K Eprom構(gòu)成,這是核心模塊,還有一些外圍芯片模塊、電機(jī)驅(qū)動(dòng)模塊、數(shù)據(jù)輸出模塊和通信功能模塊等,在此不一一說明。
2PC機(jī)與單片機(jī)程序設(shè)計(jì)
2.1MSComm串行通信控件簡介
VB8.0提供了多種控件,其中MSComm是具有強(qiáng)大串行通信功能的控件,它通過串行端口為應(yīng)用程序提供傳輸和接收數(shù)據(jù)的簡便方法,編程時(shí)非常方便。事實(shí)上,VB8.0的MSComm控件為編程人員提供了事件驅(qū)動(dòng)和查詢兩種處理通信問題的方法。事件驅(qū)動(dòng)方式是通過事件驅(qū)動(dòng)通信,是處理串行端口交互作用的一種非常有效的方法:查詢方式實(shí)質(zhì)上還是事件驅(qū)動(dòng),是通過檢查CommEvent屬性的值來查詢事件和錯(cuò)誤的。兩種方法和MSComm控件的主要屬性在此不作介紹,值得一提的是,在編程過程中,事件驅(qū)動(dòng)方式可以在OnComm事件處理函數(shù)中加入自己的處理代碼,并且每個(gè)MSComm控件對應(yīng)著一個(gè)串行端口,同時(shí),如果應(yīng)用程序需要訪問多個(gè)串行端口,必須使用多個(gè)MSComm控件。
2.2Pc機(jī)程序設(shè)計(jì)
首先要與串行端口建立連接,其代碼如下:
2.3單片機(jī)程序設(shè)計(jì)
單片機(jī)的程序設(shè)計(jì)采用MCS-51系列的匯編語言編寫,單片機(jī)串口控制較為簡單,其操作可分為串行口初始化、發(fā)送聯(lián)絡(luò)信號(hào)、接收聯(lián)絡(luò)信號(hào)和發(fā)送數(shù)據(jù)四步進(jìn)行。這里只給出串口初始化程序:TEST BIT 70H;TEST將兩次中斷接收到的高、低四位整合為八位然后控制燈的狀態(tài)
3結(jié)束語
基于VB8.0下的MsComm控件實(shí)現(xiàn)串行通信原理已經(jīng)得到實(shí)驗(yàn)結(jié)果驗(yàn)證,本文只是對利用MsComm控件實(shí)現(xiàn)Pc機(jī)與多臺(tái)單片機(jī)之間串行通信的軟硬件方案作了簡單的敘述。目前,PC機(jī)與多臺(tái)單片機(jī)串口通信在很多領(lǐng)域得到了廣泛的應(yīng)用,這種技術(shù)在我國也比較成熟,而且朝著遠(yuǎn)程通信、網(wǎng)絡(luò)通信的方向發(fā)展。更好的技術(shù)還有待于研究和提高。
[責(zé)任編輯:張濤]