;=======================================================
;利用串行转并行芯片 调数据表
;========================================================
MR EQU P3.4;MR低电平移位寄存器清零
SH EQU P3.7;SH上升沿数据寄存器移位
ST EQU P3.6;上升沿移位寄存器数据进入数据寄存器
OE EQU P3.3;高电平禁止输出(高阻态)
DSA EQU P3.5;串行数据输入
;========================================================
;============主程序============================================
KAI:MOV R0,#00H
MOV DPTR,#TAB
SS: MOV A,R0
MOVC A,@A+DPTR
LCALL W595
INC R0
MOV A,R0
CJNE A,#5D,SS
AJMP KAI
W595:MOV R4,#08H;确定输出为8位数据
WR_LOOP:RLC A
MOV DSA,C;写入第一位数据
LCALL DELAY
LCALL DELAY
DJNZ R4,WR_LOOP;等待数据全部发送完毕
RET
;=============================================================
;短延时子程序
;=============================================================
DELAY:MOV R6,#20D
DEL1:MOV R7,#20D
DJNZ R7,$
DJNZ R6,DEL1
RET
TAB:DB 00111110B,01001000B,10000010B,00111111B,11111111B
END
|