基于单片机的温度报警器.docx
- 文档编号:5679778
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:18
- 大小:666.77KB
基于单片机的温度报警器.docx
《基于单片机的温度报警器.docx》由会员分享,可在线阅读,更多相关《基于单片机的温度报警器.docx(18页珍藏版)》请在冰豆网上搜索。
基于单片机的温度报警器
单片机课程设计
题目温度报警器设计
学生姓名
专业班级
学号
院(系)电气工程学院
指导教师王继红
完成时间2014年11月14日
郑州科技学院
单片机课程设计任务书
一、设计题目温度报警器设计
二、设计任务与要求
利用蜂鸣器作为电声元件,当温度在10℃至30℃范围内不发声,超出此范围便发声,温度传感器输出电压由直流信号源模拟。
三、主要参考文献
[1]皮大能.单片机课程设计指导书[M].北京:
北京理工大学出版社,2010,10.
[2]何利民.单片机高级教程—应用与技术[M].北京:
北京航空航天大学出版社,2000,9.
[3]张毅刚.单片机原理及接口技术[M].哈尔滨:
哈尔滨工业大学出版社,1990,1.
[4]李秀华.单片机原理及实践[M].东北:
东北大学出版社,2006,4.
[5]李广第.单片机基础[M].北京:
北京航空航天大学出版社,2002,3.
[6]王承发.微型机接口技术[M].北京:
高等教育出版社,2005,12.
四、设计时间
2014年11月3日至2014年11月14日
指导教师签名:
年月日
目录
1绪论1
2系统设计2
2.1设计任务与要求2
2.1.1设计任务2
2.1.2设计要求2
2.2方案的选择与论证2
2.2.1总体设计方案2
2.2.2显示部分3
3系统硬件设计3
3.1主控器模块4
3.2数码管显示模块5
3.3A/D转换模块7
3.4硬件元件清单7
4软件设计与仿真8
4.1主程序设计8
4.2仿真软件简介9
4.3仿真结果10
4.3.1正常情况10
4.3.2低于温度下限11
4.3.3高于温度上限11
4.4系统调试12
4.5误差分析12
总结13
参考文献14
附录1:
实物图15
附录2:
元件清单16
附录3:
程序清单17
1绪论
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械了。
因此,单片机的学习、开发与应用必须重视。
温度是一个十分重要的物理量,对它的测量与控制有十分重要的意义。
随着现代工农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与控制温度。
在控制领域中,对温度的控制有着举足轻重的作用。
例如陶瓷的烧烤,只有控制住温度的适度,才能制作出一件完美的艺术品,否则只是一件废品;还有如酿酒的过程,也需要对温度进行控制。
可见,在生活的许多方方面面都有着对温度进行感知和控制的需要。
本次设计的目的就是基于AT89C51单片机设计一个温度检测,报警的系统,该系统能实时采集周围的温度信息进行显示,程序内部设定有报警上下限,根据应用环境不同可设定不同的报警上下限。
该系统实现了对温度的自动监测,为设备的正常运行提供了条件,在工业中具有一定的实用价值和广泛的应用前景。
2系统设计
2.1设计任务与要求
2.1.1设计任务
基于AT89C51单片机设计温度检测报警,可以实时采集周围的温度信息进行显示,并且可以根据应用环境不同设定不同的报警上下限。
2.1.2设计要求
(1)实时温度检测并显示其对应的值。
(2)具有温度报警功能。
(3)可以设报警置温度上下限。
2.2方案的选择与论证
2.2.1总体设计方案
方案一:
基于STC89C51单片机通过读取温度传感器DS18B20测量温度后存储的数据,之后送去数码管显示。
当高于或低于一定温度将分别利用红黄灯报警。
此方案由于DS18b20测量温度范围为-55℃~+125℃,在工业生产中此范围较小。
而且由于编程时采用I2C通信,因此读取数据是时序要求较高,程序编写复杂。
本方案电路复杂,灵活性不高,效率低,不利于系统的扩展,对信号处理比较困难。
方案二:
采用51系列单片机作为整机的控制单元,将0-5V模拟电压信号通过AD0808模数转换成模拟温度值0-255℃,然后通过数码管显示其温度值。
此方案设计简单,编程容易,并且增宽了测量温度范围。
本设计采用第二种方案。
为了能够使系统具备检测温度的大小,利用51系列单片机为主控制器,通过AD0808检测由电位器分压输出的的电压值,从而输出模拟温度值0~255℃送入单片机,并且由其送去数码管显示,其中数码管通过74HC573驱动显示。
2.2.2显示部分
采用了键盘/显示器接口控制器。
不仅简化接口引线,而且减小了软件对键盘/显示器的查询时间,提高了CPU的利用率。
采用三位半的数字电压表直接对输出电压采样并显示输出实际电压值,一旦系统工作异常,出现预制值与输出值偏差过大,用户可以根据该信息予以处理。
3系统硬件设计
本系统由主控模块、彩屏显示模块、温度检测模块、报警模块和设定报警温度5个模块组成,系统硬件组成框图如图1所示。
系统总体电路原理图如图3-1所示。
图3-1系统电路原理图
3.1主控器模块
本系统控制器芯片采用AT89C51单片机,其管脚图如图3所示。
AT89C51单片机
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器,是低电压,高性能CMOS8位微处理器,俗称单片机。
如图3-1-2单片机电路连接图。
图3-1-2单片机电路连接图
AT89C51管脚介绍:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
P3口也可作为AT89C51的一些特殊功能口。
RST:
复位输入。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.2数码管显示模块
图3-2-1为液晶显示电路模块,图中为一个四位八段数码管,其接法为共阴极接法。
图3-2-1数码管显示电路图
图3-2-2转换电路图
。
图3-2-3ADC0808引脚图
A/D转换电路图、ADC0808引脚图分别如图3-2-2,3-2-3所示
3.3A/D转换模块
ADC0808各引脚功能
ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
ADC0808芯片有28条引脚,采用双列直插式封装,如右图所示。
各引脚功能如下:
1~5和26~28(IN0~IN7):
8路模拟量输入端。
8、14、15和17~21:
8位数字量输出端。
22(ALE):
地址锁存允许信号,输入,高电平有效。
6(START):
A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。
9(OE):
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
10(CLK):
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
12(VREF(+))和16(VREF(-)):
参考电压输入端
11(Vcc):
主电源输入端。
13(GND):
地。
3.4硬件元件清单
系统元器件清单见表3-1。
表3-1系统元器件清单
器件
数量
器件
数量
AT89C51
1
LED
2
四段八位数码管
1
ADC0808
1
蜂鸣器
1
三极管9013
1
排阻(10k)
1
电容(33p)
2
电阻(330)
2
滑动变阻器(1K)
1
晶振器
1
电阻(10k)
1
电容(10uF)
1
开关
1
4软件设计与仿真
本系统程序包括主程序、键盘扫描子程序、发送键码子程序、发送数据子程序、接收命令子程序等。
主程序用于系统初始化,子程序调度等。
键盘扫描子程序用于扫描键盘状态,将被按键的位置号存入缓冲器中。
发送键码子程序用于将缓冲区键的接通码或断开码发送给单片机接口。
发送数据子程序用于将数据发给单片机接口。
接收命令子程序用于接收单片机接口发来的键盘命令。
4.1主程序设计
主程序流程图如图4-1所示。
图4-1主程序流程图
4.2仿真软件简介
Proteus是英国Labcenter公司开发的电路分析与实物仿真软件。
它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:
(1)实现了单片机仿真和SPICE电路仿真相结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
(2)支持主流单片机系统的仿真。
目前支持的单片机类型有:
ARM7(LPC21xx)、8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。
(3)提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51uVision2、MPLAB等软件。
(4)具有强大的原理图绘制功能。
总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。
Proteus7.5是目前最好的模拟单片机外围器件的工具,可以仿真51系列、AVR、PIC等常用的MCU及其外围电路(如LCD、RAM、ROM、键盘、马达、LED、AD/DA、部分SPI器件、部分IIC器件等)。
软件编译采用KEILC51软件,KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
4.3仿真结果
4.3.1正常情况
数码管显示的数字在77—153范围内,且报警等都不亮,蜂鸣器不发出声音,结果如图4-3:
图4-3正常情况时电路图
4.3.2低于温度下限
数码管显示温数字低于77,P3.1为低电平,故在这路上的LED灯亮,蜂鸣器发出声音,结果如图4-3-1。
.
图4-3-1低于下限时电路图
4.3.3高于温度上限
数码管显示数字高于153,P3.0为低电平,故在这路上的LED灯亮,蜂鸣器发出声音,结果如图4-3-2。
.
图4-3-2高于上限时电路图
4.4系统调试
在调试过程中主要是对程序的修改,特别是延时子程序。
开始延时较短时,三个数码管同时显示但不稳定的显示这些温度。
如果延时较长则温度数字不会同时显示出来。
通过修改程序,将延时调到适中,系统正常工作。
4.5误差分析
产生误差的因素主要有一下几点:
(1)在参数选择的时候没有完全匹配;
(2)数字电压表只能读出3位有效数字;
(3)基准电压设定不适中;
(4)转换位数不高。
总结
回顾起此次单片机课程设计,我仍感慨颇多,从理论到实践,在接近一月的日子里,可以说得是苦多于甜,但是可以学到很多的的东西,不仅是学习上的,而且是关于做人做事方面的感悟。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
我在设计的过程中遇到了许多问题,同时也发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对汇编语言掌握得不透彻。
还有,这次的设计让我明白了求人不如求己,虽然我们要讲究合作,但更重要的是自己,只有自己懂,自己做,才不会在关键时刻掉链子。
别人终究是一个陪衬,路总是要自己走,属于自己的任务就要自己搞。
所以,我们必须要时刻强大自己,别人终究是别人。
这个过程虽然不是很平坦,肯定会遇到各种各样的问题,但一旦征服了它那它就是你的东
西了,当这样的厚积达到一定程度那你就能享受到薄发那刻的辉煌。
参考文献
[1]皮大能.单片机课程设计指导书[M].北京:
北京理工大学出版社,2010,10:
20-23
[2]何利民.单片机高级教程—应用与技术[M].北京:
北京航空航天大学出版社,2000,9:
54-55
[3]张毅刚.单片机原理及接口技术[M].哈尔滨:
哈尔滨工业大学出版社,1990,1:
17-25
[4]李秀华.单片机原理及实践[M].东北:
东北大学出版社,2006,4:
89-91
[5]李广第.单片机基础[M].北京:
北京航空航天大学出版社,2002,3:
65-65
[6]王承发.微型机接口技术[M].北京:
高等教育出版社,2005,12:
71-78
附录1:
实物图
附录2:
元件清单
序号
编号
名称
型号
数量
1
R1
电阻
4.7K
1
2
R2
电阻
100K
1
3
R3
电阻
5K
1
4
RP1
排阻
5K
1
5
C1、C2
电容
33P
2
6
C3
电容
100u
1
7
S1
按键开关
1
8
X1
晶振
12M
1
9
Q1
三极管
PNP
1
10
LS1
蜂鸣器
1
11
U1
51单片机
AT89C52
1
12
U2
温度传感器
DS18B20
1
13
U3
集成芯片
74HC245
1
14
U4
4位7段数码管
共阳
1
附录3:
程序清单
LED_0EQU30H
LED_1EQU31H
LED_2EQU32H
ADCEQU35H
TCNTAEQU36H
TCNTBEQU37H
H_TEMPEQU38H;温度上限
L_TEMPEQU39H;温度下限
FLAGBIT00H
H_ALMBITP3.0
L_ALMBITP3.1
SOUNDBITP3.7
CLOCKBITP2.4
STBITP2.5
EOCBITP2.6
OEBITP2.7
ORG00H
SJMPSTART
ORG0BH
LJMPINT_T0
ORG1BH
LJMPINT_T1
START:
MOVLED_0,#00H
MOVLED_1,#00H
MOVLED_2,#00H
MOVDPTR,#TABLE
MOVH_TEMP,#153
MOVL_TEMP,#77
MOVTMOD,#12H
MOVTH0,#245
MOVTL0,#0
MOVTH1,#(65536-1000)/256
MOVTL1,#(65536-1000)MOD256
MOVIE,#8aH
CLRC
SETBTR0;为ADC0808提供时钟
WAIT:
SETBH_ALM
SETBL_ALM
CLRST
SETBST
CLRST;启动转换
JNBEOC,$
SETBOE
MOVADC,P1;读取AD转换结果
CLROE
MOVA,ADC
SUBBA,#77;判断是否低于下限
JCLALM
MOVA,H_TEMP
MOVR0,ADC
SUBBA,R0;判断是否高于上限
JCHALM
CLRTR1
LJMPPROC
LALM:
;低温报警
CLRL_ALM
SETBTR1
CLRFLAG
LJMPPROC
HALM:
;高温报警
CLRH_ALM
SETBTR1
SETBFLAG
LJMPPROC
PROC:
MOVA,ADC;数值转换
MOVB,#100
DIVAB
MOVLED_2,A
MOVA,B
MOVB,#10
DIVAB
MOVLED_1,A
MOVLED_0,B
LCALLDISP
SJMPWAIT
INT_T0:
CPLCLOCK;提供ADC0808时钟
RETI
INT_T1:
MOVTH1,#(65536-1000)/256
MOVTL1,#(65536-1000)MOD256
CPLSOUND
INCTCNTA
MOVA,TCNTA
JBFLAG,I1;判断是高温警报还是低温警报
CJNEA,#30,RETUNE;低温警报声
SJMPI2
I1:
CJNEA,#20,RETUNE;高温警报声
I2:
MOVTCNTA,#0
INCTCNTB
MOVA,TCNTB
CJNEA,#25,RETUNE
MOVTCNTA,#0
MOVTCNTB,#0
LCALLDELAY2
RETUNE:
RETI
DISP:
MOVA,LED_0;数码显示子程序
MOVCA,@A+DPTR
CLRP2.3
MOVP0,A
LCALLDELAY
SETBP2.3
MOVA,LED_1
MOVCA,@A+DPTR
CLRP2.2
MOVP0,A
LCALLDELAY
SETBP2.2
MOVA,LED_2
MOVCA,@A+DPTR
CLRP2.1
MOVP0,A
LCALLDELAY
SETBP2.1
RET
DELAY:
MOVR6,#10
D1:
MOVR7,#250
DJNZR7,$
DJNZR6,D1
RET
DELAY2:
MOVR5,#20
D2:
MOVR6,#20
D3:
MOVR7,#250
DJNZR7,$
DJNZR6,D3
DJNZR5,D2
RET
TABLE:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 温度 报警器