1、湖北工业大学商贸学院毕业设计 摘 要体温是人体健康的一个很重要的指标,体温过高或过低都是身体健康异常的信号。传统的测试体温方法,一般是用水银体温计测量体温,水银体温计测量固然十分准确,但是响应时间长,而且会造成环境的严重污染。随着科技的发展,单片机已经广泛的应用到了物理实验、医疗卫生、食品生产各个领域。本文设计一种基于单片机设计和实现的电子体温计。本设计分为硬件设计和软件设计两个部分,其中硬件设计部分主要包括温度采集电路、显示电路、报警电路,软件设计部分用KEIL作为编程软件,使用C语言进行编程。本设计采用传感器DS18B20采集人体的温度,经过模数转换后的电信号传输到51单片机,最后再传输到
2、LCD液晶显示器显示。该电子体温计响应时间短,工作稳定,读数方便,测量精度高,当超过人体体温正常值是会发出蜂鸣警报声。并且其中不含汞,不会对环境造成污染,在家庭、医院等场合都能得到广泛应用。关键词:电子体温计 51单片机 DS18B20 LCDAbstractTemperature is one of the most important indexes of human health, it is too high or too low signal a health exception. Temperature measurement method of traditional, is g
3、enerally measured body temperature with a mercury thermometer, Mercury thermometer to measure is very accurate, but the long response time, and will cause serious pollution of the environment. With the development of science and technology, MCU has been widely applied to physics experiments, medical
4、 and health, food production in various fields.This paper design a kind of electronic temperature meter based on 51 single chip microcomputer.The design is divided into two parts: hardware design and software design, the hardware design mainly includes temperature acquisition circuit, display circui
5、t, alarm circuit and keyboard control circuit, the part of software design uses KEIL as programming software , using C programming language. With sensor DS18B20 collecting temperature of human body, after it transfers to the analog to digital converter, the electrical signal will be transfer to a 51
6、 single chip microcomputer, then transfer to the LCD liquid crystal display. The electronic thermometer with short response time, stable work, convenient reading, high measuring accuracy, when more than the normal human body temperature, it will sound a buzzer alarm. And which does not contain mercu
7、ry, harmless to the human body and the surrounding environment, particularly suitable for families, hospitals and other occasions.Keyword: Electronic thermometer 51 single chip microcomputer DS18B20 LCD目 录摘 要IABSTRACTII目 录III引 言11 设计任务及方案分析21.1设计任务及要求21.2 设计总体方案及方案论证21.3 体温测量的方案与分析31.3.1 元件的选择31.3.2
8、 总体结构框图41.3.3 测温流程图42 主要元器件功能的介绍52.1 单片机52.1.1 AT89C52芯片简介52.1.2 AT89C52的引脚功能介绍62.1.3 AT89C52的特殊功能82.1.4 AT89C52的数据存储82.1.5 AT89C52的中断82.1.6 AT89C52的两种工作模式92.2 温度传感器102.2.1 DS18B20简介102.2.2 DS18B20的引脚说明102.2.3 DS18B20的测温原理112.2.4 DS18B20的外形和内部结构112.2.5 DS18B20的应用电路122.2.6 使用DS18B20的注意事项132.3 LCD1602
9、152.3.1 LCD1602液晶的介绍152.3.2 LCD1602液晶的引脚功能简介152.3.3 LCD1602液晶的操作控制162.3.4 LCD1602液晶的指令集173 系统硬件电路的设计203.1 硬件总体设计思路203.2 单片机时钟电路与复位电路的设计203.2.1 时钟电路设计203.2.2 复位电路设计213.3 温度传感器模块213.4 液晶显示模块213.5 报警电路模块244 系统软件设计254.1 软件Keil和Proteus的简单介绍254.1.1 软件Keil简介254.1.2 软件Proteus简介254.2 系统程序的编写264.2.1 系统主程序264.
10、2.2 温度传感器初始化274.2.3 温度转换命令子程序274.2.4 温度数据的计算方法284.3 源代码285 性能测试与分析28结 束 语30参 考 文 献31致 谢32附 录33III引 言早在16世纪,伽利略就发明了水银体温计,但是由于各种原因,直到300年后才设计出使用方便、性能可靠的体温计。当水银受热膨胀时,它会沿着玻璃管上升,即使微小的温度变化也能够引起水银大幅度的上升,当水银的温度和被测皮肤温度相同时,水银停止上升,此时便可读取温度值了。测量完成后,还需有力甩体温计,使水银回到玻璃球,方能继续测量体温。在此之后,人们也陆陆续续的发明了各式各样的体温计,1714年,加布里埃尔
11、华伦海特研制了在水的冰点和人的体温范围内设定刻度的水银体温计,最终因为体积过大而未被医生们所接纳,1868年,当时体温计的体积依旧过大,测量体温大概要花20分钟。水银体温计测量精度高,便于携带,各方面都已经非常成熟了,人们也就没有再研发其他种类的体温计,但随着工业发展的步伐加快,环境遭到了严重的破坏,环境保护俨然迫在眉睫,促使人们开发出对环境无害的电子体温计。计算机的发展十分迅速,短短几十年就已经普及到我们生活、工作等各个领域,我们的生活因此得到了极大的便利。近些年来,微型计算机(单片机)的发展与应用更是在数码家电产品中引发了一场革命。鉴于单片机的强大功能,具有可编程性,体积小,价格低廉,人们
12、开发出了基于单片机控制的电子体温计。本文介绍一种基于51单片机控制的电子体温计,由温度传感器DS18B20负责温度的采集和模数转换,单片机将采集到的温度经过转换,最后在LCD上显示出温度值,当被测皮肤温度高于预定温度时,会发出蜂鸣警报声。此设计的关键是编程,从而实现温度的采集、转换、显示、上下温度报警,结构比较简单,易于实现。与传统水银体温计相比,电子体温计采集温度的能力更强,响应时间短,测量精度高,更安全,不必担心因为水银泄漏而造成的人体伤害和环境污染。1 设计任务及方案分析1.1设计任务及要求本设计是以51单片机为核心设计的电子体温计。其中数字温度传感器和单片机相连,对其采集到的温度电信号
13、进行滤波和放大,然后把温度的标准电信号经过A/D转换,最终得到测量的温度值并用液晶显示器显示出来。设计出的电子体温计在功能上应达到以下要求。 (1)体温计的测量范围为0C50C,显示精度为0.1C。 (2)当温度高于37C或低于32C时,LED亮,达到警报的目的。 (3)用液晶显示器显示出温度值。1.2 设计总体方案及方案论证 随着生活水平的不断提高,人们对体温计的要求越来越高,例如要求体温计响应时间短,测量准确。传统的测温元件一般是热电偶,是通过将采集到的电压转换相应的温度,这不仅需要很多繁琐的硬件支持,而且调试起来非常复杂,应用起来需要大笔的花销。DS10B20作为常用的温度传感器,具有精
14、度高,抗干扰能力强,成本低廉,体积小等特点。该传感器具有独特的单线接口方式,只需要和单片机连接一条线即可实现单片机与传感器的双向通讯,并且在使用过程中不需要外接任何元件,因此它的硬件电路比较简单。其测量范围是0C50C,固有误差1C,可以满足本次设计的要求。工作电压是3.05.5V/DC,适用于小电源工作电路。故采用温度传感器DS18B20作为本次设计系统中的温度检测元件。根据设计要求,整个系统有5个部分构成:单片机AT89C52,数码管显示电路,键盘控制电路,报警电路,温度传感器。方案设计的目的是为了使软件编程更为简单,测量精度更高,实现起来更加容易,测温范围更广。1.3 体温测量的方案与分
15、析1.3.1 元件的选择本次设计所采用的测温元件是温度传感器DS18B20,DS18B20数字温度传感器接线方便,因此硬件电路比较简单,成本低,在管道式,螺纹式等多种场合都比较适用,该传感器有多种型号,如LTM8874,LTM8877等。其封装形式多样,不同的应用场合下其外观也不同。封装后的DS18B20在农业大棚测温上可以得到应用,电缆沟温度测量,机房温度测量,高炉水循环温度测量,洁净室温度测量等各种非极限温度场合。使用便捷,所占空间小,适用于各种狭小空间中的数字温度测量和控制领域。单片机AT89C52属于51系列单片机,它能够和计算机进行通讯,完成数据的传输,还能够独立控制多点DS18B2
16、0的工作,它安装起来比较方便,体积也小,硬件的实现也比较容易,最关键的是,针对51系列单片机的软件编程自由度很大,大多数的逻辑控制和算术算法都可以通过软件编程实现。为了使显示更加清晰,本次设计的显示电路所采用的是串口显示,这样做是为了减少使用的资源。该系统使用LCD1602液晶显示数码管构成显示电路,从P3口TXD,RXD串口输出段码。该系统之所以使用单片机AT89C52控制DS18B20温度传感器测量温度并使温度值在液晶显示器上显示,是因为这样的系统会有很强的扩展性、能够根据实际需求设置上下限报警温度值、测量温度的响应时间短。为了使在处理数据的同时显示时间,可以在系统设计中使用时钟芯片来获取
17、时间的数据。某些时间点的温度数据可以存储在单片机AT89C52中,此时单片机AT89C52俨然成为了一个存储元器件。键盘的作用是温度查询与调时,测得的温度数据能够通过PC机的接口和单片机AT89C52进行串口通讯,使温度数据的采集与整理变得格外方便。 1.3.2 总体结构框图温度传感器DS18B20负责采集温度,采集到的温度信号传输给单片机AT89C52,单片机再将输出信号传输给数码管显示电路,如果超过预定值,单片机还会发送信号给警报电路,蜂鸣器会发出警报声。按键电路(连个按键)和主控制器相连。 图1.1电子体温计的系统总体结构框图 1.3.3 测温流程图 图1.2测温流程图2 主要元器件功能
18、的介绍 2.1 单片机 2.1.1 AT89C52芯片简介本次设计所采用的主控制器是AT89C52,它是由ATMEL公司生产的,生产过程中使用非易失性、高密度技术,使得其性能十分稳定。AT89C52是一个8位单片机,具有高性能、低电压的特点。片内含有256字节的RAM(随机存取数据存储器)和8 KB的可反复擦写的FLASH ROM(只读程序存储器),最多可擦写1000次。AT89C52兼容MCS-51指令系统,因此对于单片机初学者来说是一个不错的入门级学习工具。AT89C52是AT89C51的增强型,AT89C52较之AT89C51,RAM空间更大,AT89C51的RAM空间只有AT89C52
19、的一半;FLASH更大,AT89C51内部的FLASH ROM的容量只有4 KB;中断源更多,AT89C52在AT89C51的基础上增加了一个定时器/计数器T2。 图2.1单片机的引脚排列图 该单片机体积较小,允许低电压供电,只需要两个端口就能满足设计电子体温计系统的需求,因此它可以用两节电池供电。 2.1.2 AT89C52的引脚功能介绍(1) P0口:P0口也可以说是地址/数据总线复用口,它是一组漏极开路型双向I/O口,有8位。当对P0端口写“1”时,可作为高阻抗输入端用。在作为输出口使用时,其输出缓冲级可驱动8个TTL逻辑门电路。 程序校验时,输出指令,校验时,要求外接上拉电阻。,而在F
20、lash编程时,P0端口接收指令。(2)P1口:P1的每位能输出电流能驱动4个TTL逻辑门电路。它一个带内部上拉电阻的双向I/O口,共8位,在作为输入口用时,某个引脚被外部信号拉低时会输出一个电流,这是因为其内部有上拉电阻存在。当对端口P1写“1”时,现在P1可当做输入口,这是因为内部上拉电阻将端口拉到高电平。AT89C52的P1.0与P1.1还能够分别作为定时/计数器2的外部计数输入和输出,因此总的来说,AT89C52是AT89C51的增强型。 图2.2 P1.0和P1.1口的附加功能 (3)P2口:P2的内部带有上拉电阻,它的输出电流可以驱动4个TTL逻辑门电路,它是是一个8位双向I/O口
21、如果对P2口写“1”时,此时该端口可以作为输入口使用,这是因为上拉电阻将P2口拉到高电平,与此同时,某个引脚会输出一个电流(当该引脚被外部信号拉低时)。闪存校验或编程时,端口会接收一部分的控制和高位地址信号。 在访问8位地址的外部data memory时,P2锁存器的内容会由P2端口输出。在访问6位地址的外部data memory或外部program memory时,P2端口会输出高8位地址数据。 (4)P3口:P3口的内部带有上拉电阻,它的输出电流可以驱动4个TTL逻辑门电路,它是一组8位双向I/O口。相对P3口的一般功能,它的第二功能更为重要,它可接收一些用于程序校验与Flash闪速存储
22、器的控制信号。当对P3端口写“1”时,该端口可以作为输入口使用,这是因为上拉电阻将P3口拉到高电平,与此同时,它将用上拉电阻输出电流,这是由于P3口被外部信号拉低的缘故。(5) XTAL1:内部振荡器反相放大器和时钟发生器的输入端。(6) XTAL2:振荡器反相放大器的输出端口。(7) PSEN:program memory允许PSEN输出时外部program memory的读选通信号,当单片机由外部program memory取数据,每个机器周期输出两次脉冲。在这个过程中,如果访问外部data memory时,会跳过两次PSEN信号。(8) RST:复位输入端。当振荡器工作时,当RST的引脚
23、产生两个机器周期以上的的高电平时,会使AT89C52复位。(9) EV/VPP:外部访问允许端口。只有当EA端接地时,才能使CPU只允许外部program memory,其中地址是0000H-FFFFH。闪存存储器编程时,EV/VPP端口接+12V的编程允许电源。(10) ALE/PROG:ALE是地址锁存允许端口,PROG是输入编程脉冲端口。 当访问外部data memory或data memory时,ALE输出脉冲用于锁存地址的低8 位字节。大多数情况,ALE 是以1/6 的时钟振荡频率输出恒定的脉冲信号,所以它可用于定时目的或对外输出时钟。值得注意的是:每当访问外部data memory
24、时会跳过一个ALE 脉冲。在对Flash memory编程的期间,该端口还将用于PROG(输入编程脉冲)。 2.1.3 AT89C52的特殊功能在单片机的片内data memory中,字段位在80H到FFH之间的128个单元称为SFR(特殊功能寄存器),在这个字段位范围内,只有一部分字节被定义,还有很大一部分字节没有被定义。无法对未被定义的单元进行读写操作,写入的数据将丢失,读出的数据也都不准确。这些单元的数值在复位后总是“0”。 2.1.4 AT89C52的数据存储单片机有256个字节的内部随机存取存储器,SFR(特殊功能寄存器)与80H至FFH间的高128个字节的地址是重叠的,但它们在物理
25、上是分开的。当指令访问的内部单元的地址在7FH以上,指令所使用的寻址方式会有不同,如果指令是以间接寻址的方式访问的,那么它将访问高128字节的随机存取存储器,例如下面指令是采用间接寻址的,R1的内容为080H,则说明它访问数据的地址是080H。MOV R1,#data如果指令是以直接寻址的方式访问的,那么它将访问特殊功能寄存器,例如下面指令是采用直接寻址的,它访问的是特殊功能寄存器080H地址单元,而不是说它访问数据的地址是080H。MOV 080H,#data 2.1.5 AT89C52的中断AT89C52单片机有6个中断源:一个串行中断,0、1、2三个定时中断定时器,INT0、INT1两个
26、外部中断。每个中断源都能通过清除特殊寄存器IE中的相关中断允许控制位使中断源无效,通过置位使中断源有效。其中,IE还含一个能使所有中断禁止的中断总控制位,它就是EA。如下表所示,IE.6是无用的。对于单片机AT89S52而言,IE.5同样不可用。这些是为AT89系列的新型单片机预留的,用户在编程时不必给他们写1。当定时器0、1的标志位TF1和TF0在计数溢出时,在这个周期中,S5P2被置位,电路会在下个周期捕捉它们的值。当定时器2的标志位TF2在计数溢出时,同个周期S5P2被置位,并且电路会在同一个周期捕捉它的值。寄存器T2CON中的EXF2和TF2的或逻辑能够触发定时器2。上述标志位会在程序
27、入中断服务后被硬件清零。在现实情况当中,中断服务程序一定会判断是否是EXF2或者TF2激活中断。标志位也务必被软件清零。图2.3 中断允许控制位 2.1.6 AT89C52的两种工作模式 (1)掉电工作模式:使单片机AT89C52进入掉电模式的指令一般都是最后被执行的一条指令,在这个模式下,特殊功能寄存器与片内Random-Access Memory(随机存取存储器)的内容将被冻结,振荡器也会停止工作。只能通过硬件复位退出掉电模式,复位后的AT89C52芯片的RAM中的内容不会改变,只是会将所有的特殊功能寄存器重新定义。值得注意的是,当Vcc还没有恢复到正常工作电压时,是无法对AT89C52芯
28、片进行复位的,除此之外,还应在Vcc恢复到正常工作电压后保持一定时间使得振荡器重启并稳定工作方可进行复位操作。(2)空闲工作模式:在这种工作模式下,全部片内的外接设备处于激活状态,CPU则保持睡眠状态,与此同时,全部的特殊功能寄存器和片内Random-Access Memory(随机存取存储器)的内容将被冻结,和掉电工作模式不同的是,硬件复位或任何允许的中断请求都可以退出空闲工作模式。通过硬件复位的方式退出空闲工作模式只需要两个机械周期的有效复位信号,在此期间,允许访问端口引脚,但禁止片内硬件访问内部Random-Access Memory(随机存取存储器),为了避免在退出空闲工作模式期间对端
29、口意外写入,激活空闲工作模式的指令的后一条指令不应该是对外部存储器或端口的写入指令。2.2 温度传感器 2.2.1 DS18B20简介DS18B20作为常用的温度传感器,具有精度高,抗干扰能力强,成本低廉,体积小等特点。其测温范围是-55C125C,固有误差1C。工作电压是3.05.5V/DC,适用于小电源工作电路。 2.2.2 DS18B20的引脚说明 (1)GND 地信号(2)DQ 数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。(3)VDD 可选择的VDD引脚。当利用寄生电源工作时,此引脚务必接地。图2.4 DS18B20的引脚分布图 2.2.3 DS
30、18B20的测温原理温度传感器采集温度信息,单片机传送温度转换指令给温度传感器,DS18B20会启动转换,经过转换后的温度值就以带符号的16位二进制补码形式存储在高速暂存存储器的第1,2字节中。通过数据线,AT89C52可读到该数据,读取的方式是高位在后,低位在前,格式是0.0625C/LSB。将转化后所得的16位数据,存储在温度传感器的两个8 bit的随机存取存储器中,其中前5位表示符号位,当测得的温度低于0C,这5位数值置1,将通过测量得到的数值取反后加1,并乘0.0625,就能够得到实际温度值。当测得的温度高于0C,这5位数值都为0,只需将测得到数据乘以0.0625,便可得到实际的温度值
31、例如+25.0625C的输出数字是07D0H。 图2.5 9比特格式 2.2.4 DS18B20的外形和内部结构DS18B20温度传感器的内部构造主要由四部分组成:配置寄存器、温度传感器、非挥发的温度报警触发器TL和TH、64位光刻只读存储器。 图2.6 温度传感器的管脚排列图 图2.7 温度传感器的内部结构图 图2.8 温度传感器的测温原理图 2.2.5 DS18B20的应用电路温度传感器的测温系统有很多优点,比如接线口较少、方便连接、测量的精度高、测温系统简单。DS18B20有几种不同的应用方式(外部电源供电方式、寄生电源强上拉供电方式、寄生电源供电方式),其对应的测温电路图也不同,因为
32、它的外部单元供电方式是温度传感器最佳的工作方式,电路简单,抗干扰能力强,而且工作稳定,可以开放出可靠稳定的多点温度监控系统,所有下面介绍它的外部电源供电方式。在外部电源供电方式下,引脚VDD接入温度传感器的工作电源,此时电源电流足够可以保证精度的转换,因此I/O线没有必要强上拉,理论上来讲,总线上还可以接多个温度传感器DS18B20,组成多点温度测量系统。当利用外接电源进行供电时,可以将温度传感器DS18B20的款电源电压范围的优点发挥得淋漓精致,即便电源电压降到3V,依旧可以保证测量温度的精度。图2.9 温度传感器的外部电源供电方式图2.9.1 温度传感器的多点测温电路原理图 2.2.6 使
33、用DS18B20的注意事项DS18B20的测温系统简单、方便连接、接线口少、测量精度高,但在实际应用的过程中还是应该注意以下几点问题:(1)温度传感器DS18B20具有独特的单线接口方式,只需要和单片机连接一条线即可实现单片机与传感器间的双向通讯,并且在使用过程中不需要外接任何元件,因此它的硬件电路比较简单。DS18B20扁平的一面,接线方式变为右正左负,如果接反就会有发热现象,严重的有可能烧毁。如果传感器总是显示85C,可以首先判断是否接反,如果不是因为接反的缘故,那么可以检查DS18B20的引脚GND是否悬空,悬空,则无法转换温度。(2)在使用C语言等高级语言对DS18B20的操作部分进行
34、编程时,最好采用汇编语言。由于DS18B20的硬件部分较为简单,因此要想实现完善的功能,就需要复杂的软件编程对它进行补偿,并且AT89C52与DS18B20之间是通过串行数据进行出生的,只有在对温度传感器进行读写编程时严格的保证其读写时序,才能读取测温的结果。(3)温度测量电缆线建议使用屏蔽4芯双绞线,其中一对则接信号线和GND,另一组接GND和VCC,屏蔽层在远端单点接地,因为在测温过程中,当AT89C51向DS18B20发送温度转换指令后,总要等待DS18B20返回信号后程序才会继续执行,如果某个温度传感器断线或者接触不良,该温度传感器在接收到单片机的温度转换指令后就不会发送回返回信号,如
35、此一来,程序会进入死循环。采用上述接线的方法,可以最大程度上避免此类问题的发生。(4)在设计使用温度传感器进行长距离测温时,需要考虑阻抗匹配和分布电容的问题,由于总线分布是信号波发生畸变,当使用超过50米的普通电缆线进行传送时,测温数据的读取会发送错误。当使用双绞线带屏蔽电缆时,其通讯距离一般为150米,当使用的双绞线带屏蔽电缆的每米绞合次数增多时,其通讯距离也会加长。(5)在介绍DS18B20的外部电源供电方式时,提到过其总线上还可以接多个DS18B20传感器,组成多点测温系统,可是并未说明总线上所挂的温度传感器的数量是否有限制,容易使人误解,其实当总线上所挂温度传感器的数量超过8个时,AT
36、89C52的总线驱动就会产生问题,所以在利用DS18B20组成多点测温系统时需要注意这个问题。 2.3 LCD1602 2.3.1 LCD1602液晶的介绍LCD1602属于工业字符型液晶,最多能够显示16列2行的字符(32个字符)。LCD1602是点阵型液晶显示器,它一般专门用来显示符号、数字、字母。其中每个点阵字符位都能够显示一个字符,每个字符之间会有一个点距的间隔,行间也有间隔,因此它显示图像的效果不太好。图2.9.2 LCD1602显示屏2.3.2 LCD1602液晶的引脚功能简介图2.9.3 LCD1602引脚图(1) Vss:电源地。(2) Vcc:接5V电源的正极。(3) V0:
37、对比度调制端。当对比度过高时,可以使用一个10K的电位器进行调整。(4) RS:寄存器选择端。低电平时选择Instruction Register(指令寄存器),高电平时选择Data Register(数据寄存器)。(5) RW:读写信号线。低电平时进行写操作(write),高电平时进行读操作(read)。(6) E:使能端。负跳变时执行指令,高电平时读取信息。(7) DB0DB7:8位双向数据端。(8) BLA:背光电源或空脚。(9) BLK:背光负极。 2.3.3 LCD1602液晶的操作控制LCD1602液晶内部的CGROM(字符发生存储器)存储有160个不同的点阵字符图形,比如,常用符
38、号、英文字母、阿拉伯数字、日文等,每一个字符都对应一个符号,例如英文字母“A”的代码是01000010B(42H),显示时液晶显示模块只需把地址42H中的点阵字符图形显示处理,就能在显示屏上看到“A”的字样了。因为PC中的字符代码和字符发生存储器存储的字符代码基本上是一致的,因此在向显示数据随机存储器写程序时可以直接用P2=A,就可以完成对P2的赋值,当PC编译时,会先将A转换成代码41H。0xA00xFF是希腊文字符与日文字符,0x200x7F是标准的ASCII码,其余字符码(0x800x9F和0x100x1F)则没有定义。下表是液晶显示器LCD1602的16进制ASCII码表地址:读数方法
39、为,先读左边那列,再读上面那行,例如:字母A的ASCII为0x41,符号#的ASCII为0x23(0x表示十六进制)。图2.9.4 字符发生存储器中字符字模和字符码关系对照表 2.3.4 LCD1602液晶的指令集LCD1602液晶显示器的指令集见附录部分。3 系统硬件电路的设计3.1 硬件总体设计思路本文旨在研究设计一款电路简单,低成本,低功耗,体积小的电子体温计,使得其可以应用于家庭及医疗部门等场合。为了能够准确测量体温,并且精度达到0.0625C ,显示的温度值保留小数点后一位,本设计选择了合适的元器件。本设计的硬件总体设计思路是用DS18B20测温,利用它采集测量的温度信号,单片机对采
40、集的信号进行处理,将电信号转化为温度值。用液晶显示器(LCD)显示出温度值。如果温度值超过设定值,蜂鸣器会进行报警,按一下按键,使体温值不受外界变化的影响而保持稳定不变,方便人们读取温度值。 图3.1 电子体温计电路设计原理图 3.2 单片机时钟电路与复位电路的设计 3.2.1 时钟电路设计一般而言,单片机对振荡晶体的频率的要求是1.224MHz,通常为11.0529MHz。时钟电路设计图如下,其中电容C1,C2的大小能够影响振荡晶体输出频率的大小、稳定,它的取值范围是20100pF,一般值是30 pF。图3.2 时钟电路设计图3.2.2 复位电路设计计算机每次启动允许时,系统中的某些部件及C
41、PU都要有一个确切的初值,这个初值也可以说是单片机的复位状态。RST是高电平有效,当给电容C3瞬间充电时,引脚RST会产生正脉冲,RST引脚上持续接大约10ms(大约2个机械周期)以上的高电平,单片机就可以复位。如果想在单片机工作以后进行复位,只要按下开关按钮,就可完成。当晶体振荡器的频率是12MHZ是,RC的一般值是C3=10uF,R2=8.2K。图3.3 复位电路设计图 3.3 温度传感器模块温度传感器是以单总线方式工作的,并且只有3个端口,所以DS18B20的硬件连接方式十分简单,温度传感器和单片机AT89C52之间只需要一根I/O线即可完成连接。其电路连接图请参考图3.1。3.4 液晶
42、显示模块在本文的上一部分,介绍了LCD1602的引脚功能,让我们对该液晶显示器有了大概的了解,下面,将通过介绍LCD1602的11条控制指令,加深我们对于它的了解。图3.4 LCD1602的控制指令指令功能说明:指令1:显示清零,光标复位到00H位置。指令2:返回光标,光标复位到00H位置。指令3:置输入模式,其中I/D表示光标的移动方向,低电平向左移,高电平向右移,S则表示判断所有的文字是否右移或左移,低电平表示是,高电平表示否。指令4:开关控制显示,其中D代表整体显示开关的控制,低电平则关,高电平则开。C代表光标开关的控制,低电平说明无光标,高电平说明有光标。B代表光标是否闪烁的控制,低电
43、平不闪烁,高电平闪烁。指令5:字符或光标移动。S/C代表低电平移动光标,高电平移动字符。R/L,低电平向右移,高电平向左移。指令6:预置功能。其中DL表示低电平时是4位总线,高电平时是8位总线。N表示低电平时显示单行字符,高电平时显示双行字符。F代表高电平时显示的点阵字符为510,低电平是显示的点阵字符为57。指令7:字符发送存储器地址。地址格式:字符地址8+字符行数。指令8:数据存储器地址。第一行地址:80H8FH,第二行的地址:C0HCFH。指令9:读忙标志或地址。BF表示忙标志位,低电平代表空闲,高电平代表忙,这个时候模块不能接收数据或命令。指令10:写数据到CGRAM。指令11:从CG
44、RAM中读数据。如下图所示,温度传感器采用的是寄生电源供电方式,此时GND接地,VCC接电源。可以一个MOSFET管实现对总线的上拉,这样做可以确保在有效的温度传感器时钟周期内给DS18B20提供充足的电流,因为单片机和温度传感器之间只有一条线相连,所以发送端口一定是三态的。当温度传感器处在温度A/D转换操作与写存储器是,总线上一定要有较强的上拉,上拉开启的最长时间是10us。3.5 报警电路模块报警电路是利用发光二极管来实现的。当温度值超过预定值时,发光二极管会发光报警。图3.5 报警电路连接图4 系统软件设计4.1 软件Keil和Proteus的简单介绍 4.1.1 软件Keil简介Keil C51一款兼容51单片机C语言的软件开放系统,它是由美国公司Keil Software研发的。Keil为使用者提供了包含库管理、连接器、宏汇编、功能强大的仿真调试器、C编译器等在内的较为完善的开发方案,并通过一个uVision(集成开发环境)将这些部分整合在一起。C语言较之汇编语言在可维护性、功能、可读性、结构性方面有很大的优势,因此使用起来更加容易,并且器生成目标程序的效率很高,也容易理解,尤其在大型软件的开放时更能体现出他的优势。在window xp、window 7、window 2000、NT等操作系统在都可
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818