1、工业控制器原理及应用课程设计报告一、课程设计题目温度上下限报警装置二、制作人员信息姓名学号分工贡献比例程序编写及仿真35实体焊接35文案编写与制作30三、应用背景描述随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的数字温度器,本温度计属于多功能温度计,可以设置上下
2、报警温度,当温度不在设置范围内时,可以报警。随着现代工农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与控制温度。本文通过采用蜂鸣器作为电声元件的温度报警器的设计,阐明了该装置进行设计与制作的具体过程及方法。这种温度报警器结构简单,可操作性强,应用广泛。工作时,温度测量范围为538。当前环境温度若超过设定的高温临界温度,由单片机发出报警信号,从而防止带来的不必要的损失。造成高温火灾有电气线路短路、过载、接触电阻过大等引发高温或火灾;静电产生高温或或火灾;雷电等强电侵入导致高温或火灾;最主要是机房内电脑、空调等用电设备长时间工作,导致设备老化,空调发生故障,而不能降温;因此机房内所属
3、的电子产品发热快,在短时间内机房温度升高超出设备正常温度,导致系统瘫痪或产生火灾,这时温度报警系统就会发挥应有的功能。四、系统组成及原理框图温度计电路设计总体设计方框图如下图所示,控制器采用51单片机,温度传感器采用DS18B20,用4位LED数码管以串口传送数据实现温度显示。五、系统硬件设计该系统电路主要包括单片机最小系统、DS18B20温度传感器系统、报警系统、LED显示模块电路及电源接口和数据下载接口等电路,如下图所示。图中有三个独立式按键可以分别调整温度计的上下限报警设置,图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时LED数码管将没有被测温度值显示,这时可以调整报
4、警上下限,从而测出被测的温度值。数码管显示单片机复位报警点按键DS18B20传感器蜂鸣器报警主控制器六、系统软件设计主程序的主要功能是负责读出并处理DS18B20的测量的当前温度值,温度的实时显示,并根据设置的上下限判断是否报警。系统开始运行时,温度传感器测量并计算温度值通过P10口传输进单片机里进行处理,经过处理后的数据再通过P0口传输到数码管进行显示。通过按键设置温度报警界限,当超过报警界限时单片机将相应的数据通过P11口传输进行声光报警。温度测量每1S进行一次。这样可以在一秒之内测量一次被测温度。七、系统运行测试情况分析1、功能主要实现实时温度测量及显示,超出温度范围声光报警,上下限温度
5、可通过按键设定等功能。初始化调用温度模块程序DS18B20存在在是处理温度值转换BCD码送AT89S52处理按键扫描模块显示模块,LED显示温度是否越限开始是报警否否错误处理,显示8888本数字温度报警器是基于51单片机及温度传感器DS18B20来设计的,温度测量范围0到999摄氏度,精度为01摄氏度,可见测量温度的范围广,精度高的特点。可设置上下限报警温度,默认上限报警温度为38、默认下限报警温度为5(通过程序可以更改上下限值)。报警值可设置范围最低上限报警值等于当前下限报警值,最高下限报警值等于当前上限报警值。将下限报警值调为0时为关闭下限报警功能。2、操作说明开机打开电源,机器进入初始化
6、状态,此时数码管显示;片刻即开始显示当前温度。查看当前上下限温度范围按下【S1】键(左边键),数码管闪烁显示HXXX,H表示上限温度,再次按下【S1】键,数码管闪烁显示LXXX,L表示下限温度。再按【S1】键时退出设置,数码管显示当前实时温度。重新设定上下限温度范围按下【S1】键一次,数码管闪烁显示HXXX时,此时是设定上限温度,按【S3】键加温度,【S2】键减温度。再按下【S1】键一次,此时是设定下限温度,数码管闪烁显示LXXX时,按【S3】键加温度,【S2】键减温度。再按下【S1】键一次,设置成功并退出设置。报警当检测到当前实时温度高于上限温度值,或者低于下限温度值,系统会自动发出报警,报
7、警为红灯一直闪烁且蜂鸣器随着灯的频率响。除非重设上下限温度范围,否则报警一直持续。3、运行情况八、附录INCLUDEDEFINEUINTUNSIGNEDINTDEFINEUCHARUNSIGNEDCHAR/宏定义DEFINESETP3_1/定义调整键DEFINEDECP3_2/定义减少键DEFINEADDP3_3/定义增加键DEFINEBEEPP3_6/定义蜂鸣器DEFINEALAMP1_2/定义灯光报警DEFINEDQP3_7/定义DS18B20总线I/OBITSHANSHUO_ST/闪烁间隔标志BITBEEP_ST/蜂鸣器间隔标志SBITDIANP05/小数点UCHARX0/计数器SIGN
8、EDCHARM/温度值全局变量UCHARN/温度值全局变量UCHARSET_ST0/状态标志SIGNEDCHARSHANGXIAN38/上限报警温度,默认值为38SIGNEDCHARXIAXIAN5/下限报警温度,默认值为38/UCHARCODELEDDATA0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XFFUCHARCODELEDDATA0X5F,0X44,0X9D,0XD5,0XC6,0XD3,0XDB,0X47,0XDF,0XD7,0XCF,0XDA,0X9B,0XDC,0X9B,0X8B/DS18B20/延时子程序/VOIDDE
9、LAY_DS18B20INTNUMWHILENUM/初始化DS18B20/VOIDINIT_DS18B20VOIDUNSIGNEDCHARX0DQ1/DQ复位DELAY_DS18B208/稍做延时DQ0/单片机将DQ拉低DELAY_DS18B2080/精确延时,大于480USDQ1/拉高总线DELAY_DS18B2014XDQ/稍做延时后,如果X0则初始化成功,X1则初始化失败DELAY_DS18B2020/读一个字节/UNSIGNEDCHARREADONECHARVOIDUNSIGNEDCHARI0UNSIGNEDCHARDAT0FORI8I0IDQ0/给脉冲信号DAT1DQ1/给脉冲信号I
10、FDQDAT|0X80DELAY_DS18B204RETURNDAT/写一个字节/VOIDWRITEONECHARUNSIGNEDCHARDATUNSIGNEDCHARI0FORI8I0IDQ0DQDATDELAY_DS18B205DQ1DAT1/读取温度/UNSIGNEDINTREADTEMPERATUREVOIDUNSIGNEDCHARA0UNSIGNEDCHARB0UNSIGNEDINTT0FLOATTT0INIT_DS18B20WRITEONECHAR0XCC/跳过读序号列号的操作WRITEONECHAR0X44/启动温度转换INIT_DS18B20WRITEONECHAR0XCC/跳
11、过读序号列号的操作WRITEONECHAR0XBE/读取温度寄存器AREADONECHAR/读低8位BREADONECHAR/读高8位TBT99M99N9/设置温度显示上限/显示开机初始化等待画面/VOIDDISP_INITVOIDP00X80/显示P20X7FDELAY200P20XDFDELAY200P20XF7DELAY200P20XFDDELAY200P20XFF/关闭显示/显示温度子程序/VOIDDISP_TEMPERATUREVOID/显示温度P00X98/显示CP20X7FDELAY400P0LEDDATAN/显示个位P20XDFDELAY400P0LEDDATAM10/显示十位
12、DIAN0/显示小数点P20XF7DELAY400P0LEDDATAM/10/显示百位P20XFDDELAY400P20XFF/关闭显示/显示报警温度子程序/VOIDDISP_ALARMUCHARBAOJINGP00X98/显示CP20X7FDELAY200P0LEDDATABAOJING10/显示十位P20XDFDELAY200P0LEDDATABAOJING/10/显示百位P20XF7DELAY200IFSET_ST1P00XCEELSEIFSET_ST2P00X1A/上限H、下限L标示P20XFDDELAY200P20XFF/关闭显示/报警子程序/VOIDALARMIFX10BEEP_S
13、TBEEP_STX0IFMSHANGXIANIFSET_ST0EX00/关闭外部中断0EX10/关闭外部中断1CHECK_WENDUDISP_TEMPERATUREALARM/报警检测ELSEIFSET_ST1BEEP1/关闭蜂鸣器ALAM1EX01/开启外部中断0EX11/开启外部中断1IFX10SHANSHUO_STSHANSHUO_STX0IFSHANSHUO_STDISP_ALARMSHANGXIANELSEIFSET_ST2BEEP1/关闭蜂鸣器ALAM1EX01/开启外部中断0EX11/开启外部中断1IFX10SHANSHUO_STSHANSHUO_STX0IFSHANSHUO_STDISP_ALARMXIAXIAN/定时器0中断服务程序/VOIDTIMER0VOIDINTERRUPT1TH00X3CTL00XB0X/外部中断0服务程序/VOIDINT0VOIDINTERRUPT0EX00/关外部中断0IFDEC0WHILEDEC0SHANGXIANIFSHANGXIAN99SHANGXIAN99ELSEIFADD0WHILEADD0XIAXIANIFXIAXIANSHANGXIANXIAXIANSHANGXIAN