基于2个74HC595的8个数码管点亮

74HC595 是一种串行输入、并行输出的移位寄存器。它可以与微控制器通过串行通信协议进行通信,并将数据并行输出到其他设备上。以下是一种常用的协议:

  1. 时钟信号(Clock):使用一个时钟信号来同步数据传输。时钟信号由微控制器控制,以确定数据传输的速度。

  2. 数据信号(Data):数据信号用于传输要移位的数据。每当时钟信号上升沿到来时,数据信号的状态(高电平或低电平)将被移位到寄存器中。

  3. 锁存信号(Latch):锁存信号用于将移位寄存器中的数据输出到并行输出引脚。当锁存信号为高电平时,移位寄存器中的数据将并行输出到引脚上。

具体的协议步骤如下:

  1. 将数据信号设置为要移位的数据的状态(高电平或低电平)。

  2. 通过调整时钟信号的状态(从低电平到高电平或从高电平到低电平),来传输数据。

  3. 重复以上步骤,直到所有数据都被移位到寄存器中。

  4. 当所有数据都被移位到寄存器中后,通过将锁存信号设置为高电平,将数据并行输出到引脚上。

需要注意的是,具体的协议细节可能会因不同的微控制器而有所差异,所以在使用时应参考相关的数据手册或技术文档来了解具体的操作步骤和时序要求。

 

首先看效果

视频:http://t.csdnimg.cn/Y37K1

cd64329af2884bdf8e290425320b1cef.png

eed02001cd3743ec82a3caf7ab45d833.png

4265ac991c25442e9cb33611aebe5773.png

 

main.c

#include "74HC595.H"

void main()
{
	uchar ledNum=0xfe;
	int i;
	Hc595SendByte(0xff,0x00,1000);
	for(i=7;i>=0;i--)
	{
		Hc595SendByte(table[i],ledNum,500);
		ledNum=_crol_(ledNum,1);
	}
	i=0;
	do{
		Hc595SendByte(table[i],ledNum,0);
		ledNum=_crol_(ledNum,1);
		i++;
		if(i==8)
			i=0;
	}while(i!=9);
}

评论获取源码

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值