ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:220.16KB ,
资源ID:5730285      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5730285.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的超温报警设计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机的超温报警设计.docx

1、基于单片机的超温报警设计学校代码: 序 号: 本 科 毕 业 论文题目: 基于单片机的超温报警设计 学 院: 姓 名: 学 号: 专 业: 电子信息工程 年 级: 指导教师: 二O 年 月基于单片机的超温报警设计 摘要本设计设计了一款以AT89S52、DS18B20芯片为核心的温度数字显示报警系统。系统采用AT89S52单片机进行智能控制,利用DS18B20芯片实现对温度的测量,通过单片机处理进行报警点的设置,用液晶显示器LCD1602显示以串口传送数据,显示实时温度,通过三个按键的按键次数来决定温度阈值,按键1按一次设置上限温度,按键1按两次设置下限温度,按键1按三次温度设置完成,按键2按下

2、是当前温度值加1,按键3按下是当时温度减1。当DS18B20测量的温度值不在设定温度阈值范围内,单片机将驱动蜂鸣器报警。关键词:AT89S52,超温报警,DS18B20,LCD显示器Microcontroller-based over-temperature alarm designAbstractThe design designs to AT89S52 and DS18B20 chip as the core temperature digital display and alarm system.The system uses the AT8952 microcontroller for

3、 intelligent control,using DS18B20 chip implement temperature measurement,setting the alarm point by microcontroller,using with the LCD1602 displays data with serial transmission,and LCD1602 displays the real-time temperature,number of times by three keys to determine temperature threshold,setting t

4、he maximum temperature by keying Button 1 once,setting the minimum temperature Key Button 1 twice, completing the setment of temperature by key Button 1 three times.when the button 2 key once,the temperature value plus 1;when the button 3 key once,the current temperature value minus 1.when the measu

5、red temperature by DS18B20 is not within the value of the temperature threshold,the microcontroller will drive the buzzer alarm.Key words:AT89S52,Over-temperature alarm,DS18B20,LCD Monitor1 概述温度是一种最基本的环境参数,人们的生活环境与温度息息相关,温度测量也被人们所异常关注因此,研究温度的测量方法和装置具有重要意义,温度测控技术也在各个领域应用越来越广泛采用单片机对温度进行控制,不仅具有控制方便和组态简

6、单的优点,而且可以提高被控温度的技术指标。本设计介绍了一款由单片机AT89S52和新型的智能集成温度传感器DS18B20以及LCD1602显示器等部件实现的温度测量及报警系统同时在设计方面做了功能的扩展,开关按键是用来调节温度,功能较强,可以设置上下限报警温度,且测量准确误差小,单片机可把由DS18B20读来的数据利用软件来进行处理,从而把数据传输到显示模块,实现实时温度显示,还有语音报警功能对温度实施监测,即当温度超过设置的最高温度或者低于给定的最低温度时,系统将驱动蜂鸣器发声报警。2 系统原理设计2.1 超温报警控制原理系统是对温度的监控。首先,用户预先通过温度设定模块按键输入温度报警值到

7、程序中,该值作为系统阈值。温度传感器DS18B20将监测值传输给AT89S52单片机,单片机将DS18B20测量的温度值与预先设定的温度值T进行比较,当单片机比较监测到的数值超出所设定阈值时,驱动蜂鸣器报警。2.2 系统功能方框图超温报警器原理框图如图2-1所示。整个系统由AT89S52单片机、温度设置模块、温度显示模块、DS18B20数据采集模块、报警器模块组成。单片机主要负责接受来自DS18B20数据,对数据进行对比处理,通过单片机处理控制温度显示模块和报警器模块。温度显示模块和报警器模块是执行来自单片机指令并反馈结果给用户。图2-1 原理框图3 系统硬件原理及其设计3.1 单片机与各模块

8、连接工作原理3.1.1 AT89S52单片机1. 主要性能与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。图3-1 AT89S52双列直插封装方式引脚图2. 功能特性描述AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容

9、。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切

10、工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程Flash。(1)P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 (2)P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL 逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使

11、用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下所示。在flash编程和校验时,P1口接收低8位地址字节。 引脚号第二功能 P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) (3)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出

12、缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 (4)P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“

13、1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下所示。在flash编程和校验时,P3口也接收一些控制信号。 端口引脚第二功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INTO(外中断0)P3.3 INT1(外中断1)P3.4 TO(定时/计数器0)P3.5 T1(定时/计数器1)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。(5)RST

14、复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。(6)ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行

