您的位置 首页 > 激光放大器

流水灯单片机程序(流水灯单片机程序汇编)

1、流水灯单片机程序汇编

代码中D1代表着位定义,相当于将LED灯对应管脚的位置起一个名字。单片机初始状态管脚默认为高电平,即对应值为1。所以如果想要点亮LED灯,只需要让他的管脚电平为低即可。

设计一个流水灯,如果使用位操作,需要一个个去定义。这无疑是十分繁琐的。所以这里我们采用总线型操作。

例如如果想要控制P1.0-p1.7的电平情况,具体编程方法是根据所需要的结果,标出每个管脚对应的01值,从前到后排列,然后转化为十六进制,直接令P1=0x+对应十六进制数。这样只用一行代码实现多个管脚控制。

2、流水灯单片机程序 protues

P1=0x80;//对应十进制数字10000001,对应P1的首个管脚与最后一个管脚高电平。

}//此函数可以用来控制特定时长的延时,具体时间由单片机晶振频率决定。

_crol_函数功能:将 c 进行b位左位移,并将值以unsigned char类型返回;

3、流水灯单片机程序汇编语言

#include //_crol_函数在intrins.h函数库中。

temp=_crol_(temp,1);//第一个变量用来控制位,第二个用来控制每次移动的位数。

首先我们先理清整个实验的思路,我们使用三个流水灯来做这个简单的实验。用的是51单片机。利用单片机P3.0~P3.2三个I0口,外部电源给LED供电,IO口就输出低电平时(0),LED灯就会亮,IO口输出高电平,LED就会灭。假如是单片机IO口给led供电(如果使用P0口需要使用上拉电阻),IO口就输出低电平时(0),LED灯就会灭,IO口输出高电平,LED就会亮。

4、流水灯单片机程序C语言

LED的工作电压:红黄为2V,绿蓝白为3.2~3.6V,电流都是18-20ma。下图是是单片机IO驱动的情况,P0口需要使用上拉电阻。假设LED额定电流是18mA。额定电源是3.2v那么限流电阻R2=(5V-3.2V)/18mA=100Ω。(图就是个大概)

程序设计思路:开始让P0保持高电平,三灯都是灭的。然后P0.0输出低电平,LED1亮,经过一段时间后,让P0.0输出高电平,P0.1输出低电平,LED1灭,LED2亮,经过一段时间后,让P0.1输出高电平,P0.2输出低电平,此时LED2灭,LED3亮,延时后让亮灭过程循环就形成了流水灯的效果。

void delay(unsigned int ms) //延时函数

5、流水灯单片机程序代码8个灯

P1=0xff; //P1=11111111,对应串口灯全灭

P1=temp; // P1=11111110, P1.0连接的LED灯亮

temp=_crol_(temp,1); //左移函数,依次是11111101,11111011,11110111

6、流水灯单片机程序汇编

/*依次让LED灯点亮,时间间隔1S,亮1S,灭1S。在亮灯的同时蜂鸣器响,灭灯的时候蜂鸣器停止发声*/

char led[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//定义了八个灯的亮灭

void Delay1000ms()//@11.0592MHz

7、流水灯单片机程序 protues

将PCB打印好,弄好板,装好原件,再焊接好,看,这就是成品了

程 序 代 码详细见-- 这-->单片机实例:32位心样流水灯原理图及程序代码

有了LED灯闪烁的基础,就能够控制LED灯的亮和灭。只需要对8个LED灯顺序点亮或顺序灭,就能实现LED灯的流水。

8、流水灯单片机程序汇编语言

程序里用了16进制对端口进行赋值运算。所谓16进制就是满16进一。16进制转换为二进制的话,就是一位16进制的数值变为4位二进制数值。如0XFE(0X表示16进制)变为二进制就是 1111 1110,对应的第一个灯亮或灭。

因此,只要给P0口相应的16进制数据就能够实现流水灯,花样流水等功能。

0XFE——>1111 1110 0XEF——>1110 1111

9、流水灯单片机程序C语言

0xFD——>1111 1101 0XDF——>1101 1111

0XFB——>1111 1011 0XBF——>1011 1111

0XF7——>1111 0111 0X7F——>0111 1111

10、流水灯单片机程序代码8个灯

用单片机做LED流水灯,是每个单片机初学者学习和训练项目之一,流动的LED灯光会提高学习者极大的热情和兴趣。选用AT89C2051制作流水灯,这款单片机的体积小、管脚少、带2K字节闪速可反复编程、擦除只读存储器的8位单片机,它具有和MCS-51产品兼容、电压使用范围宽、空载低功耗等特点。

功能实现思路:当P1口某位为低电平时,相应的LED灯就会点亮;其它位就为高电平,相应的LED灯不亮。延时后不断将点亮位移到下一位,就会产生循环点亮流水的效果。

DEL1:MOV R6,#125;200(125*2)=50000