编辑: ddzhikoi | 2018-11-16 |
17 ORG 0000H AJMP MAIN ORG 0003H AJMP KEYS ORG 000BH AJMP PTT0 ORG 001BH AJMP PTT1 ;
中断入口及优先级 MAIN: MOV SP,#60H CLR 5EH CLR 5FH ;
清上、 下限越限标志 MOV A,#00H MOV R7,#09H MOV R0,#28H LP1: MOV @R0,A INC R0 DJNZ R7,LP1 MOV R7,#06H MOV R0,#39H LP2: MOV @R0,A INC R0 DJNZ R7,LP2 ;
清变量暂存单元 MOV R7,#06H MOV R0,#50H LP3: MOV @R0,A INC R0 DJNZ R7,LP3 ;
清显示缓冲区 MOV 33H,#00H MOV 34H,#00H ;
赋Kp 高、 低字节 MOV 35H,#00H MOV 36H,#00H ;
赋Ki 高、 低字节 MOV 37H,#00H MOV 38H,#00H ;
赋Kd 高、 低字节 MOV 42H,#00H MOV 43H,#00H ;
赋K高、 低字节( 风 扇参数) MOV TMOD,#56H ;
T0 方式 2, T1 方式
1 计数 MOV TL0,#06H MOV TH0,#06H ;
T0 赋初值 MOV 25H, #28H ;
设定值默认为
40 摄 氏度 SETB TR0 ;
键盘高优先级 SETB ET0 SETB EX0 SETB EA ;
开键盘、 T
0、 T1 中断 LOOP: MOV R0,#56H MOV R1,#55H LCALL SCACOV ;
调用标度转化- BCD 转化子程序 MOV R0,#53H LCALL DIR NOP LCALL DLY10MS NOP LCALL DLY10MS AJMP LOOP ;
等待中断, 循环显示当前温度 温度测控子程序 SMAP: MOV R0,#2CH MOV R1,#03H ;
采样次数 SAM1: MOV DPTR,#7FF8H MOVX @DPTR,A ;
启动 A/D MOV R2,#20H DLY: DJNZ R2,DLY ;
延时一个小的时间段 HERE: JB P3.3,HERE MOV DPTR, #7FF8H MOVX A,@DPTR ;
读取转化结果 MOV @R0,A INC R0 DJNZ R1,SAM1 RET 报警控制子程序 DAAD1: MOV A,#00H ;
加1子程序 ORL A,@R1 ADD A,#01H CJNE A,#64H,DAAD2 ;
判断是否超过 100度DAAD3: MOV @R1,A DAA: RET DAAD2: JC DAAD3 MOV @R1,#00H ;
超过
100 度则回到
0 度AJMP DAA DEEC1: MOV A,@R1 ;
减1子程序 DEC A CJNE A,#00H,DEEC2 ;
判断是否低于
0 度了 DEEC3: MOV @R1,A DEE: RET DEEC2: JNC DEEC3 MOV @R1,#64H ;
低于
0 度则回到
100 度4结束语 该温度控制系统从设计到实际应用, 控制精度比较高、 节省人力, 而且设有超温报警.技术指标和使用环境均可符 合实际工作的要求. 参考文献: [1]李广弟, 等. 单片机基础[M]. 北京: 北京航空航天大 学出版社, 2001. [2]纪天南, 等. 高稳定度恒温控制器模块的设计与应用 [J]. 微计算机信息, 2006, 22(1):49- 51. [3]何立民. 单片机应用文集 1[G]. 北京: 北京航空航天 大学出版社, 1992. 18 ........