测控系统设计课程设计说明书-温度检测显示及报警装置设计与制作-六位数码管显示资料(共29页).doc
-
资源ID:16685124
资源大小:340KB
全文页数:29页
- 资源格式: DOC
下载积分:20金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
测控系统设计课程设计说明书-温度检测显示及报警装置设计与制作-六位数码管显示资料(共29页).doc
精选优质文档-倾情为你奉上课程设计说明书2015-2016 学年第 2 学期学 院:自动化工程学院专 业:测控技术与仪器学 生 姓 名:刘鑫月学 号:04班 级:测控133课程设计名称:测控系统设计课程设计题目:温度检测显示及报警装置设计与制作起 迄 日 期:2016年5月 23 日 6月 3 日课程设计地点:主教5楼指 导 教 师:赵君、关硕系主任:陈东升 目录第0567专心-专注-专业第1章 绪 论1.1 课题背景 温度是一个和人们生活环境密切相关物理量,也是在其他研究、生产、科研、生活中需要测量和控制的物理量,同时也是最基本的环境参数。人们的生活与坏境温度息息相关,物理、化学、生物等科学都离不开温度。温度的高低直接影响人们的生活质量和身体健康,许多电子设备都有额定温度单位,没有合适的温度会使电子产品造成故障。在电厂的生产运行过程中,温度是锅炉生产蒸汽质量的重要指标之一,也是保证锅炉设备安全的重要参数。同时,温度是影响锅炉传热过程和设备效率的主要因素。因此温度检测对于保证锅炉的安全、经济运行,提高蒸汽产量和质量,减轻工人的劳动强度,改善劳动条件具有极其重要意义。在实际的生产环境下,由于系统内部与外界的热交换是难以控制的,其他热源的干扰也是无法精确计算的,因此温度量的变化往往受到不可预测的外界环境扰动的影响。因此,对温度的监测和控制具有非常重要的意义。1.2 课题意义 各种温度传感器和单片机被引入到测温系统中,这不仅使得测温更加精确,而且满足了不同环境对测量系统的要求。通过单片机对温度传感器采集到的数据进行转换测温系统中的显示部分可以实时显示环境中的温度,单片机还可以对温度进行保存、控制、运算等等。测温技术在生产过程中,产品质量控制和监测,设备在线故障诊断和安全保护以及节约能源等方面都发挥着重要作用。使用自动温度控制系统可以对生产环境的温度进行自动控制,保证生产的自动化、智能化能够顺利、安全进行,从而提高企业的生产效率。第2章 设计题目介绍2.1 设计目的 测控系统技术是自动控制理论和微型计算机原理和接口等技术在工业生产过程中实现自主测量自动控制的专门技术,其以自动控制理论为基础,以电子技术、传感器原理、计算机原理及接口等课程内容为辅助,通过对测控系统的设计实践环节培养学生理论应用能力、总结归纳能力以及自我学习能力,从而进一步提高学生工程实践能力和创新意识的培养。2.2 设计要求 设计并开发能自动测温并具有显示和报警系统的温度测量控制系统,要求以18b20做为温度测量传感器,以数码管、点阵、1602、全彩TFT屏做为温度等信息显示装置,以蜂鸣器为报警装置,能实现实时温度显示、温度上下限设定、温度上下限报警等功能。具体功能要求如下:(1)单片机开发仪提供的18b20温度传感器做为温度采集传感器。对温度进行实时采集。(2)本组(第一组)使用数码管做为信息显示装置。(3)显示内容要求如下:实时显示当前温度。对上下限进行设定时显示设定值。(要求显示的设定值能随按键按下而变化)温度高于上限或低于下限时显示屏有相应显示。(报警显示内容可自定)(4)使用按键或4*4键盘做为输入设备,用于设定报警上下限。(5)使用蜂鸣器做为报警装置,低于下限时短鸣3次为一组报警,每组报警之间有一定间隔,直至温度高于下限,2秒长鸣后表示已高于下限;高于上限是持续长鸣,直至低于上限时,短鸣3次示意已低于上限。(6)可拓展其他功能做为发挥部分2.3 设计工作任务及工作量的要求1.课程设计报告(由“题目背景与意义”、“设计题目介绍”、“系统总体框架”、“系统硬件设计”、“系统软件设计”、“结论”六个部分组成 );2.课程设计任务书;3.系统硬件原理图;4.系统软件流程图;5.工作进程日记。 第3章 系统总体框架3.1 系统总体设计本系统由AT89C52单片机、DS18B20温度检测部分、七段六位数码管显示部分、按键输入部分和蜂鸣器报警部分组成。DS18B20采集环境温度并保存在存储器中通过单片机将温度显示在数码管上。按键调整报警的温度上下限,当温度低于下限或高于上限时蜂鸣器报警。温度传感器模块显示模块最小系统模块报警模块按键模块图3-1 系统设计原理图3.2 总体设计方案 1. 采用DS18B20作为温度传感器进行温度测量。DS18B20可以满足从-55摄氏度到+125摄氏度测量范围,在一秒内把温度转化成数字,测得的温度值的存储在两个八位的RAM中,单片机直接从中读出数据转换成十进制就是温度。2. 温度显示采用七段六位数共阴码管,它的引线已在内部连接完成,只需引出它们的各个笔划,公共电极,数码管广泛用于仪表,时钟,车站,家电等场合。仪表数码管的应用代替了老套旧式的指针仪表,指针表精度低,测量不精确,精度只能在1-1.5之间,然后用数码管代替的数显仪表运用其高科技手段,精度可以达到0.1-0.5之间,是个很大的飞跃。3. 按键的选择四个普通按键,分别作为上限加键、上限减键、下限加键、下限减键。4. 单片机选用AT89C52,是一个低电压,高性能CMOS 8位单片机,其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。 形成设计思路硬件电路设计软件程序设计温度传感器控制程序的编写最小系统电路图按键模块程序的编写温度传感器电路图按键模块电路图显示模块程序的编写报警模块程序的编写显示模块电路图报警模块电路图整合 图3-2 系统设计流程图第4章 系统硬件设计4.1 硬件总体设计方案4.1.1 硬件设计目标本系统中通过温度传感器DS18B20的数据线DQ与主控芯片单片机的P3.7相连接,DS18B20将采集到的数据送给单片机,经过单片机出来后,数码管显示14位数据线连接到单片机的P0、P2口上。蜂鸣器经过三极管的驱动后,接到单片机实现当实时温度低于下限或高于上限的报警。四个按键实现对上限值和下限值的查看与设定。4.1.2 接口和连接方式定义 1. 数码管的段选端A、B、C、D、E、F、G、DP接到单片机P0口,位选端接到单片机的 P2.0P2.5口。 2. 按键接到单片机的P1.0P1.3。 3. 蜂鸣器接到单片机的P1.7。 4. DS18B20的DQ接到单片机的P3.7。4.2 单片机最小系统单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。 下面给出一个51单片机的最小系统电路图。图4-1 单片机最小系统 4.2.1 复位电路复位电路: 单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。本次电路设计复位单路由电容串联电阻构成, 选取电容的的大小是10uF,电阻的大小是10k。所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*10UF=0.1S。图4-2 复位电路4.2.2 晶振电路本设计电路系统晶振选用11.0592MHz,单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。起振电容C1、C2一般采用1533pF,本系统选用22pF。并且电容离晶振越近越容易起振,晶振离单片机越近越好。 图4-3 晶振电路4.3 测温传感器DS18B20是常用的测温传感器,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。4.3.1 工作原理DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。 DS18B20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。预置斜率累加器比较低温度系数振荡器计数器1温度寄存器Tx预置=0高温度系数振荡器=0计数器2T1加1停止T2图4-4 DS18B20工作流程图4.3.2 工作特性1. DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。2. DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。3. 温范围55+125,在-10+85时精度为±0.5。4. 可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温。5. 在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。6. 测量结果直接输出数字温度信号,串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。7. 负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。8. DS18B20可以使用外部电源VDD,也可以使用内部的寄生电源。在使用内部寄生电源方式供电时,要想使DS18B20进行精确的温度转换,I/O线必须保证在温度转换期间提供足够的能量。在外部电源供电方式下,DS18B20工作电源由VDD引脚接入,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度。在外部供电的方式下,DS18B20的GND引脚不能悬空 ,否则不能转换温度,读取的温度总是85。图4-5 18b20温度传感器接线图4.4 显示电路4.4.1 七段六位数码管驱动原理数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。1.静态显示驱动静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,而一个AT89C52单片机可用的I/O端口才32个,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。2.动态显示驱动数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划“a,b,c,d,e,f,g,dp”的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。图4-6 数码管显示模块接线图4.5 按键输入电路当按键没有按下时,所有的输入端都是高电平,代表无键按下。列线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。本次电路设计中的P1口用作按键I/O口,加上拉电阻保证按键释放时,输入检测线上有稳定的高电平,当某一按键按下时,对应的检测线就变成低电平。图4-7 按键模块接线图4.6 报警电路蜂鸣器是一种一体化结构的电子讯响器,采用供电。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。蜂鸣器的正极接到VCC(+5V)电源上,蜂鸣器的负极接到三极管的集电极C,三极管的基极B经过限流电阻后由单片机的P3.7引脚控制,当P3.7输出低电平时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当P3.7输出高电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制P3.7脚的电平来使蜂鸣器发出声音和关闭。程序中改变单片机P3.7引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。另外,改变P3.7输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小。在本系统中当温度低于下限时短鸣3次为一组报警,每组报警之间有一定间隔,直至温度高于下限,2秒长鸣后表示已高于下限;高于上限是持续长鸣,直至低于上限时,短鸣3次示意已低于上限。图4-8 蜂鸣器接线图4.7 硬件原理图图4-9 硬件原理图第5章 系统软件设计5.1 软件设计及程序编写本设计程序系统主要程序也是由五部分组成的:单片机控制部分、温度检测部分、LCD数码管显示部分、键盘控制部分和蜂鸣器报警部分,其主程序执行可以通过以下的流程图来证实:YN开始关闭蜂鸣器DS18B20测温蜂鸣报警 <下限OR >上限LCD1602显示温度结束改变上下限键盘扫描图5-1 软件流程图主程序如下:/* 函数名 : main* 函数功能 : 主函数* 输入 : 无* 输出 : 无*/void main()buzzer=1;while(1)LcdDisplay(Ds18b20ReadTemp();5.2 测温部分在本次设计系统中P3.7口用来单片机与温度传感器通讯。它用到的相关函数如下:Ds18b20Init()初始化 ; Ds18b20WriteByte ()向18B20中写入数据 ;Ds18b20ReadByte ()由18B20读取数;Ds18b20ChangTemp ()从18B20中读取的温度值转换成可读数 ;Ds18b20ReadTempCom ()发送读取温度命令;Ds18b20ReadTemp ()将温度值送入1602中显示;wenji()用于温度计算。程序如下:#include"temp.h"/* 函 数 名 : Delay1ms* 函数功能 : 延时函数* 输 入 : 无* 输 出 : 无*void Delay1ms(uint y)uint x;for( ; y>0; y-)for(x=110; x>0; x-);/* 函 数 名 : Ds18b20Init* 函数功能 : 初始化* 输 入 : 无* 输 出 : 初始化成功返回1,失败返回0*uchar Ds18b20Init()uchar i;DSPORT = 0; /将总线拉低480us960us/i = 70;i = 900;while(i-);/延时642usDSPORT = 1;/然后拉高总线,如果DS18B20做出反应会将在15us60us后总线拉低i = 0;while(DSPORT)/等待DS18B20拉低总线Delay1ms(1);i+;if(i>5)/等待>5MSreturn 0;/初始化失败return 1;/初始化成功/* 函 数 名 : Ds18b20WriteByte* 函数功能 : 向18B20写入一个字节* 输 入 : com* 输 出 : 无*void Ds18b20WriteByte(uchar dat)/?uint i, j;for(j=0; j<8; j+)DSPORT = 0; /每写入一位数据之前先把总线拉低1us i+;DSPORT = dat & 0x01; /然后写入一个数据,从最低位开始i=8;while(i-); /延时8us DSPORT = 1;/然后释放总线,至少1us给总线恢复时间才能接着写入第二个数值dat >>= 1;/* 函 数 名 : Ds18b20ReadByte* 函数功能 : 读取一个字节* 输 入 : com* 输 出 : 无*uchar Ds18b20ReadByte()uchar byte, bi;uint i, j;for(j=8; j>0; j-)DSPORT = 0;/先将总线拉低1usi+;DSPORT = 1;/然后释放总线i+;i+;/延时2us等待数据稳定bi = DSPORT; /读取数据,从最低位开始读取/*将byte左移一位,然后或上右移7位后的bi,注意移动之后移掉那位补0。*/byte = (byte >> 1) | (bi << 7); i = 4;/读取完之后等待4us再接着读取下一个数while(i-);return byte;/* 函 数 名 : Ds18b20ChangTemp* 函数功能 : 让18b20开始转换温度* 输 入 : com* 输 出 : 无*void Ds18b20ChangTemp()Ds18b20Init();Delay1ms(1);Ds18b20WriteByte(0xcc);/跳过ROM操作命令 Ds18b20WriteByte(0x44); /温度转换命令Delay1ms(20);/等待转换成功,而如果你是一直刷着的话,就不用这个延时了/* 函 数 名 : Ds18b20ReadTempCom* 函数功能 : 发送读取温度命令* 输 入 : com* 输 出 : 无*void Ds18b20ReadTempCom()Ds18b20Init();Delay1ms(1);Ds18b20WriteByte(0xcc); /跳过ROM操作命令Ds18b20WriteByte(0xbe); /发送读取温度命令/* 函 数 名 : Ds18b20ReadTemp* 函数功能 : 读取温度* 输 入 : com* 输 出 : 无*int Ds18b20ReadTemp()int temp = 0;uchar tmh, tml;Ds18b20ChangTemp(); /先写入转换命令Ds18b20ReadTempCom();/然后等待转换完后发送读取温度命令tml = Ds18b20ReadByte();/读取温度值共16位,先读低字节tmh = Ds18b20ReadByte();/再读高字节temp = tmh;temp <<= 8;temp |= tml;return temp;5.3 显示部分定义了有关的函数:Lcd1602_Delay1ms ()用于数码管的显示延迟;LcdWriteCom()向数码管写入命令码函数,LcdWriteData()向数码管写入数据函数;display()数码管显示函数;LcdInit()数码管初始化;LcdDisplay()数码管 LCD显示读取到的温度。程序如下:/* 函 数 名 : LcdDisplay()* 函数功能 : 数码管显示读取到的温度* 输 入 : v* 输 出 : 无*void LcdDisplay(int temp) /lcd显示float tp; if(temp< 0)/当温度值为负数 DisplayData0 = 0x40; /因为读取的温度是实际温度的补码,所以减1,再取反求出原码temp=temp-1;temp=temp;tp=temp;temp=tp*0.0625*100+0.5;/留两个小数点就*100,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点/后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就/算加上0.5,还是在小数点后面。 else DisplayData0 = 0x00;tp=temp;/因为数据处理有小数点所以将温度赋给一个浮点型变量/如果温度是正的那么,那么正数的原码就是补码它本身temp=tp*0.0625*100+0.5;/留两个小数点就*100,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点/后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就/算加上0.5,还是在小数点后面。DisplayData0 = DIG_CODEtempmax / 10;DisplayData1 = DIG_CODEtempmax % 10;DisplayData4 = DIG_CODEtempmin / 10;DisplayData5 = DIG_CODEtempmin % 10;DisplayData2 = DIG_CODEtemp % 10000 / 1000;DisplayData3 = DIG_CODEtemp % 1000/100; DigDisplay(); /扫描显示5.4 输入部分在本次设计系统中定义了P3口为键盘输入接口,定义了有关的函数;DigDisplay ()用于键盘的扫描和输入,其中key1用于上限值加、key2用于上限值减、key3用于下限值加、key4用于下限值减。上下限改变时在数码管上有显示。程序如下:/* 函 数 名 : DigDisplay* 函数功能 : 使用数码管显示* 输 入 : 无* 输 出 : 无*/void DigDisplay()unsigned char i;unsigned int j;for(i=0;i<6;i+)switch(i) /位选,选择点亮的数码管case(0):LS1=0;LS2=1;LS3=1;LS4=1;LS5=1;LS6=1; break;/显示第0位case(1):LS1=1;LS2=0;LS3=1;LS4=1;LS5=1;LS6=1; break;/显示第1位case(2):LS1=1;LS2=1;LS3=0;LS4=1;LS5=1;LS6=1; break;/显示第2位case(3):LS1=1;LS2=1;LS3=1;LS4=0;LS5=1;LS6=1; break;/显示第3位case(4):LS1=1;LS2=1;LS3=1;LS4=1;LS5=0;LS6=1; break;/显示第4位case(5):LS1=1;LS2=1;LS3=1;LS4=1;LS5=1;LS6=0; break;/显示第5位GPIO_DIG=DisplayDatai;/发送段码j=200; /扫描间隔时间设定while(j-);GPIO_DIG=0x00;/消隐void chaomax() buzzer=1; if(key1=0)Delay1ms(300);/按键防抖if(key1=0)tempmax+;if(key2=0)Delay1ms(300);if(key2=0)tempmax-;if(key3=0)Delay1ms(300);if(key3=0)tempmin+;if(key4=0)Delay1ms(300);if(key4=0)tempmin-;5.5 报警部分在本次设计系统中定义了P1.7口为报警器连接端。定义了有关的函数;baojing ()用于判断温度是否超过上下限并及时发出警报,发出警报时不能调节上下限;duanming ()报警器发出短促鸣声的函数;ming() 调节锋鸣器的占空比改变蜂鸣频率音调;Delay10ms()延时函数,用于蜂鸣之间的延时;Delay10ms1()过上限专用延时,用于保持长鸣;Delay ()蜂鸣音调延时函数;time0利用计数器延时。程序如下:/-声明全局函数-/void LcdDisplay(int);void DigDisplay();void chaomax();void chaomin();void guomax();void guomin();/存储上下限变量int tempmax=30,tempmin=20,tempt,tempmode=0;int jileimax=0,jileimin=0,jileimid=0;if(temp<(tempmin*100)/*100是为了使当前值和最小值在同一数量级比较jileimin+;jileimid=0;if(jileimin>3)/扫描3次以确定已经低于下限值tempmode=1;/区分当前值是否是原值还是恢复值,原值为0,由上限值恢复是2,由下限值恢复时1 chaomin();jileimin=0;/积累值置位if(temp>(tempmax*100)jileimax+;jileimid=0;if(jileimax>3)tempmode=2; chaomax();jileimax=0;if(tempmin*100)<temp&&temp<(tempmax*100)jileimax=0;jileimin=0;jileimid+;if(jileimid>3) switch(tempmode) case 0:buzzer=0;break; case 1:guomin();break; case 2:guomax();break; tempmode=0;buzzer=0;jileimid=0;/三声短鸣表示低于温度下限void chaomin() buzzer=1; Delay1ms(200); buzzer=0; Delay1ms(200); buzzer=1; Delay1ms(200); buzzer=0; Delay1ms(200)