电子工程设计第二阶段设计报告
16
最终我们的电路方案如图所示:
二.电路调试
(1)显示电路模块调试
按照图进行电源板焊接完毕,而后再次认真查线一遍然后再开始测试。测试时,将电源板,单片机,显示电路正确连接。按正确加电顺序供电,如果一切正常可以开始进一步的测试。运行显示模块测试程序,如果电路工作正常,在4个数码管上应有数字 0-9 滚动显示。否则,说明电路存在故障。显示电路的编程流程如图:
16
电子工程设计第二阶段设计报告
17
调试程序如图:
$include (C8051F020.inc) DP_DATA1 EQU 000H DP_DATA2 EQU 100H DP_DATA3 EQU 200H DP_DATA4 EQU 300H MAIN: LCALL Init_Device CLR A
MOV DPTR,#DP_DATA1 MOVX @DPTR,A
MOV DPTR,#DP_DATA2
MOVX @DPTR,A
MOV DPTR,#DP_DATA3
MOVX @DPTR,A
MOV DPTR,#DP_DATA4 MOVX @DPTR,A MOV R7,#0H LOOP: INC R7 MOV A,R7
CJNE A,#10,L1 MOV R7,#0H CLR A
17
电子工程设计第二阶段设计报告
18
L1: CALL DECODE MOV DPTR,#DP_DATA1
MOVX @DPTR,A CALL DELAY INC R7 MOV A,R7
CJNE A,#10,L2 MOV R7,#0H CLR A
L2: CALL DECODE MOV DPTR,#DP_DATA2 MOVX @DPTR,A CALL DELAY INC R7 MOV A,R7
CJNE A,#10,L3 MOV R7,#0H CLR A L3: CALL DECODE
MOV DPTR,#DP_DATA3
MOVX @DPTR,A CALL DELAY INC R7
MOV A,R7
CJNE A,#10,L4 MOV R7,#0H CLR A L4: CALL DECODE
MOV DPTR,#DP_DATA4 MOVX @DPTR,A CALL DELAY 返回;
JMP LOOP
DECODE: MOV DPTR,#TAB MOVC A,@A+DPTR RET DELAY: MOV R5,#00H D1: MOV R6,#0H
DJNZ R6,$ DJNZ R5,D1 RET
TAB: DB 0C0H,0F9H,0A4H,0B0H,099H DB 092H,082H,0F8H,080H,090H
18
电子工程设计第二阶段设计报告
19
$include (Init_Device.inc) END
(2) 键盘控制模块调试:
运行键盘控制电路的测试程序,如果电路工作正常,在键盘上每按 1 个键,都会通过 2 位数码显示管,显示相应的行编码和列编码。否则,说明电路存在故障。
汇编程序流程图:
调试程序如图:
$include (C8051F020.inc) KEY_WRITE EQU 400H KEY_READ EQU 500H DP_DATA1 EQU 000H DP_DATA2 EQU 100H L_BUF EQU 30H R_BUF EQU 31H
LCALL Init_Device MOV A,#0FFH
MOV DPTR,#DP_DATA1 MOVX @DPTR,A MOV DPTR,#DP_DATA2 MOVX @DPTR,A
LOOP: MOV R7,#0
INC R7 MOV A,#0FEH
19
电子工程设计第二阶段设计报告
20
MOV DPTR,#KEY_WRITE MOVX @DPTR,A
MOV DPTR,#KEY_READ MOVX A,@DPTR ORL A,#0E0H CPL A JZ JP3 MOV R5,#5 MOV R6,#0
JP1: INC R6
RRC A
JC JP2 DJNZ R5,JP1 JMP JP3 JP2: MOV L_BUF,R7 MOV R_BUF,R6 CALL DISPLAY CALL DELAY JP3: INC R7 MOV A,#0FDH
MOV DPTR,#KEY_WRITE MOVX @DPTR,A MOV DPTR,#KEY_READ MOVX A,@DPTR ORL A,#0E0H CPL A
JZ JP6 MOV R5,#5 MOV R6,#0 JP4: INC R6 RRC A
JC JP5 DJNZ R5,JP4 JMP JP6
JP5: MOV L_BUF,R7 MOV R_BUF,R6 CALL DISPLAY CALL DELAY JP6: INC R7 MOV A,#0FBH
MOV DPTR,#KEY_WRITE MOVX @DPTR,A
MOV DPTR,#KEY_READ MOVX A,@DPTR
20