基于VB的计算机温度采集系统设计与实现
时间:11-04
来源:互联网
点击:
4 软件设计
系统软件主要是用VB6.0对RS232串口编程。实现硬件之间的通讯。MSComm是Microsoft公司提供的主要用于串行通信编程的ActiveX控件。ActiveX控件包括一系列的属性、方法和事件,应用程序通过ActiveX控件提供的接口来访问控件的功能。通信控件把许多复杂的操作都留给了VB和Windows处理,编程人员编程时只需设置其中的一些属性。
系统的关键代码如下:
Coast CMDconfig = "%0101210600" ’设置端口命令字符,0--100度,科学单位
Coast CMDdataInl = "#O1" ‘读串口1数据命令字符
Coast CMDdataIn2 = "#02" ‘读串口2数据命令字符
Coast CMDSPANCalibration = "$010" ‘校准命令字符
Coast CMDoffsetCalibration = "$011" ‘偏移量校准命令字符
Coast CMDconfigStatus = "$012"‘读端口信息命令字符
Coast CMDmoduleName = "$OlM"‘读模块名命令字符
Private Sub CmdStart_onClick( )‘开始命令子程序
MSComml.CommPor = COMnum‘设置申口号
If MSComml.PortOpen = False Then‘打开串口
MSComml.PorOpen = True
End If
If COMnum = 1 Then
CMDdataln = CMIMataInl
Else
CMDdataln = CMDdataIn2
End If
MSComml.Outpu t= CStr(CMDdataIn)&vbCr‘发出读数命令
TimeDelay 500‘延时500 ms
Picturel.CurrentX = 0‘绘制曲线坐标起点
Picturel. CurrentY = temperature
Timer1.Enabled = True‘开始计时
End Sub
Private Sub MSComml_OnComm( ) ‘事件响应子程序
Select Case MSComml.CommEvent‘判断MSComml通讯事件
Case comEvReceive‘收到Rthreshold个字节产生的接收事件
MSComml.RThreshold = 0‘关闭OnComm事件接收
TimeDelay 20‘延时20ms
temperatureShow = Right(MSComml.Input.7) ‘读取第一个数据字节(BCD码高位字节)
temperature = VaI(temperature5how ) ‘数值组合,标定小数点
MSComml.Output = CStr(CMDdataIn)&vbCr‘发送读命令
MSComml.InBufferCount = 0‘清空缓存
MSComml.RThreshold = 1‘关闭OnComm事件接收
Case comEventBreak‘收到Break
…
Case Else
End Select
End Sub
系统时钟最小可以设为1ms,在使用中需要注意,由于串口速度有限,系统运行速度有限,ADAM4013模块的采样率也有限,所以设置串口采样间隔一般不能小于50ms,否则会出现延时错误。其实对于温度采集来说,20次/s的采样率已经够用,大的采样率并无太大意义。
5 结束语
系统中没有对温度超过测温范围时情况的处理,可在系统改进中增加一个报警电路。将单片机的一个口与一个发光二极管相接,所测温度超过规定温度时,发光二极管点亮,提醒用户。本系统由于进行了实时显示和数据存储的设计,便于直观地观察温度变化和数据处理。本系统最大的特点就是容易实现,不需要数据采集卡,不需要硬件驱动程序,硬件连接方便,软件编制也比较容易掌握,特别适合短期的测温系统开发。
系统软件主要是用VB6.0对RS232串口编程。实现硬件之间的通讯。MSComm是Microsoft公司提供的主要用于串行通信编程的ActiveX控件。ActiveX控件包括一系列的属性、方法和事件,应用程序通过ActiveX控件提供的接口来访问控件的功能。通信控件把许多复杂的操作都留给了VB和Windows处理,编程人员编程时只需设置其中的一些属性。
系统的关键代码如下:
Coast CMDconfig = "%0101210600" ’设置端口命令字符,0--100度,科学单位
Coast CMDdataInl = "#O1" ‘读串口1数据命令字符
Coast CMDdataIn2 = "#02" ‘读串口2数据命令字符
Coast CMDSPANCalibration = "$010" ‘校准命令字符
Coast CMDoffsetCalibration = "$011" ‘偏移量校准命令字符
Coast CMDconfigStatus = "$012"‘读端口信息命令字符
Coast CMDmoduleName = "$OlM"‘读模块名命令字符
Private Sub CmdStart_onClick( )‘开始命令子程序
MSComml.CommPor = COMnum‘设置申口号
If MSComml.PortOpen = False Then‘打开串口
MSComml.PorOpen = True
End If
If COMnum = 1 Then
CMDdataln = CMIMataInl
Else
CMDdataln = CMDdataIn2
End If
MSComml.Outpu t= CStr(CMDdataIn)&vbCr‘发出读数命令
TimeDelay 500‘延时500 ms
Picturel.CurrentX = 0‘绘制曲线坐标起点
Picturel. CurrentY = temperature
Timer1.Enabled = True‘开始计时
End Sub
Private Sub MSComml_OnComm( ) ‘事件响应子程序
Select Case MSComml.CommEvent‘判断MSComml通讯事件
Case comEvReceive‘收到Rthreshold个字节产生的接收事件
MSComml.RThreshold = 0‘关闭OnComm事件接收
TimeDelay 20‘延时20ms
temperatureShow = Right(MSComml.Input.7) ‘读取第一个数据字节(BCD码高位字节)
temperature = VaI(temperature5how ) ‘数值组合,标定小数点
MSComml.Output = CStr(CMDdataIn)&vbCr‘发送读命令
MSComml.InBufferCount = 0‘清空缓存
MSComml.RThreshold = 1‘关闭OnComm事件接收
Case comEventBreak‘收到Break
…
Case Else
End Select
End Sub
系统时钟最小可以设为1ms,在使用中需要注意,由于串口速度有限,系统运行速度有限,ADAM4013模块的采样率也有限,所以设置串口采样间隔一般不能小于50ms,否则会出现延时错误。其实对于温度采集来说,20次/s的采样率已经够用,大的采样率并无太大意义。
5 结束语
系统中没有对温度超过测温范围时情况的处理,可在系统改进中增加一个报警电路。将单片机的一个口与一个发光二极管相接,所测温度超过规定温度时,发光二极管点亮,提醒用户。本系统由于进行了实时显示和数据存储的设计,便于直观地观察温度变化和数据处理。本系统最大的特点就是容易实现,不需要数据采集卡,不需要硬件驱动程序,硬件连接方便,软件编制也比较容易掌握,特别适合短期的测温系统开发。
单片机 电路 电子 电流 电压 电容 ADC 电阻 总线 51单片机 二极管 发光二极管 相关文章:
- 基于nRF2401智能无线火灾监控系统设计(04-01)
- 家居安防无线监控报警系统(04-02)
- 高精度压力测控系统的试验研究(04-08)
- 提高实时系统数据采集质量的研究(04-09)
- 基于MSP430的低功耗便携式测温仪设计(06-18)
- 以超低功耗微处理器MSP430为核心的热计量表设计(06-18)
