单片机,595级联动态显示数码管

单片机,595级联动态显示数码管,第1张

你须要先去查一查动态扫描的知识。 和74HC595的芯片资料。如果以上你都做了。才便于讲解。

引脚说明

符号 引脚 描述 Q0…Q7 第15脚, 1, 7 并行数据输出 GND 第8脚 地 Q7’ 第9脚 串行数据输出 MR 第10脚 主复位(低电平) SHCP 第11脚 移位寄存器时钟输入 STCP 第12脚 存储寄存器时钟输入 OE 第13脚 输出有效(低电平) DS 第14脚 串行数据输入 VCC 第16脚 电源

意思就是说,DS输入一个电平信号,0或1。通过SH cp上升沿将它存在芯片74HC595的寄存器当中。当8位串行数据传完后。通过STcp的一个正脉冲它从A*-G*输出来。

74HC595是串行转并行的芯片,有利于节省I/O口。在原理图中,通扰尺毕过P0^1先给最小面一片595输入数据。每输入一位数据,这片595会从Q7`引脚输出上一次困尘DS引脚的数据,传送到上面一片595芯片。从面依次驱动4个数码管。你这个电路,只能同时显缓芹示同一个数字。若想显示不同的数字。则四个数码管要分别用三极管控制位选。

这样接是可以实现的!

没有级联的74HC595,不知道是出于什么样的考虑,不过是可以实现的。

你仔细看一下手册会发现:只有STCP脚上有上升沿时,595的移位寄存器中的数据才会输出到595的IO口上。因此,照现在的掘数情况你要分别编两个595的驱动!

1、先向第判则首一个595内发8位串行数据,然后给第一片595的STCP脚一个上升沿,另一片595STCP脚电平保持不变,此时虽然第二片595移位寄存器内的数据也跟着变化,但是由于STCP脚没有上升沿,所以第二片595的IO口的状态不发生变化;

2、再向第二个595内发8位串行数据,然后给第二片595的STCP脚一个上升沿,另一片595STCP脚电平保持不变,此时虽然第一片595移位寄存器内的数据也跟着变化,但是由于STCP脚没有上升沿,所以第一片595的IO口的状态不发生盯迹变化;

如此循环1、2、步骤,当可实现分别控制两片595的目的。

不过这个做板子的大哥还真有才。你这不会是一道面试题吧!!

又不明白的QQ:28361319

下面是595的程序,给你参考一下,根据这个程序来写数码管显示就很简单了。

#define u8 unsigned char

#define u16 unsigned int

sbit MR=P1^6//寄存器清0,避免数据错位

sbit RCK=P1^5//并行输出时钟

sbit DS=P1^4//数据线

sbit CLK=P1^3//移位输入时钟

void writ_595(u8 dat)  者巧知 

{

u8 i

MR=0//寄存器清0,避免宽脊数据错位

MR=1

for(i=0i<8i++)

{

CLK=0

if((dat&0x80) == 0x80)

DS = 1//串行数据输出

else DS = 0

CLK=1//移位输入时钟,上升沿输入

dat<<=1

}

RCK=0//并行输出时钟

RCK=1   

} 该子函数可以直接首消调用,比如writ_595(0xfe);Q0-Q7脚则输出对应的二进制码


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12519714.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存