块用于现场控制信号的设定以及特殊情况下强制执行信号的操作;数据通信完成温、湿度测控系统与上位PC机之间的协议化通信,按照通讯规约的要求来实现与上位PC机的可靠通讯,同时可以接受上位PC机设定的控制参数并将其存储于电路EEPROM中。 4.1.1.湿度检测子程序
相对湿度的检测采用相对湿度传感器HS1101,该传感器的测量精度为±3%RH,将单片机定时到1s,用T0计数器记录“湿度—频率转换电路”中的输出方波数,定时时间到时,停止T0计数,此时T0所计的方波数即为“湿度—频率转换电路”的频率,对照表3-1-1(空气湿度与电压频率的典型值),判断该频率所属区域,将每个区域等分为100份,即相当于0.1%RH的精度,如在0%RH~10%RH之间均分100份,对应的频率分为100份,即用相对湿度为0%RH时对应频率(7351Hz)减去相对湿度为10%RH时的对应频率(7224Hz),用该差值除以100,公式如下:为了方便计算和保证计算精度,将增量扩大100倍,进行计算。在计算前将每段的增量计算好,存入表中,在实际计算中,分段进行查找,计算只涉及到加减,计算时间短,精度高。湿度检测的流程如图16所示。
4.1.2.温度检测子程序
温度检测子程序主要完成的是初始化DS18B20,从DS18B20中读出一个字节的数据,向DS18B20中写入一个字节的数据,配置DS18B20温度转换的精度等,读出SCRACHPAD存储器中的九个字节的数据,读出ROM中的64位CODE值,对读出的SCRACHPAD数据进行CRC校验,然后根据读出的数据得到测量出的十进制温度值。从DS18B20中读出九个字节数据的流程图如图17所示。
15
图17:DS18B20温度采集流程图
图16:湿度检测子程序流程图
4.2.上位PC机接口软件
上位管理PC机利用Visual Basic 6.0的通信控件MSComm实现数据通信。本设计中的数据帧包括8位数据位,1位停止位,无奇偶校验。
下面是MSComm控件的初始化程序:
MScomm1.ComPort=1;设置串行端口(com1)
MScomm1.Settings=2400,N,8,1;设置波特率及数据帧格式
MScomm1.InputMOde=1;数据接受按字节(binary)方式
MScomm1.InbufferSize=4000;数据接受缓冲区大小为4000字节 MScomm1.InputLen=0;INPUT读取缓冲区的所有内容 Mscomm1.PortOpen=True;打开COM1 ……。
数据发送程序:
Private Sub Command1_Click() Dim outbuf(1 To 6)As Byte Dim lstr1 As String Dim hstr2 As String
Dim len1 As IntegerCommand1.Enabled=False len1=Len(Hex(Val(Text2.Text))) ……… End Sub
数据接受程序:
Private Sub MScomm1_OnComm() Select Case MScomm1.CommEvent Case comEvReceive
Dim inbuf()As Byte,i%,buf$ buf=\
inbuf=MScomm1.Input Rev_num=UBound(inbuf)
ReDim lnum(0 To Rev_num)As Integer For i=0 To Rev_num lnum(i)=inbuf(i)
buf=buf+Str(inbuf(i))+\Next i
Case comEvSend End Select
16
End Sub
5.结束语
本设计在焊接好电路硬件的基础上,通过ISP下载线将软件代码下载至AT89C51单片机中完成系统集成。由于采用了AT89C51单片机,性能可靠、电路简单,系统中还可充分利用AT89C51中先进的软件硬件资源,便于软件系统的升级。
17
参考文献:
[1] 李萍主编,《AT89S51单片机原理、开发与应用实例》,中国电力出版社,2008年7月:67-76 [2] 陈京培.2007.基于AT89C51高性能单片机串行通信电路的设计[J].科技信息(学术研究).113-119 [3] 徐建军编著,《MCS-51系列单片机应用及接口技术》,人民邮电出版社,2003:117-131 [4] 郑学坚编,《微型计算机原理及应用》,清华大学大学出版社,1998:66-112 [5] 白雪冰,张延林,等.单片机原理及应用[M].哈尔滨:东北林业大 学出版社,2006. [6] 夏继强编,《单片机实验与实践教程》,北京航空航天大学出版社,2001:32-33 [7] 余锡存编著,《单片机原理及接口技术》,西安电子科技大学出版社,2000:56-73 [8] 李刚等编著,《51系列单片机系统设计与应用技巧》,北京航空航天大学出版社,2002 [9] 余永权著,《ATMEL89系列单片机应用技术》,北京航空航天大学出版社,2002.4:21-27 [10] 欧阳文编,《ATMEL89系列单片机的原理与开发实践》,中国电力出版社,2007.6:203-237 [11] Changjun,liyan. Application of humidity sensor HS1101 in intelligent home controlsystem
Electronic Test.224-228.2008.
[12] Dong wen jun..DS1820 One-Wire Temperature Detecting Network Based On PC Serial
Port.168-172.2007
[13] LIU Yi;ZHAO(Key Laboratory of Integrated Automation of Process Industry;Ministry of
Education;Northeastern
University;Shenyang
110004;China.
Journal
of
GansuLianhe
University(Natural Science Edition).259-26 .Jun.2008.
附录一 系统原理图