温报警课程设计报告_第1页
温报警课程设计报告_第2页
温报警课程设计报告_第3页
温报警课程设计报告_第4页
温报警课程设计报告_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机原理及应用 课程设计报告书题 目:基于DS18B20的温度测量及报警系统设计姓 名:崔银海学 号:1210702103专 业:电子信息工程指导老师:沈兆军 曹瑞设计时间:2015年 6月/信息工程学院目 录1 引 言11.1 设计意义11.2系统功能要求12 方案设计13硬件设计63.1单片机最小系统6(1).时钟电路7(2).复位电路8(1). DS18B20介绍94软件设计134.1主程序模块135系统调试162)proteus仿真图17高温报警 低温报警:176 设计总结187参考文献188附 录A;源程序199附 录B;电路原理总图、作品实物图片28基于DS18B20的温度测量及

2、报警系统设计1 引 言1.1 设计意义温度是一个很重要的物理量,它直接影响化学反应、发酵、煅烧、浓度、蒸馏、结晶以及空气流动等物理及化学过程。温度控制失误就可能引起生产安全、质量和产量等一系列问题。温度测量无论是在工业生产过程中,还是在日常生活中都起着非常重要的作用。传统的温度采集方法不仅费时费力,而且精度差,而单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。特别是在环境恶劣或温度较高等场合下,为了保证生产过程正常安全地进行,提高产品的质量和数量,以及减轻工人的劳动强度、节约能源,要求对加热炉内温度进行测量、显示、报警及控制,使之达到工艺标准,以单片机为核心设计的温度测量系统,可以

3、对温度进行实时测量,并将温度数据进行显示和报警以及进行相应控制。1.2 系统功能要求本设计是对温度进行实时监测与控制,设计的温度控制系统实现了基本的温度控制功能:当温度低于设定下限温度时,蜂鸣器报警,同时红灯亮,模拟加热过程,使温度上升;当温度高于设定上限温度时,蜂鸣器报警,同时绿灯亮,模拟制冷过程,使温度下降;温度在上下限温度之间时,蜂鸣器和红绿灯不动作;LCD1602实时时显示温度,精确到小数点一位;通过独立按键可以设置温度的控制范围。 2 方案设计2.1 系统方案选择采用数字温度芯片DS18B20测量温度,输出信号全数字化。便于单片机控制及处理,省去传统测温方法的很多外围电路。且该芯片的

4、性能比较稳定,线形较好,在0100°C时,最大线性偏差小于1°C。DS18B20采用了单总线的数据传输,由DS18B20和微控制器STC89C52构成的温度测量装置,它直接输出温度的数字信号,可直接与单片机连接。这样,测温系统的结构就比较简单,体积也不大。采用51单片机控制,软件编程的自由度很大,可通过C语言编程实现各种各样的算术算法和逻辑控制,而且硬件实现简单,安装方便。另外51单片机在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。该系统利用STC89C52芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度并可以根据需

5、要设定上下限报警温度进行报警和相应的控制处理。该系统扩展性很强,它可以利用键盘来进行温度范围调整,利用AT24C02芯片作为存储器件,获得的数据可以通过I2C总线协议与AT24C02通信而把温度范围数据储存起来,方便应用中的实时调整以及关机重启后加载数据。2.2 系统的电路设计方框图在本系统的电路设计方框图如图2.1所示,它由五部分组成: 51单片机DS18b20温度测量电路用户按键LCD1602显示蜂鸣器报警电路 图21 温度计电路总体设计方案1. 控制部分单片机AT89S52具有低电压供电和体积小等特点,它所具有的资源能足够满足此次电路系统的设计需要,并且很适合便携手持式产品的设计使用。2

6、. 显示部分显示电路采用LCD1602,第一行显示当前温度,第二行显示控制温度范围。3. 用户按键用户按键采用4位独立按键,能够对温度上下限进行设置。4. 蜂鸣器报警电路当前温度超出设定的温度上下限时,蜂鸣器报警。5. 温度测量电路DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温。这一部分主要完成对温度信号的采集和转换工作,由DS18B20数字温度传感器及其与单片机的接口部分组成。数字温度传感器DS18B20把采集到的温度通过数据引脚传到单片机的P1.4口。此部分只用到DS18B20和单片机,硬件很简单。

