可调温度报警器设计

  • 格式:doc
  • 大小:1.41 MB
  • 文档页数:37

XXX大学XXX学院综合性实验报告课程名称:综合电子设计实验名称:可调温度报警器院系:电子信息学院专业:班级:组员:指导老师:日期:摘要:在现代化的工业生产中,需要对周围环境的温度进行检测和控制。

本小组针对温控报警问题展开思考,设计一个能根据需求设置低温到高温进行报警并通过液晶显示的系统。

该系统使用89C51单片机,同时运用单线数字温度传感器DS18B20,LCD1602显示模块等模块可实现温度的检测。

课题经过实验验证达到设计要求,具有一定的使用价值和推广价值。

该作品使用液晶显示,可以清晰地显示当前的报警温度,使使用者使用时不会出错,安全可靠,可使用于各种食品储存室,植物养殖所等地方,使用性很高。

关键字:温度报警器温度上下限 AT89C51单片机液晶LCD1602 温度传感器DS18B20目录一课程设计任务 (1)1.1功能说明 (1)二整体设计方案 (1)2.1设计思路 (1)2.2整体框图 (2)2.3模块功能说明 (2)三硬件电路设计 (4)3.1各模块设计 (4)3.1.1传感器的选择 (4)3.1.2单片机的选择 (5)3.1.3液晶的选择 (6)3.2各模块分析 (6)3.2.1单片机89C51管脚图 (6)3.2.2 DS18B20引脚及管脚功能介绍 (8)3.2.3 LCD1602液晶显示介绍 (8)四控制软件设计及电路图 (9)4.1单片机模块电路图及分析 (9)4.2液晶显示模块电路图及分析 (10)4.3温度传感器模块电路图及分析 (11)五系统调试及遇到的问题 (15)六个人小结 (19)6.1组长 (19)6.2 组员1 (21)6.3组员2 (22)七参考文献 (23)八附录 (24)8.1附录1 (24)8.2附录2 (26)8.3附录3 (27)一 课程设计任务1.1功能说明1.完成温度进行测量,理论测量范围-55°C~+125°C ;2.将温度测量值通过LCD 液晶显示模块显示;3.可以通过按键进行对上下限报警温度,自行设定并实现功能;二 整体设计方案2.1设计思路根据功能要求,必须有单片机控制模块,LCD1602显示模块以及DS18B20的温度传感模块。

各个模块都有其自己的功能。

上电后,通过DS18B20可以检测到温度,并在显示器上显示。

采用DS18B20的数字温度计结构框图51 单片 机 DS18B20 声光报警键盘& 显示2.2整体仿真电路图图1 温度报警器总电路图2.3模块功能说明本系统共分为三块模块。

单片机模块,这部分主要实现数据的处理,输出执行,报警设置功能显示模块可以分别显示实时温度值,温度上下限。

温度传感模块的主要功能是通过DS18B20的强大功能实现对温度的采集及发送到计算机。

红灯亮,报警绿灯亮,正常温度小于温度下限No YesYes开始LCD初始化初始化显示读取温度数据转换,显示读取键盘值键盘处理温度比较温度小于低温控制温度小于温度上限温度大于温度上限白灯闪烁,警告红灯亮,报警结束No NoYes Yes三硬件电路设计3.1各模块设计3.1.1DS 18B20简介DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

该装置信号线高的时候,内部电容器储存能量通由1线通信线路给片子供电,而且在低电平期间为片子供电直至下一个高电平的到来重新充电。

DS18B20的电源也可以从外部3V-5 .5V的电压得到。

DS18B20采用一线通信接口。

因为一线通信接口,必须在先完成ROM设定,否则记忆和控制功能将无法使用。

主要首先提供以下功能命令之一: 1 )读ROM, 2 )ROM匹配, 3 )搜索ROM, 4 )跳过ROM, 5 )报警检查。

这些指令操作作用在没有一个器件的64位光刻ROM序列号,可以在挂在一线上多个器件选定某一个器件,同时,总线也可以知道总线上挂有有多少,什么样的设备。

若指令成功地使DS18B20完成温度测量,数据存储在DS18B20的存储器。

一个控制功能指挥指示DS18B20的演出测温。

测量结果将被放置在DS18B20内存中,并可以让阅读发出记忆功能的指挥,阅读内容的片上存储器。

温度报警触发器TH和TL都有一字节EEPROM 的数据。

如果DS18B20不使用报警检查指令,这些寄存器可作为一般的用户记忆用途。

在片上还载有配置字节以理想的解决温度数字转换。

写TH,TL指令以及配置字节利用一个记忆功能的指令完成。

通过缓存器读寄存器。

所有数据的读,写都是从最低位开始。

采用DALLAS最新单线数字温度传感器DS18B20。

DS18B20“一线总线”数字化温度传感器也支持“一线总线”接口,测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。

现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。

适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。

DS18B20的特性:DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。

可选更小的封装方式,更宽的电压适用范围。

分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。

3.1.2单片机89C51简介89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM —Falsh Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。

单片机的可擦除只读存储器可以反复擦除100次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器。

3.1.3LCD1602液晶简介采用LCD1602液晶显示模块,有体积小、功耗低、显示内容丰富、超薄轻巧等优点,在袖珍式仪表和低功耗应用系统中得到广泛的应用。

目前字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件。

它可以显示两行,每行16个字符,采用单+5V电源供电,外围电路配置简单,价格便宜,具有很高的性价比。

3.2各模块分析3.2.1单片机89C51管脚图注:引脚说明:①电源引脚Vcc(40脚):典型值+5V。

Vss(20脚):接低电平。

②外部晶振X1、X2分别与晶体两端相连接。

