电子温度报警系统设计.docx
- 文档编号:9073961
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:30
- 大小:185.35KB
电子温度报警系统设计.docx
《电子温度报警系统设计.docx》由会员分享,可在线阅读,更多相关《电子温度报警系统设计.docx(30页珍藏版)》请在冰豆网上搜索。
电子温度报警系统设计
单片机系统综合设计报告
电子温度报警系统设计
学生姓名学号
指导教师
系、中心信息工程学院
专业电子信息工程年级2009级
青岛工学院
1基本要求
■能够测量并显示当前温度,精确到小数点后一位
■当温度超过30摄氏度时能够控制风扇(可用发光二极管模拟)启动,并在温度降到30摄氏度以下后关闭风扇
■当温度超过35摄氏度时发生报警,进行声光提示,此功能可关闭
2发挥部分
■风扇控制温度及报警温度可调
■能够记录并显示前3次风扇启动时间及报警时间
■能够在报警时实时解除警报
■其他功能
摘要
温度是一个十分重要的物理量,对他的测量与控制有十分重要的意义,随着现代工农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与控制温度。
本温度报警器的设计与制作,阐明了该装置进行设计与制作的具体过程及方法。
这种温度报警器结构简单,可操作性强,应用广泛。
工作时,温度测量范围为-55ºC到125ºC当前环境温度若超过设定的高温临界温度,由单片机发出报警信号,防止因温度升高而带来的不必要的损失。
本文介绍的是采用温度传感器DS18B20的温度报警器,自动测量当前环境温度,由单片机STC89C52RC控制,并通过三位7段数码管显示,若当前环境温度超过此温度,系统发出报警。
关键词:
STC89C52RC单片机;温度报警器;温度传感器;发光二极管;温度数码管显示
Electronictemperaturealarmsystemdesign
Abstract
Temperatureisaveryimportantphysics,measurementandcontrolofhishaveveryimportantsense,withmodernindustrialandagriculturaltechnologyandthedevelopmentofenvironmentforpeople'sliferise,peoplealsourgentlyneeddetectionandcontrolthetemperature.Thistemperaturealarmdesignandproduction,itisexpoundedthatthedeviceforthedesignandproductionofspecificprocessesandmethods.Thistemperaturealarmsimplestructure,themaneuverabilityisstrong,wideapplication.Work,temperaturemeasurementrangefor-55DHSCto125DHSenvironmentaltemperatureifexceedtheCthecurrentsetofmicrocomputertemperaturecriticaltemperature,issuedawarningsignal,causedbytemperaturetopreventunnecessarylosses.
ThispaperistousetemperaturesensorDS18B20temperaturealarm,automaticmeasuringcurrentenvironmentaltemperaturebyasinglechipmicrocomputerAT89C2051control,andthrougheightsevensegmentdigitalpipedisplay,ifthecurrentenvironmentaltemperatureoverthistemperature,systemwarning.
Keywords:
Microcontroller;Temperature;alarm;Temperaturesensor;ledsTemperaturedisplay
目录
1引言1
2总体设计方案2
2.1单片机选择控制方案2
2.2数码管显示部分设计方案2
2.3按键控制设计方案2
3硬件电路设计及功能描述3
3.1总体设计方案图3
3.2最小单片机系统4
3.34*4矩阵键盘5
3.4LED动态扫描6
3.5DS18B20温度报警器6
4软件设计流程图8
4.1读出温度子程序9
4.2温度转化命令字程序10
4.3计算温度子程序10
5设计心得体会11
参考文献12
1引言
在日常生活及工农业生产中经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻。
而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调式复杂,制作成本高。
随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。
本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用ATMEL公司生产的ATMEGA16L单片机芯片1,测温传感器使用DS18B20,用8位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。
2总体设计方案
2.1单片机选择方案
方案一:
采用普通STC89C52RC单片机作为总的控制元件。
方案二:
采用ARM1138作为总的控制元件。
比较论证:
方法一MS-51单片机对于初学者来说比较容易上手。
STC89C52RC单片机功能较少,不含有模数转换等功能,因此需增加一些外围电路来实现一些功能,使电路复杂化,精确度不高,采样速率偏低。
而方法二简化了电路,增加了系统稳定性,提高了精度和运算速度。
EasyARM1138开发板在设计方面提供了极大的方便,它的好处在于功能较多,因为它不仅包括了普通单片机的所有功能,更增加了许多新的功能,如:
A/D、D/A转换,蜂鸣器控制等,另外又提供了便利的编程环境。
更重要的是EasyARM1138开发板接口较多,所需外部按键较少,因此直接采用接入显示器件即可实现所需要求。
鉴于上述的方案分析,我们采用方案一
2.2数码管显示部分设计方案
方案一:
采用数码管静态扫描显示。
方案二:
采用数码管动态扫描显示。
1.静态显示LED接口
(1)连接方法各数码管的公共极固定接有效电平,各数码管的字形控制端分别由各自的控制信号控制。
(2)优点LED显示亮度温度,容易调节,编程容易,工作时占用CPU时间短。
(3)缺点若直接用单片机输出各位数码管的字形信号时,占用单片机的I/O口线较多。
一般仅适用于显示位数较少的应用场合。
2.动态显示LED接口
(1)连接方法各位数码管的字形控制端对应地并在一起,由一组I/O端口进行控制,各位的公共极相互独立,分别由不同的I/O控制信号控制。
(2)优点节省I/O端口线(3)缺点显示亮度不够稳定,影响因素较多;编程较复杂,占用CPU时间较多。
鉴于上述的方案分析,我们采用方案二。
2.3按键部分控制
方案一:
LED显示
方案二:
LCD显示
LED显示屏是由发光二极管排列组成的。
它采用低电压扫描驱动,具有耗电少、使用寿命长、成本低、亮度高、故障少、视角大、可视距离远等特点。
LED显示器与LCD显示器相比,LED在亮度、功耗、可视角度和刷新速率等方面,都更具优势。
LED与LCD的功耗比大约为10:
1,而且更高的刷新速率使得LED在视频方面有更好的性能表现,能提供宽达160°的视角,可以显示各种文字、数字、彩色图像及动画信息,也可以播放电视、录像、VCD、DVD等彩色视频信号,多幅显示屏还可以进行联网播出。
有机LED显示屏的单个元素反应速度是LCD液晶屏的1000倍,在强光下也可以照看不误,并且适应零下40度的低温。
利用LED技术,可以制造出比LCD更薄、更亮、更清晰的显示器,拥有广泛的应用。
另外LED有在室外运用的规格,而LCD只能在室内使用;LED屏幕可以根据自己需要设计及时,几百平米之大,LCD不行。
当然价格上LED也高的多鉴于上述方案分析,我们采用方案一。
3硬件电路设计及功能描述
按照功能要求,系统主要由主控制器,测温电路,报警部分,电源部分及显示电路所组成..主控制器采用了STC89C52R来实现,显示部分采用了8位1体数码管,报警部分则采用三极管+蜂鸣器的简单组合
3.1总体设计方框图
图3.1总体设计方框图
3.2最小单片机系统
图3.2单片机最小系
STC89C52R是一个低功耗,高性能CMOS8位单片机,片内含8kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的STC89C52R可为许多嵌入式控制应用系统提供高性价比的解决方案。
STC89C52R具有如下特点:
40个引脚,8kBytesFlash片内程序存储器,256bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
3.34*4矩阵键盘
图3.34*4矩阵键盘
图3.3.1按键功能
矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。
在行线和列线的每一个交叉点上,设置一个按键。
这样键盘中按键的个数是4×4个。
这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图2所示。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。
这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。
行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了
3.4LED动态扫描
图3.4LED动态扫描
数码管中的每一段相当于一个发光二极管,8段数码管则具有8个发光二极管。
对于“共阳极”的数码管,内部每个发光二极管的阳极被接在一起,成为该各段的公共选通线;发光二极管的阴极则成为段选线。
对于“共阴极”数码管,则正好相反,内部发光二极管的阴极接在一起,阳极成为段选线。
这两种数码管的驱动方式是不同的。
当需要点亮“共阳极”数码管的一段时,公共段需接高电平(即写逻辑1)、该段的段选线接低电平(即写逻辑0),从而该段被点亮。
当需要点亮“共阴极”数码管的一段时,公共段需接低电平(即写逻辑0)、该段的段选线接高电平(即写逻辑1),该段被点亮。
3.5DS18B20数字温度传感器模块
图3.518B20
DS18B20数字温度传感器一个单总线器件,具有线路简单、体积小的特点。
与传统的热敏电阻不同,DSI8B20可直接将被测温度转换为串行数字信号,供单片机处理。
通过编程,DSI8B20可以实现9~l2位的温度读数。
信息经过单线接口送人DS18B20,或从DS18B20送出,因此,从单片机到DSI8B20仅需连接一条信号线和地线。
因此用他组成一个测温系统,具有线路简单,十分方便。
DS18B20测温范围在-55~+125℃;转换精度9~12位进制数,可编程确定转换的位数;测温分辨率为9位精度为0.5℃,12位精度为0.0625℃;转换时间:
9位精度为93.75ms、10位精度为187.5ms、12位精度为750ms;内部有温度上、下限告警设置。
温度/℃
二进制表示
十六进制表示
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+25.0625
0000000110010000
0191H
+10.125
0000000010100001
00A2H
+0.5
0000000000000010
0008H
0
0000000000001000
0000H
-0.5
1111111111110000
FFF8H
-10.125
1111111101011110
FF5EH
-25.0625
1111111001101111
FE6FH
-55
1111110010010000
FC90H
图3.6温度
4软件设计流程图
4.1主程序
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20测量的当前温度值,温度测量每1s进行一次。
这样可以在一秒之内测量一次被测温度,其程序流程如下:
图4.1主程序流程图
4.2读出温度子程序
读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。
其程序流程图如图4.2所示
图4.2读温度流程图
4.3温度转换命令子程序
温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。
温度转换命令子程序流程图如图4.3所示
图4.3温度转换流程图
4.4计算温度子程序
计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图4.4所示。
图4.4计算温度流程图
5设计心得体会
通过近两个星期的单片机课程设计,我终于完成了“基于单片机的数字温度计设计”,心中不免有些高兴,但高兴之余也有我值得深思的。
虽然以前做过类似的实验,参加全国电子大赛对这次的设计感觉很简单,但这次的课程设计还是让我学到了很多东西,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法。
有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。
通过这次的单片机课程设计我认识到了,学习要理论联系实际,把学到的理论知识同实际运用相结合,才能是我们的知识融汇贯通,才能真正的学到知识,真正的做到学以致用。
参考文献
【1】俞国亮.MCS-51单片机原理与应用[M].第一版.北京:
清华大学出版社,2008:
34-52
【2】童诗白,华成英.模拟电子技术基础[M].第四版.北京:
高等教育出版社,2009:
512-562
【3】阎石.数字电子技术基础[M].第五版.北京:
高等教育出版社,2009:
160-205
【4】张伟.Protel99SE实用[M].北京:
人民邮电出版社,2008:
20-50
【5】马群生,温冬婵.微机原理技术[M].第一版.北京:
清华大学出版社,2006:
49-110
【6】吴黎明,王桂棠.单片机原理及应用技术[M].北京:
科学出版社,2005
【7】章锡鹤,盛鸿宇.印制电路板电路设计实训教材[M].北京:
科学出版社,2005:
120-154
【8】李银,汪泳.电子线路设计指导[M].北京:
北京航空航天大学出版社,2005:
105-125
【9】张萌,和湘,姜斌.单片机应用系统开发[M].北京:
清华大学出版社,2007:
98-106
【10】张世生.《科技情报开发与经济》[J].怎样分析单片机程序.2006,(3):
25-27
【11】何立民.《单片机与嵌入式系统应用》[J].基于单片机电子密码锁系统设计.2007
【12】朱善君等.单片机接口技术与应用[M].北京:
清华大学出版社,2005
【13】王志刚.现代电子线路[M].第四版.北京:
清华大学出版社,2008:
150-176
【14】陈松,金鸿.电子设计自动化技术[M].南京:
东南大学出版社,2003:
58-64
【15】王庆有.光电传感器应用技术[M].北京:
机械工业出版社,2007
【16】李广弟.单片机基础[M].北京航空航天大学出版社,2001:
20-26
附:
#include"reg51.h"
#include"18b20.h"
unsignedcharwei_tab1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
unsignedcharcodeduan_tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,
0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,
0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1,
0x00,0x40,0x73,0x38,0x76,0x50,0x78,0x6e};
unsignedcharled_buffer[]={0,1,2,3,4,5,6,7,8,9};
intcount=0,count1=0;
chardisp_count=0;
charhour=23,hour0,hour1,hour2,hour3;
charmin=56,min0,min1,min2,min3;
charsec=20,sec0,sec1,sec2,sec3,sec4,sec5;
inttemp=25;
inttemp1=0;
intms=0;
intc=0,a=0,wendu=300,wendu1=350,guanbi=0,suo=0,suo1=0,suo2=0;
unsignedcharjingbao_time[];
charmiehuo=0;
sbitjingbao3=P1^6;
sbitjingbao=P1^0;
sbitjingbao1=P1^1;
sbitjingbao2=P1^3;
sbitjingbao4=P1^7;
unsignedcharkey_code=0;
unsignedcharkey_press=0;
voiddelay(longdly)
{
while(dly--);
}
voiddisp_dig(void)
{
P0=0xff;
P2=wei_tab1[disp_count];
P0=~duan_tab[led_buffer[disp_count]];
disp_count++;
if(disp_count>7)
{
disp_count=0;
}
}
voiddisp_dig1(void)
{
P0=0xff;
P2=wei_tab1[disp_count];
P0=~duan_tab[led_buffer[disp_count]];
disp_count++;
if(disp_count>7)
{
disp_count=5;
}
}
voidget_clock(void)
{
led_buffer[0]=hour/10;
led_buffer[1]=hour%10;
led_buffer[2]=33;
led_buffer[3]=min/10;
led_buffer[4]=min%10;
led_buffer[5]=33;
led_buffer[6]=sec/10;
led_buffer[7]=sec%10;
}
voidget_clock1(void)
{
led_buffer[5]=temp/100;
led_buffer[6]=(temp%100/10)+16;
led_buffer[7]=temp%10;
}
voidget_clock2(void)
{
led_buffer[0]=hour3/10;
led_buffer[1]=hour3%10;
led_buffer[2]=33;
led_buffer[3]=min3/10;
led_buffer[4]=min3%10;
led_buffer[5]=33;
led_buffer[6]=sec3/10;
led_buffer[7]=sec3%10;
}
voidget_clock3(void)
{
led_buffer[5]=wendu/100;
led_buffer[6]=(wendu%100/10)+16;
led_buffer[7]=wendu%10;
}
voidget_clock4(void)
{
led_buffer[5]=wendu1/100;
led_buffer[6]=(wendu1%100/10)+16;
led_buffer[7]=wendu1%10;
}
voidclock(void)
{
ms++;
if(ms>999)
{
ms=0;
sec++;
if(sec>59)
{
sec=0;
min++;
if(min>59)
{
min=0;
hour++;
if(hour>23)
{
hour=0;
}
}
}
}
}
voidinti(void)
{
TMOD=0x01;
TH0=0xfc;
TL0=0x66;
ET0=1;
EA=1;
TR0=1;
}
voidread_key(void)
{
unsignedcharx;
P3=0xf0;
x=P3|0x0f;
if(x!
=0xff)
{
delay(100);
P3=0xf0;
x=P3|0x0f;
if(x!
=0xff)
{
P3=x;
key_code=P3;
key_press=1;
}
}
}
voidkey_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 温度 报警 系统 设计