基于STC89C51的温度报警器设计.docx
《基于STC89C51的温度报警器设计.docx》由会员分享,可在线阅读,更多相关《基于STC89C51的温度报警器设计.docx(16页珍藏版)》请在冰豆网上搜索。
基于STC89C51的温度报警器设计
基于STC89C51的温度报警器设计
————————————————————————————————作者:
————————————————————————————————日期:
西安电子科技大学工程设计报告
学院:
电子工程学院
专业:
信息对抗技术
班级:
020731
指导老师:
张煜、朱燕
学生:
袁镜深
学号:
02073027
基于STC89C51的温度报警器设计
一.设计背景
温度是一个十分重要的物理量,对它的测量与控制有十分重要的意义。
随着现代工农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与控制温度。
温度控制电路在工农业生产中有着广泛的应用。
日常生活中也可以见到,如电冰箱的自动制冷,空调器的自动控制等等.在工业生产中,温度、压力、流量和液位是四种最常见的过程变量。
其中,温度是一个非常重要的过程变量。
例如:
在冶金工业、化工工业、电力工业、机械加工和食品加工等许多领域,都需要对各种加热炉、热处理炉、反应炉和锅炉的温度进行监控.然而,用常规的监控方法,潜力是有限的,难以满足较高的性能要求。
采用单片机来对它们进行监控不仅具有监控方便、简单和灵活性大的优点,而且可以大幅度提高被测温度的技术指标,从而能够大大提高产品的质量和数量.因此,单片机对温度的监控问题是一个工业生产中经常会遇到的监控问题。
现代社会是信息化的社会,随着安全化程度的日益提高,而通过温度报警器及时报警,避免不必要的损失。
二.设计思路
由于单片机具有以下的很多优点,被我们选定为制作该作品的首选芯片
单片机特点:
(1)高集成度,体积小,高可靠性
单片机将各功能部件集成在一块晶体芯片上,集成度很高,体积自然也是最小的。
芯片本身是按工业测控环境要求设计的,内部布线很短,其抗工业噪音性能优于一般通用的CPU。
单片机程序指令,常数及表格等固化在ROM中不易破坏,许多信号通道均在一个芯片内,故可靠性高。
(2)控制功能强
为了满足对对象的控制要求,单片机的指令系统均有极丰富的条件:
分支转移能力,I/O口的逻辑操作及位处理能力,非常适用于专门的控制功能.
(3)低电压,低功耗,便于生产便携式产品
为了满足广泛使用于便携式系统,许多单片机内的工作电压仅为1。
8V~3。
6V,而工作电流仅为数百微安。
(4)易扩展
片内具有计算机正常运行所必需的部件。
芯片外部有许多供扩展用的三总线及并行、串行输入/输出管脚,很容易构成各种规模的计算机应用系统。
(5)优异的性能价格比
单片机的性能极高.为了提高速度和运行效率,单片机已开始使用RISC流水线和DSP等技术。
单片机的寻址能力也已突破64KB的限制,有的已可达到1MB和16MB,片内的ROM容量可达62MB,RAM容量则可达2MB.由于单片机的广泛使用,因而销量极大,各大公司的商业竞争更使其价格十分低廉,其性能价格比极高。
三.STC89C51芯片特性
1。
简介
89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS—51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。
89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
2。
主要特性
与MCS—51兼容
·4K字节可编程闪烁存储器
·寿命:
1000写/擦循环
·数据保留时间:
10年
·全静态工作:
0Hz—24MHz
·三级程序存储器锁定
·128*8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
3。
管脚说明
89C51电路图如下:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入.P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入.并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故.P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1"时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流.当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3。
0RXD(串行输入口)
P3.1TXD(串行输出口)
P3。
2/INT0(外部中断0)
P3。
3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3。
7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲.如想禁止ALE的输出可在SFR8EH地址上置0.此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效.
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现.
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器.注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
4.振荡器特性
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
5.芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
6。
结构特点
8位CPU;
片内振荡器和时钟电路;
32根I/O线;
外部存贮器寻址范围ROM、RAM64K;
2个16位的定时器/计数器;
5个中断源,两个中断优先级;
全双工串行口;
布尔处理器;
四.程序运行流程图
六.主程序设计
LED_0EQU30H
LED_1EQU31H
LED_2EQU32H
ADCEQU35H
TCNTAEQU36H
TCNTBEQU37H
H_TEMPEQU46H;//温度上限
L_TEMPEQU—14H;//温度下限
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,#60
MOVL_TEMP,#30
MOVTMOD,#12H
MOVTH0,#245
MOVTL0,#0
MOVTH1,#(65536—1000)/256
MOVTL1,#(65536-1000)%256
MOVIE,#8aH
CLRC
SETBTR0;为ADC0808提供时钟
WAIT:
SETBH_ALM
SETBL_ALM
CLRST
SETBST
CLRST;启动转换
JNBEOC,$
SETBOE
MOVADC,P1;读取AD转换结果
CLROE
MOVA,ADC
SUBBA,#30;判断是否低于下限
JCLALM
MOVA,H_TEMP
MOVR0,ADC
SUBBA,R0;判断是否高于上限
JCHALM
CLRTR1
LJMPPTOC
LALM:
;低温报警
CLRL_ALM
SETBTR1
CLRFLAG
LJMPPTOC
HALM:
;高温报警
CLRH_ALM
SETBTR1
SETBFLAG
LJMPPtOC
PTOC:
MOVA,ADC;数值转换
MOVB,#100
DIVAB
MOVLED_2,A
MOVA,B
MOVB,#10
DIVAB
MOVLED_1,A
MOVLED_0,B
LCALLDISP
SJMPWAIT
INT_T0:
CPLCLOCK;提供89C51时钟
RETI
INT_T1:
MOVTH1,#(65536—1000)/256
MOVTL1,#(65536—1000)%256
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,FH
END
五.Proteus仿真图
六.结束语
这种温度报警器结构简单。
工作时,温度测量范围为0~250ºC。
当温度达到预定值时,立刻发出报警信号,从而防止因温度升高或过低而带来的不必要的损失。
通过本次工程设计,又使我学到了许多书本上无法学到的知识,也使也深该体会到单片机技术应用领域的广泛,不仅使我对学过的单片机知识有了很多的巩固,同时也对单片机这一门课程产生了更大的兴趣。
在做本次工程设计的过程中,我感触最深的当属查阅大量的设计资料了。
为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。
我们是在做单片机工程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计.
其次,我学会了在网络上查找有关本设计的各硬件的资源,其中包括:
AT89C51单片机及其引脚说明、ADC0808引脚图及其引脚功能等,为本次工程设计提供了一定的资料。
经过这次的设计,为我们以后毕业设计的制作也奠定了一定的基础.
七.参考文献:
[1]张俊谟《单片机中级教程》北京航空航天大学出版社。
2006,10。
[2]王俊峰《电子产品开发设计与制作》北京人民邮电出版社。
[3]张克农《数字电子技术基础》高等教育出版社。
2008。