INIT: INIT1:
lcall Init_Device
;调用初始设置子程序
MOV
R1,#00H
;操作数据初始值
MOV
A,R1
MAIN: MOV
DPTR,#TAB MOVC MOV CALL
;读取与 A 中数值对应的显示段码
A,@A+DPTR
P5,A
;段码送并行口 1 显示
DELAY
CALL CALL CALL CALL CALL CALL CALL CALL CALL INC MOV CJNE SJMP
MOV DPTR,#DP2
;显示段码送 NUM2
MOVX @DPTR,A
MOV A,DP_H
;读高位显示值
CALL DECODE
;调用换码子程序
MOV P5,A
;显示段码送 NUM1
RET
;换码子程序
DECODE: MOV DPTR,#TAB
MOVC A,@A+DPTR
RET
TAB:
DB
0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H ;显示段码 0-7
;初始设置子程序文件包含伪指令
END
1-2.
修改目标:显示 0-9
基本思路:修改归零判定语句的判定值
最终程序:
$include (C8051F020.inc)
;C8051F02x 系列单片机信息头文件包含伪指令
ORG
0000H
LJMP
INIT
TAB: DB DB
0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H ;字符段码表 0-7 080H,090H,088H,083H,0C6H,0A1H,086H,08EH ;字符段码表 8-F