📄 595test.asm
字号:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;以下定义IO口
; 各位轮流显示
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SI EQU P1.4 ;595-14 p1.3 串口数据输入
RCK EQU P1.3 ;595-12 p1.2 锁存控制
SCK EQU P1.2 ;595-11 p1.1 移位控制信号
; SI EQU P3.4 ;595-14 p1.3
; RCK EQU P2.5 ;595-12 p1.2
; SCK EQU P2.4 ;595-11 p1.1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;操作模式
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MAIN: MOV R0,#2FH
MOV SP,R0
CLR SI
CLR SCK
CLR RCK
CLR A
MOV R3,A
;MOV B,#1
;CLR F_SHIWEI
MAIN0: MOV R2,#01H
MAIN1:
MOV R2,#9
MOV 50H,#1
MOV A,R2
MOV R3,A
MOV B,#01H
LCALL SHITF
;INC R2
;CJNE R2,#0AH,DDE
;AJMP MAIN0
MOV 50H,#2
MOV R3,#8
MOV B,#01H ;当延时大于3时,显示会闪烁
LCALL SHITF
MOV 50H,#3
MOV R3,#2
MOV B,#01H
LCALL SHITF
MOV 50H,#4
MOV R3,#1
MOV B,#01H
LCALL SHITF
;DDE: MOV R2,#0d0h
DELAYA: MOV B,#02H ;上次下次刷新的时间
LCALL DELAY2
;DJNZ R2,DELAYA
ACALL MAIN1
BITDEAL: CLR A ;显示位数
MOV A,50H
ADD A,#01H
MOVC A,@A+PC
MOV R5,A
RET
DB 07H, 0BH, 0DH, 0EH ,0FH
; 个位 十位 百位 千位
;D C B A
;个 十 百 千 低电平有效
;0 0 0 1 01H
;0 0 1 1 03H
;0 1 1 1 07H
;DB 03H,03H,03H,03H,03H,03H,03H,03H;,03H
WORDDEAL: CLR A ;显示的字符
MOV A,R3
ADD A,#02H
MOVC A,@A+PC
MOV R4,A
RET
DB 0C0H,0F9H,0A4H,0B0H,99H
DB 92H,82H,0F8H,80H,98H,0FFH
SHITF: ;MOV B,#1 ;移位处理
;LCALL DELAY
LCALL BITDEAL
MOV A,R5
MOV R6,#02H
SHITF1: MOV R7,#08H
SHITF2: RLC A
MOV SI,C
CLR SCK
NOP
NOP
;LCALL DELAY
SETB SCK
;MOV B,#01H ;4MS
LCALL DELAY2
DJNZ R7,SHITF2
LCALL WORDDEAL
MOV A,R4
DJNZ R6,SHITF1
MOV R7,#12H
STORAGE: SETB RCK ;锁存处理
;MOV B,#1
NOP
NOP
;LCALL DELAY
CLR RCK
;CLR RCK
;MOV B,#01H
LCALL DELAY2
DJNZ R7,STORAGE
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;延时1 m s
DELAY2: MOV R1,B
NOP
DELAY20: MOV DELBUF, #3BH
DEL21: NOP
DJNZ DELBUF,DEL21
NOP
NOP
NOP
DJNZ R1,DELAY20
RET
;;延时0.1 m s
DELAY: MOV R1,#01h
NOP
DELAY0: MOV DELBUF, #3BH
DEL1: NOP
DJNZ DELBUF,DEL1
DJNZ R1,DELAY0
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -