ORG 00H ;程序從程序存儲器的0單元開始存放
AJMP MAIN ;跳轉到主程序
ORG 20H ;主程序從程序存儲器的30H單元開始存放
MAIN:
MOV 30H, #0 ;給30H單元賦初始值0
DISPLAY: MOV R2, #8
MOV R0,#30H ;將顯示數據的存放首單元賦值給R0,以便調用循環將數值賦值給A
MOV DPTR,#TABLE ;將顯示碼的首地址賦值給DPTR
DISLOP:
MOV A,@R0 ;將以R0內的數30H內的數值賦值給A
MOVC A,@A+DPTR ;查表語句,將顯示碼賦值給A
DP2: RLC A ;帶進位標志的左移操作
MOV P2.0,C ;串行輸出一位段碼數據
CLR P2.1 ;
SETB P2.1 ;來個上升沿以產生移位時鐘, 每次來這個脈沖,移位寄存器上的數往后面移動一位,原來A=1,
DJNZ R2,DP2
JMP $
L2025: MOV R6,#28H ; 延時子程序
L2027: MOV R7,#0F9H
L2029: DJNZ R7,$
DJNZ R6,L2027
DJNZ R5,L2025
RET
TABLE:
DB 40H,79H,24H,30H,19H ;0,1,2,3,4
DB 12H,02H,78H,00H,10H ;5,6,7,8,9
END
|