附录B:系统硬件框图
35
程序清单:
ORG LJMP IINT0
ORG 0080H MAIN:MOV SP,#60H MOV PSW,#00H MOV 71H,#14H
MOV 72H,# MOV 73H,#00H MOV 74H,#00H MOV 75H,#00H MOV 76H,#00H MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#3CH
SETB TR0 SETB EA SETB ET0
JMCGS:JMB P1.2,KK NOP NOP JB P1.2,KK NOP
MOV 70H,#01H
KK:LJMP JMCGS ORG 0100H IINT0:PUSH A PUSH PSW
CLR EA CLR TR0
DJNZ 71H,ZDFH MOV A,70H
MOV B,72H
,开中断 ;等待中断 ;中断服务子程序 ;入栈保护 ;关中断 ;不到2秒直接中断返回36
;
MVL AB MOV R6,B MOV R5,A MOV R2,#02H
LCALL CHUFA MOV 73H,R5 LCALL KZCX MOV 74H,73H
ZDFH:SETB EA SETB ET0
MOV TMOD,#01H 0MOV TL0,#0B0H MOV TH0,#3CH
SETB TR0 POP PSW POP A
RETI CHUFA:MOV R7,#08H CHU1:CLR C MOV A,R5 RLC A MOV R5,A MOV A,R6 RLC A MOV 07H,C CLR C SUBB A,R2 JB 07H,CHU2 JNC CHU2 ADD A,R2 AJMP CHU3 CHU2:INC R5 CHU3:MOV R6,A JNE R7,CHU1 RET
;开中断重新赋初值 ;出栈 ;中断返回 37
KZCX:MAIN A,73H ;控制子程序 CJNE A,74H,KZ2
ZJFH:RET ;直接返回 KZ2:JC PFKZ CFKZ:MOV B,#03H DIV AB MOV 75H,A CJNE A,#04H,ZJFH JC ZJFH MOV A,75H CJNE A,#0AH,CFKZ1 JNC CFKZ2
CFKZ1:MOV TMOD,#10H MOV TL0,#0B0H MOV TH0,#3CH SETB TR1 SETB P1.0
DELAY:JNB TF1,DELAY CLR TR1 CLR TF1 CLR P1.0 LJMP ZJFH
CFKZ2:MOV R4,#02H CFKZ3:MOV TMOD,#10H MOV TH0,#3CH
SETB TR1 SETB P1.0
DELAY:JNB TF1,DELAY1 CLR TR1 CLR TF1 CLR P1.0 DJNZ R4,CFKZ3 LJMP ZJFH
PFKZ:MOV B,#03H DIV AB
38
MOV 76H,A CJNE A,#08H,ZJFH JC ZJFH MOV A,76H CJNE A,#0AH,PFKZ1 JNC PFKZ2
PFKZ1:MOV TMOD,#10H MOV TL0,#3CH SETB TR1 SETB P1.1 DELAY:JNB TF1,8 CLR TR1 CLR TF1 CLR P1.1 LJMP ZJFH
PFKZ2:MOV R4,#02H PFKZ3:MOV TMOD,#10H MOV TL0,#0B0H MOV TH0,#3CH SETB TR1 SETB P1.1
DELAY4:JNB TF1,DELAY4 CLR TR1 CLR TF1 CLR P1.1 DJNZ R4,PFKZ3 LJMP ZJFH
存储器扩展子程序 STORE: SETB VSDA;
SETB VSCL; NOP; NOP;
39