SETB EA ;开键盘T0。T1中断 LOOP: MOV R0,#56H MOV R1,#55H
LCALL SCACOV ;标度转化 MOV R0,#53H LCALL DIR NOP
LCALL DLY10MS NOP
LCALL DLY10MS
AJMP LOOP ;等中断
4.5.2 键盘子程序
KEYS: CLR EX0 CLR EA PUSH PSW
PUSH ACC ;关中断 LCALL DLY10MS ;消抖 CC: JB P3.2 AA
SETB 5DH ;置“显示设定值温度值标志” MOV A,25H ;取运算位的值 MOV B,#10H ;BCD码转化 DIV A B MOV 52H,A MOV A, B MOV 51H, A MOV R0,#50H
LCALL DIR ;显示设定温度 NOP
LCALL DLY10MS NOP
LCALL DLY10MS
JB P1.7 ,BB MOV R1,#25H LCALL DAAD1 NOP
LCALL DLY10MS AJMP CC
BB: JB P1.6 CC MOV R1,#25H LCALL DEEC1 NOP
LCALL DLY10MS AJMP CC
16
AA: POP ACC POP PSW SETB EX0
SETB EA ;出栈 RETI
4.5.3 显示子程序
DIR: MOV SCON ,#00H ;置串行口移位寄存器状态 SETB P1.4 ;开显示 JB 5DH,DL1 ;显示设定温度 DL2: MOV DPTR,#SEGT DL0: MOV A,@R0 MOVC A,@A+DPTR MOV SBUF ,A
LOOP1: JNB TI, LOOP1 CLR TI INC R0 MOV A,@R0 MOVC A,@A+DPTR
ANL A, #7FH ;使数带小数点 MOV SBUF ,A
LOOP2: JNB TI,LOOP2 CLR TI INC R0 MOV A,@R0 MOVC A,@A+DPTR MOV SBUF,A
LOOP3: JNB TI,LOOP3 CLR TI CLR P1.4 CLR 5DH RET
DL1: MOV 50H,#0AH ;小数位黑屏 AJMP DL2
SEGT: DB 0C0H ,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH 4.5.4 T0中断子程序 PTT0: CLR EA PUSH ACC PUSH PSW PUAH DPL PUSH DPH
SETB EA ;压栈后开中断响应键盘 PPP: LCALL SMAP ;采样数据 LCALL FILTER ;数字滤波 MOV A,2AH ;取采样值
17
CJNE A,#07H,AAA ;下限48比较 AJMP BBB AAA: JC CCC ;小于48度转 CJNE A,#0FEH ,DDD ;上限355比较
AJMP BBB ;转至48~355正常范围处理 DDD: JC BB CLR P1.2 ;大于355黄灯亮 SETB 5EH CLR P1.1 ;置标志 启动风扇 AJMP PPP
CCC: CLR P1.3 ;小于48红灯亮 SETB 5FH
BBB: CLR P1.0 ;置标志启动电炉 AJMP PPP
SETB P1.0 SETB P1.1 SETB P1.2 SETB P1.3 CLR 5EH CLR 5FH ;50~350之间正常 LCALL PID JNB 20H,EEF ;设定温度小于实际值转到风扇 MOV A,29H LCALL FFF CLR P1.0
LOOP10: MOV R0,#56H ;存放相乘结果的首址 MOV R1,#55H ;赋显示缓冲区最高位地址 LCALL SCACOV ;标度转化
MOV R0,#53H ;;赋显示首址 CLR DIR
JB D5H,LOOP10 ;等待T1中断 CLR EA POP DPH POP DPL POP PSW SETB EA POP ACC RETI EEE: MOV A,28H ;风扇处理 LCALL FFF CLR P1.1 AJMP LOOP10
FFF: CRL A ;根据PID结果计算T1初值 INC A
18
MOV TL1,A MOV TH1,#0FFH SETB PI1 SETB TR1 SETB ET1 RET 4.5.5采样子程序
SWAP: MOV R0,#20H MOV R1,#03H SAW1: 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 4.5.6数字滤波
FILTER: MOV A, 20H CJNE A,2DH CMP1 AJMP CMP2 CMP1: JNC CMP2
XCH A,2DH XCH A,2CH CMP2: MOV A,2DH
CJNE A,22EH,CMP3 MOV 2AH,A AJMP RR
CMP3: JC CMP4 MOV 2AH,A AJMP RR CMP4: MOV A,2EH
CJNE A,2CH,CMP5 MOV 2AH ,A AJMP RR
CMP5: JC CMP6 XCH A,2CH CMP6: MOV 2AH,A RR: RET
19
4.5.7 T1中断
PIT1: CLR 00H JB 20H, GGG
SETB P1.0 ;关闭电炉 GG: CLR PT1 RETI
GGG: SETB P1.1 ;关闭风扇 CLR 20H AJMP GG
五、系统电路图
系统电路图如下:
20