1、 广工自动化单片机课程设计 自动化 学院 网络工程 专业 班 学号 姓名 1. 程序一: 在显示器上显示任意四位十六进制数: 56AF ORG 0000H LJMP MAIN ORG 1000H MAIN: MOV 52H,#02H MOV 53H,#03H MOV 51H,#01H MOV 50H,#00H MOV R5,#53H KEYSUB: MOV A,#0DH MOV DPTR,#7F00H MOVX @DPTR,A BEGIN: ACALL DIS AJ
2、MP BEGIN DIS: PUSH ACC PUSH 00H PUSH 03H MOV R0,#50H MOV R3,#7FH MOV A,R3 AGAIN: MOV DPTR,#7F03H MOVX @DPTR,A MOV A,@R0 MOV DPTR,#DDEG MOV A,@A+DPTR MOV DPTR,#7F01H MOVX @DPTR,A ACALL DLIMS INC R0 MOV A,R3 JNB ACC.3,OUT RR A MOV R3,A AJMP A
3、GAIN OUT: POP 03H POP 00H POP ACC RET DDEG: DB 79H,7CH,07H,5BH,6FH,7FH,77H,39H A1: MOV A,R3 MOV DPTR,#7F01H MOVX @DPTR,A MOV DPTR,#1000H MOV A,R2 MOVC A,@A+DPTR MOV DPTR,#7F02H MOVX @DPTR,A CALL DLIMS INC R2 MOV A,R3 RL A MOV R3,A JNB ACC.
4、4,BEGIN JMP A1 DLIMS: MOV R7,#05H DL0: MOV R6,#0FFH DL1: DJNZ R6,DL1 DJNZ R7,DL0 RET END 2.程序二: 将8个键按实验室要求定义键值, 按任意键在显示器上显示对应键值, 要求显示值能左移; 9 8 A C E B 7 2 ORG 0000H LJMP MAIN ORG 1000H MAIN: MOV 52H,#00H MOV 53H,#00H MOV 51H,#00H MOV 50H,#00H MOV
5、 R5,#53H KEYSUB: MOV A,#0DH MOV DPTR,#7F00H MOVX @DPTR,A BEGIN: ACALL DIS ACALL CLEAR ACALL CCSCAN JNZ INK1 AJMP BEGIN INK1: ACALL DIS ACALL DLIMS ACALL DLIMS ACALL CLEAR ACALL CCSCAN JNZ INK2 AJMP BEGIN INK2: MOV R2,#07fH MOV R4,#00H COLUM
6、 MOV DPTR,#7F03H MOV A,R2 MOVX @DPTR,A INC DPTR INC DPTR MOVX A,@DPTR JB ACC.2,LONE MOV A,#00H AJMP KCODE LONE: JB ACC.6,NEXT MOV A,#04H KCODE: ADD A,R4 CJNE A,#00H,XYG MOV A,#09H AJMP XYG7 XYG: CJNE A,#01H,XYG1 MOV A,#08H AJMP XYG7 XY
7、G1: CJNE A,#02H,XYG2 MOV A,#0AH AJMP XYG7 XYG2: CJNE A,#03H,XYG3 MOV A,#0CH AJMP XYG7 XYG3: CJNE A,#04H,XYG4 MOV A,#0EH AJMP XYG7 XYG4: CJNE A,#05H,XYG5 MOV A,#0BH AJMP XYG7 XYG5: CJNE A,#06H,XYG6 MOV A,#07H AJMP XYG7 XYG6: CJNE A,#07H,XYG7 MOV A,#02H A
8、JMP XYG7 XYG7: ACALL PUTBUF PUSH ACC KON: ACALL DIS ACALL CLEAR ACALL CCSCAN JNZ KON POP ACC NEXT: INC R4 MOV A,R2 JNB ACC.3,KEER RR A MOV R2,A AJMP COLUM KERR: AJMP BEGIN CCSCAN: MOV DPTR,#7F03H MOV A,#00H MOV @DPTR,A INC DPTR INC DPTR MOVX A
9、 ,@DPTR CPL A ANL A,#44H RET CLEAR: MOV DPTR,#7F03H MOV A,#00H MOVX @DPTR,A RET DIS: PUSH ACC PUSH 00H PUSH 03H MOV R0,#50H MOV R3,#0F7H MOV A,R3 AGAIN: MOV DPTR,#7F03H MOVX @DPTR,A MOV A,@R0 MOV DPTR,#DDEG MOVC A,@A+DPTR MOV DPTR,#7F01H MOVX
10、@DPTR,A ACALL DLIMS INC R0 MOV A,R3 JNB ACC.0,OUT RL A MOV R3,A AJMP AGAIN OUT: POP 03H POP 00H POP ACC RET DDEG: DB 0FCH,60H,0DAH,0F2H DB 66H,0B6H,0BEH,0E0H DB 0FEH,0F6H,0EEH,3EH DB 9CH,7AH,9EH,8EH DLIMS: MOV R7,#01H DL0: MOV R6,#0FFH DL1: DJNZ R
11、6,DL1 DJNZ R7,DL0 RET PUTBUF: PUSH 00H PUSH ACC MOV 53H,52H MOV 52H,51H MOV 51H,50H POP ACC MOV 50H,A GOBACK: POP 00H RET END 2. 程序三: 程序实现以下要求 a) 定义键盘按键 b) 可进行三位16进制除法运算 c) 可进行两位10进制乘法运算 ORG 0000H LJMP MAIN ORG 1000H MAIN: MOV 53H,#00H MOV 52H,#00H
12、 MOV 51H,#00H MOV 50H,#00H MOV 60H,#00H MOV 61H,#00H MOV 62H,#00H MOV 63H,#00H MOV 64H,#00H MOV 65H,#00H MOV 66H,#00H MOV 67H,#00H MOV 68H,#0CCH KEYSUB: MOV A,#0DH MOV DPTR,#7F00H MOVX @DPTR,A BEGIN: ACALL DIS ACALL CLEAR ACALL CCSCAN JNZ INK1
13、AJMP BEGIN INK1: ACALL DIS ACALL DLIMS ACALL DLIMS ACALL CLEAR ACALL CCSCAN JNZ INK2 AJMP BEGIN INK2: MOV R2,#07fH MOV R4,#00H COLUM: MOV DPTR,#7F03H MOV A,R2 MOVX @DPTR,A INC DPTR INC DPTR MOVX A,@DPTR JB ACC.2,LONE MOV A,#00H AJM
14、P KCODE LONE: JB ACC.6,NEXT MOV A,#04H KCODE: ADD A,R4 CJNE A,#00H,XYG MOV A,#09H AJMP XYG7 XYG: CJNE A,#01H,XYG1 MOV A,#08H AJMP XYG7 XYG1: CJNE A,#02H,XYG2 MOV A,#0AH AJMP XYG7 XYG2: CJNE A,#03H,XYG3 MOV A,#0CH AJMP XYG7 XYG3: CJNE A,#04H,XYG4 MOV A
15、0EH AJMP XYG7 XYG4: CJNE A,#05H,XYG5 MOV A,#0BH AJMP XYG7 XYG5: CJNE A,#06H,XYG6 MOV A,#07H AJMP XYG7 XYG6: CJNE A,#07H,XYG7 MOV A,#02H AJMP XYG7 XYG7: ACALL PUTBUF PUSH ACC KON: ACALL DIS ACALL CLEAR ACALL CCSCAN JNZ KON POP ACC NEXT: INC R4 MOV A
16、R2 JNB ACC.3,KEER RR A MOV R2,A AJMP COLUM KERR: AJMP BEGIN CCSCAN: MOV DPTR,#7F03H MOV A,#00H MOV @DPTR,A INC DPTR INC DPTR MOVX A ,@DPTR CPL A ANL A,#44H RET CLEAR: MOV DPTR,#7F03H MOV A,#00H MOVX @DPTR,A RET DIS: PUSH ACC PUSH 00H PUSH
17、 03H MOV R0,#50H MOV R3,#0F7H MOV A,R3 AGAIN: MOV DPTR,#7F03H MOVX @DPTR,A MOV A,@R0 MOV DPTR,#DDEG MOVC A,@A+DPTR MOV DPTR,#7F01H MOVX @DPTR,A ACALL DLIMS INC R0 MOV A,R3 JNB ACC.0,OUT RL A MOV R3,A AJMP AGAIN OUT: POP 03H POP 00H POP AC
18、C RET DDEG: DB 11H,12H,0CH,66H DB 10H,09H,04H,08H SZDEG: DB 0FCH,60H,0DAH,0F2H DB 66H,0B6H,0BEH,0E0H DB 0FEH,0F6H,0EEH,3EH DB 9CH,7AH,9EH,8EH DB 0CCH,0DDH,0EEH PUTBUF: PUSH 00H PUSH ACC MOV A,62H MOV 63H,A MOV A,61H MOV 62H,A MOV A,60H MOV 61H,A POP ACC
19、 PUSH DPH PUSH DPL MOV R5,A MOV DPTR,#DDEG MOVC A,@A+DPTR MOV 60H,A MOV A,R5 POP DPL POP DPH GOBACK: POP 00H JISUAN: CJNE A,#02H,CHUHAO ACALL FUHAO AJMP JSEND CHUHAO: CJNE A,#01H,DENGYUHAO ACALL FUHAO AJMP JSEND DENGYUHAO:CJNE A,#03H,SHUZI ACALL
20、 DENGYU AJMP JSEND SHUZI: ACALL PUTBUF JSEND: RET FUHAO: PUSH ACC PUSH DPH PUSH DPL MOV DPTR,#DDEG MOVC A,@A+DPTR MOV DPTR,#SEDEG MOVC A,@A+DPTR MOV 68H,A MOV A,60H MOV 64H,A MOV A,61H MOV 65H,A MOV A,62H MOV 66H,A MOV A,63H MOV 6
21、7H,A MOV 60H,#00H MOV 61H,#00H MOV 62H,#00H MOV 63H,#00H POP DPL POP DPH POP ACC RET DENGYU: PUSH ACC MOV A,61H ANL A,#0FH RL A RL A RL A RL A MOV R5,A MOV A,60H ANL A,#0FH ORL A,R5 MOV 50H,A MOV A,63H ANL A,
22、0FH RL A RL A RL A RL A MOV R5,A MOV A,62H ANL A,#0FH ORL A,R5 MOV 51H,A MOV A,65H ANL A,#0FH RL A RL A RL A RL A MOV R5,A MOV A,64H ANL A,#0FH ORL A,R5 MOV 52H,A MOV A,67H ANL A,#0FH RL A RL A
23、 RL A RL A MOV R5,A MOV A,66H ANL A,#0FH ORL A,R5 MOV 53H,A MOV A,68H CJNE A,#0DDH,CHENGFA AJMP JIWAN CHENGFA: MOV A,50H ANL A,#07H MOV 69H, A MOV A,50H ANL A,#10H RR A ORL 69H,A MOV A,50H ANL A,#60H RR A MOV 70H, A
24、 MOV A,51H ANL A,#03H SWAP A RL A RL A ORL 70H,A MOV A,51H ANL A,#04H RR A RR A MOV 71H,A MOV A,51H ANL A,#70H RR A RR A RR A ORL 71H,A MOV A,#00H ORL A,71H MOV 51H,A MOV A,70H ORL A,69H MOV 50H,A
25、MOV A,52H ANL A,#07H MOV 69H,A MOV A,52H ANL A,#10H RR A ORL 69H,A MOV A,52H ANL A,#60H RR A MOV 70H,A MOV A,53H ANL A,#03H SWAP A RL A RL A ORL 70H,A MOV A,53H ANL A,#04H RR A RR A MOV 71H,A MOV A,53H
26、 ANL A,#70H RR A RR A RR A ORL 71H,A MOV A,#00H ORL A,71H MOV 53H,A MOV A,70H ORL A,69H MOV 52H,A DBMUL: MOV A,52H MOV B,50H MUL AB XCH A,50H MOV 74H,B MOV B,53H MUL AB ADD A,74H MOV 75H,A CLR A ADDC A,B MOV 74
27、H,A MOV A,51H MOV B,52H MUL AB ADD A,75H XCH A,51H XCH A,B ADDC A,74H MOV 74H,A MOV 73H,#00H PUSH ACC MOV A,73H RLC A MOV 73H,A POP ACC MOV A,53H MUL AB ADD A,74H MOV 74H,A CLR A MOV ACC.0,C PUSH ACC MOV A,73H
28、 MOV C,ACC.0 POP ACC ADDC A,B MOV 75H,A MOV 53H,51H MOV 52H,50H COVER: MOV A,52H ANL A,#07H MOV 60H,A MOV A,52H RR A RR A RR A ANL A,#07H MOV 61H,A MOV A,52H RR A RR A RR A RR A RR A RR A ANL A,#03H M
29、OV 62H,A MOV A,53H JNB ACC.0,BU MOV A,62H ADD A,#04H MOV 62H,A BU: MOV A,53H RR A ANL A,#07H MOV 63H,A AJMP QK JIWAN: MOV A,50H ANL A,#0FH MOV 60H,A MOV A,50H ANL A,#0F0H RR A RR A RR A RR A MOV 61H,A MOV A,51H A
30、NL A,#0FH MOV 62H,A MOV A,51H ANL A,#0F0H RR A RR A RR A RR A MOV 63H,A QK: MOV 50H,#00H MOV 51H,#00H MOV 52H,#00H MOV 53H,#00H MOV 64H,#00H MOV 65H,#00H MOV 66H,#00H MOV 67H,#00H MOV 68H,#0CCH POP ACC RET DL1MS: MOV R7,#05H DL0: MOV R6,#0FFH DL1: DJNZ R6,DL1 DJNZ R7,DL0 RET RET END 心得体会: 这次的课程设计主要是对单片机编程知识的一次综合运用,也是由理论结合实践的第一步,为我以后的学习奠定了良好的基础。经过这次课程设计, 我对单片机系统有了更加清楚地认识, 知道了所学知识的重要性, 对设计的过程与步骤以及应注意的细节都有了更为深刻的理解和领会。设计中遇到了许多平时没有遇到的问题, 可是, 在老师的精心指点,以及在同学的帮助下, 基本上得到了解决。






