📄 单元板显示.asm
字号:
SDATA_595 EQU P1.2 ;串行数据输入
SCLK_595 EQU P1.7 ;移位时钟脉冲
RCK_595 EQU P1.6 ;输出锁存器控制脉冲
EN EQU P1.5 ;使能控制脉冲
CHECK1 EQU P2.0
CHECK2 EQU P2.1
;=====================================================
ORG 0000H
LJMP MAIN
ORG 0030H
;=====================================================
MAIN:
MOV SP,#60H
MOV R0,#00H
MOV R2,#00H
CLR EN
MAIN1:
CALL OUT_595
SETB EN
MOV A,R2
MOV C,ACC.0
MOV CHECK2,C
MOV C,ACC.1
MOV CHECK2,C
CLR RCK_595
NOP
SETB RCK_595
CLR EN
CALL DELAY
INC R2
CJNE R2,#4H,MAIN1
MOV R0,#00H
MOV R2,#00H
JMP MAIN1
;----------------------------------------------------------------------
;输出锁存器输出数据子程序
;----------------------------------------------------------------------
OUT_595:
MOV R1,#08H ;有几个595
LCALL WR_595
;上升沿将数据送到输出锁存器
RET
;---------------------------------------------------------------------
;移位寄存器接收数据子程序
;---------------------------------------------------------------------
WR_595:
MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV R4,#08H
WR_LOOP:
CLR SCLK_595
RLC A
MOV SDATA_595,C
SETB SCLK_595 ;上升沿发生移位
DJNZ R4,WR_LOOP
INC R0
DJNZ R1,WR_595
RET
;--------------------------------------------------------------------
;延时子程序
;--------------------------------------------------------------------
DELAY:
MOV R6,#25H
DEL0:
MOV R7,#10H
DJNZ R7,$
DJNZ R6,DEL0
RET
;-------------------------------------------------------------------
;加载的数据库
;-------------------------------------------------------------------
TABLE:
DB 55H,55H,55H,55H
DB 55H,55H,55H,55H
DB 55H,55H,55H,55H
DB 55H,55H,55H,55H
DB 55H,55H,55H,55H
DB 55H,55H,55H,55H
DB 55H,55H,55H,55H
DB 55H,55H,55H,55H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -