基于單片機的高精度稱重系統(tǒng)的研制
2.2 上位機軟件編程
本系統(tǒng)采用MSComm控件實現(xiàn)VB與單片機之間的數(shù)據(jù)交換,具有程序?qū)崿F(xiàn)簡便,程序模塊化,工作可靠等優(yōu)點,并能滿足多數(shù)情況下的工控要求。使用MSComm控件主要是通過事件來處理串行口的交互??丶腛nComm事件負(fù)責(zé)捕獲或處理這些通訊事件和通訊錯誤。
2.2.1 MSCOMM屬性設(shè)置本文引用地址:http://www.ex-cimer.com/article/173606.htm
MSComml.CommPort=1 '設(shè)置端口1
MSComml.Settings=2400,N,8,1 '2400 b/s,無校驗,8位數(shù)據(jù)位,1位停止位
MSComml.InputLen=1 '一次從緩沖區(qū)中接收一個字節(jié)
MSComml.InBufferSize=1024 '接口收緩沖區(qū)大小
MSComml.PortOpen=Ture '打開端口
MSComml.Rthreshold=1 '接收一個字節(jié)觸發(fā)一次ONCOMM事件
2.2.2 ONCOMM事件響應(yīng)程序
Private Sub MSComml_OnComm()
Dim buffer As Variant '由緩沖區(qū)接收到的數(shù)據(jù)用Variant格式接收
Dim arr()As Byte '定義二進制數(shù)組
Dim i As Integer
Dim receivester As string '定義輸出到接收文本框中的字符變量
'下段程序是comEvReceive事件觸發(fā)后,將數(shù)據(jù)存入相應(yīng)的數(shù)組,并在接收文本框中顯示
Select Case MSComml.CommEvent CasecomEvReceive buffer=MSComml.Inpute
arr=buffer接收緩沖區(qū)內(nèi)數(shù)據(jù)variant變量內(nèi)
arr=buffer '轉(zhuǎn)換為二進制數(shù)并送入相應(yīng)數(shù)組
For i=1to8
receivester arr(i)
Text1.Text=Text1.Text&receiverstr&.
'在接收框中顯示文本
Next i
End Select
End Sub
3 結(jié)束語
本重量測量系統(tǒng),充分發(fā)揮了AT89S52單片機強大的控制能力和計算機的數(shù)據(jù)處理能力,通過稱重傳感器和24位分辨率的A/D轉(zhuǎn)換器實現(xiàn)了對重量的高精度測量。系統(tǒng)在電子秤的實際應(yīng)用中收到了滿意的效果。
評論