A. 循环流水灯电路原理
按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。其具体硬件组成如图1所示。
从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反, 如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。
B. 8个led灯 依次循环亮起 求multisim仿真 电路图一定要!
Multisim的图这里贴不上,给你个截图JPG吧,信号源自己搞一个,用555就可以。如果不会能,Email我。
C. 8个彩灯依次点亮,求电路图和工作原理。
C语言1:
/*该实验是流水灯(8个发光二极管循环点亮),功能是8个发光二极管循环以1S间隔点亮*/
#include<reg52.h>//包含reg.52文件
#defineuintunsignedint//宏定义
#defineucharunsignedchar//宏定义
voiddelay(uintz);//声明延时函数
uinta;//定义循环用变量
ucharcodetable[]={
0xff,0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};//定义循环用数据表格
voidmain()//main函数
{
a=0;//给a赋初值
P1=table[a];//将a所在的table中的值赋给P1口
while(1)//while循环
{
delay(1000);//1S延时子程序
if(a==8)//测试a是否等于8
a=0;//给a赋值
a++;//a的值加一
P1=table[a];//将a所在的table中的值赋给P1口
}
}
voiddelay(uintz)//1ms延时子程序,通过z值改变延时
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
C语言2:
/*该实验是流水灯(8个发光二极管循环点亮),功能是8个发光二极管循环以1S间隔点亮*/
#include<reg52.h>//包含reg.52文件
#defineuintunsignedint//宏定义
#defineucharunsignedchar//宏定义
voiddelay(uintz);//声明延时函数
uinta;//定义循环用变量
ucharcodetable[]={
0xff,0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};//定义循环用数据表格
voidmain()//main函数
{
a=8;//给a赋初值
P1=table[a];//将a所在的table中的值赋给P1口
while(1)//while循环
{
delay(100);//1S延时子程序
if(a==0)//测试a是否等于8
a=8;//给a赋值
a--;//a的值加一
P1=table[a];//将a所在的table中的值赋给P1口
}
}
voiddelay(uintz)//1ms延时子程序,通过z值改变延时
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
C语言3:
/*该实验是流水灯(8个发光二极管循环点亮),功能是8个发光二极管循环以1S间隔点亮*/
#include<reg52.h>//包含reg.52文件
#include<intrins.h>//包含左右循环移位子函数库文件
#defineuintunsignedint//宏定义
#defineucharunsignedchar//宏定义
voiddelay(uintz);//声明延时函数
uinta;//定义循环用变量
voidmain()//main函数
{
a=0xfe;//给a赋初值
while(1)//while循环
{
P1=a;
delay(1000);//1S延时子程序
a=_crol_(a,1);
}
}
voiddelay(uintz)//1ms延时子程序,通过z值改变延时
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
单片机控制八个发光二极管并使其以1S时间间隔循环点亮,C语言中,把流水灯的循环方式以数组的形式存到了表中,然后调用,是很方便的,学校实验室都提倡这么写。延时参数是毫秒单位,很准确。
D. 能帮我设计一个电路图吗 让红黄绿三个灯循环闪烁,模拟交通信号灯
不要倒计时和换灯闪烁功能,这个电路很简单的,如图
改变电容容量就能改变亮灯时间,三极管偏置电阻保持一致,改变集电极限流电阻即可改变LED亮度,这里要注意绿LED点亮电压多在2.8-3.2V,红、黄LED多在1.8-2.2v,所以绿灯限流电阻阻值应改小。
E. 四组流水灯循环点亮电路图(逻辑电路)
555 输出2秒周期方波脉冲供CD4017作时基信号,对应时基信号 3, 2, 4 ,7脚顺序每2秒输出高电平,所属的Led串再由8050驱动点亮,7脚完成2秒输出高电平後,下一个输出高电平是10脚,这个高电平接到15脚作重置信号令CD4017重新开始之前的动作。
F. 设计流水灯电路图,循环点亮8个led,从左往右点亮后再从右往左,每个led显示时间1秒,最后全亮
方法有很多的,给你一个,你可以调试一下,你可以通过不同的晶振去计算定时器初值,如果你懂定时器这部分很好调通的
#include <reg51.h>
#include <intrins.h>
unsigned char i;
void main()
{
TMOD=0x00;
TH1=0x3c;
TL1=0xb0;
EA=1;
ET1=1;
TR1=1;
while(1)
{
if(i==20)
{
i=0;
//下面写你要处理的的其他程序,你只要了定时1s。
}
}
}
void a(void) interrupt 3
{
unsigned char i;
TH1=0x3c;
TL1=0xb0;
i++;
}
G. 二个时间继电器互相循环的电路图图图
可以循环控制用时间继电器,一个继电器上有两个调节控制按钮,买一个这样的继电器直接然后买两个接触器就可以不需要重组电路了。
原理图:
时间继电器
时间继电器是指当加入(或去掉)输入的动作信号后,其输出电路需经过规定的准确时间才产生跳跃式变化(或触头动作)的一种继电器。是一种使用在较低的电压或较小电流的电路上,用来接通或切断较高电压、较大电流的电路的电气元件。
接线方法:
时间继电器的电气控制系统中是一个非常重要的元器件。一般分为通电延时和断电延时两种类型。 从动作的原理上有电子式、机械式等。电子式的是采用电容充放电再配合电子元件的原理来实现延时动作。机械式的样式较多,有利用气囊、弹簧的气囊式。
时间继电器的接线方法:
1、控制接线:把它看成直流继电器来考虑;
2、工作控制:虽然控制电压接上了,但是是否起控制作用,由面板上的计时器决定;
3、功能理解:它就是一个开关,单刀双掷的,有一个活动点活动臂,就像常见的闸刀开关的活动刀臂一样;
4:负载接线:电源的零线或负极接用电器的零线或负极端;
5、工作原理:计时无效期间,相当于平常电灯开关断开状态。有效时,继电器动作,用电器得电工作,相当于平常电灯开关接通状态。