新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于VB實(shí)現(xiàn)PC機(jī)與單片機(jī)的串行通訊

基于VB實(shí)現(xiàn)PC機(jī)與單片機(jī)的串行通訊

作者: 時(shí)間:2012-03-22 來(lái)源:網(wǎng)絡(luò) 收藏

引言

本文引用地址:http://m.butianyuan.cn/article/171809.htm

隨著計(jì)算機(jī)技術(shù)尤其是單片微型機(jī)技術(shù)的發(fā)展,人們已越來(lái)越多地采用來(lái)對(duì)一些工業(yè)控制系統(tǒng)中如溫度、流量和壓力等參數(shù)進(jìn)行檢測(cè)和控制。機(jī)具有強(qiáng)大的監(jiān)控和管理功能,而則具有快速及靈活的控制特點(diǎn),通過(guò)機(jī)的RS-232接口與外部設(shè)備進(jìn)行通信,是許多測(cè)控系統(tǒng)中常用的一種通信解決方案。因此如何機(jī)與之間的具有非常重要的現(xiàn)實(shí)意義。本文將論述在環(huán)境下PC機(jī)與單片機(jī)之間的軟硬件方案。PC機(jī)的程序使用Visual Basic編寫(xiě),是Microsoft公司推出的Windows應(yīng)用程序開(kāi)發(fā)工具,因其具有界面友好,編程簡(jiǎn)便等優(yōu)點(diǎn)而受到廣泛的使用,而且 Visual Basic 6.0 版本帶有專(zhuān)門(mén)通訊的MSCOMM控件。

1、硬件原理

目前的PC機(jī)都有至少一個(gè)串行通訊端口RS-232,RS-232端口可用于兩臺(tái)計(jì)算機(jī)之間進(jìn)行通訊,RS-232的邏輯電平用正負(fù)電壓表示,且信號(hào)使用負(fù)邏輯,邏輯0的電壓范圍是+5V~+15V,而邏輯1的電壓范圍是-5V~ -15V,RS-232端口是計(jì)算機(jī)與其他設(shè)備溝通的最常用的接口,不但實(shí)作簡(jiǎn)單,而且價(jià)格便宜。在8051單片機(jī)的內(nèi)部有一個(gè)全雙工的異步串行I/O 口,它的輸入和輸出使用5V邏輯而不是RS-232電壓,如何進(jìn)行兩種信號(hào)的轉(zhuǎn)換,是連接時(shí)需要解決的問(wèn)題,事實(shí)上,解決的方法很簡(jiǎn)單,只需使用一個(gè)諸如 MAX232這樣的專(zhuān)用芯片即可。

電路結(jié)構(gòu)見(jiàn)下圖。

19.gif

MAX232包含兩個(gè)將TTL輸入轉(zhuǎn)換成RS-232輸出的驅(qū)動(dòng)器,還包含兩個(gè)將RS-232輸入翻譯成CMOS輸出的接收器,這些驅(qū)動(dòng)器和接收器具有反向的功能。4個(gè)外置的電容大小為1uF,如果使用極化電容,注意極性,引腳6的電壓為負(fù),因此它的電容的正極連接到地,電容等級(jí)至少為15V。

2、軟件設(shè)計(jì)

本次通訊中,我們以一個(gè)測(cè)控系統(tǒng)的上位機(jī)和下位機(jī)之間的通信為背景,給出單片機(jī)部分和環(huán)境下的通信程序?qū)嵗?,系統(tǒng)中單片機(jī)負(fù)責(zé)數(shù)據(jù)采集、處理和控制,上位機(jī)進(jìn)行現(xiàn)場(chǎng)可視化檢測(cè),通信協(xié)議采用半雙工異步串行通信方式,通過(guò)RS232的RTS信號(hào)進(jìn)行收發(fā)轉(zhuǎn)換,傳輸數(shù)據(jù)采用二進(jìn)制數(shù)據(jù),上位機(jī)與下位機(jī)之間采用主從式通訊。

(1)單片機(jī)的串行通訊程序

8051單片機(jī)從外部采集到的一組數(shù)據(jù)(30個(gè)),存在片內(nèi)RAM20H~3DH區(qū)域,要求將這個(gè)數(shù)據(jù)塊傳送給PC機(jī),為了保證傳送的正確,傳送前由單片機(jī)先向PC機(jī)發(fā)送數(shù)據(jù)# 55H(聯(lián)絡(luò)信號(hào)),PC機(jī)接收到后,向單片機(jī)回送數(shù)據(jù)# 0AAH(回應(yīng)信號(hào)),經(jīng)檢驗(yàn)正確后,單片機(jī)才開(kāi)始向PC機(jī)傳送數(shù)據(jù)。


上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