资源描述
自动化 学院 网络工程 专业 班 学号 姓名
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
AJMP 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 AGAIN
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,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 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: 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
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,#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,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 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 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 R6,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
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
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
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
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,#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,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 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 ACC
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
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 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 67H,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,#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
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
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
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
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 74H,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
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
MOV 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
ANL 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
心得体会:
这次课程设计重要是对单片机编程知识一次综合运用,也是由理论结合实践第一步,为我后来学习奠定了良好基本。通过这次课程设计,我对单片机系统有了更加清晰地结识,懂得了所学知识重要性,对设计过程与环节以及应注意细节均有了更为深刻理解和领略。设计中遇到了许多平时没有遇到问题,但是,在教师精心指点,以及在同窗协助下,基本上得到理解决。
展开阅读全文