数字显示温度计的设计与研究论文(6)

2019-04-01 22:36

主程序流程见图6-1:

开始 S51寄存器初始化 N 18b20存在? Y 温度转换命令 开始 读取温度 温度数据读取 总线置1并延时 温度显示 总线置0并延时480μs 在设定区间内 温度比较 在设定区间外 报警 总线置1 返回

图 6-1 DS18B20初始化流程图 图 6-2主程序流程图

6.3 各模块流程设计

下面对主要子程序的流程图做介绍

22

6.3.1 温度检测流程

DS18B20在单片机控制下分三个阶段: ●DS18B20 初始化:初始化流程图见

●读DS18B20时序:读DS18B20流程见图 6-3: ●写DS18B20时序:写DS18B20 流程见图6-4

开始 设循环次数为8 总线置0并延时16μs 读1位数据 延时100μs 总线置1并延时60μs 8位读完? 返回 图 6-3读DS18B20流程图 开始 设循环次数为8 总线置0并延时16μs 读1位数据 延时480μs 总线置1并延时16μs 8位读完? 返回

图 6-4写DS18B20流程图

23

6.3.2 报警模块流程

报警程序 读取出温度值C 清楚报警标志位 Y C>MAX? 置上线报警标志 C

图 6-5 报警模块子程序流程图

6.3.3 中断设定流程

中断模块采用了外中断和内中断套用方法。当设计需要实现上下限报警时,利用INT0口进行中断,set 键进行上下限报警温度设定,进入温度设定状态后(按一下温度设定键),首先会提示显示“UP”字母,表示要用户设定高温报警温度,按S3 键 ,

24

表示本位数字+1,按S4 表示移向下一位,如果4 位高温设定完毕,则显示“DO”,表示要用户设定低温报警温度。4位低温设定完毕,如果用户设置的高温比设定的低温高的话则显示“ERRO”表示错误提示,同时会有蜂鸣器及时报警提示,然后自动显示“UP”,让用户重新进行温度设定。中断设定子程序流程图见下图

关外不中断开内部中断 显示UP S3 设定

完毕

S4跳到下一位 N 四位设定完 Y 显示DO S3 设定完毕

S4跳到下一位 N 四位设定完 Y 设置温度比较 设置报警 Y 高温or低温? 显示“ERRO” 开外部中断关内不中断

图6-6 中断设定子程序流程图

25

第7章 总结和体会

本设计利用AT89S51 芯片控制温度传感器DS18B20,再辅之以部分外围电路实现对环境温度的测控,性能稳定,精度教高,而且扩展性能很强大。由于DS18B20 支持单总线协议,我们可以将多个DS18B20 可以并联到3 根或2 根线上,CPU 只需一根端口线就能与诸多DS18B20 通信,占用较少的微处理器的端口就可以实现多点测温监控系统。可以加入1302 时钟芯片实现对时间进行显示,加之AT24C16 存储芯片来实现对时间和温度数据的记录,利用MAX232芯片和计算机实现串口通讯,这样就可以方便的统计出特定时间内的需要的时间和温度数据。由于DS18B20的测量精度只有±0.5 度,往往很多场合需要更加精确的温度,在所测温度精度不变的基础上必须对数据进行校正。由于DS18B20 是基于带隙结构的数字式温度传感器,PN 结增量电压正比于IC 绝对温度(PTAT),它的测温精度较高,但存在着一定的误差.不过,其误差在时间和外部环境变化的条件下,保持相当高的稳定性。针对这一特性,基于线性插补的数学思想,利用DSP技术,对其进行误差校正补偿.这种误差校正的补偿方法,不需增加硬件电路,计算方法简单,软件费用也很小,既提高了测量精度,又不需增加成本。它充分利用监控计算机的处理能力,在监控计算机上用线性插补的数学方法对其进行误差校正补偿,能轻易地将其提高其精度。

在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,举个例子,以前写的那几次,数据加减时,我用的都是BCD码,这一次,我全部用的都是16进制的数直接加减,显示处理时在用除法去删分,感觉效果比较好,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。

25


数字显示温度计的设计与研究论文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:[王文珂]导航考研英语写作讲义

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: