数字温度计显示报警系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字温度计显示报警系统设计
【摘要】在现代化社会发展的驱使下,人们的生活步调日益加快,对于温度的利用与掌握变得尤为重要。本文主要就是利用单片机技术设计一款数字温度计显示报警系统,以STC89C51单片机为核心,配备液晶显示、温度传感器等完善温度计显示的功能设置。温度传感器采用DS18B20芯片,这个温度计显示系统可以随时设置温度上、下限值,进行温度范围设置,同时当检测到的温度超过设置的范围时,系统会自动报警。
【关键词】单片机;液晶显示;温度传感器
文章的核心主要从硬件设计和软件设计两个大的方面阐述。硬件电路设计从功能上划分成各个功能小电路,通过对这些功能小电路的具体设计并建立合理的电气连接关系完成系统的硬件设计。软件用汇编语言来实现,主要包括主程序、显示与键盘设置子程序、温度测量子程序。整个系统采用5V电源供电。基于对单片机的进一步学习和掌握,由此开展了本文的设计,即基于单片机技术的一款“数字温度计显示报警系统”。它不仅融合了大量的单片机技术,同时也需要各种电路设计基础,以及对各种功能芯片的认识。本文主要就是利用单片机技术设计一款数字温度计显示报警系统,以STC89C51单片机为核心,配备液晶显示、温度传感器等完善温度计显示的功能设置。温度传感器采用DS18B20芯片,这个温度计显示系统可以随时设置温度上、下限值,进行温度范围设置,同时当检测到的温度超过设置的范围时,系统会自动报警。
一、具体设计方案
1.系统采用STC89C51单片机为核心器件,控制整个系统的运行。
2.系统的温度采集器件采用的是DS18
B20温度传感器,与单片机直接相连,测量精度可以达到0.1℃,测量范围为-55℃~+125℃。
3.系统的显示器件采用的是RT12864M液晶显示器。
4.温度的上限、下限的设定是通过接入键盘电路来实现的。系统共设计了8个按键,按键接入STC89C51芯片的P1口的8个引脚,由液晶显示芯片完成查询具体按键状态。在设置按键功能上分别设有不同功能,以辅助系统完成多功能设置。
二、硬件设计
系统的硬件设计按照以下六步走:
(1)按照系统硬件电路的方案设计,利用Protel DXP画出系统硬件原理图;(2)利用面包板,采用导线连接完成电路功能测试;(3)完成印制电路板的设计;(4)器件采购;(5)完成电路板器件焊接;(6)调试电路板。
1.单片机的选择及最小系统设计
STC89C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的闪烁只读程序存储器和128×8位的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。内部4KB闪烁存储器,芯片本身就是1个最小系统,所以它的最小系统设计只要将单片机接上时钟电路和复位电路即可,如图1-1所示。
图1-1 单片机的时钟与复位电路
2.温度采集电路的设计和器件的选择
FYD12864-0402B是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集。利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字,也可完成图形显示。低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
3.显示电路的设计和器件选择
FYD12864-0402B是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集。利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字,也可完成图形显示。低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
三、软件设计
根据设计要求,首先要确定软件设计方案,即确定该软件应该完成哪些功能;其次是为了完成这些功能需要分成多少个功能模块,以及每一个程序模块的具体任务是什么。模块的划分有很大的灵活性,但也不能随意划分。划分模块时应遵守时应遵循下述原则:每个模块应具有独立的功能,能产生一个明确的结果;模块之间的控制参数应尽量简单,数据参数应尽量少;模块长度适中。模块语句的
长度通常在20-100条较合适;根据模块的划分原则,将该程序划分成4个模块,如图1-2所示。
图1-2 系统软件设计方框图
1.主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度。
2.读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。
3.温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。
4.计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定。
5.显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。四、系统调试
单片机应用系统的调试,包括硬件调试和软件调试,是一个很重要的步骤。硬件调试和软件调试并不能完全分开,许多硬件错误是在软件调试过程中被发现和纠正的。一般方法是先排除明显的硬件故障,再进行软硬件综合调试。根据方案设计的要求,调试过程分为三大部分:硬件调试、软件调试和系统硬软综合联调。电路按模块调试,各模块逐个调试通过后再联调。单片机软件先在最小系统上调试,确保所有部分工作正常之后,再与硬件系统联调。
对系统进行调试,首先要进行静态调试,静态调试工作分为两步:第一步是在系统加电之前,先用万用表等工具,根据硬件逻辑设计图,仔细检查系统线路是否连接正确,并核对元器件的型号、规格和安装是否符合要求,特别注意电源系统的检查,以防止电源的短路和极性错误,并重点检查系统总线(地址总线、数据总线、控制总线)是否存在相互之间短路或与其他信号线的短路;第二步是加电后检查各芯片插座上有关引脚的电位,仔细测量各点电平是否正常,尤其应注意CPU插座的各点电位,若有高压,与在线仿真器联机调试时,将会损坏在线仿真器。静态调试的目的是排除明显的硬件故障。在静态调试中,对系统硬件进行了初步调试,只是排除了一些明显的静态故障。系统在的硬件故障主要是靠联机在线仿真来排除的。在断电情况下,插上所有元器件,并把在线仿真器与系统相连,打开系统电源,启动在线仿真器后开始在线仿真调试。再进行软件设计、调试的过程,分为以下几步进行:第一步,建立用户源程序。按照单片机汇编程序所要求的格式、语法规定,把源程序输入到编程软件中,并保存;第二步,在编程软件中,对输入的源程序进行编译,直至语法错误全部纠正为止。如无语法错误,则进行下一个步骤;第三步,动态在线调试。这一步是对源程序进行调试。必须要有在线仿真器配合,才能对源程序进行调试;第四步,将调试完毕的用户