单片机 595 数码管
发布网友
发布时间:2022-12-26 16:29
我来回答
共3个回答
热心网友
时间:2023-10-16 09:56
2个595,4个数码管,用动态扫描啦
,另外4个数码管,共要8个控制IO
在内部ram 40h,开始缓存4个数码管的
笔端马,在lcall buf_to_led后面
你可以写一个子程序选择
把送到去2个595的数在那个数码管显示,
下面的IO定义可以修改,程序不变
sdi bit p0.1
sclk bit p0.2
pclk bit p0.3
tover bit 20h
org 0000h
ljmp main
org 002bh
ljmp ctc2
org 0050h
main:
mov sp,#5fh
mov th2,#
mov tl2,# 扫描时间自己设定。
mov rcap2h,#
mov rcap2l,#
mov t2con,#4
setb et2
setb ea
loop:
jnb tover,next
clr tover
lcall buf_to_led
next:
sjmp loop
buf_to_led:
mov r0,40h 送595数据的程序
mov r7,#2 管有2个显示位
loop2:
mov a,@r0
mov r6,#8 每位有8个笔端
loop1:
clr sclk
rlc a
mov spi,c
nop
setb sclk
djnz r6,loop1
inc r0
djnz r7 ,loop2
clr pclk
nop
setb pclk
ret
ctc2:
setb tover
reti
热心网友
时间:2023-10-16 09:56
;FOR C51
;编个简单的给你参考
;采用同步数据传输,占用P30和P31
;分别发送1,2,3,4到4个595上
;如有疑问,邮件联系
ORG 0000H
AJMP START
ORG 0030H
START:
MOV SP,#60H
MOV A,#01H
CALL SEND
MOV A,#02H
CALL SEND
MOV A,#03H
CALL SEND
MOV A,#04H
CALL SEND
AJMP $
SEND:
MOV SBUF,A
JNB TI,$
CLR TI
RET
END
热心网友
时间:2023-10-16 09:57
c可以吗?