15、外部程序时,应设置ALE禁止位无效。(7)PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。(8)EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件

16、是使用12V编程电压Vpp。(9)电源引脚Vcc和Vss引脚。Vcc接+5V电源,Vss接地。(10)时钟引脚XTAL1和XTAL2引脚。XTAL1接外部晶体的1个引脚,该引脚内部是1个反相放大器的输入端,这个反相放大器构成了片内振荡器,如果采用外接晶体振荡器时,此引脚应接地。XTAL2接外部晶体的另一端,该引脚内部接至内部反相放大器的输出端,若采用外部时钟振荡时,该引脚接收时钟振荡的信号,即把此信号直接接到内部时钟发生器的输入端。3.1.2 单片机与各模块连接AT89S52单片机P3.7引脚与温度传感器DS18B20的DQ引脚相连,作为温度信号的输入/输出,其P2.0引脚与报警电路的连接进行

17、信号的通讯,其P0.0P0.7引脚与显示电路的主芯片1602的D0D7数据线相连来控制LED显示,其P1.0与P1.1引脚与温度设置模块相连接,以便用来控制系统的温度设置。系统原理图如图3-2所示。图3-2 系统原理图3.2 复位电路复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。本系统的复会电路电平方式的按键手动复位方式,是通过RST端经电阻与电源Vcc接通而实现的。C取10uF,R取10K。其复位电路与单片机连接图如图3-3所示。图3-3 复位电路3

18、.3 晶振电路AT89S52内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自己振荡器,如图3-4所示是AT89S52内部时钟方式的振荡器电路。取C1=C2=30pF,晶振为12MHz。图3-4 晶振电路3.4 DS18B20数据采集电路DS18B20是由美国DALLAS半导体公司生产最新单线数字式温度传感器,主要特性如下:可实现对-55到+125范围内的温度测量,并且测量温度的误差在0.5,实际系统的分辨率可单独设定,并且保存在EEPROM中,即使断电也能够保存;现场温

19、度的测量值通过串行通信的方式传输,即“单线总线”的数字方式传输;系统供电电压容许范围大,可在3V到5.5V的范围波动。DS18B20总共三个引脚,一个引脚为电源地GND,另一个为外接电源端VDD,剩下一个DQ为数字信号输入/输出端。DS18B20的内部结构如图3-5所示,主要包括寄生电源电路、64位只读存储器ROM和单线接口、存储器和控制逻辑、存放中间数据的高速暂存存储器、温度传感器、报警上限寄存器TH、报警下限寄存器TL、配置寄存器和8位CRC循环冗余校验码发生器。图3-5 DS18B20基本组成与传统的热敏电阻相比,DS18B20能过直接读出被测温度并且可根据实际要去通过简单的编程实现91

20、2位的数字值读数方式。可以分别在93.75ms和750ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需一个口线(单线接口)读写。温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而使用DS18B20可是系统结构更趋简单,可靠性更高。由于DS18B20采用单总线接口方式,所以它与单片机只需一根接口线即可,即只需要把DS18B20的DQ线与单片机的一根接口线即可,系统DQ线与单片机P3.7口连接。3.5 温度显示模块选用1602字符型液晶模块,它是目前功控系统中使用最为广泛的液晶屏之一。1602字符型液晶模块是点阵

21、型液晶,驱动方便,经编码后显示内容多样化。系统的输入模块采用中断扫描44矩阵键盘,相比定时扫描方式,提高了MCU的使用效率。液晶显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优点,在袖珍式仪表和低功耗应用系统中得到广泛的应用。目前字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件。LCD1602液晶显示模块可以显示两行,每16个字符,采用单+SV电源供电,外围电路配置简单,价格便宜,具有很高的性价比。表3-1 LCD1602的主要技术参数:显示容量162个字符芯片工作电压4.55.5V工作电流2.0mA(5.0V)模块最佳工作电压5.0V字符尺寸2.954.35(WXH)mm表

22、3-2 LCD1602接口信号说明:编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/O2VDD电源正极10D3Data I/O3VL液晶显示偏压信号11D4Data I/O4RS数据/命令选择端(H/L)12D5Data I/O5R/W读/写选择端(H/L)13D6Data I/O6E使能信号14D7Data I/O7D0Data I/O15BLA背光源正极8D1Data I/O16BLK背光源负极D0D7为1602的数据线,它与单片机的P0口相连,R6R13为上拉电阻,R14为LCD对比度调节电阻。RS、R/W、E为控制口线,分别与AT89S52的P2.4、P2.3、P2.