当采用外部时钟信号时,X2接振荡信号,X1接地。

③输入输出口引脚:P0口:I/O双向口。

作输入口时,应先软件置“ 1”。

P1口:I/O双向口。

作输入口时,应先软件置“ 1”。

P2口:I/O双向口。

作输入口时,应先软件置“ 1”。

P3口:I/O双向口。

作输入口时,应先软件置“ 1”。

④控制引脚:RST/Vpd、ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51的控制总线。

RST/Vpd(9脚):复位信号输入端(高电平有效)。

第二功能:加+5V备用电源,可以实现掉电保护RAM信息不丢失。

ALE/-PROG(30脚):地址锁存信号输出端。

第二功能:编程脉冲输入。

-PSEN(29脚):外部程序存储器读选通信号。

-EA/Vpp(31脚):外部程序存储器使能端。

第二功能:编程电压输入端(+21V)。

3.2.2 DS18B20引脚及管脚功能介绍注DQ:数字信号输入/输出端。

GND:电源地端。

VDD:外接供电电源输入端(在寄生电源接线时此脚应接地)。

3.2.3 LCD1602液晶显示介绍管脚功能1602采用标准的16脚接口第1脚:VSS为电源地第2脚:VDD接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作第6脚:E(或EN)端为使能(enable)端第7~14脚:D0~D7为8位双向数据端第15~16脚:空脚或背灯电源。

15脚背光正极,16脚背光负极四控制软件设计及电路图4.1单片机模块电路图及分析图3 单片机接线图P1接液晶数据口,P0接3个二极管,P2接8个按钮,P3.3接蜂鸣器,P3.4接液晶的RS,P3.5接液晶的R/W,P3.6接液晶的EN,P3.7接温度传感器,其他按单片机最小系统连接。

4.2液晶显示模块电路图及分析图3 液晶接线图液晶显示模块的子程序:/*************************lcd1602程序**************************/ void delay1ms(unsigned int ms)//延时1毫秒(不够精确的){unsigned int i,j;for(i=0;i<ms;i++)for(j=0;j<100;j++);}void wr_com(unsigned char com)//写指令//{ delay1ms(1);RS=0;RW=0;EN=0;P1=com;delay1ms(1);EN=1;delay1ms(1);EN=0;}void wr_dat(unsigned char dat)//写数据//{ delay1ms(1);;RS=1;RW=0;EN=0;P1=dat;delay1ms(1);EN=1;delay1ms(1);EN=0;}void lcd_init()//初始化设置//{delay1ms(15);wr_com(0x38);delay1ms(5);wr_com(0x08);delay1ms(5);wr_com(0x0e);delay1ms(5);wr_com(0x06);delay1ms(5);wr_com(0x01);delay1ms(5);}void display(unsigned char *p)//显示//{while(*p!='\0'){wr_dat(*p);p++;delay1ms(1);}}4.3温度传感器模块电路图及分析图4温度传感器接线图温度传感器读取温度以及显示温度的子程序:/******************************ds1820程序***************************************/void delay_18B20(unsigned int i)//延时1微秒{while(i--);}void ds1820rst()/*ds1820复位*/{ unsigned char x=0;DQ = 1; //DQ复位delay_18B20(4); //延时DQ = 0; //DQ拉低delay_18B20(100); //精确延时大于480usDQ = 1; //拉高delay_18B20(40);}uchar ds1820rd()/*读数据*/{ unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){ DQ = 0; //给脉冲信号dat>>=1;DQ = 1; //给脉冲信号if(DQ)dat|=0x80;delay_18B20(10);}return(dat);}void ds1820wr(uchar wdata)/*写数据*/{unsigned char i=0;for (i=8; i>0; i--){ DQ = 0;DQ = wdata&0x01;delay_18B20(10);DQ = 1;wdata>>=1;}}read_temp()/*读取温度值并转换*/{uchar a,b;ds1820rst();ds1820wr(0xcc);//*跳过读序列号*/ds1820wr(0x44);//*启动温度转换*/ds1820rst();ds1820wr(0xcc);//*跳过读序列号*/ds1820wr(0xbe);//*读取温度*/a=ds1820rd();b=ds1820rd();tvalue=b;tvalue<<=8;tvalue=tvalue|a;if(tvalue<0x0fff)tflag=0;else{tvalue=~tvalue+1;tflag=1;}tvalue=tvalue*(0.625);//温度值扩大10倍,精确到1位小数return(tvalue);}/*******************************************************************/ void ds1820disp()//温度值显示{ uchar flagdat;disdata[0]=tvalue/1000+0x30;//百位数disdata[1]=tvalue%1000/100+0x30;//十位数disdata[2]=tvalue%100/10+0x30;//个位数disdata[3]=tvalue%10+0x30;//小数位if(tflag==0)flagdat=0x20;//正温度不显示符号elseflagdat=0x2d;//负温度显示负号:-if(disdata[0]==0x30){disdata[0]=0x20;//如果百位为0,不显示if(disdata[1]==0x30){disdata[1]=0x20;//如果百位为0,十位为0也不显示}}wr_com(0x89);wr_dat(flagdat);//显示符号位wr_com(0x8a);wr_dat(disdata[0]);//显示百位wr_com(0x8b);wr_dat(disdata[1]);//显示十位wr_com(0x8c);wr_dat(disdata[2]);//显示个位wr_com(0x8d);wr_dat(0x2e);//显示小数点wr_com(0x8e);wr_dat(disdata[3]);//显示小数位}五系统调试及遇到的问题开始我们只是做温度报警,因为温度传感器选择的是数字式温度传感器,老师觉得过于简单,所以帮我们也想了很多其他功能。