单片机系统 课 程 设 计
成绩评定表
设计课题 : 基于89C51的温度报警器设计 学院名称 : 电气工程学院 专业班级 : 学生姓名 : 学 号 : 指导教师 :
设计地点 : 设计时间 :
指导教师意见: 成绩: 签名: 年 月 日
单片机系统
课 程 设 计
课程设计名称: 基于89C51的温度报警器设计 专 业 班 级 : 学 生 姓 名 : 学 号 : 指 导 教 师 : 课程设计地点: 课程设计时间:
1
单片机系统 课程设计任务书
学生姓名 题 目 课题性质 指导教师 工程设计 专业班级 课题来源 利用89C51设计温度报警器实现以下功能: 主要内容 (参数) 1.实现对环境温度的测量和显示; 2.温度超过设定值时,蜂鸣器报警; 3.报警同时系统发出中断命令停止工作; 第1-2天:熟悉课程设计任务及要求,查阅技术资料,确定设计方案。 第3-4天:按照确定的方案设计单元电路。要求画出单元电路图,元件及任务要求 (进度) 元件参数选择要有依据,各单元电路的设计要有详细论述。 第5-8天:软件设计,编写程序,要求内容完整、图表清晰。 第9-10天:撰写课程设计报告。要求文理流畅、格式规范、方案合理、设计正确。 [1] 张迎新.单片微型计算机原理、应用及接口技术(第2版)[M].北京:国防工业出版社,2004 主要参考 资料 [2]伟福LAB6000系列单片机仿真实验系统使用说明书 [3] 阎石.数字电路技术基础(第五版).北京:高等教育出版社,2006 选题 学号 审查意见 系(教研室)主任签字: 年 月 日
2
目 录
1 引言............................................................................................................................ 4 2 总体方案设计............................................................................................................ 4
2.1总体方案........................................................................................................... 4 2.2 方案论证.......................................................................................................... 4 2.3 硬件组成.......................................................................................................... 6 3 硬件电路设计............................................................................................................ 7
3.1 时钟电路.......................................................................................................... 7 3.2 复位电路.......................................................................................................... 7 3.3 A/D转换设计 ................................................................................................... 8 3. 4放大电路设计................................................................................................. 9
3.5 显示电路设计...............................................................................................10 3.6 报警电路........................................................................................................ 11 4 系统软件设计.......................................................................................................... 12
4.1 主程序设计.................................................................................................... 12 4.2 显示子程序的设计........................................................................................ 13 4.3 AD转换设计 .................................................................................................. 14 5 总结..........................................................................................................................15 附录A 总原理图 ...................................................................... 错误!未定义书签。 附录B 部分源程序 .................................................................. 错误!未定义书签。
3
1 引言
随着时代的进步和发展,温度的测试已经影响到我们的生活、工作、科研、各个领域,已经成为了一种非常重要的事情,因此设计一个温度测试的系统势在必行。在人类的生活环境中,温度扮演着极其重要的角色。无论你生活在哪里,从事什么工作,无时无刻不在与温度打着交道。进入了21世纪后温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。
本设计以PT100热电阻为温度检测元件,设计了一个对单点温度实时检测并在温度超过一定值时进行报警的的单片机温度检测系统,可以实现以下功能: 1.实现对环境温度的测量和显示;2.能通过按键设置报警温度;3.温度超过设置值时产生光声报警;4. 报警同时系统发出中断命令停止工作。
2 总体方案设计
2.1 总体方案
本方案以AT89C51单片机系统为核心,对单点的温度进行实时测量检测,并采用热电阻PT100作为温度传感器,AD620作为信号放大器、ADC0809作为A/D转换部件,对于温度信号的采集具有大范围、高精度的特点。在功能、性能、可操作性等方面都有较大的提升,具有更高的性价比。
2.2 方案论证
2.2.1单片机选型
本方案使用的是AT89C51单片机,AT89系列的单片机对于一般用户来说,有下列明显的优点:
①AT89C51单片机在一块芯片上集成了CPU、RAM、ROM、定时器/计数器和多种功能的I/O口设备等,相当于一台计算机所需要的基本功能部件。
②内部含有Flash存储器,在系统开发过程中很容易修改程序,可以大大缩短了系统的开发时间。
③AT89系列并不对80C31的简单继承,功能进一步增强。在我国这种单片机受到广泛青睐,很多以前使用80C51、80C52的用户都转而使用AT89系列。对于有丰富编程经验的用户而言,不需要仿真器,可以直接将程序载入芯片,放在
4
目标板上加电直接运行,观察运行结果,出现问题时再进行修改,然后重新写程序,再进行试验,直至成功。
AT89系列包括两大类,第一类是常规的,就是AT89C系列,这类单片机要用常规的并行方法编程,必需使用编程器编程;第二类是在系统可编程ISP Flash系列,也就是AT89S系列,这类单片机除了用常规的并行方法变成外,还 2.2.2 温度传感器选择
传感器是测控系统前向通道的关键部件,它也称换能器和变换器,一般是指
非电物理量与电量的转换,即传感器是将被测的非电量(如压力、温度等)转换成与之对应的电量或电参量(如电流、电压、电阻等)输出的一种装置。采集温度是有一下几种方案:
方案一:采用温度传感器AD590。它具有较高的精度,相比于热敏电阻精度有所提高,但非线性误差为±0.3℃,且检测温度范围为:-55~+155℃。 方案二:采用Pt100。它的国际测温标准为:-40~+450℃,可选环境温度为:-40~70℃,精度为:±0.1℃,且安装尺寸小,可直接安装在印刷电路板上,可焊SIP封装。
采用热电阻电路测温。热电阻是利用导体的电阻率随温度变化这一物理现象来测量温度的。铂易于提纯,物理化学性质稳定,电阻率较大,能耐较高的温度,因此用PT100作为实现温标的基准器。
pt100是铂热电阻,简称为:PT100铂电阻,它的阻值会随着温度的变化而改变。PT后的100即表示它在0℃时阻值为100欧姆,在100℃时它的阻值约为138.5欧姆。它的工业原理:当PT100在0摄氏度的时候他的阻值为100欧姆,它的的阻值会随着温度上升它的阻值是成匀速增涨的。
方案三:采用热电偶温差电路测温,温度检测部分可以使用低温热偶,热电偶由两个焊接在一起的异金属导线所组成,热电偶产生的热电势由两种金属的接触电势和单一导体的温差电势组成。通过将参考结点保持在已知温度并测量该电压,便可推断出检测结点的温度。数据采集部分则使用带有A/D 通道的单片机,在将随被测温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。热电偶的优点是工作温度范围非常宽,且体积小,但是它们也存在着输出电压小、容易遭受来自导线环路的噪声影响以及漂移较高的缺点,并且这种设计需要用到A/D
5
转换电路,感温电路比较麻烦。
基于对以上三种方案的分析以及实验室的设备,选择方案二的PT100作为温度传感器。
2.2.3 模数转换器选型
模拟量输入到计算机,首先要经过模拟量到数字量的转换,简称A/D转换,计算机才能接收。实现模/数转换的设备称A/D转换器或ADC。
A/D转换器的种类有很多,而A/D转换的好与坏直接关系到真个系统的精确度。由于本系统测量的是温度信号,响应时间长,滞后大,不要求快速转换,因此选用8位串行A/D转换ADC0809能达到设计的基本要求。为进一步提高精度,可以直接采用12位A/D转换器,也可以采用过采样和求均值技术来提高测量分辨率。
2.3 硬件组成
按照温度报警器设置的组成以及所需完成的功能,本设计需要以下硬件: 1 热敏电阻PT100:完成对温度的采集,将温度的变化转换成电压信号; 2 放大器AD620:将热敏电阻所转化的电压信号进行放大,并送到模数转换器ADC0809中;
3 声光报警系统: 当温度超过设定值时用于报警的系统
4 控制器:作为控制系统的核心,可采用工控机、PLC、DCS或微控制器,本设计采用单片机。
温度报警器系统框图见图2.1所示。
放大电路A/D转换器显示单片机驱动电路蜂鸣器传感器 图2.1 温度报警器系统框图
可以在系统下用下载线进行编程,省去价格昂贵的编程器,而且可以在目标板上直接修改程序。
6
3 硬件电路设计
3.1 时钟电路
给一块内部含有程序存储器的单片机配上时钟电路和复位电路就可以构成单片机的最小应用系统。
89C51系列单片机内部有一个高增益反相放大器,用于构成振荡器,但要形成时钟,外部还需附加电路,89C51的时钟产生方法有两种,内部时钟方式和外部时钟方式,本设计采用内部时钟方式,内部时钟电路图如图3.1所示。
C11XTAL11nFX4CRYSTALXTAL2C121nF 图3.1 内部时钟电路图 3.2 复位电路 复位是单片机的初始化操作,单片机在启动运行时,都需要先复位,它的作用是使CPU和系统中其它部件都处于一个确定的初始状态,并从这个状态开始工作。例如复位后,PC初始化为0,于是单片机自动从0单元开始执行程序。因而复位是一个很重要的操作方式。
本设计采用按键脉冲复位,其原理图如图3.2所示。
7
C13C141nF1nFRSTR3210kR3310k 图3.2 按键脉冲复位原理图 3.3 A/D转换设计
3.3.1 8位逐次逼近式A/D转换器ADC0809
ADC0809是带有8位A/D转换器、8路多路开关以及微处理器兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。它是目前应用最广泛的8位通用的A/D转换的芯片。 3.3.2 ADC0809应用注意事项:
①ADC0809内部带有输出锁存器,可与AT89S52单片机直接相连。 ②初始化时,使ST和OE信号为低电平。 ③送要转换的那一通道的地址到A,B,C端口上。 ④在ST端给出一个至少100ms宽的正脉冲信号。 ⑤是否转换完毕,我们根据EOC信号来判断。
⑥当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。
3.3.3模数转换模块电路
ADC0809接线图,即A/D转换电路如图3.3所示。
8
U15IN026272812345252423221216IN0IN1IN2IN3IN4IN5IN6IN7ADD AADD BADD CALEVREF(+)VREF(-)ADC0809GND4CLOCKSTARTEOCOUT1OUT2OUT3OUT4OUT5OUT6OUT7OUT810672120191881514173U6:B474LS04347813141718111P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7U14D0D1D2D3D4D5D6D7OELE74LS373OE30Q0Q1Q26VCCQ0Q1Q2Q3Q4Q5Q6Q7256912151619OE9U9:AQ5CLOCKDCLKS2LE36U17NANDU16NAND1RQ674LS74P3.6 图3.3 A/D转换电路 3.4 放大电路设计
P3.7 测温原理:采用 R1、R2、VR2、Pt100 构成测量电桥(其中 R29=R28),温度变化时,当Pt100 的电阻值和 R27 的电阻值不相等,电桥输出一个 mV 级的压差信号,这个压差信号经过运放 AD620 放大后输出期望大小的电压信号,该信号可直接连 A/D 转换芯片。从而把热电阻的阻值转换成数字量。
AD620为三运放集成的仪表放大器结构,AD620的两个内部增益电阻为24. 7 kΩ , 因而增益方程式为: G =49.4 kΩ/R G + 1 (1)
对于所需的增益, 则外部控制电阻值为: R G =49.4/(G - 1)kΩ (2) 电路原理如图3.4所示:
+12VVIN -。R5.。.R6C3C4。C5.。VO.R..IN-+VSRGRG-VSIN+C6GAD620REFVIN+..。-12V
9
C12图3.4 AD620原理图
桥式电路测温整体电路如图3.5所示:
1nF RV1R29100VCCR2810k1kU1332RT3E+S+716IN0100.00S-E-RTD-PT10010k485AD620VEER27 图3.5 放大电路
3.5 显示电路设计
在单片机应用系统中,如果需要显示的内容只有数码和某些字母,使用LED数码管是一种较好的选择。LED数码管显示清晰、成本低廉、配置灵活,与单片机接口简单易行。图3-7(a)是4位共阳数码管的管脚图。
LED数码管的使用与发光二极管相同,根据其材料不同正向压降一般为1.5~2V,额定电流为10mA,最大电流为40mA。静态显示时取10mA为宜,动态扫描显示可加大,加大脉冲电流,但一般不超过40mA。
本设计选用4位共阴数码管。由于数码管的驱动电流较大,所以在设计时加上了三极管3904作为驱动电路,数码管和单片机的接口如图3.6所示。
10
RP1RESPACK-81P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.723456789VCCVCC1234R5100R8100R411kQ52N3904R731kQ62N3904R6VCC100VCCR9100GNDR2100R11100GNDR11k2Q32N3904R1041kQ72N3904R3100R12100GNDGND 图3.6 显示电路
3.6报警电路
由一个蜂鸣器和三极管组成,当高温超过设定值,蜂鸣器将会发出报警。 放大电路与单片机P3.4口相连,当采集到的温度值超过所设置的范围时,单片机会输出一信号,通过三极管放大后驱动蜂鸣器发出报警信号。如图3.7所示。
11
R3110kLS1R30P3.41kQ8SPEAKERNPN 图3.7 蜂鸣器报警电路
4 软件设计
4.1 主程序设计
4.1.1 程序说明
主程序是系统上电或复位后首先要执行的程序,主程序主要完成系统的初始化、扫描显示等工作。这是一个综合硬件设计控制系统。利用显示电路、A/D转换电路、单片机实现温度报警的系统。
本设计可以实现将模拟温度信号,转换成数字信号,并经过计算处理后通过LED静态显示电路以十进制形式显示出来,设置温度上限为100℃,该系统可以对温度进行实时过程的监控。当实际温度高于设定的温度上限时,发出报警信号。
4.1.2 流程图
主程序流程图如图4.1所示。
12
开始系统初始化启动A/D转换读取A/D转换的结果N数码管显示温度是否大于设定值Y蜂鸣器报警 图4.1 主程序流程图
4.2 显示子程序设计
本设计采用4位LED共阴极数码静态显示,显示温度范围从0℃到99℃,字段码放在LEDLAB中,采用查表方式,偏移量加首址查得对应的字形代码。当定时器T0定时时间到,采样电路进行采样,采样结果经信号调理电路处理后,送入A/D转换,经标度变换后显示。 显示子程序流程图如图4.2所示
13
定时器T0中断关中断赋定时器初值启动A/D转换器标度转换送显示缓冲区控制输出开中断
图4.2 显示子程序流程图 4.3 A/D转换器设计
4.3.1 标度变换说明:
本设计是模拟温度的显示,温度经过热敏电阻转换为电压信号,经放大器AD620放大后进入单片机进行A/D转换成数字量后输出到动态显示部分,显示其温度值。
4.3.2 A/D转换流程图如图4-3所示。
14
返回
A/D转换中断关中断读A/D转换保存到缓冲区开中断结束
图4.3 A/D转换流程图
5 总结
经过这段时间的单片机课程设计,终于完成该课程的设计,在本次设计的过程中,我发现很多的问题,通过这次设计真的让我长进了很多,单但我觉的写好一个程序并不是一件简单的事,因为设计时间有限,加之缺少对工业现场整体把握的经验,导致本设计在功能上还不十分完善。从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,我想我会在今后的学习生活中更加努力的去学习单片机的知识,不断加强自己的理论知识,努力完成更多的设计与创作。
15
RV1VCCVCCR2910010kR28U131k362R871100 RT3E+S+100.0010kAD620S-E-RESPACK-8RTD-PT100VEE485R27RP1R7Q632N39041kVCCR9R5123456789100100GNDR3110kLS1R30P3.41kNPNP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7R411kQ5R61002N3904VCCGNDQ8SPEAKER1234R11100U15C11XTAL11nFIN026272812345XTAL21nFQ0Q1Q26252423221216IN0IN1IN2IN3IN4IN5IN6IN7ADD AADD BADD CALECLOCKSTARTEOCOUT1OUT2OUT3OUT4OUT5OUT6OUT7OUT8CRYSTAL1067212019188151417374LS04R10U6:B4347813141718VREF(+)VREF(-)11141kQ7U14D0D1D2D3D4D5D6D7Q0Q1Q2Q3Q4Q5Q6Q7256912151619R12X4100C12GNDVCCVCCR2OE9OELE100P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7附录A 总原理图
6C141nF1nFRSTGNDOE30C13ADC080974LS373R14Q3U9:AS252N39041k2R3210kR3310kLED3CLKQCLOCKU17NANDU16NANDR36100RQGND174LS74
P3.6P3.7 16
2N3904
附录B 部分源程序
LED_0 EQU
30
LED_1 EQU 31H
LED_2 EQU 32H
ADC
EQU 35H
TCNTA EQU 36H TCNTB EQU 37H H_TEMP EQU 64H
FLAG
BIT 00H
H_ALM BIT P3.0
L_ALM
BIT P3.1
SOUND BIT P3.7 CLOCK BIT P2.4 ST BIT
P2.5
EOC BIT P2.6 OE
BIT P2.7
ORG 00H
SJMP START ORG 0BH LJMP INT_T0 ORG 1BH
LJMP INT_T1
START : MOV LED_0, #00H
MOV LED_1, #00H
; //温度上限
17
MOV LED_2, #00H MOV DPTR, #TABLE MOV H_TEMP, #60
MOV L_TEMP, #30 MOV TMOD, #12H
WAIT:SETB
H_ALM
MOV TH0, #245 MOV TL0, #0
MOV TH1, # (65536-1000)/256 MOV TL1, # (65536-1000) %256 MOV IE, #8aH CLR
C
;为ADC0809提供时钟
SETB TR0
SETB L_ALM CLR ST SETB ST
CLR ST ;启动转换 JNB EOC, $
SETB OE MOV ADC, P1 CLR OE MOV A, ADC
;读取AD转换结果
MOV A, H_TEMP MOV R0, ADC SUBB A, R0 JC HALM CLR
TR1
;判断是否高于上限
LJMP PTOC
18
HALM:
;高温报警
CLR H_ALM SETB TR1 SETB FLAG LJMP PTOC
PTOC: MOV
MOV
A, ADC B, #100
;数值转换
DIV AB
INT_T0: CPL CLOCK ;提供89C51时钟
INT_T1: MOV
MOV LED_2, A MOV A, B MOV
B,#10
DIV AB MOV MOV
LED_1,A LED_0,B
LCALL DISP SJMP WAIT
RETI
TH1, #(65536-1000)/256
MOV TL1, #(65536-1000)%256 CPL INC MOV
SOUND TCNTA A, TCNTA
;判断是高温警报还是低温警报
JB FLAG,I1 CJNE SJMP
A,#30,RETUNE ;低温警报声 I2
19
I1:CJNE A, #20, RETUNE ;高温警报声 I2:MOV TCNTA, #0 INC TCNTB MOV A, TCNTB CJNE A, #25, RETUNE MOV TCNTA, #0 MOV TCNTB, #0
LCALL
DELAY2
RETUNE: RETI
DISP: MOV A, LED_0 MOVC A,@A+DPTR CLR P2.3 MOV P0, A LCALL DELAY SETB
P2.3
MOV A, LED_1 MOVC A,@A+DPTR CLR
P2.2
MOV P0, A LCALL DELAY SETB P2.2
MOV A, LED_2
MOVC A,@A+DPTR CL R P2.1 MOV P0, A
LCALL DELAY
;数码显示子程序 20
SETB P2.1 RET
DELAY: D1:
MOV R6, #10 MOV R7, #250
DJNZ R7, $ DJNZ R6, D1
RET
R5,#20
DELAY2: MOV D2: D3:
MOV R6, #20 MOV R7, #250
DJNZ R7, $ DJNZ R6, D3 DJNZ R5, D2
RET
TABLE: DB 3FH, 06H, 5BH, 4FH, 66H
DB 6DH, 7DH, 07H, 7FH, FH END
21
22
因篇幅问题不能全部显示,请点此查看更多更全内容