单片机流水灯制作实战,单片机编程案例实践,单片机快乐入门基础
用单片机做LED流水灯,是每个单片机初学者学习和训练项目之一,流动的LED灯光会提高学习者极大的热情和兴趣。选用AT89C2051制作流水灯,这款单片机的体积小、管脚少、带2K字节闪速可反复编程、擦除只读存储器的8位单片机,它具有和MCS-51产品兼容、电压使用范围宽、空载低功耗等特点。
一:单片机流水灯电路
单片机流水灯电路
功能实现思路:当P1口某位为低电平时,相应的LED灯就会点亮;其它位就为高电平,相应的LED灯不亮。延时后不断将点亮位移到下一位,就会产生循环点亮流水的效果。
二:单片机程序流程图
程序流程图
三:单片机程序编写
ORG 0H
MOV A,#0FEH ;下行初值
MOV P1,A ;从P1.0开始
MOVR2,#7 ;循环计数次数
DOWN:RLA ;下行方向
ACALL DEL50 ;延时50ms
MOV P1,A ;驱动LED
DJNZ R2,DOWN;未完继续
MOV R2,#7 ;循环计数次数
UP:RR A ;上行方向
ACALL DEL50 ;延时50ms
MOV P1,A ;驱动LED
DJNZ R2,UP ;未完继续
MOVR2,#7 ;循环计数次数
SJMP DOWN ;循环
DEL50: MOV R7,#200;延时50ms
DEL1:MOV R6,#125;200(125*2)=50000
DJNZ R6,$ ;
DJNZ R7,DEL1;
RET
END
将程序通过编译器和烧录器写入单片机IC 89C2051中。
四:流水灯制作
流水灯实物参考
参照电路图中的元件参数:
1、R1:1/4W金属膜电阻,阻值10KΩ。
2、R2-R9:1/4W金属膜电阻,阻值200Ω。
3、C1:电解电容器,10UF/16V。
4、C2-C3:瓷片电容器,30PF/50V。
5、X1:晶体振荡器,12MHZ。
6、IC:单片机,AT89C2051。
7、IC座:20脚单片机用。
8、M5发光二极管(LED灯),可选择不同颜色。
9、DC5V直流电源。可以用手机充电器或移动充电宝的5V输出电压,也可以插电脑USB接口等。
焊接好以上电子元件,检查无误后,插上单片机IC,通上5V电源,流水灯可以正常工作。
祝大家流水灯制作成功,体验学习单片机带来的乐趣,欢迎交流!
单片机C语言——16种方式流水灯(一)
顺序结构是单片机C语言中最基本、最简单的编程结构,程序由低地址向高地址顺序执行指令代码。如下图所示。程序首先执行A操作,再执行B操作,二者是顺序执行的关系。
/****************************************************
函数名:Delay(uint t)
入口参数:t,延时时间长度
出口参数:无
功能:延时函数
说明:延时一定是减,时间长度可设置
****************************************************/
void Delay(uint t)
{
for(;t>0;t--);
}
/****************************************************
函数名:main()
入口参数:无
出口参数:无
功能:流水灯测试程序
说明:用顺序结构实现。相应端口置低,则该发光二极管点亮
****************************************************/
void main()
{
while(1)
{
P1 = 0xfe; //点亮第一个发光管
Delay(5000);
P1 = 0xfd;//点亮第二个发光管
Delay(5000);
P1 = 0xfb;
Delay(5000);
P1 = 0xf7;
Delay(5000);
P1 = 0xef;
Delay(5000);
P1 = 0xdf;
Delay(5000);
P1 = 0xbf;
Delay(5000);
P1 = 0x7f; //点亮第八个发光管
}
}
相关问答
51 单片机 控制 流水灯 ?采用循环程序结构编程。首先在程序开始给P1.0口送一个低电平,其它位为高。然后延时一段时间再让低电平往高位移动,这样就实现“流水”的效果了。下面来看具体程...
如何设计一个 单片机 可控的循环 流水灯 ?首先在硬件方面,我们使用了最经典的选型用AT89S51单片机作为主控芯片,LED电路选用共阳极接法:8路红色LED灯正极接5V电源、各路串联一个限流电阻,保护发光二...
用51 单片机 做 流水灯 ,应该接多大的限流电阻?】作业帮[最佳回答]你这LED的电流是20mA以下(取10mA吧),2V左右.51单片机输出一般是5V吧,5V-2V=3V,3V/0.01mA=300欧姆.其实一般用1K就可以了.你这LED的电流是20mA以下(...
单片机 汇编语言 流水灯 程序延时0.5秒,一共四个灯循环?4只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。;用最直接的方式实现流水灯ORG0000HSTART:MOVP1,#01111111B;最下面的LED点亮LCALLDE.....
51 单片机流水灯 怎么改变流速?要改变51单片机流水灯的流速,可以通过调整延时函数的参数来实现。延时函数控制每个灯亮起和熄灭的时间间隔,从而改变流水灯的流速。增加延时时间可以使流水灯...
手机肿么把 流水灯 程序烧录到51 单片机 ?-ZOL问答首先要看你的单片机是什么型号的,其实,就目前的51单片机,还没有一款可以用手机烧录程序的,都必须用电脑。而且每一种单片机都有各自的烧录软件和烧录线,也不通...
单片机 C51语言如何实现用P2口控制8只LED左循环 流水灯 亮?soeasy。P2=0x01,然后P2=_cror_(P2,1);delayMS(uintx);这就行了soeasy。P2=0x01,然后P2=_cror_(P2,1);delayMS(uintx)...
at89c51 单片机流水灯 原理是什么?本流水灯系统使用AT89C51单片机来实现流水灯的控制的设计原理是:P1的八个接口P1.0~P1.7,都通过限流电阻的连接着LED灯的阳极,所有LED灯的阴极的连接在0V,要让...
单片机 , 流水灯 从中间向两边闪烁,再从两边从中间闪烁,修改一下我的程序?如果你的点灯是低电平那么编码如下:0x7e,0xbd,0xdb,0xe7;这四个编码实现从两边向中间流0xdb,0xbd,0x7e;由上面的四个编码加上下面的四个编码就达到了从中间...
p1=0xfe是什么意思? 单片机 , 流水灯 中的一句?p1端口对应8个管脚,当p1设置成输出时,p1对应的数据寄存器中的取值,就对应这8个管脚的输出电平状态,p1=0xfe;就是给这个寄存器进行赋值,也就是修改p1对应管脚...