7、(1) DS18B20的性能特点如下:1) 独特的单线接口仅需要一个端口引脚进行通信;2) 多个DS18B20可以并联在惟一的三线上,实现多点组网功能;3) 无须外部器件;4) 可通过数据线供电,电压范围为3.05.5V;5) 零待机功耗;6) 温度以3位数字显示;7) 用户可定义报警设置;8) 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;9) 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 (2) DS18B20的内部结构DS18B20采用3脚PR35封装,如图1.2所示;DS18B20的内部结构,如图3所示。图22 DS18B20封装(3) DS18

8、B20内部结构主要由四部分组成:1) 64位光刻ROM。开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前56位的CRC校验码,这也是多个DS18B20可以采用一线进行通信的原因。64位闪速ROM的结构如下.表21 ROM结构8b检验CRC48b序列号8b工厂代码(10H) MSB LSB MSB LSB MSB LSB图23 DS18B20内部结构2) 非挥发的温度报警触发器TH和TL,可通过软件写入用户报警上下限值。3) 高速暂存存储,可以设置DS18B20温度转换的精度。DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的E2

9、PRAM。高速暂存RAM的结构为8字节的存储器,结构如图1.3所示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。它的内部存储器结构和字节定义如图1.3所示。低5位一直为,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式。 表22 DS18B20内部存储器结构Byte0温度测量值LSB(50H)Byte1温度测量值MSB(50H)E2PROMByte2TH高温寄存器ß-àTH高温寄存器

10、Byte3TL低温寄存器ß-àTL 低温寄存器Byte4配位寄存器ß-à配位寄存器Byte5预留(FFH)Byte6预留(0CH)Byte7预留(IOH)Byte8循环冗余码校验(CRC)2) 非挥发的温度报警触发器TH和TL,可通过软件写入用户报警上下限值。3) 高速暂存存储,可以设置DS18B20温度转换的精度。DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率,如图1.4。图23 DS18B20字节定义TM R1R0 1 1 1 1 1由表1.1可见,分辨率越高,所需要的温度数据转换时间越长。因此,在实

11、际应用中要将分辨率和转换时间权衡考虑。高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625LSB形式表示。当符号位S0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。 表1.2是一部分温度值对应的二

12、进制温度数据6。表24 DS18B20温度转换时间表R1R0分辨率/位温度最大转向时间/ms00993.750110187.510113751112750表25一部分温度对应值表温度/二进制表示十六进制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1111 0000FFF

13、8H续表25-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H4) CRC的产生 在64 b ROM的最高有效字节中存储有循环冗余校验码(CRC)。主机根据ROM的前56位来计算CRC值,并和存入DS18B20中的CRC值做比较,以判断主机收到的ROM数据是否正确。另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)发ROM功能命令发存储器操

14、作命令处理数3 硬件设计3.1单片机最小系统单片机最小应用系统,是指用最少的原件组成的单片机可以工作的系统。对51系列单片机来说,最小系统应包括单片机、晶振电路、复位电路。下面介绍51单片机的最小系统电路图。 图2.2 单片机最小系统单片机的最小系统是由电源、复位、时钟,下面介绍一下每一个组成部分。(1).时钟电路图2.3时钟电路XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取3

15、0PF左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,

16、以减少寄生电容,更好地保证震荡器稳定和可靠地工作。(2).复位电路在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮

17、复位电路。当时钟频率选用6MHz时,C取22F,Rs约为200,Rk约为1K。复位操作不会对内部RAM有所影响。常用的复位电路如下图所示: 图2.4 复位电路图3.2 温度检测电路及DS18B20测温原理(1). DS18B20介绍DS18B20引脚如图3-4所示。图3-4 DS18B20的管脚排列DALLAS半导体公司的单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积小、适用于多种场合。DS18B20是世界上第一片支持“一线总线”接口的温度传感器。温度测量范围为-55+125 °C,可编程为9位12 位转换精度,测温分辨率可达0.0625°C。被测温度用符

