请问加了74HC245缓冲器之后为什么不能实现流水灯操作? 蜂鸣器加流水灯程序

8845℃ SUE

请问加了74HC245缓冲器之后为什么不能实现流水灯操作?蜂鸣器加流水灯程序

74hc245的作用,为什么要用它,用了它起到什么效果?工作过程是怎么样的?

245是方向可控的八路缓冲器,主要用于实现数据总线的双向异步通信。

为了保护脆弱的主控芯片,通常在主控芯片的并行接口与外部受控设备的并行接口间添加缓冲器。当主控芯片与受控设备之间需要实现双向异步通信时,自然就得选用双向的八路缓冲器了,245就是面向这种需求的。常见于同并口液晶屏、并口打印机、并口传感器或通讯模块等设备的接口上。

怎么用74hc595控制LED做流水灯?

如果你是静态显示,那么灰度是没戏了。如果是动态显示,那就先点亮一个led,再将595的数据刷新,令所有的led灭掉,然后亮第二个led,再将595的数据刷新,令所有的led灭掉,如此循环,来控制led点亮的占空比就可以控制灰度了。但这个办法的关键是你刷新的频率一定要足够高,不然就会产生闪烁。

其实,你电路中最大的问题就是oe脚被你锁死了,通常的产品都是靠这个引脚来控制灰度的。另外,595到led之间最好再加一级驱动芯片,例如,2003,2803,否则595驱动电流不足,很容易烧坏。

解释一下这个流水灯程序

#include<reg51.h> //51系列单片机定义文件

#define uchar unsigned char //定义无符号字符

#define uint unsigned int //定义无符号整数

void delay(uint); //声明延时函数

void main(void)

{

uint i;

uchar temp;

while(1)

{

temp=0x01; //给初值,第一个灯灭

for(i=0;i<8;i++) //8个流水灯逐个闪动

{

P1=~temp; //将temp取反再赋值给P1口

delay(100); //调用延时函数

temp<<=1; 流水灯左移

}

temp=0x7F; //给初值,第一个灯亮。

for(i=0;i<8;i++) //8个流水灯依次反向全部点亮

{

P1=temp; //将temp赋给P1

delay(100); //调用延时函数

temp>>=1; //流水灯右移

}

}

}

void delay(uint t) //定义延时函数

{

register uint bt;

for(;t;t--)

for(bt=0;bt<255;bt++);

}

temp 是自己定义的。名字可以随便取,没实际意义。是一个中间变量。。。

只用用74Ls74制作两个流水灯,你能指教指教吗

要做流水灯,最少需要3个灯,才能产生流动的效果,而用4个更好,流动的花样有多种。而制作只有两个灯的,就不会产生流动的效果,因为两个灯交替点亮,效果是两个灯的跳动闪烁的效果。要用74LS74做,很简单,把D端接到反相输出端Q非上,组成计数器,CLK端加时钟信号,在Q和Q非上各接一个灯就成了,两个灯就交替点亮了。