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.1 LED驱动
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
图4 TTL74LS47 BCD显示电路
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 程序内容编写
ORG 0000H JMP START1 ORG 0003H LJMP INTER1 ORG 0013H LJMP INTER2 ORG 0100H
START1:MOV SP,#60H;设置堆栈指针 SETB IT0 SETB IT1
MOV IE,#85H; 中断0\\中断1开放 ANL P1,#00H
MOV P1,#26H; 设定温度初值 LCALL START;调用AD转换程序 LCALL C1;调用温度控制程序 LJMP $
ORG 0200H; 增加键(中断0)首地址 INTER1:PUSH ACC;保护现场 PUSH PSW CLR C
9
LCALL DELAY;按键延时
A1:JB P3.2,A1;判断有无键按下 SET1:LCALL DELAY;按键防抖 MOV A,P1 ANL A,#0FH INC A
MOV 30H,A MOV A,P1 ANL A,#0F0H ADDC A,30H
DA A;对A十进制调整 MOV P1,A POP PSW POP ACC RETI
ORG 0300H ;减小键(中断1)首地址 INTER2:PUSH ACC PUSH PSW CLR PSW.6
A2:JB P3.3,A2;判断有无键按下 SET2:LCALL DELAY;按键防抖 MOV A,P1 ANL A,#0FH SUBB A,#01H JB PSW.6,Q0 MOV 35H,A MOV A,P1 ANL A,#0F0H ADD A,35H JMP Q1
Q0:MOV A,P1 ANL A,#0F0H CLR C
SUBB A,#10H JC Q2
ADD A,#09H JMP Q1
Q2:MOV A,#99H Q1:MOV P1,A POP PSW POP ACC RETI
START:MOV R1,#20H
10
MOVX @DPTR,A; A/D转化器开始转换 WAIT1: JB P3.1,WAIT1 WAIT2: JNB P3.1,WAIT2 MOVX A,@DPTR LCALL BINBCD1 MOV @R1,A MOV P0,A RET
ORG 0400H; 控制温度子程序 C1:CLR C
MOV A,20H; 将检测温度送到累加器A中 SUBB A,P1
JNC GAO; 判断环境温度是否高于预设温度 SJMP DI DI:CLR C MOV A,20H ADDC A,#01 MOV 20H,A CLR C MOV A,P1 SUBB A,20H
JC Z1; 判断预设温度是否等于(检测温度+1) SETB P3.0 SJMP Z1 Z1:RET
GAO:CLR C SUBB A,#02
JNC Z1; 判断环境温度减预设温度是否小于2 CLR P3.0 RET
DELAY:MOV R7,#06H;延时子程序 D0:MOV R6,#0FAH DJNZ R6,$ DJNZ R7,D0 RET
BINBCD1:MOV B,#10;二进制转化为十进制子程序 DIV AB SWAP A ADD A,B RET END
11
参考文献:
《新编单片机原理及应用》 汪贵平 李登峰 龚贤武 雷旭 编著 《电工电子技术》下册 秦曾煌 主编 百度百科 http://baike.baidu.com/ http://www.google.com.hk/
电路图:见附录
(由于时间短,程序中有些不足之处,参考者可以加以改进)
13
附录: