📄 num_diode.asm
字号:
;module :num_diode
;description :
;edition :V1.0
;author :Liu En
;data :
;-------------定义变量--------------
SER_595 EQU P1.1
SCK_595 EQU P1.2
RCK_595 EQU P1.0
;-------------定义地址--------------
ORG 0000H
LJMP MAIN
ORG 0030H
;-------------主函数---------------
MAIN: MOV R0,#00H
LOOP: MOV A,R0
MOV DPTR,#TAB
MOVC A,@A+DPTR ;查表
LCALL OUT_595 ;595输出显示
LCALL DELAY
CJNE R0,#12,LOOP
LJMP MAIN
;--------------595输出---------------
OUT_595:LCALL WR_595 ;写595
CLR RCK_595 ;存储寄存器输入
NOP
NOP
SETB RCK_595
NOP
NOP
CLR RCK_595
RET
;--------------写595-------------------
WR_595: MOV R4,#3
MOV R5,#8 ;数码管的8位
LOOP1: RLC A
MOV SER_595,C ;送数据进595
SETB SCK_595 ;移位寄存器时钟,根据DATASHEET,送数据进去要一个SCK时钟周期。
NOP
NOP
CLR SCK_595
DJNZ R5,LOOP1 ;8位数据是否送完
MOV R5,#8
INC R0 ;指向下一个数据
MOV A,R0
MOVC A,@A+DPTR
DJNZ R4,LOOP1 ;一次送三位进去
RET
;--------------DELAY------------------
DELAY:MOV R2,#05H
L0: MOV R6,#0FFH
L1: MOV R7,#0FFH
L2: DJNZ R7,L2
DJNZ R6,L1
DJNZ R2,L0
RET
;-----------------------------------
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -