基于51单片机的微波炉控制系统
附录二:软件设计程序
ORG 0000H LJMP DJ
ORG 002BH LJMP DST2 ORG 0100H
;初始化*********************************************************************** MAIN: MOV TH2,#0DCH MOV TL2,#00H
MOV RCAP2H,#0DCH MOV RCAP2L,#00H SETB ET2 SETB EA CLR P1.6 CLR P1.7
MOV 20H,#0 ;位控制标志 位为零关闭 ;00H 微波炉加热开启标志
;01H 微波炉加热开启后档位闪烁标志 ;02H 微波炉声音开启标志 ;03H ;04H ;05H ;?
MOV 21H,#00H ;存储档位选择 MOV 22H,#30H ;存储火力信息
MOV 23H,#0FFH ;按键长按设置时间
MOV 24H,#8FH ;微波炉加热开始后 档位灯闪耀时间 MOV 25H,#8FH ;微波炉响音时间 MOV 26H,#8FH ;微波炉响音间隔时间 MOV 27H,#03H ;微波炉响音次数
MOV 28H,#08FH ;待机状态显示字母的速度 MOV 29H,#2CH ;显示切换 MOV 2AH,#0 ;百分之一秒位 MOV 2BH,#0 ;十分之一秒位 MOV 2CH,#0 ;秒 位 MOV 2DH,#0 ;十秒位 MOV 2EH,#0 ;分 位 MOV 2FH,#0 ;十分位
MOV 30H,#0 ;暂存十分位1 MOV 31H,#0 ;暂存分 位1 MOV 32H,#0 ;暂存十秒位1 MOV 33H,#0 ;暂存秒 位1 MOV 34H,#0 ;暂存十分位2 MOV 35H,#0 ;暂存分 位2 MOV 36H,#0 ;暂存十秒位2 MOV 37H,#0 ;暂存秒 位2 MOV 38H,#0 ;暂存十分位3 MOV 39H,#0 ;暂存分 位3 MOV 3AH,#0 ;暂存十秒位3 MOV 3BH,#0 ;暂存秒 位3 MOV 3CH,#0 ;暂存十分位4
32
MOV 3DH,#0 ;暂存分 位4 MOV 3EH,#0 ;暂存十秒位4 MOV 3FH,#0 ;暂存秒 位4
;用户设置程序*********************************************************************** ZB: LCALL XSZ
LCALL ZBDW ;档位输出 JNB P3.3,ZB ZB1: LCALL XSZ JB P3.3,ZB1 LCALL XSZ
JNB P3.4,ZBKS JNB P3.5,ZBXZ JNB P3.6,ZBXSX JNB P3.7,ZBXSS LJMP ZB
ZBKS: LCALL SY
ZBKS0: LCALL XSZ JNB P3.3,ZBKS0
JNB P3.2,ZB MOV R2,2FH MOV R3,2EH
LCALL ZBJS SETB TR2 SETB 00H MOV A,#0H
CJNE A,21H,ZBKS1
LJMP JR1 ZBKS1: MOV A,#01H
CJNE A,21H,ZBKS2
LJMP JR2 ZBKS2: MOV A,#02H
CJNE A,21H,ZBKS3
LJMP JR3 ZBKS3: LJMP ZB
;三个档位切换程序
ZBXZ: LCALL SY INC 21H MOV A,21H
CJNE A,#03H,ZBXZ1 MOV 21H,#0H ZBXZ1: LJMP ZB
;用户设置时间加
ZBXSX: LCALL SY ZBXSX0: LCALL XSZ
JNB P3.6,ZBXSX1 INC 2EH MOV A,2EH
CJNE A,#0AH,ZBXRET MOV 2EH,#0H MOV 23H,#01H ZBXSX1: DJNZ 23H,ZBXSX0 INC 2FH MOV A,2FH
CJNE A,#0AH,ZBXRET
;准备开始 ;准备切换档位 ;时间加 ;时间减 ;确认所有按键以抬起 ;确认微波炉炉门以关闭 ;数据计算 ;跳转到档位1加热状态 ;跳转到档位2加热状态 ;跳转到档位3加热状态 33
基于51单片机的微波炉控制系统
MOV 2FH,#0H
ZBXRET: MOV 23H,#0FFH LJMP ZB
;用户设置时间减
ZBXSS: LCALL SY ZBXSS0: LCALL XSZ
JNB P3.6,ZBXSS1 DEC 2EH MOV A,2EH
CJNE A,#0FFH,ZBXRET MOV 2EH,#09H MOV 23H,#01H ZBXSS1: DJNZ 23H,ZBXSS0 DEC 2FH MOV A,2FH
CJNE A,#0FFH,ZBXRET MOV 2EH,#0H MOV 2FH,#0H AJMP ZBXRET ;档位判断
ZBDW: JNB 00H,ZBDW1 JNB 01H,ZBDW1 SETB P1.0 SETB P1.1 SETB P1.2
AJMP ZBDWRET ZBDW1: MOV A,21H
CJNE A,#0H,ZBDW2 CLR P1.0 SETB P1.1 SETB P1.2
AJMP ZBDWRET
ZBDW2: CJNE A,#01H,ZBDW3 CLR P1.1 SETB P1.0 SETB P1.2
AJMP ZBDWRET
ZBDW3: CJNE A,#02H,ZBDWRET CLR P1.2 SETB P1.0 SETB P1.1 ZBDWRET:RET
;数据计算
ZBJS: MOV A,R2 MOV B,#2H DIV AB
MOV 34H,A MOV A,#0AH MUL AB ADD A,R3 MOV B,#2H DIV AB
MOV 35H,A MOV A,#03H MUL AB MOV 36H,A
34
MOV A,34H MOV B,#2H DIV AB
MOV 38H,A MOV A,#0AH MUL AB ADD A,R2 MOV B,#2H DIV AB
MOV 39H,A MOV A,#06H MUL AB ADD A,36H MOV B,#2H DIV AB
MOV 3AH,A MOV A,#05H MUL AB MOV 3BH,A
MOV 33H,#05H MOV A,#05H SUBB A,3AH MOV 32H,A MOV A,R3 DEC A
SUBB A,39H JNB CY ,ZBJS1 DEC R2
SUBB A,#0AH ZBJS1: MOV 31H,A MOV A,R2 SUBB A,38H MOV 30H,A RET
;微波炉加热程序***********************************************************************
;档位1 加热状态
JR1: LCALL JRX JNB 00H,JR1RET CLR P1.3 CLR P1.4 CLR P1.5 MOV A,34H CJNE A,2FH,JR1 MOV A,35H CJNE A,2EH,JR1 MOV A,36H CJNE A,2DH,JR1 MOV A,37H CJNE A,2CH,JR1 JR11: LCALL JRX
JNB 00H,JR1RET SETB P1.3 CLR P1.4 CLR P1.5 MOV A,38H
CJNE A,2FH,JR11 MOV A,39H
CJNE A,2EH,JR11
35
基于51单片机的微波炉控制系统
MOV A,3AH
CJNE A,2DH,JR11 MOV A,3BH
CJNE A,2CH,JR11 JR12: LCALL JRX
JNB 00H,JR1RET SETB P1.3 SETB P1.4 CLR P1.5 AJMP JR12 JR1RET: LJMP TZ
;档位2 加热状态
JR2: LCALL JRX JNB 00H,JR2RET CLR P1.3 CLR P1.4 CLR P1.5 MOV A,38H CJNE A,2FH,JR2 MOV A,39H CJNE A,2EH,JR2 MOV A,3AH CJNE A,2DH,JR2 MOV A,3BH CJNE A,2CH,JR2 JR21: LCALL JRX
JNB 00H,JR2RET SETB P1.3 CLR P1.4 CLR P1.5 AJMP JR21 JR2RET: LJMP TZ
;档位3 加热状态
JR3: LCALL JRX
JNB 0H,JR3RET SETB P1.3 SETB P1.4 CLR P1.5 MOV A,30H CJNE A,2FH,JR3 MOV A,31H CJNE A,2EH,JR3 MOV A,32H
CJNE A,2DH,JR3 MOV A,33H
CJNE A,2CH,JR3 JR31: LCALL JRX
JNB 00H,JR3RET SETB P1.3 CLR P1.4 CLR P1.5 MOV A,38H
CJNE A,2FH,JR31 MOV A,39H
CJNE A,2EH,JR31 MOV A,3AH
CJNE A,2DH,JR31 MOV A,3BH
CJNE A,2CH,JR31
36