18、号扩展的16位数字量方式串行输出。多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口很少,可节省大量的引线和逻辑电路。(2).DS18B20特性(1) 适应电压范围宽:3.0 V5.5V,在寄生电源方式下可由数据线供电。(2) 独特的单线接口方式,在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。(3) DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。(4) 测温范围55125,在-10+85时精度为±0.5。(5) 可编程的分辨率为912位,对

19、应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温。(6) 在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字。(7) 测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有很强的抗干扰纠错能力。(8) 负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作2。(3).DS18B20硬件电路在硬件上,DS18B20与单片机的连接有两种方法,一种是VCC接外部电源,GND接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时VDD、GND接地,I/O接单片机I

20、/O。无论是内部寄生电源还是外部供电,I/O口线要接10K左右的上拉电阻。我们采用的是第一种连接方法,如图3-5所示,把DS18B20的数据线与单片机的P2.5管脚连接,再加上上拉电阻。 图3-5 DS18B20连接图3.3 报警温度调节电路本系统一共设置了3个按键,系统运作时按key1键切换到下限温度设置模式,同时数码管显示下限温度,按key2,key3可以对相应的下限温度进行加减设置。再按key1键切换到上限温度设置模式,同时显示上限温度,同样按key2,key3可以进行设置。再按key1切换到正常显示温度模式,同时将上下限温度值储存到AT24C02中。按键电路如图3-6所示,直接将I/O

21、口通过按键接地即可,程序运行时检测到低电平即为按键按下。图3-6 温度调整按键电路3.4 报警及控制电路由于只对温度太高和太低报警,报警功能并不复杂,这里没有采用语音报警功能,而用蜂鸣器代替,这样系统更简洁,软件方面也比较好控制,成本也更低。蜂鸣器电路如图3-9,采用PNP三极管驱动蜂鸣器4 图 3-9蜂鸣器电路在温度控制方面,降温利用小风扇实现,而考虑到成本和简便,加热器用红色LED灯模拟。电路如图3-10图 3-10 温度控制电路4 软件设计4.1主程序模块主程序需要调用3个子程序,分别为:l DS18B20测温子程序:l 实时温度显示子程序:驱动LCD1602把实时温度值显示出来l 温度

22、设定、报警子程序:设定报警温度值,当温度超过该值时产生报警,即驱动蜂鸣器鸣叫、2个发光二极管发光主程序流程图:开 始初始化DS18B20显示当前温度判断当前温度值超过设定温度上限蜂鸣器报警红灯亮设定温度上、下限蜂鸣器报警是否低于设定温度下限是绿灯亮否4.2 主程序设计系统软件主要在温度显示和键盘扫描之间循环,隔一段时间才对DS18B20进行温度获取,所以显示和扫描循环50次后再和温度测量部分构成系统大循环,即大约每一秒获取一次温度数据。如下为系统主程序:void main()uint j; /计数器xia=read_add(2);delayms(10);shang=read_add(4); /

23、读出保存的上限数据TMOD=0x01; /定时器工作在方式1ET0=1;EA=1;TH0=(65536-250)/256;TL0=(65536-250)%256;TR0=0; /先关闭定时器while(1)tempchange(); /温度转换dis_temp(temp); /显示温度dis_temp(temp);get_temp(); /获取温度dis_temp(temp);dis_temp(temp); deal(); /温度处理j=50;while(j-)dis_temp(temp); if(KEY1=0)set(); /键盘扫描4.3 测温程序设计DS18B20与单片机通信采用的是单总

24、线技术,它采用单条信号线,既可传输时钟,又可传输数据,而且数据传输是双向的,因而这种单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。DS18B20测温过程主要分三个步骤:DS18B20温度转换,DS18B20度暂存数据,数据求出十进制,如图4-2:图 4-2 测温流程4.3.1温度转换工作流程1. DS18B20复位2. 写入跳过ROM的字节命令0xcc3. 写入开始转换的功能命令0x444. 延迟月750900ms4.3.2读暂存器数据流程1. DS18B20复位2. 写入跳过ROM的字节命令0xcc3. 写入读暂存器功能命令0xee4. 读入第0个字节LS,转换结果

