;//*******************************************************
;文件名: LEDDZ for MCU51
;功能: LED点阵显示实验
;接线: B2模块的JT1B短路帽接至右端;
; 用导线对应连接双色点阵显示模块的DIN、SCLK、RCLK到
; CPU模块的P10、P11、P12。
;//*******************************************************
;文字滚动向左
Din BIT
CLK BIT
R_CLK BIT
ORG 0000H
JMP MAIN
ORG 000BH
LJMP INTS_TO ;定时中断
ORG 0100H
MAIN:
CLR EA
MOV R2,#0
MOV R1,#32 ;32个字符
MOV R0,#40H
MOV DPTR,#TAB
MOVEDATA: ;把全部字符复制到40H
MOV A,R2
MOVC A,***@A+DPTR
MOV ***@R0,A
INC R2
INC R0
DJNZ R1,MOVEDATA
MOV TMOD,#01H ;定时器0工作方式为1
MOV TL0,#0AFH ;置计数初值
MOV TH0,#080H ;0FFFFH-3CAFH=50000,50mS
MOV R7,#5 ;软件计数器,循环5次
SETB ET0 ;允许T0中断
CLR ET1 ;禁止T1中断
SETB EA
SETB TR0
CLR R_CLK
MOV SP,#60H
MOV R3,#080H ;第一行
A0: MOV R2,#08H
MOV R0,#40H
LOOP:
;MOV DPTR,#TAB ;字符首地址
MOV R1,#4
MOV A,R3
RR A ;行码右移一位转下一行
MOV R3,A
LCALL OUTDATA
A1: MOV A,***@R0
LCALL OUTDATA
INC R0
DJNZ R1,A1
SETB R_CLK ;显示一行
CLR R_CLK
DJNZ R2,LOOP ;下一行
LJMP A0
LJMP MAIN
OUTDATA:
MOV R6, #8
OUT1:RRC A
MOV DIN, C
CLR CLK
SETB CLK
NOP
NOP
DJNZ R6,OUT1
RET
INTS_TO:
CLR EA
PUSH 0E0H
PUSH 00H
PUSH 01H
PUSH 02H
DJNZ R7,BACK ;软件计数,次数不到返回
MOV R7,#5
MOV R0,#40H
MOV R1,#8
SHIFT1:
MOV R2,#4
CLR C
PUSH 00H
MOV A,R0
ADD
14LED点阵显示实验 来自淘豆网m.daumloan.com转载请标明出处.