基于单片机温度检测报警器的设计大学论文_第1页
基于单片机温度检测报警器的设计大学论文_第2页
基于单片机温度检测报警器的设计大学论文_第3页
基于单片机温度检测报警器的设计大学论文_第4页
基于单片机温度检测报警器的设计大学论文_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

洛阳理工学院课程设计报告课程名称单片机原理与应用技术设计题目基于单片机温度检测报警器的设计专业通信工程班级学号姓名完成日期2016年12月31日

课程设计任务书设计题目:基于单片机温度检测报警器的设计设计内容与要求:一、设计内容利用STC89C51单片机、DS18B20数字温度采集器及LCD1602显示器件设计一个温度检测报警器,要求实现温度的实时测量与显示、温度上下限设定及报警功能;二、设计要求1.分析系统功能,确定系统设计方案,掌握总体设计的方法与思路。2.系统硬件设计,确定外设与单片机的硬件接口。掌握单片机系统外部接口的扩展设计方法3.系统软件设计,结合硬件设计,编写相应控制程序,并进行Protuse仿真执行。4.熟练掌握程序烧录及调试过程。5.按照要求撰写课程设计论文。指导教师:2016年12月20日课程设计评语成绩:指导教师:_______________年月日PAGEI基于单片机温度检测报警器的设计摘要随着时代的进步和发展,温度的测试已经影响到我们的生活、工作、科研、各个领域,已经成为了一种非常重要的事情,因此设计一个温度测试的系统势在必行。本次课程论文主要介绍了一个基于STC89C51单片机的数字温度检测报警器系统。详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度的采集和报警,并可以根据需要调节上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当做温度处理模块潜入其他系统中,作为其他主系统的辅助扩展。DS18B20与STC89C51结合实现最简温度报警系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。关键词:STC单片机,DS18B20,LCD1602目录TOC\o"1-3"\h\u摘要 I目录 II前言 1一、设计目标与内容 31.设计目标 32.设计内容 33.设计要求 3二、系统设计 4三、功能模块设计 51主控制器 52温度测量模块 53LCD显示模块 74上下限设定模块 105报警模块 11四、仿真与实物演示 121系统仿真 122调试中遇到的问题 123实物演示效果 13五、源程序 13总结 19参考文献 20PAGE1前言温度是工业对象中主要的被控参数之一,如冶金、机械、食品、化工各类工业生产中,广泛使用的各种加热炉、热处理炉、反应炉等,对工件的温度处理要求严格控制。随着科学技术的发展,要求温度测量的范围向深度和广度发展,以满足工业生产和科学技术的要求。以单片机为核心设计的温度报警器,具有安全可靠、操作简单方便、智能控制等优点。温度对于工业生产如此重要,由此推进了温度传感器的发展。温度传感器主要经过了三个发展阶段:(1)模拟集成温度传感器。该传感器是采用硅半导体集成工艺制成,因此亦称硅传感器或单片集成温度传感器。此种传感器具有功能单一(仅测量温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等特点,适合远距离测温、控温,不需要进行非线性校准,外围电路简单。它是目前在国内外应用最为普遍的一种集成传感器,典型产品有AD590、AD592、TMP17、LM135等;(2)模拟集成温度控制器。模拟集成温度控制器主要包括温控开关、可编程温度控制器,典型产品有LM56、AD22105和MAX6509。某些增强型集成温度控制器(例如TC652/653)中还包含了A/D转换器以及固化好的程序,这与智能温度传感器有某些相似之处。但它自成系统,工作时并不受微处理器的控制,这是二者的主要区别;(3)智能温度传感器(亦称数字温度传感器)。智能温度传感器是在20世纪90年代中期问世的,其内部都包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和接口电路。有的产品还带多路选择器、中央控制器(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。智能温度传感器的特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU);并且它是在硬件的基础上通过软件来实现测试功能的,其智能化程度也取决于软件的开发水平。现代信息技术的三大基础是信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)。传感器属于信息技术的前沿尖端产品,尤其是温度传感器被广泛用于工农业生产、科学研究和生活等领域,数量高居各种传感器之首。数字温度传感器可以直接将被检测的温度信息以数字化形式输出,与传统的模拟式温度传感器相比,具有测量精度高、功耗低、稳定性好、外围接口电路简单特点。而单片机微处理器越来越丰富的外围功能模块,更加方便了数字式温度传感器输出信号的处理。智能温度传感器内部都包含温度传感器、A/D转化器、信号处理器、存储器(或寄存器)和接口电路。有的产品还带多路选择器、中央处理器(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。并且它是在硬件的基础上通过软件来实现测试功能的,其智能化程度也取决于软件的开发水平。进入21世纪后,智能温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片机测温系统等的方向发展。数字化温度传感器可以直接将温度量以数字脉冲信号形式输出,具有测量精度高、抗干扰能力强、传输距离远、外围接口电路简单等诸多优点。同时数字温度传感器还可直接与微处理器进行接口,大大方便了传感器输出信号的处理.数字单总线温度传感器是目前最新的测温器件,它集温度测量,A/D转换于一体,具有单总线结构,数字量输出,直接与微机接口等优点本温度报警器以STC89C51单片机为控制核心,由一数字温度传感器DS18B20测量被控温度。当被测量值超出预设范围1℃则发出警报,适用于大多数工业生产以及教育教学领域。温度是一种最基本的环境参数,它是与人类的生活、工作关系最密切的物理量,也是各门学科与工程研究设计中经常遇到和必须精确测量的物理量。从工业炉温、环境气温到人体温度;从空间、海洋到家用电器,各个技术领域都离不开测温和控温。因此,研究温度的测量和控制方法具有重要的意义。一、设计目标与内容1.设计目标课程设计的目的是使学生全面地熟悉和掌握本课程的主要知识,培养学生能系统地处理和解决本课程有关的技术问题,系统地掌握单片机技术应用的设计方法,为毕业设计和今后的工作奠定良好的基础。本课程设计是学生在学完单片机原理及应用课程之后,进行的一个综合性和实践性很强的教学环节。学生要按照课程设计任务书的要求,对电路进行设计、分析与计算,设计程序并调试执行。2.设计内容利用STC89C51单片机、DS18B20数字温度采集器及LCD1602显示器件设计一个温度检测报警器,要求实现温度的实时测量与显示、温度上下限设定及报警功能;3.设计要求(1)明确课程设计课题,明确设计任务和要求(2)充分了解课程设计的的性能、指标,设计内容及要求,确定设计方案(3)硬件设计(4)软件设计根据电路工作过程,画出软件流程图,根据流程图编写相应的程序。(6)原理图设计及仿真根据所确定的设计电路,利用Protel或EWB等有关工具软件绘制电路原理图、PCB板图、提供元器件清单;(7)软件下载至硬件上调试执行。(8)按规范和要求,撰写和打印课设报告,准备课设答辩。二、系统设计图1、系统设计框图高低正常图2、程序流程图三、功能模块设计1主控制器AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。它的主要性能参数:•8K字节可重擦写Flash闪速存储器•1000次可擦写周期•全静态操作:0Hz-24MHz•三级加密程序存储器•256×8字节内部RAM•32个可编程I/O口线•3个16位定时/计数器•8个中断源•可编程串行UART通道•低功耗空闲和掉电模式图3、AT89C52仿真图2温度测量模块DS18B20是常用的温度传感器,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。DS18B20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。1、技术性能描述:①、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。②、测温范围-55℃~+125℃,固有测温误差(注意,不是分辨率,这里之前是错误的)1℃。③、支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。④、工作电源:3.0~5.5V/DC(可以数据线寄生电源)⑤、在使用中不需要任何外围元件⑥、测量结果以9~12位数字量方式串行传送⑦、不锈钢保护管直径Φ6⑧、适用于DN15~25,DN40~DN250各种介质工业管道和狭小空间设备测温⑨、标准安装螺纹M10X1,M12X1.5,G1/2”任选⑩、PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。图4、DS18B20实物图图5、DS18B20图3LCD显示模块工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。1602采用标准的16脚接口,其中:第1脚:GND为电源地第2脚:VCC接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,

低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第7~14脚:D0~D7为8位双向数据端。第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。特性3.3V或5V工作电压,对比度可调内含复位电路提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能有80字节显示数据存储器DDRAM内建有192个5X7点阵的字型的字符发生器CGROM8个可由用户自定义的5X7的字符发生器CGRAM特征应用微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。操作控制注:关于E=H脉冲——开始时初始化E为0,然后置E为1。字符集1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。图6、1602实物图图7、1602仿真图4上下限设定模块设置好温度上下限后,我们要通过按键来改变上下限,按键在未按下之前,P1口全为高电平,为0xff,当其中按键按下后,电平发生改变,CPU检测到电平的跳变后就可判断出是哪个按键按下,如果是第一个按键按下,为0xfd,写命令使其为温度上限的增加按键,以此类推。但按键有抖动,所以我们在设置按键时要进行消抖命令。图8、调节温度上下限的按键仿真图5报警模块用判断语句将18B20读出的温度与设定的温度上下限进行比较。如果不在此范围内则通过LED灯亮进行报警图9、LED报警程序仿真图四、仿真与实物演示1系统仿真图10、仿真运行图2调试中遇到的问题(1)程序与仿真图不符:在进行二极管报警时,我们设定的是不良时为高电平,亮时为低电平,所以就要求仿真图中的两个二极管的阳极接高电平,阴极接低电平,不可接反,一旦接反就会导致仿真图无法运行或者无法报警。(2)LCD引脚连接不正确:LCD的RS、RW、E引脚和单片机的连接需要和电路板里的连接口一样,即RS连接P2.4,RW连接P2.5,E连接P2.6,不可随意连接,否则电路板在烧录程序后不能显示温度。(3)DS18B20反接:平的那一面,左负右正,一旦接反就会立刻发热,有可能烧毁!同时,接反也是导致该传感器总是显示85℃的原因。实际操作中将正负反接,传感器立即发热,液晶屏不能显示读数,正负接好后显示85℃。另外,如果使用51单片机的话,那么中间那个引脚必须接上4.7K—10K的上拉电阻,否则,由于高电平不能正常输入/输出,要么通电后立即显示85℃,要么用几个月后温度在85℃与正常值上乱跳。(4)粗心大意,将电路板上的杜邦线连接错误:线路一旦连接错误,可能导致显示屏上的温度为-0.06摄氏度,并且不发生改变,或者不显示。(5)忘记连接DS18B20的DQ接口3实物演示效果图11、实物演示效果五、源程序#include<reg51.h>#include<stdio.h>#include<intrins.h>#defineucharunsignedchar #defineuintunsignedintsbitRS=P2^4; //1602连接口 数据寄存器1,0是命令寄存器sbitRW=P2^5; //读写,0写,1读sbitEN=P2^6; //使能端sbitDQ=P2^7; // 数据单总线sbitp3_6=P3^1; //定义报警LED灯sbitp3_7=P3^7;#defineDataPortP0 voidDelayUs2x(unsignedchart) //俩个延时函数{while(--t);}voidDelayMs(unsignedchart){while(t--) // 俩个延时函数{DelayUs2x(245); DelayUs2x(245);}}/*18b20初始化 //整体向18B20发送复位脉冲*/bitInit_DS18B20(void){bitdat=0;DQ=1;//DQ复位DelayUs2x(5);//延时DQ=0;//拉低总线DelayUs2x(250);//不小于480usDQ=1;//释放总线 //单片机接收18B20发送的存在脉冲DelayUs2x(50);//15~60usdat=DQ;//读18b20响应DelayUs2x(200);//延时使间隙不小于480usreturndat;}/*读一个字节*/unsignedcharReadOneChar(void){unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i--) //一个字节有八位{DQ=0;//拉低dat>>=1;// 右移一位DQ=1;//释放总线DelayUs2x(1);if(DQ) //判断第一位有没有读完dat|=0x80;DelayUs2x(25);//读间隙不小于60us}return(dat); }/*写一个字节*/voidWriteOneChar(unsignedchardat){unsignedchari=0;for(i=8;i>0;i--){DQ=0;//拉低DQ=dat&0x01;//写最低位DelayUs2x(25);//延时DQ=1;//释放dat>>=1;}}/*读取温度*/unsignedintReadTemperature(void){unsignedchara=0;unsignedintb=0;unsignedintt=0;Init_DS18B20(); //初始化WriteOneChar(0xCC);//ROM忽略 //写命令,初始化WriteOneChar(0x44);//温度转换Init_DS18B20();WriteOneChar(0xCC);//ROM忽略 //读命令WriteOneChar(0xBE);//读暂存器a=ReadOneChar();//第一个字节b=ReadOneChar();//第二个字节b<<=8; //使B变为高八位t=a+b;return(t);}//LCD写命令voidLCD_Write_Com(unsignedcharcom){//while(LCD_Check_Busy());DelayMs(5);RS=0; //命令寄存器RW=0;//写EN=1; //使能端1有效DataPort=com;//命令复制给P0口_nop_();EN=0; //使能端无效}//LCD写数据voidLCD_Write_Data(unsignedcharData){DelayMs(5);RS=1; //数据寄存器RW=0;EN=1;DataPort=Data;//数据复制给P0口_nop_();EN=0;}//LCD初始化voidLCD_Init(void){LCD_Write_Com(0x38);//16个引脚,八个数据端口,俩行,一行16个字符DelayMs(5);LCD_Write_Com(0x38);DelayMs(5);LCD_Write_Com(0x38);DelayMs(5);LCD_Write_Com(0x38);LCD_Write_Com(0x08);/*关显示*/LCD_Write_Com(0x01);/*清屏*/LCD_Write_Com(0x06);//字符不动,光标自动右移一位DelayMs(5);LCD_Write_Com(0x0C);//开显示,无光标 ,字符不闪烁}voidLCD_Clear(void){LCD_Write_Com(0x01);DelayMs(5);}//LCD写字符串,y表示第几行,x表示第几列voidLCD_Write_String(unsignedcharx,unsignedchary,unsignedchar*s){if(y==0) { LCD_Write_Com(0x80+x);//第一行第x列 }else { LCD_Write_Com(0xC0+x);//第二行第x列 }while(*s) //写字符串 {LCD_Write_Data(*s);//字符串输入s++; }}//LCD写字符y表示第几行,x表示第几列voidLCD_Write_Char(unsignedcharx,unsignedchary,unsignedcharData){if(y==0) { LCD_Write_Com(0x80+x);//最高位,第一行 }else { LCD_Write_Com(0xC0+x); }LCD_Write_Data(Data);}voidmain(void){inttemp;floattemperature;chardisplaytemp[16];//显示字符串数组intn=20,m=15;LCD_Init();//LCD初始化DelayMs(20);//延时LCD_Clear();//清屏//L

温馨提示

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

评论

0/150

提交评论