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