23、2相连接,实时显示温度。3.6 报警模块本设计中所设计的报警电路较为简单,由一个自我震荡型蜂鸣器和PNP型晶体管组成。蜂鸣器额定电流IB30mA,而对于AT89S52单片机,P2.0口的灌电流为1.6mA,拉电流为60A,由此可见,仅靠单片机的P2.0口电流是不能驱动蜂鸣器的,必须使用集晶体管放大电路,为了使单片机消耗的功率更小,所以使用PNP型晶体管9012。3.7 温度设置模块为了使系统更具有通用性,系统通过温度设置模块设定用户所需要的报警上限和下限报警温度值,其原理是通过三个按键的按键次数来决定温度值,当S1按下时,系统开始设置温度,当S2按下一次则使报警温度值加1,直到用户所需的温度值

24、为止,S3的作用与S2相反,它用于设置下限报警温度值。4 系统软件设计4.1 程序流程图程序启动后,首先调用DS18B20和LCD1602模块初始化程序,然后调用温度采集模块,借用DS18B20内部模数转换的时间,调用温度值转换模块,将温度值转换成BCD码,送入AT89S52单片机处理,驱动LCD实时显示温度和超温报警。程序流程图如图4-1所示。图4-1 程序流程图4.2 程序#include /包含reg52.h文件#include /包含intrins.h文件#define uchar unsigned char /定义uchar代替unsigned char#define uint un

25、signed int /定义uint代替unsigned intsbit DQ=P37; /DQ定义为P3口位7sbit lcden=P22; /lcden定义为P2口位2sbit lcdrs=P24; /lcdrs定义为P2口位4sbit lcdrw=P23; /lcdrw定义为P2口位3sbit beep=P20; /beep定义为P2口位0sbit set=P10; /set定义为P1口位0sbit up=P11; /up定义为P1口位1sbit down=P12; /down定义为P1口位2uint temp,a,b; /定义temp,a,b为无符号整型uchar num; /定义nu

26、m为无符号字符型uchar key=0; /定义key为无符号字符型,key的初始值为0uchar g; /定义g为无符号字符型uchar bai,shi,ge,maxshi,maxge,minshi,minge; /定义变量uchar data temp_data2=0x00,0x00; /读出温度暂放uchar data display5=0x00,0x00,0x00,0x00,0x00;/显示单元数据,共4个数据和一个运算暂用uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x0

27、8,0x08,0x09,0x09; /定义数组ditab16uint data data12=0x32,0x00 /无符号数组uint data1 被定义为data存储类型uchar code table1 = WEN KONG ; /定义数组table1 uchar code table2 = WENDU: . C ; /定义数组table2 uchar code table3 =Set Temperature ; /定义数组table3 uchar code table4=SANGXIAN: . C ; /定义数组table4 uchar code table5=XIAXIAN: . C

28、; /定义数组table5 uchar code warn=WARNING WARNING ; /定义数组table6 /*11us延时函数*/void delay(uint t) for(;t0;t-);/*1ms延时函数*/void delaylcd(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-);void write_com(uchar com) /定义函数write_com,给LCD写命令 lcdrs=0; /低电平写命令 P0=com; /写入命令 delaylcd(2); /延时2ms lcden=1; /LCD使能端置高电平 d

29、elaylcd(2); /延时2ms lcden=0; /LCD使能端置低电平void write_data(uchar date) /定义函数write_data,写LCD数据 lcdrs=1; /高电平写数据 P0=date; /写入数据 delaylcd(2); /延时2ms lcden=1; /LCD使能端置高电平 delaylcd(2); /延时2ms lcden=0; /LCD使能端置低电平void displayminmax() /定义函数displayminmax,第1行显示温度上下阈值 uchar i; write_com(0x80); /设置光标位置为第1行第1位 maxs

30、hi=data10/10; / maxshi为上限温度十位 maxge=data10%10; / maxge为上限温度个位 minshi=data11/10; / minshi为下限温度十位 minge=data11%10; / minge为下限温度个位 write_data(0x30+minshi); /显示下限温度的十位 write_data(0x30+minge); /显示下限温度的个位 write_data(0xdf); /显示下限温度-上限温度 write_data(0x43); write_data(0x2d); write_data(0x2d); write_data(0x2d); write_data(0x3e); write_data(0x30+maxshi); /显示上限温度的十位 write_data(0x30+maxge); /显示上限温度的个

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1