1、实验1 ORG 0000H AJMP MAIN ORG 0200H BUFF EQU 60H MAIN:MOV R3,#00H MOV R4,#00H ACALL DISPLAY ACALL KEXAM JZ MAIN ACALL D10ms ACALL KEXAM JZ MAIN MOV R2,#0DFH MOV DPTR,#8004H MOV A,#00H MOVX @DPTR,A KEY1:MOV DPTR,#8002H MOV A
2、R2 MOVX @DPTR,A MOV DPTR,#8001H MOVX A,@DPTR CPL A ANL A,#0FH JNZ KEY2 MOV A,R3 ADD A,#04H MOV R3,A MOV A,R2 RR A MOV R2,A JB ACC.0,KEY1 AJMP MAIN KEY2:CPL A KEY3:RRC A JNC KEY4 INC R4 AJMP KEY3
3、 KEY4:ACALL DISPLAY ACALL D10ms ACALL KEXAM JNZ KEY4 MOV A,R3 ADD A,R4 MOV BUFF,A KEND:AJMP MAIN KEXAM:MOV DPTR,#8002H MOV A,#00H MOVX @DPTR,A MOV DPTR,#8001H MOVX A,@DPTR CPL A ANL A,#0FH RET DISPLAY:MOV DPTR
4、#TAB MOV A,60H MOVC A,@A+DPTR MOV DPTR,#8004H MOVX @DPTR,A MOV DPTR,#8002H MOV A,#10H MOVX @DPTR,A RET D10ms:MOV R5,#30H DL:MOV R6,#0FFH DL0:DJNZ R6,DL0 DJNZ R5,DL RET TAB:DB 3FH 06H 66H 07H DB 71H 5BH 6DH 7F
5、H DB 79H 4FH 7DH 6FH DB 5EH 39H 7CH 77H 实验2 ORG 0000H AJMP MAIN ORG 0100H MAIN: ACALL KEXAM ;检查按键 JZ MAIN ;无继续 ACALL D10ms ;延时去抖 ACALL KEXAM JZ MAIN START: MOV DPTR,#8002H ;键值分析及选通道
6、 MOV A,#0DFH MOVX @DPTR,A MOV DPTR,#8001H MOVX A,@DPTR CPL A ANL A,#07H CJNE A,#01H,KEY1 ;INT0 AJMP INT0 KEY1: CJNE A,#02H,KEY2;INT1 AJMP INT1 KEY2: CJNE A,#04H,MAIN AJMP AUTO INT0: ACALL DISPLAY1
7、 MOV A,#0FH ;0-5V MOV DPTR,#9000H MOV R0,#40H MOVX @DPTR,A ACALL D10ms MOVX A,@DPTR MOV @R0,A ACALL CAI ACALL DISPLAY ACALL KEXAM JZ INT0 AJMP START INT1: ACALL DI
8、SPLAY2 MOV A,#0FH ;固定值 MOV DPTR,#9001H MOV R0,#40H MOVX @DPTR,A ACALL D10ms MOVX A,@DPTR MOV @R0,A ACALL CAI ACALL DISPLAY ACALL KEXAM JZ INT1 AJMP START AUT
9、O: MOV 50H,#000 LOP0:ACALL D10ms DJNZ 50H,LOP0 AJMP INT00 AUTO1: MOV 51H,#000 LOP1:ACALL D10ms DJNZ 51H,LOP1 AJMP INT11 INT00: ACALL DISPLAY1 MOV A,#0FH ;0-5V MOV DPTR,#9000H
10、 MOV R0,#40H MOVX @DPTR,A ACALL D10ms MOVX A,@DPTR MOV @R0,A ACALL CAI ACALL DISPLAY ACALL D10ms MOV 53H,#30 PPP: ACALL DISPLAY1 ACALL DISPLAY ACALL DISPLAY1 ACALL DISPLAY
11、 ACALL DISPLAY1 ACALL DISPLAY DJNZ 53H,PPP ACALL KEXAM JZ AUTO1 AJMP START INT11: ACALL DISPLAY2 MOV A,#0FH ;固定值 MOV DPTR,#9001H MOV R0,#40H MOVX @DPTR,A
12、 ACALL D10ms MOVX A,@DPTR MOV @R0,A ACALL CAI ACALL DISPLAY ACALL D10ms MOV 54H,#30 OOO: ACALL DISPLAY2 ACALL DISPLAY ACALL DISPLAY2 ACALL DISPLAY ACALL DISPLAY2 ACALL DISPLAY
13、 DJNZ 54H,OOO ACALL KEXAM JZ AUTO AJMP START KEXAM: MOV DPTR,#8004H ;按键判断 MOV A,#00H MOVX @DPTR,A MOV DPTR,#8002H MOV A,#00H MOVX @DPTR,A MOV DPTR,#8001H MOVX A,@DPTR CP
14、L A ANL A,#0FH RET CAI: MOV A,@R0 ;数据解决 MOV B,#51 DIV AB MOV 40H,A MOV A,B CLR F0 SUBB A,#1AH MOV F0,C MOV A,#10 MUL AB MOV B,#51 DIV AB JB F0,LOOP2 ADD A,#5 LOOP2:MOV 41H,A
15、 MOV A,B MOV A,B CLR F0 SUBB A,#1AH MOV F0,C MOV A,#10 MUL AB MOV B,#51 DIV AB JB F0,LOOP3 ADD A,#5 LOOP3:MOV 42H,A RET DISPLAY:MOV DPTR,#TAB ;列表显示 个位整数 40H MOV A,40H MOVC A,@A+
16、DPTR MOV DPTR,#8004H MOVX @DPTR,A MOV DPTR,#8002H MOV A,#10H MOVX @DPTR,A ACALL D10ms MOV A,#80H ;小数点 MOV DPTR,#8004H MOVX @DPTR,A MOV DPTR,#8002H MOV A,#10H MOVX @DPTR,A
17、 ACALL D10ms MOV DPTR,#TAB ;余数 41H 42H MOV A,41H MOVC A,@A+DPTR MOV DPTR,#8004H MOVX @DPTR,A MOV DPTR,#8002H MOV A,#08H MOVX @DPTR,A ACALL D10ms MOV DPTR,#TAB MOV A,42H
18、 MOVC A,@A+DPTR MOV DPTR,#8004H MOVX @DPTR,A MOV DPTR,#8002H MOV A,#04H MOVX @DPTR,A ACALL D10ms RET DISPLAY1: MOV A,#3FH MOV DPTR,#8004H MOVX @DPTR,A MOV DPTR,#8002H MOV A,#2
19、0H MOVX @DPTR,A LCALL D10ms RET DISPLAY2: MOV A,#06H MOV DPTR,#8004H MOVX @DPTR,A MOV DPTR,#8002H MOV A,#20H MOVX @DPTR,A LCALL D10ms RET D10ms: MOV R5,#03H ;延时10 DL
20、 MOV R6,#0FFH DL0: DJNZ R6,DL0 DJNZ R5,DL RET TAB: DB 3FH,06H,5BH,4FH DB 66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH DB 39H,5EH,79H,71H 实验4 ORG 0000H AJMP KEYPR ORG 0200H KEYPR:MOV R3,#00H ;列寄存器 MOV R4,#00H ;行寄存器 AC
21、ALL KEXAM JZ KEND ACALL D10ms ACALL KEXAM JZ KEND MOV R2,#0DFH ;扫描初值 KEY1:MOV DPTR,#8004H MOV A,#00H MOVX @DPTR,A MOV DPTR,#8002H ;送列码地址 MOV A,R2 MOVX @DPTR,A ;扫描第一列 MOV DPTR,#8001H ;送行码地址 MOVX A,@DP
22、TR CPL A ANL A,#0FH JNZ KEY2 ;有键按下,求行值 MOV A,R3 ;无键按下,列加4 ADD A,#04H MOV R3,A MOV A,R2 ;求下一列扫描值 RR A MOV R2,A JB ACC.0,KEY1 ;判断与否已全扫描 AJMP KEND KEY2:CPL A ;恢复行模型 KEY3:RRC A
23、 JNC KEY4 INC R4 AJMP KEY3 KEY4:ACALL D10ms ACALL KEXAM JNZ KEY4 MOV A,R3 ADD A,R4 MOV 60H,A ;键值存入60H L0:CJNE A,#00H,L1 MOV DPTR,#DLTAB MOV A,30H CJNE A,#05,ADDF1 MOV 30H,#00H LJMP ADDF2 ADDF1:INC 30H ADDF2:MOVC A,@A+DPTR
24、 MOV 31H,A DLTAB:DB 01H,20H,50H,80H,0A0H L1:CJNE A,#0FH,L2 ;锯齿波 LS0: ACALL DISPLAY MOV DPTR,#9000H MOV A,#00H LS1:MOVX @DPTR,A INC A ACALL DELAY CJNE A,#0FFH,LS1 ACALL DELAY ACALL DISPLAY ACALL KEXAM JZ LS0 AJMP KEND
25、KEND:ACALL DISPLAY LJMP KEYPR L2:CJNE A,#0EH,L3 ;三角波 LS2: ACALL DISPLAY MOV DPTR,#9000H MOV A,#00H MOV R0,#200 LS3: ACALL DELAY MOVX @DPTR,A INC A CJNE A,#0FFH,LS3 LS4: ACALL DELAY DEC A MOVX @DPTR,A
26、 CJNE A,#00H,LS4 DJNZ R0,LS3 ACALL DISPLAY ACALL KEXAM JZ LS2 AJMP KEND L3:CJNE A,#0DH,L4 ;正弦波 LS5: ACALL DISPLAY MOV A,#00 MOV R0,A LS6: MOV DPTR,#TZSB MOV A,R0 MOVC A,@A+DPTR MOV DPTR,#9000H MOVX @
27、DPTR,A ACALL DELAY INC R0 CJNE R0,#32,LS6 ACALL DISPLAY ACALL KEXAM JZ LS5 AJMP KEND L4:CJNE A,#0CH,KEND ;方波 ACALL DISPLAY MOV R0,#200 LS7: ACALL DISPLAY MOV A,#00 MOV DPTR,#9000H MOVX @DPTR,A ACALL DELAY MOV A,
28、255 MOVX @DPTR,A ACALL DELAY DJNZ R0,LS7 ACALL D10ms ACALL DISPLAY ACALL KEXAM JZ LS7 AJMP KEND DISPLAY:MOV DPTR,#TAB ;显示子程序 MOV A,60H MOVC A,@A+DPTR MOV DPTR,#8004H MOVX @DPTR,A MOV DPTR,#8002H
29、 MOV A,#01H MOVX @DPTR,A RET D10ms:MOV R5,#03H ;延时10毫秒 DL: MOV R6,#0FFH DL0: DJNZ R6,DL0 DJNZ R5,DL RET DELAY:MOV R6,31H DL1:DJNZ R6,DL1 RET KEXAM:MOV DPTR,#8002H ;检查与否有键按下子程序 MOV A,#00H MOVX @DPTR,A MOV
30、DPTR,#8001H MOVX A,@DPTR CPL A ANL A,#0FH RET TAB:DB 3FH,06H,66H,07H,71H,5BH,6DH,7FH,79H,4FH,7DH,6FH,5EH,39H,7CH,77H TZSB: DB 80H , 98H, 0B0H, 0C6H, 0DAH, 0EAH, 0F5H, 0FDH DB 0FFH, 0FDH, 0F5H , 0EAH, 0DAH, 0C6H, 0B0H, 98H DB 80H , 68H, 50H , 3A
31、H, 26H, 16H, 0BH, 03H DB 01H, 03H, 0BH, 16H, 26H, 3AH, 50H, 68H 实验5 ORG 0000H AJMP MAIN ORG 0200H MAIN:MOV DPTR,#8001H MOV A,#00H MOVX @DPTR,A MOV DPTR,#8002H MOV A,#00H MOVX @DPTR,A MOV R3,#00H MOV R4,#00H
32、 ACALL DISPLAY ACALL KEXAM JZ MAIN ACALL DL10ms ACALL KEXAM JZ MAIN MOV R2,#0DFH MOV DPTR,#8004H MOV A,#00H MOVX @DPTR,A KEY1:MOV DPTR,#8002H MOV A,R2 MOVX @DPTR,A MOV DPTR,#8001H MOVX A,@DPTR CPL A ANL A,#
33、0FH JNZ KEY2 MOV A,R3 ADD A,#04H MOV R3,A MOV A,R2 RR A MOV R2,A JB ACC.0,KEY1 AJMP MAIN KEY2:CPL A KEY3:RRC A JNC KEY4 INC R4 AJMP KEY3 KEY4:ACALL DISPLAY ACALL DL10ms ACALL KEXAM JNZ KEY4 MOV A,R3
34、 ADD A,R4 MOV 30H,A KEY8:CJNE A,#00H,KEY5 ZIJIAN:MOV 41H,#0 LCALL DISPLAY1 ACALL DL10ms ACALL KEXAM ACALL DL10ms ACALL KEXAM JZ ZIJIAN AJMP MAIN KEY5: CJNE A,#01H,KEY1 JK: LCALL MSFC LCALL DISPLAY1
35、 ACALL DL10ms AJMP JK MSFC: MOV TMOD,#15H MOV R1,#0AH MOV TL0,#00H MOV TH0,#00H MOV TL1,#0B0H MOV TH1,#3CH SETB P3.4 JB P3.4,$ SETB TR0 SETB TR1 WAIT:JBC TF1,NE
36、XT SJMP WAIT NEXT:MOV TL1,#0B0H MOV TH1,#3CH DJNZ R1,WAIT CLR TR1 CLR TR0 MOV 41H,TH0 MOV 40H,TL0 RET BBCD:MOV R2,40H ;二----十进制转换 MOV R3,41H MOV R0,#64H ;64H 高位数据存储单元 MOV R7,#04H MOV DPTR,#PWTAB
37、 MOV R6,#00H BBC1:MOV A,R6 MOVC A,@A+DPTR MOV R4,A INC R6 MOV A,R6 MOVC A,@A+DPTR MOV R5,A INC R6 MOV @R0,#00H BBC2:CLR C MOV A,R2 SUBB A,R4 MOV R2,A MOV A,R3 SUBB A,R5 MOV R3,A JC BBC3 INC @R0
38、 SJMP BBC2 BBC3:MOV A,R2 ADD A,R4 MOV R2,A MOV A,R3 ADDC A,R5 MOV R3,A DEC R0 DJNZ R7,BBC1 MOV A,R2 MOV @R0,A RET PWTAB: DB 10H 27H 0E8H 03H 0E8H 03H 0AH 00H DISPLAY :MOV R2,#20H ;显示循环次数 MOV R0,#64H
39、 ; 64H 为高位数据存储单元 MOV R7,#4 ; 共 2 个八段管 MOV R6,#00100000B ; 从左边开始显示 MOV DPTR,#8002H MOV A,#0 MOVX @DPTR,A ; 关所有八段管 LOOP:M
40、OV DPTR,#TAB MOV A,@R0 MOVC A,@A+DPTR CJNE R0,#63H,LOPP ORL A,#80H ;第二位打小数点,单位为 KHz LOPP:MOV DPTR,#08004H MOVX @DPTR,A MOV DPTR,#08002H MOV A,R6 MOVX @DPTR,A ; 显示一位八段管 C
41、ALL DL10ms MOV A,R6 ; 显示下一位 RR A MOV R6,A DEC R0 DJNZ R7,LOOP DJNZ R2,DISPLAY RET DISPLAY1:MOV DPTR,#TAB MOV A,41H MOVC A,@A+DPTR MOV DPTR,#8004H MOVX @DPTR,A MOV DPTR,
42、8002H MOV A,#10H MOVX @DPTR,A MOV A,40H MOVC A,@A+DPTR MOV DPTR,#8004H MOVX @DPTR,A MOV DPTR,#8002H MOV A,#08H MOVX @DPTR,A RET DDFF:DB 0CH,09FH,4AH,0BH,99H DB 29H,28H,8FH,08H,09H KEXAM: MO
43、V DPTR,#8002H ; 列地址 MOV A,#00H MOVX @DPTR,A MOV DPTR,#8001H ; 行地址 MOVX A,@DPTR CPL A ANL A,#0FH RET DL10ms:MOV 11H,#30H DL:MOV 10H,#255 DL0:DJNZ 10H,DL0 DJNZ 11H,DL RET TAB:DB 3FH 06H 66H 07H
44、 DB 71H 5BH 6DH 7FH DB 79H 4FH 7DH 6FH DB 5EH 39H 7CH 77H 考试 ORG 0000H AJMP MAIN ORG 0200H BUFF EQU 60H MAIN:CLR P1.4 CLR P1.5 CLR P1.6 CLR P1.7 MOV R3,#00H MOV R4,#00H ACALL DISPLAY ACALL KEXAM JZ MAIN ACALL D10ms ACAL
45、L KEXAM JZ MAIN MOV R2,#0DFH MOV DPTR,#0D004H MOV A,#00H MOVX @DPTR,A KEY1:MOV DPTR,#0D002H MOV A,R2 MOVX @DPTR,A MOV DPTR,#0D001H MOVX A,@DPTR CPL A ANL A,#0FH JNZ KEY2 MOV A,R3 ADD A,#04H MOV R3,A MOV
46、A,R2 RR A MOV R2,A JB ACC.0,KEY1 AJMP MAIN KEY2:CPL A KEY3:RRC A JNC KEY4 INC R4 AJMP KEY3 KEY4:ACALL DISPLAY ACALL D10ms ACALL KEXAM JNZ KEY4 MOV A,R3 ADD A,R4 CJNE A,#0CH,KEY5 ;INT0 AJMP INT0 KEY5: CJ
47、NE A,#08H,KEY6;INT1 AJMP INT1 KEY6: CJNE A,#04H,MAIN AJMP AUTO INT0: ACALL DISPLAY1 MOV A,#0FH MOV DPTR,#0C000H MOV R0,#40H MOVX @DPTR,A ACALL D10ms MOVX A,@DPTR CLR C SUBB A,#
48、178 JC GREEN SETB P1.4 AJMP PASS GREEN: SETB P1.5 PASS:ADD A,#178 MOV @R0,A ACALL CAI ACALL DISPLAY ACALL KEXAM JZ INT0 KEND:AJMP MAIN INT1: ACALL DISPLAY2 MOV A,#0FH
49、 MOV DPTR,#0C001H MOV R0,#40H MOVX @DPTR,A ACALL D10ms MOVX A,@DPTR CLR C SUBB A,#247 JC GREN SETB P1.7 AJMP PAS GREN: SETB P1.6 PAS:ADD A,#247 MOV @R0,A
50、 ACALL CAI ACALL DISPLAY ACALL KEXAM JZ INT1 AJMP MAIN AUTO: MOV 50H,#000 LOP0:ACALL D10ms DJNZ 50H,LOP0 AJMP INT00 AUTO1: MOV 51H,#000 LOP1:ACALL D10ms DJNZ 51H,LOP1 AJMP INT11 I






