课程设计论文-基于at89s52单片机的数字温度计设计内容摘要:

CPU 表 2 DS18B20 有六条控制命令 CPU 对 DS18B20 的访问流程是:先对 DS18B20 初始化,再进行 ROM 操作命令,最后才能对存储器操作,数据操作。 DS18B20 每一步操作都要遵循严格的工作时序和通信协议。 如主机控制 DS18B20 完成温度转换这一过程,根据 DS18B20 的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20 进行复位,复位成功后发送一条 ROM 指令,最后发送 RAM 指令,这样才能对 DS18B20 进行预定的操作。 、温度报警电路 本设计采用软件处理报警,直流供电,利用有源蜂鸣器进行报警输出。 当所测温度超过或低于所预设的温度值时,数据口的电平将会被拉高,报警输出。 同时,所测温度超过上限温度时,红灯亮;低于下限温度时,黄灯亮;正常工作时,绿灯亮。 报警电 路了硬件连接如图 8 所示。 河南理工大学单片机课程设计 14 图 8 报警电路图 、电源设计 单片机的工作电源电压为 5V左右,典型值为 5V。 电源连接图如图 9所示。 图 9 电源连接图 河南理工大学单片机课程设计 15 由于 KeilC 是一种结构化的语言 ,具有灵活、高效等 优点 ,并且 C 语言比汇编语言更具有可读性,因此,本程序是在 KeilC 的编译环境下进行编译连接的。 其软件窗口界面如图 10 所示。 图 10 KeilC 软件窗口界面 本系统程序主要包括主程序,读出温度子程序,温度数据处理子程序,显示数据刷新子程序,报警子程序等。 、主程序流程图 主程序的 主要功能是负责温度的实时显示、读出并处理 DS18B20 的测量的当前温度值,温度每隔一定时间测量进行一次,这样可以实时的显示当前的温度值。 主程序流程见图 11 所示。 河南理工大学单片机课程设计 16 图 11 主程序流程图 、读出温度子程序 读出温度子程序的主要功能是读出 RAM 中 9 字节的内容,并将其整合成一整数存储在暂存器中。 其程序流程图如图 12 所示 . 图 12 读出温度子程序流程图 河南理工大学单片机课程设计 17 、数据处理子程序 温度数据处理子程序将从 RAM 中读取的值进行 BCD 码的转换运算,并进行温度值正负的判定,其程序流程图如图 13 所示。 图 13 数据处理子程序流程图 、数据刷新子程序 显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高位显示为 0 时,将符号显示位移入下一位。 程序流程图如图 14 所示。 图 14 数据刷新子程序流程图 河南理工大学单片机课程设计 18 、报警子程序 报警子程序主要实现当测量的实际温度高于设定温度的上限时,蜂鸣器响,并且红色指示灯亮;当测量的实际温度低于设定温度的下限时,蜂鸣器也响,但黄色指示灯亮;当测量的实际温度介于设定温度的上下限时,蜂鸣器不响,并且绿色指示灯亮。 其流程图如图 15 所示。 图 15 报警子 程序流程图 河南理工大学单片机课程设计 19 、系统仿真设计 对于单片机这一门实践性非常强、非常抽象的课程, Proteus 软件虽然有些缺点,但依然是一个非常好的仿真软件。 因此,本次设计采用 Proteus 对数字温度计进行仿真。 Proteus 软件窗口界面如图 16 所示。 图 17 Proteus 软件窗口界面 将与真实元件对应的虚拟元件调出,绘制在窗口的图纸上。 连接好线路并保证没有问题时,将编译生成的 (*.hex)文件调入虚拟单片机中,点击运行,即可通过仿真电路了解真实电路的运行结果。 、仿真 结果分析 此数字温度计可以测量温度范围为 50℃ ~ 110℃ ,温度误差小于 ℃ ,并且可以任意设定上下限温度。 假设上限温度设定为 38℃ ,下限温度设定为10℃。 如图 1图 18 所示。 河南理工大学单片机课程设计 20 图 17 上限温度设定为 38℃ 图 18 下限温度设定为 10℃ 河南理工大学单片机课程设计 21 当温度传感器测量的实际温度超过上限温度时,蜂鸣器响、红色指示灯亮。 如图 19 所示。 图 19 实际温度超过 38℃ 当实际温度低于下限温度时,蜂鸣器响、黄色指示灯亮。 如图 20 所示。 图 20 实际温度低于 10℃ 河南理工大学单片机课程设计 22 当实际温度介于上下限温度之间时,蜂鸣器不响 、绿色指示灯亮。 如图21 所示。 图 21 实际温度介于 10℃ ~ 38℃ 河南理工大学单片机课程设计 23 DS18B20 最大的特点是单总线数据传输方式, DS18B20 的数据 I/O 均由同一条线来完成。 DS18B20 的电源供电方式有 2 种:外部供电方式和寄生电源方式。 工作于寄生电源方式时, VDD 和 GND 均接地,这在需要远程温度探测和空间受限的场合特别有用,原理是当 1Wire 总线的信号线 DQ 为高电平时,窃取信号能量给 DS18B20 供电,同时一部分能量给内部电容充电;当 DQ 为低电平时释放能量为 DS18B20 供电。 但寄生电源方式需要上啦电路,软件控制变得复杂(特别是在完成温度转换和拷贝数据到 E2PROM 时),同时芯片的性能也有所降低。 因此,在条件允许的场合,尽量采用外部供电方式。 无论是内部寄生电源还是外部电源, I/O 口线要接 5K 左右的上拉电阻。 在这里采用外部电源供电方式。 DS18B20 与芯片连接电路如图 22 所示。 图 22 DS18B20与单片机的连接 外部电源供电方式是 DS18B20 最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。 一般在发中使用外部电源供 电方式,毕竟比寄生电源方式只多接一根 VCC 引线。 在外接电源方式下,可以充分发挥 DS18B20 宽电源电压范围的优点,即使电源电压VCC 降到 3V 时,依然能够保证温度量精度。 河南理工大学单片机课程设计 24 经过几周的时间,终于完成了数字温度计的单片机课程设计,虽然本次设计并不是最完美的,但从心底里说,还是十分地高兴,毕竟这次设计和以往不同,要求我们不仅提交设计报告,还要把实物做出来。 通过数字温度计的单片机课程设计了解了数字温度计的组成及原理,练习了 Protel、 Proteus、 KeilC 等软件的基本操作、了解了如何撰写课 程设计报告、并且会用各种方式查找和利用各种文献资料为自己服务、增长了对实际电路设计的经验、提高了分析问题和解决问题的能力。 但是,通过本次课程设计,也发现了不少问题,尤其是软件设计方面的问题。 就本次课程设计来说,硬件电路很容易就连接好了而且没有出现短接等问题。 然而,软件设计则是写了又改、改了再写,足足花了三天时间才修改正确,但 程序不够简洁,算法也不是最优的。 有很多东西,只有我们试着去做了,才能更进一步了解它。 总之,这次课程设计使我们将所学过的知识和实际的电子设计相结合,为以后毕业设计积累了经验,为今后参加工作打下了良好的基础。 同时,使我们知道理论和实际之间的差别以及理论联系实际的重要性和必要性。 7. 参考文献 [1]孙育才 .《单片微型计算机及其应用》 .东南大学出版社 .2020 [2]沈德金 陈粤初 .《单片机接口电路与应用程序实例》 .北京航天航空大学出版社 .1990. [3]潘新民 王燕芳 .《微型计算机控制技术》 .电子工 业出版社 2020 [4]李朝青 .单片机原理及接口技术(简明修订版) .杭州:北京航空航天大学出版社, 1998 [5]李广弟 .单片机基础[M] .北京:北京航空航天大学出版社, 1994 [6]阎石 .数字电子技术基础(第三版) . 北京:高等教育出版社, 1989 [7]廖常初 .现场总线概述 [ J] .电工技术, 1999. [8]王勇 叶敦范 .《基于 AT89S51 的便携式实时温度检测仪》 [J].选自《仪表技术与传感器》 .2020 河南理工大学单片机课程设计 25 附 1 源程序代码 /***************************************************/ include include //_nop_()。 延时函数用 include define disdata P0 //段码输出口 define discan P2 //扫描口 define uchar unsigned char define uint unsigned int sbit duqu=P3^6。 //温度输入口 sbit dian=P0^7。 //LED 小数点控制 sbit beep=P1^6。 //蜂鸣器 sbit key0=P3^0。 sbit key1=P3^1。 sbit key02=P3^2。 sbit key03=P3^3。 sbit led0=P1^0。 //红灯 sbit led1=P1^1。 //绿灯 sbit led2=P1^2。 //黄灯 uint h。 uint temp。 uchar r。 char high=38,low=10。 uchar sign。 uchar st=1。 uchar ti。 uchar pp。 uchar ee。 uchar nn。 //**************温度小数部分用查表法 ***********// uchar code ditab[16]= {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09}。 河南理工大学单片机课程设计 26 // uchar code dis_7[15]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67,0x00,0x40,0x76,0x38,0x39}。 //共阴 LED 段码表 0 1 2 3 4 5 6 7 8 9 不亮 H L。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。