MOV A,R0 ;取碼指針載入A
MOV DPTR,#TAB ;數(shù)據(jù)指針指到TAB
MOVC A,@A+DPTR ;到TAB取下半部的數(shù)據(jù)碼
MOV P2,A ;輸出至P2顯示
INC R0 ;取碼值加1
MOV R3,#25 ;延時
DJNZ R3,$
MOV A,#00H ;清除屏幕
MOV P0,A
MOV P2,A
DELAY: MOV R3,#01 ;延時
D7: MOV R5,#50
DJNZ R5,$
DJNZ R3,D7
RET
;*************************************************
MOVE:
MOV 20H,#00 ;取碼指針暫存地址20H初值為00H
MOV R4,#00H ;74154掃描指針初值
M1: MOV R1,#1FH ;每幕停留的時間
M2: MOV R6,#32 ;每幕2個字,32個數(shù)據(jù)
MOV R0,20H ;取碼指針存入R0
M3: ACALL READ1 ;調(diào)用取碼子程序
INC R4 ;掃描下一列
DJNZ R6,M3 ;顯示1幕?
MOV R4,#00 ;清除74154掃描指針為00
DJNZ R1,M2 ;每幕停留時間到了?
MOV A,20H ;取碼指針載入A
ADD A,#02 ;加2
MOV 20H,A ;再存入20H地址取碼指針
XRL A,#66 ;4個字是否都左移完畢了?
JNZ M1 ;循環(huán)
RET
;*************************************************
DL5S: MOV R6,40H ;delay program
DL1: MOV R5,#200
DL2: MOV R4,#125
DL3: DJNZ R4,$
DJNZ R5,DL2
DJNZ R6,DL1
RET
;************************************************
;"歡迎光臨"顯示用ROM數(shù)據(jù)表
TAB: ;歡
DB 00H,20H,3CH,10H
DB 44H,08H,84H,04H
DB 04H,03H,04H,03H
DB 84H,04H,44H,08H
DB 3CH,10H,00H,20H
DB 00H,00H,07H,20H
DB 04H,10H,0F4H,0FH
DB 04H,10H,1CH,20H
;迎
DB 00H,00H,49H,20H
DB 6AH,10H,0DCH,0FH
DB 08H,10H,00H,20H
DB 0FEH,27H,02H,22H
DB 02H,21H,81H,20H
DB 00H,20H,02H,20H
DB 0FEH,2FH,02H,22H
DB 02H,22H,0FEH,21H
;光
DB 00H,00H,00H,20H
DB 22H,20H,24H,20H
DB 28H,10H,30H,08H
DB 0E0H,07H,3FH,00H
DB 20H,00H,0F0H,3FH
DB 28H,20H,24H,20H
DB 22H,20H,20H,20H
DB 00H,38H,00H,00H
;臨
DB 00H,00H,0F0H,03H
DB 00H,00H,00H,00H
DB 0FFH,3FH,00H,00H
DB 40H,00H,20H,3FH
DB 10H,21H,0FH,21H
DB 14H,21H,24H,3FH
DB 44H,21H,04H,21H
DB 04H,21H,04H,3FH
DB 00H,00H,00H,00H
END ;程序結(jié)束





