单片机智能温控器课程设计.docx
《单片机智能温控器课程设计.docx》由会员分享,可在线阅读,更多相关《单片机智能温控器课程设计.docx(16页珍藏版)》请在冰点文库上搜索。
单片机智能温控器课程设计
单片机课程设计
说明书
专业:
机械设计制造及其自动化
设计题目:
智能温控器
设计者:
指导老师:
设计时间:
一、课题名称:
一个基于51单片机的智能温控器课程设计
二、主要技术指标及工作内容和要求:
本设计以MCS-51系列单片机为核心,采用常用电子器件设计,一个电源开关,两个控制温度设定按键(增大/减小),四位数码管分别显示设定温度和实际温度,量程为0~99度,打开电源开关后设定温度初始化为26度。
1,按键输入采用中断方式,两个按键分别接INT0和INT1。
2,采用铂电阻(Pt100)温度传感器进行温度测量,模数转换采用ADC0809。
3,单片机根据设定温度S和实测温度P控制继电器R的动作,死区设为2度:
当P<=S-1时,控制R接通电加热回路;
当P>S+1时,控制R断开电加热回路;
当S-1
1.系统总体设计方案1
1.1智能温控器的功能设计1
2.系统硬件设计2
2.1单片机概述2
2.2A/D转换电路2
2.2.1ADC0808介绍2
2.2.2A/D转换电路工作原理3
2.3温度采样电路3
2.3.1铂电阻(Pt100)温度传感器3
2.4按健开关4
2.5温度显示电路5
2.5.2温度显示工作原理5
2.6热电阻驱动电路6
第3章系统软件设计7
3.1软件设计思路7
3.2程序流程7
3.3程序内容编写9
参考文献:
13
附录14
基于MCS-51单片机的智能温控器的设计与开发
1.系统总体设计方案
智能温控器主要单片机,时序电路,温度采样电路,A/D转换电路,温度显示电路,温度输入电路,驱动电路等组成。
系统原理图见图1所示:
图1智能温控器控制系统框图
1.1智能温控器的功能设计
以MCS-51系列单片机为核心,采用常用电子器件设计,一个电源开关,两个控制温度设定按键(增大/减小),四位数码管分别显示设定温度和实际温度,量程为0~99度,打开电源开关后设定温度初始化为26度。
1,按键输入采用中断方式,两个按键分别接INT0和INT1。
2,采用铂电阻(Pt100)温度传感器进行温度测量,模数转换采用ADC0809。
3,单片机根据设定温度S和实测温度P控制继电器R的动作,死区设为2度:
当P<=S-1时,控制R接通电加热回路;
当P>S+1时,控制R断开电加热回路;
当S-1
1
2.系统硬件设计
2.1单片机概述
由于智能温度控制器的核心就是单片机,单片机的选择将直接关系到控制系统的工作是否有效和协调。
本设计采用MCS-51系列的8051单片机,因为8051单片机应用广泛,性能稳定,抗干扰能力强,性价比高。
8051包含了8位CPU,片内振荡器,4K字节ROM,128字节RAM,2个16位定时器,计数器,中断结构,I/O接口等。
可进行计算,定时等一系列功能。
2.2A/D转换电路
2.2.1ADC0808介绍
ADC0808是8位全MOS中速A/D转换器、它是逐次逼近式A/D转换器,片内有三态数据输出锁存器,可以和单片机直接口接。
其主要引脚功能如下:
(1)RD,WR:
读选通信号和选通信号(低电平有效)。
(2)CLK:
时钟脉冲输入端,上升有效。
(3)DB0—DB7是输入信号。
(4)CLKR:
内部时钟发生器外接电阻端,与CLKIN端配合可由芯片自身产生时钟脉冲,其频率为1/1.1RC。
(5)CS:
片选信号输入端,低电平有效,一旦CS有效,表明A/D转换器被选中,可启动。
(6)WR:
写信号输入,接受微机系统或其它数字系统控制芯片的启动输入端,低电平有效,
CS、WR同时为低电平时,启动转换。
(7)INTR:
转换结束输出信号,低电平有效,输出低电平表示本次转换已完成。
该信号常作为向微机系统发出的中断请求信号。
(8)CLK:
为外部时钟输入端,时钟频率高,A/D转换速度快。
允许范围为10-1280KHZ,典型值为640KHZ,此时,A/D转换时间为10us。
通常由MCS—51单片机ALE端直接或分频后与其相连。
当MCS单片机与读写外,RAM操作时,ALE信号固定为CPU时钟频率的1/6,若单片外接的晶振为6MHZ,则1/6为1MHZ,A/D转换时间为64us。
2
2.2.2A/D转换电路工作原理
ADC0808的两模拟信号输入端,用以接受单极性、双极性和差摸输入信号,与WR同时为低电平A/D转换器被启动切在WR上升沿后100模数完成转换,转换结果存入数据锁存器,同时,INTR自动变为低电平,表示本次转换已结束。
如CS、RD同时来低电平,则数据锁存器三态门打开,数字信号送出,而在RD高电平到来后三态门处于高阻状态
图2A/D转换电路图
2.3温度采样电路
2.3.1铂电阻(Pt100)温度传感器
当PT100在0摄氏度的时候他的阻值为100欧姆,它的阻值会随着温度上升而3
成近似匀速的增长。
但他们之间的关系并不是简单的正比的关系,而更应该趋于一条抛物线。
铂电阻的阻值随温度的变化而变化的计算公式:
-200(1)
0(2)
Rt为t℃时的电阻值,R0为0℃时的阻值。
公式中的A,B,系数为实验测定。
标准的系数为:
A=3.90802*10-3℃;B=-5.802*10-7℃;C=-4.27350*10-12℃
2.4按健开关
设定按键(增大/减小),四位数码管分别显示设定温度和实际温度,量程为0~99度,打开电源开关后设定温度初始化为26度。
按键输入采用中断方式,两个按键分别接INT0和INT1
4
2.5温度显示电路
2.5.1LED驱动
74LS47介绍:
74LS47是一块BCD码转换成7段LED数码管的译码驱动IC,74LS47的主要功能是输出低电平驱动的显示码,用以推动共阳极7段LED数码管显示相应的数字。
相应引脚功能如下:
(1)QA,QB,QC,QD,QE,QF,QG:
7段LED数码输出引脚。
(2)A,B,C,D:
输入引脚。
(3)RBO,BT,LI高电平输出有效。
2.5.2温度显示工作原理
温度显示电路如图4所示:
由2片TTL74LS47和2片七段LED组成,LED采用共阳级接法。
74LS47的QA-QG接BCD的a-g,段选信号由8051的P1口提供,
LED显示数据由74LS47的输出决定,即由P1口信号的取值决定。
5
图4TTL74LS47BCD显示电路
2.6热电阻驱动电路
热电阻驱动控制,8051的P3.0的引脚与ULN2003A的引脚相连接,从P3.0发出的控制信号经ULN2003到达电磁继电器,驱动热电阻的运行和停止。
ULN2003是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。
其中ULN2003是由7个NPN具有用共阴二极管夹紧来转换电感负载的高压输出特征的达林顿晶体管组成。
当前一对单精度型的额定电流为500mA,有比较高的电流容量,它的应用软件包括继电器驱动器、显示驱动器,线驱动器和逻辑缓冲器等。
在本驱动电路中的作用是增大电流驱动能力。
该芯片采用16脚的DIP封装,其中第9为公共输出端COM,有一个输出端为高电平,COM就为高电平。
6
图5电磁继电器和热电阻电路
第3章系统软件设计
3.1软件设计思路
软件设计的任务包括启动A/D转换、读A/D转换结果、设置温度、温度控制等,其中启动A/D转换、读A/D转换结果、温度控制等工作在主程序中完成,设置温度在中断服务程序中完成,根据对比结果给出控制信号,令热电阻运行或停止,实现温度调控。
3.2程序流程
主程序流程图如图6所示
中断服务程序流程图7、8所示
7
图6主程序流程图
图7增加键中断服务子程序流程图
8
图8减小键中断服务程序流程图
3.3程序内容编写
ORG0000H
JMPSTART1
ORG0003H
LJMPINTER1
ORG0013H
LJMPINTER2
ORG0100H
START1:
MOVSP,#60H;设置堆栈指针
SETBIT0
SETBIT1
MOVIE,#85H;中断0\中断1开放
ANLP1,#00H
MOVP1,#26H;设定温度初值
LCALLSTART;调用AD转换程序
LCALLC1;调用温度控制程序
LJMP$
ORG0200H;增加键(中断0)首地址
INTER1:
PUSHACC;保护现场
PUSHPSW
CLRC
9
LCALLDELAY;按键延时
A1:
JBP3.2,A1;判断有无键按下
SET1:
LCALLDELAY;按键防抖
MOVA,P1
ANLA,#0FH
INCA
MOV30H,A
MOVA,P1
ANLA,#0F0H
ADDCA,30H
DAA;对A十进制调整
MOVP1,A
POPPSW
POPACC
RETI
ORG0300H;减小键(中断1)首地址
INTER2:
PUSHACC
PUSHPSW
CLRPSW.6
A2:
JBP3.3,A2;判断有无键按下
SET2:
LCALLDELAY;按键防抖
MOVA,P1
ANLA,#0FH
SUBBA,#01H
JBPSW.6,Q0
MOV35H,A
MOVA,P1
ANLA,#0F0H
ADDA,35H
JMPQ1
Q0:
MOVA,P1
ANLA,#0F0H
CLRC
SUBBA,#10H
JCQ2
ADDA,#09H
JMPQ1
Q2:
MOVA,#99H
Q1:
MOVP1,A
POPPSW
POPACC
RETI
START:
MOVR1,#20H
10
MOVX@DPTR,A;A/D转化器开始转换
WAIT1:
JBP3.1,WAIT1
WAIT2:
JNBP3.1,WAIT2
MOVXA,@DPTR
LCALLBINBCD1
MOV@R1,A
MOVP0,A
RET
ORG0400H;控制温度子程序
C1:
CLRC
MOVA,20H;将检测温度送到累加器A中
SUBBA,P1
JNCGAO;判断环境温度是否高于预设温度
SJMPDI
DI:
CLRC
MOVA,20H
ADDCA,#01
MOV20H,A
CLRC
MOVA,P1
SUBBA,20H
JCZ1;判断预设温度是否等于(检测温度+1)
SETBP3.0
SJMPZ1
Z1:
RET
GAO:
CLRC
SUBBA,#02
JNCZ1;判断环境温度减预设温度是否小于2
CLRP3.0
RET
DELAY:
MOVR7,#06H;延时子程序
D0:
MOVR6,#0FAH
DJNZR6,$
DJNZR7,D0
RET
BINBCD1:
MOVB,#10;二进制转化为十进制子程序
DIVAB
SWAPA
ADDA,B
RET
END
11
参考文献:
《新编单片机原理及应用》汪贵平李登峰龚贤武雷旭编著
《电工电子技术》下册秦曾煌主编
XX百科
.hk/
电路图:
见附录
(由于时间短,程序中有些不足之处,参考者可以加以改进)
13
附录: