溫控系統(tǒng)中VB實(shí)現(xiàn)的PC機(jī)與單片機(jī)串行通迅
2 通信線路的構(gòu)建
PC機(jī)和單片機(jī)的接口電平轉(zhuǎn)換芯片采用MAX232C,接口電路圖如圖1所示。單片機(jī)側(cè)的TXD(發(fā)送端)接PC機(jī)的RXD(接收端),單片機(jī)側(cè)的 RXD(接收端)接PC機(jī)的TXD(發(fā)送端),兩者的GND(地)直接相連。電纜線為9針的RS-232電纜。圖中標(biāo)明了PC機(jī)側(cè)發(fā)送與接收腳的針號(hào),不能接錯(cuò)。
3 程序的實(shí)現(xiàn)
3.1 實(shí)現(xiàn)的功能
單片機(jī)控制并檢測(cè)溫度,實(shí)時(shí)地通過(guò)串口將溫度數(shù)據(jù)傳送給PC機(jī)。PC機(jī)側(cè)響應(yīng)OnComm事件,并在事件的處理程序中將數(shù)據(jù)接收,處理后送文本框顯示,同時(shí)保存在設(shè)定的文件中。
3.2 通信協(xié)議及數(shù)據(jù)格式
波特率:2400Baud,無(wú)奇偶校驗(yàn),8位數(shù)據(jù)位,1位停止位。傳送的數(shù)據(jù)類型為二進(jìn)制格式。兩字節(jié)代表一個(gè)溫度信號(hào),單片機(jī)一次傳送兩字節(jié),高字節(jié)在前,低字節(jié)在后,PC機(jī)一次接收兩字節(jié),在接收字節(jié)數(shù)組中,高字節(jié)在前,低字節(jié)在后。
3.3 PC機(jī)側(cè)VB程序
①、在Form中添加MSComm1通信控件,并將其屬性設(shè)定如下:
With MSComm1.CommPort=1 設(shè)置串行端口號(hào)為1
.Setting=2400,n,8,1 “通信協(xié)議“
.InputLen=2 ‘一次讀取2字節(jié)’
.InputMode=comInputModeBinary ‘二進(jìn)制數(shù)據(jù)格式’
.Rthreshold=2 ‘接收緩沖區(qū)達(dá)到2字節(jié)時(shí)產(chǎn)生OnComm事件’其他為默認(rèn)值即可。
②、在Form窗口添加兩個(gè)定時(shí)器Timer1和Timer2,Timer1為每次采樣時(shí)間間隔計(jì)時(shí)器,初值Interval=30000(1毫秒/Interval,所以為30秒)。Timer2是為保證串口出錯(cuò)或串口無(wú)信號(hào)時(shí)自動(dòng)跳出的,時(shí)間為1分鐘。
③、在Form窗口中添加三個(gè)文本框,Text1為顯示哪個(gè)串口被打開(kāi),Text2顯示當(dāng)前日期,Text3顯示采集的溫度數(shù)據(jù)。添加兩個(gè)命令按鈕,Command1為運(yùn)行按鈕,Command2為結(jié)束按鈕。添加兩個(gè)下拉列表框,ComboBox1為采樣總時(shí)間設(shè)定,ComboBox2為采樣間隔時(shí)間設(shè)定。添加兩個(gè)單選按鈕,Option1對(duì)應(yīng)COM1,Option2對(duì)應(yīng)COM2,串口默認(rèn)選定為COM1。
④、主要程序及簡(jiǎn)要說(shuō)明
單引號(hào)中的內(nèi)容為程序的說(shuō)明,程序的調(diào)試是在VB6.0中文版環(huán)境下完成的。
3.4 單片機(jī)側(cè)C51程序
單引號(hào)中的內(nèi)容為程序的說(shuō)明,程序調(diào)試調(diào)試環(huán)境為Keil uVision V2.14版本。
此數(shù)據(jù)采集系統(tǒng)已投入使用,傳送距離為1.5米,傳送誤碼率為0,使用情況良好。
參考文獻(xiàn):
[1] 馬忠梅等.單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì).北京航空航天大學(xué)出版社,1999.
[2] 李鴻吉.Visual Basic 6.0中文版編程方法詳解.科學(xué)出版社,2001.
評(píng)論