25、低八位5. 读入第1个字节MS,转换结果高八位6. 复位,表示读取暂存结果4.3.3数据求出十进制1. 整合LS和MS数据2. 判断是否为正(由于本系统测量范围在0到99.9之间,故不要)5 系统调试5.1硬件调试(1)在本温度控制电路的设计调试中遇到了很多的问题。回想这些问题只要认真多思考都是可以避免的,以下为主要的问题:1)了解到作为上拉电阻的排阻具有公共脚,不可接错。2)单片机(31脚)应接高电平,是内外存储器选择引脚。当信号为低电平时,无论单片机是否有内部程序存储器在,只访问外部程序存储器;当信号为高电平时,先访问内部程序存储器,当程序计数器PC超过片内程序存储器容量时,将自动转向外部

26、程序存储器。本设计使用单片机的内部程序存储器,故应接高电平。(2)程序编写完以后,我们先对其进行仿真,初步验证电路图和程序的可行性和正确性。1) proteus简介Proteus 是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是: 1 实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 2 支持主流

27、单片机系统的仿真。目前支持的单片机类型有:ARM7(LPC21xx)、 8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。 3 提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2、MPLAB等软件。 具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。 proteus6.5是目前最好的模拟单片机外围器件的工具,真的很不错。可以

28、仿真51系列、AVR,PIC等常用的MCU及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC器件,.) 其实proteus 与 multisim比较类似,只不过它可以仿真MCU。proteus仿真图高温报警: 低温报警:6 设计总结本设计使用的温度控制器结构简单、测温准确,具有一定的实际应用价值。该智能温度控制器只是DS18B20在温度控制领域的一个简单实例,还有许多需要完善的地方,例如可以将测得的温度通过单片机与通讯模块相连接,以手机短消息的方式发送给用户,使用户能够随时对温度进行监控。此外,还能广泛地应用于其他一些工业生产领域,如建筑,仓储等

29、行业。本温度控制系统可以应用于多种场合,像的温度、育婴房的温度、水温的控制。用户可灵活选择本设计的用途,有很强的实用价值。7参考文献1张毅刚、彭喜元.单片机原理与应用设计M.北京:电子工业出版社,2008.4:10-132 郭天祥.新概念51单片机C语言教程M.北京:电子工业出版社,2009.1:3433 邹振春.王宗和.单片机实训M.高等教育出版社.20024 周志德.单片机原理及应用M.高等教育出版社.20075苏麟祥.DS1820数字温度传感器的功能特性及其应用.世界采矿快报,2000(9)6. 沙占友等.智能化集成温度传感器原理与应用.北京:机械工业出版社,20028 附 录A;源程序

30、 /*- 名称:18B20温度测量报警 内容:在LCD1602第一行可以显示当前温度,第二行显示设定的温度区间,超过此温度区间,蜂鸣器报警。温度区间可以通过用户按键设置-*/#include<reg52.h> #include<math.h>#include<INTRINS.H>#define uchar unsigned char#define uint unsigned int /*/* 定义端口 */*/sbit led1=P10;/ 温度超出范围指示灯sbit led2=P11;sbit buzzer=P13;/蜂鸣器引脚sbit DQ=P14;/d

31、s18b20 端口sbit RS = P24;/1602数据/命令选择端(H:数据寄存器L:指令寄存器) sbit RW = P25;/1602读/写选择端 sbit E = P26;/1602使能信号端sbit key1=P34;/用户按键sbit key2=P35;sbit key3=P36;sbit key4=P37;/*/* 全局变量 */*/int temp;/测得温度char temp_max=40,temp_min=10;/设定的温度 char TempH,TempL;uchar flag_get,num=0;uchar code tab='0','1&#

