如何制作流水灯泡 如何制作流水灯,如何制作流水灯视频

如何用单片机简单制作一个流水灯
工具:STC系列51单片机、串口转换器(USB转TTL或232转TTL)材料:一块实验板(可以买现成的或面包板自己搭建)、电阻、LED灯、5V电源等 。下面的程序可以直接用Keil C编译执行LED可以通过左移函数_crol_()和右移函数_cror_()来回流动 。//具体实现方法请参考下面的程序:# include # include # defineuintunsigned # defineucharunsigned harvest delay(UINTA);void main(){ P1=0x Fe;While(1){//向左循环并点亮LED FORE(I=0;i7;i ){P1=_crol_(P1,1);//左移一位,开启下一个led delay(55);}//向右循环点亮LED(I=0;i7;i ){P1=_cror_(P1,1);//右移一位,开启前面的led delay(55);}}}//delay函数,延迟一毫秒voiddelay(uinta){uintx,y;for(x=a;x0;x-)for(y=110;y0;y-);}
51单片机中如何用汇编语言编写流水灯
流水灯是51单片机控制led灯轮流点亮的控制方式 。具体程序如下:ORG 0000H重置AJMP开始;ORG 001BHT1中断AJMP T1INT;定义变量=================YSJSEQU30h延迟计数器LEDEQU 31HLED控制缓冲器;主程序==================start: movled,# 0feh初始化数据MOV YSJS,# 0;MOVTMOD,10H1定时器工作在模式1,16位定时器MOV TL1,# 0B0H设置定时初始值movt1,# 3chTiming=50mSSETB ET1使能定时器1以中断setbt1启动定时器1SETB EA打断MOVP1将军的话,引;初始化行车灯回路:JMP回路;等待循环中断T1INT:PUSH PSW;1定时器中断程序PUSH ACC现场保护movt1,# 3ch定时=50mSMOV TL1,# 0B0HINC YSJS推ACC保护ACCMOV A,YSJICJNE A,#2,QT150mS*2=100mSMOV P1,LEDMOV一家,领着;RL A;累加器A的值循环左移1位MOV LED,A;MOV YSJS,# 0;QT1:POP ACC;现场持久性有机污染物PSW回收;RETI;回到主程序结束;汇编程序扩展数据结束:实现行车灯的三种方法:一、总线法实现行车灯 。这是一个很蠢但很容易理解的方法 。它采用顺序程序结构,用bit指令控制P1端口各bit的输出电平,并增加延时功能控制各LED灯的亮灭 。其次,采用移位法实现循环程序结构的流水灯编程 。程序开始时,低电平发送到端口P1.0,其他位为高电平 。然后延迟一段时间,让低层向高层移动,从而达到“流水”的效果 。三、库函数实现流水灯 。使用左移功能 。
如何制作LED流水灯,随音乐变化
【如何制作流水灯泡 如何制作流水灯,如何制作流水灯视频】LM339集成运算放大器可以用来实现这一点 。正相(5,7,9,11)引脚连接到不同的电压端子(由多个串联的电阻组成以分压),负相(4,6,8,10)引脚连接在一起然后连接到扬声器端子以检测声级,四个发光二极管的负极连接到输出端子(1,2,13,14

如何制作流水灯泡 如何制作流水灯,如何制作流水灯视频

文章插图
单片机心形流水灯制作教程
1.建立项目 。LED.c文件用来存储每个函数的子函数,delay.c文件用来存储延时函数 。最后,主函数可以直接调用前面两个文件中的子函数 。2.在LED.c源文件中编写功能子函数,分别是turn_on(int i)和turn_.3.在delay.c源文件中写延迟函数 。4.调用main.c文件主函数中的各个子函数,实现跑灯功能 。结束
怎么用arduino uno r3做流水灯
工具/材料:电脑,arino uno r3软件1 。首先打开arino uno r3软件,点击菜单栏中的工具,然后选择端口连接 。2.启动Arino板,调用setup()函数,初始化变量和引脚模式 。3.for(初始化部分;判断部分;数据增量部分) 。4.将引脚配置为输出模式 。5.连续循环控制LED灯的效果 。6.写入数字引脚的低电平 。7.延迟1秒,(1秒有1000毫秒) 。8.上传程序就好 。
如何制作流水灯泡 如何制作流水灯,如何制作流水灯视频

文章插图
如何用单片机做流水灯
由于电路由单片机控制,电路非常简单 。电路原理图如下图所示,印刷电路板图如下图所示 。该电路的核心部分是AT89C2051单片机 。如前所述,它有两组I/O端口,Pl端口和P3端口 。我们这里只用Pl口,一共8针 。图中Cl和R9构成典型的上电复位电路(即微控制器上电复位),XTAL、C2、C3和AT89C2051片内振荡电路构成时钟振荡器 。值得注意的是,C2和C3的容量不应偏离图中的数值太多,否则可能会导致无振动或不稳定振荡 。XTAL的频率可以在4-20MHz之间,但是频率的变化会导致程序运行速度的变化,所以需要调整延时子功能的参数 。其实不调整参数也可以,只是延迟时间不再是1秒,延迟时间会随着XTAL频率的降低而增加 。二、软件部分这个程序包含两个功能,一个是主功能,一个是延时子功能 。源程序如下(为了便于解释,我们在程序的每一行都加了数字):程序的每一行功能如下:00行:包含头文件“AT89x051 。AT89C2051的h” 。第01行:声明Delay () delay子函数,有一个无符号整数参数k,函数前面的void表示函数不返回函数值 。第02行:延迟子函数的开始,同时声明两个无符号整数变量I和J 。但是,请注意,在这里,表示函数开始的“{”不是像前面的程序那样写为单独的一行,而是将下一行写在一起 。其实写C程序的时候,可以把多行写成一行,只要遇到分号,C编译器就会认为是一行语句的结尾 。当然,正因为C程序有这个特点,所以不能随意多行配合写 。在实际编写C程序时,还是需要养成良好的程序编写习惯,按照既定的原则进行编写 。第03行:声明for()循环 。这个循环的初始条件是i=0,结束条件是I <k,循环计数是每循环一次,手工计数的变量I加1 。所以这个循环的循环次数是k次 。这样,只要改变k的值(即Delay()延迟子函数的参数k的值),就可以很容易地控制循环次数,从而获得不同的延迟时间 。第04行:声明一个嵌套在03循环中的新for()循环 。这个循环类似于上一个循环,它的循环次数是120 。这个循环与前一个循环嵌套后,总循环次数达到120k次 。第05行:第一个分号表示L个空语句,占用一个机器时间,达到延时的目的 。在最后两个“}”中,第一个“}”是04行for()循环的结束标记 。当程序遇到时,会自动返回到04行,并将用于循环计数的变量J加1 。同时判断J是否小于120,如果不小于,则转到05线;第二个是03行for()循环的结束标记,程序遇到会返回03行 。

    推荐阅读