程序清单
ORG 000H AJMP 100H ORG 0013H AJMP KEY ORG 100H SETB EA SETB EX1 CLR PSW.5 MOV A , 50H LCALL INI79 L1: JNB PSW.5 , L3 CLR PSW.5 MOV A, 50H LCALL RDIR1 CJNE A, #0FH, L1 L2: JNB PSW.5, L2 CLR PSW.5 MOV R5,50H LCALL RDIR1 L3: JNB PSW.5, L3 CLR PSW.5 MOV A,50H LCALL PDIR1 CJNE A, #0FH, L2 L4: MOV 40H,#00H MOV 41H,#00H MOV 42H,#00H L5: JNB PSW.5,L5 CLR PSW.5 MOV 40H,50H MOV A ,50H LCALL RDIR1 CJNE A,#0FH,L6 AJMP L4 L6: MOV 41H,40H MOV 40H,50H L7: JNB PSW.5,L7 CLR PSW.5 MOV A,50H LCALL RDIR1 CJNE A,#0FH,L8 AJMP L12 L8: MOV 42H,41H MOV 41H,40H MOV 40H,50H L9: JNB PSW.5,L9 CLR PSW.5 MOV A,50H LCALL RDIR1 CJNE A,#0FH,L10 AJMP L12 L10: MOV 43H,42H MOV 42H,41H
MOV 41H,40H
MOV 40H,50H
L11: JNB PSW.5,L11
CLR PSW.5 MOV A,50H
LCALL RDIR1
CJNE A,#0FH,L4 L12: LCALL RDIR2 LCALL DT
CJNE R5,#0AH,L13
LCALL PS0 L13: CJNE R5,#0BH,L14 LCALL PS1 L14: CJNE R5,#0CH,L15
LCALL PS2
L15: CJNE R5,#0DH,L16 LCALL PS3
L16: CJNE R5,#0EH,L17
LCALL PS4 L17: AJMP 0000H 8209 初始化子程序 INI79: MOV DPTR,#0DFFFH
MOV A,#0D1H MOVX @DPTR,A WND: MOVX A,@DPTR
JB ACC.7,WND MOV A,#0H MOVX @DPTR,A MOV A,#34H MOV IE,#84H
RET
18
键输入中断子程序
KEY: PUSH DPL
PUSH DPH PUSH ACC PUSH B
MOV DPTR,#0DFFFH MOVX A,@DPTR ANL A,#0FH JZ PKYR MOV A,#40H MOVX @DPTR,A
MOV DPTR,#0DFFEH MOVX A,@DPTR MOV R2,A
ANL A,#38H RR A RR A RR A
MOV B,#08H MUL AB XCH A,R2 ANL A,#07H ADD A,R2 MOV 50H,A
SETB PSW.5
PKYR: POP B
POP ACC POP DPH POP DPL RET
显示子程序1
RDIR1: PUSH DPL
PUSH DPH
MOV DPTR,#0DFFFH MOV A,#90H MOVX @DPTR,A SETB P1.0
MOV A,50H MOV DPTR,#TAB MOVC A,@A+DPTR MOV DPTR,#0DFFFH MOVX @DPTR,A LCALL DL
POP DPH POP DPL RET
TAB: DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,06H,7FH,67H DB 77H,7CH,39H,5EH,79H,71H
显示子程序2
RDIR2: PUSH DPL
PUSH DPH
MOV DPTR,#0DFFFH MOV A,#90H MOVX @DPTR,A MOV R3,#10H
LA1: SETB P1.3
MOV R0,#40H MOV A,@R0
MOV DPTR,#TAB1 MOVC A,@A+DPTR MOV DPTR,#0DFFEH MOVX @DPTR,A LCALL DL CLR P1.3 SETB P1.2 INC R0 MOV A,@R0
MOV DPTR,#TAB1 MOVC A,@A+DPTR MOV DPTR,#0DFFEH MOVX @DPTR,A LCALL DL CLR P1.2 SETB P1.1 INC R0 MOV A,@R0
MOV DPTR,#TAB1 MOVC A,@A+DPTR MOV DPTR,#0DFFEH MOVX @DPTR,A LCALL DL CLR P1.1 SETP P1.0
19
INC R0 MOV A,@R0
MOV DPTR,#TAB1 MOVC A,@A+DPTR MOV DPTR,#0DFFEH MOVX @DPTR,A LCALL DL DJNZ R3,LA1 POP DPH POP DPL RET
TAB1 : DB 3FH,06H,5BH,4FH,66H
DB
6DH,7DH,06H,7FH,67H
DB
77H,7CH,39H,5EH,79H,71H
计算△t 子程序
DT: CLR P1.7
MOV A,43H JZ S1
MOV R1,#00H AJMP END
S1: MOV A,42H
ANL A,#0EH JZ S2
MOV R1,#00H AJMP END
S2: MOV A,41H
JNZ S3
MOV R1,#01H AJMP END
S3: MOV A,41H
JZ S7
MOV B,#0AH MUL AB ADD A,40H MOV R1,#00H CLR C MOV R6,A
S4: ADD A,R6 INC R1 JNC S4 S5: CLR C
ADD A,R6 INC R1
CJNE A,#86H,S6
S6: JC S5
DEC R1 AJMP END
S7: SETB P1.7
MOV A,40H CJNE A,#09H,S8 MOVE R1,#08H AJMP END
S8: MOV A,40H
CJNE A,#08H,S9 MOV R1,#09H AJMP END
S9: MOV A,40H
CJNE A,#07H,S10 MOV R1,#0BH AJMP END
S10: MOV A,40H
CJNE A,#06H,S11 MOV R1,#0DH AJMP END
S11: MOV A,40H
CJNE A,#05H,S12 MOV R1,#0FH AJMP END
S12: MOV A,40H
CJNE A,#40H,S13 MOV R1,#13H AJMP END
S13: MOV A,40H
CJNE A,#03H,S14 MOV R1,#1AH AJMP END
S14: MOV A,40H
CJNE A,#02H,S15 MOV R1,#27H AJMP END
S15: MOV A,40H
CJNE A,#01H,0000H MOV R1,#30H
END: RET
20
2ms延时子程序
DL: PUSH PSW
SETB PSW.3 MOV R1,#14H
DLA: MOV R2,#18H DLB: NOP NOP
DJNZ R2,DLB
DJNZ R1,DLA POP PSW RET
20us延时子程序 DL11: NOP
NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP RET
1ms延时子程序
DL12: PUSH PSW
SETB PSW.3 MOV R1,#0AH
DL2A: MOV R2,#18H DL2B: NOP
NOP
DJNZ R2,DL2B DJNZ R1,DL2A POP PSW RET
三角波输出子程序
PS2: MOV R4,#80H EDA2: MOV A,R4
MOV DPTR,#0BFFFH MOVX @DPTR,A MOV A,R1 JZ ED23
JB P1.7,ED22
ED21: LCALL DL11
DJNZ R1,ED21 AJMP ED23
ED22: LCALL DL12
DJNZ R1,ED22
ED23: CJNE,R4,#0FFH,ED24
AJMP ED25
ED24: INC R4
INC R4 INC R4 INC R4 AJMP EDA2
ED25: MOV A,R4
MOV DPTR,#0BFFFH MOVX @DPTR,A MOV A,R1 JZ ED23A
JB P1.7,ED22A
ED21A: LCALL DL11
DJNZ R1,ED21A AJMP ED23A
ED22A: LCALL DL12
DJNZ R1,ED22A
ED23A:CJNE R4,#80H,ED24A
AJMP ED25A
ED24A: DEC R4
DEC R4 DEC R4 DEC R4 AJMP ED25
ED25A: AJMP PS2
21
阶梯波输出子程序
PS4: MOV R4,#00H EDA4: MOV R7,#08H ED4A: MOV A,R4
MOV DPTR,#0BFFFH MOVX @DPTR,A MOV A,R1 JZ ED43
JB P1.7,ED42
ED41: LCALL DL11
DJNZ R1,ED41
AJMP ED43
ED42: LCALL DL12
DJNZ R1,ED42
ED43: DJNZ R7,ED4A
CJNE R4,#0FFH,ED44 AJMP PS4
ED44: MOV A,R4
ADD A,#10H MOV R4,A AJMP EDA4
|