32、39;,'2','3','4','5','6','7','8','9'/液晶显示uchar tab1="min:010 max:040"/液晶第二行显示内容uchar str8;/*/* 延时函数 */*/void delay1(uint i)/短延时函数 while(i-);void delay(uint z) /长延时函数uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);/*/* DS18B20 初

33、始化 */*/void Init_DS18B20(void)uchar x=0; DQ = 0; /单片机将DQ拉低 delay1(4800); /精确延时 大于 480us DQ = 1; /拉高总线,等待 delay1(100); x=DQ; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败 delay1(50); /*/* DS18B20读一个字节 */*/uchar ReadOneChar(void)/ DS18B20读一个字节uchar i=0;uchar dat = 0;for (i=8;i>0;i-) DQ = 0; / 给脉冲信号 dat>>=1; D

34、Q = 1; / 给脉冲信号,主机在读时隙期间必须释放总线 if(DQ) dat|=0x80;delay1(50); return(dat);/*/* DS18B20写一个字节 */*/void WriteOneChar(uchar dat) /DS18B20写一个字节 uchar i=0; for (i=8; i>0; i-) DQ = 0; DQ = dat&0x01;/取最低位 delay1(50); DQ = 1; dat>>=1;/左移 delay1(50);/*/* DS18B20读取温度 */*/uint ReadTemperature(void) /D

35、S18B20读取温度uchar a=0;uint b=0;uint t=0;Init_DS18B20();/DS18B20初始化WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换delay1(2000); /延时以求信号的稳定Init_DS18B20(); /DS18B20再次初始化WriteOneChar(0xCC); /跳过读序号列号的操作 WriteOneChar(0xBE); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=ReadOneChar(); /低位b=ReadOneChar(); /高位b<

36、;<=8; /b左移8位t=a+b; /把a与b结合,放在16位的t中return(t);/*/* LCD1602写命令操作 */*/void WriteCommand(uchar com)delay(50);/操作前短暂延时,保证信号稳定E=0;RS=0;RW=0;P0=com;E=1;delay(50);E=0;/*/* LCD1602写数据操作 */*/void WriteData(uchar dat)delay(50); /操作前短暂延时,保证信号稳定E=0;RS=1;RW=0;P0=dat;E=1;delay(50);E=0;/*/* LCD1602初始化程序 */*/void

37、 InitLcd()uchar i;delay(150);WriteCommand(0x38); /display modeWriteCommand(0x38); /display modeWriteCommand(0x38); /display modeWriteCommand(0x06); /显示光标移动位置WriteCommand(0x0c); /显示开及光标设置WriteCommand(0x01); /显示清屏WriteCommand(0x80+0x40);/将光标移到第二行for(i=0;i<16;i+)/显示初始化内容WriteData(tab1i);delay(10);/*

38、/* 蜂鸣器报警程序 */*/void alarm()if(TempH>=temp_max)/当温度高于设置的最高温报警buzzer=0;delay(500);buzzer=1;delay(500);led1=0;led2=1;else if(TempH<temp_min)/当温度低于设置的最低温报警buzzer=0;delay(500);buzzer=1;delay(500);led1=1;led2=0;else/报警解除 buzzer=1;led1=1;led2=1;/*/* 显示测得的温度 */*/void handle_T()uchar i;str0=0x20;/显示为空s

39、tr1=tabTempH/100; /百位温度 str2=tab(TempH%100)/10; /十位温度 str3=tab(TempH%100)%10; /个位温度,带小数点 str5=tabTempL;str4='.' str6=0xdf; str7='C' if(flag_get=1) /定时读取当前温度 flag_get=0; /清标志位 temp=ReadTemperature();/读取温度值 if(temp&0x8000) str0=0xb0;/负号标志 temp=temp; / 取反加1 temp +=1; TempH=temp>>4;/由权重表知移4位就是整数位 TempL=temp&0x0F; TempL=TempL*6/10;/小数近似处理alarm(); /判断是否需要报警 WriteCommand(0x80+0x04);/光标指向第一行第一个字符for(i=0;i<8

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论