‘壹’ 51单片机设计跑马灯的程序用(c语言)编写
|P1口接8个发光二极管共阳
#include <AT89X51.H>
unsigned char i;
unsigned char temp;
unsigned char a,b;
void delay(void)
{
unsigned char m,n,s;
for(m=20;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
void main(void)
{
while(1)
{
temp=0xfe;
P1=temp;
delay();
for(i=1;i<8;i++)
{
a=temp<<i;
b=temp>>(8-i);
P1=a|b;
delay();
}
for(i=1;i<8;i++)
{
a=temp>>i;
b=temp<<(8-i);
P1=a|b;
delay();
}
}
}
(1)走马灯单片机扩展阅读:
Proteus 自从有了单片机也就有了开发系统,随着单片机的发展开发系统也在不断发展。 keil是一种先进的单片机集成开发系统。它代表着汇编语言单片机开发系统的最新发展,首创多项便利技术,将开发的编程/仿真/调试/写入/加密等所有过程一气呵成,中间不须任何编译或汇编。
‘贰’ 在单片机编写走马灯程序中,怎样实现当按下一个键使八个灯全亮,当松开按键时又回到原来的亮灯的程序中。
这个程序结构的问题,有很多种方法,这里提供两种做为参考,一,以按键为条件做个分支(就是if else语句),按键无按下时运行跑马灯,有按键时输出全亮。这是初学者最容易理解的。二,程序的结构调整一下,做一个输出的BUF,按键按下时填BUF全亮的数据,这时跑马灯的数据是停在那里的,不按下时BUF放入跑马灯的数据,开始继续运行,这个结构放在这实际不实用,但当很多地方同时操作同一设备时就有用了,写大一点的程序一般都这么用,我个人的见解。
‘叁’ 单片机跑马灯反向跑
点了S2按键。按下按键S1,跑马灯正向运行;按下按键S2,跑马灯反向运行,所以跑马灯反方向跑,可能是按了S2按键。常规的跑马灯,是指将多个发光二极管分别连接到单片机的某一并行端口处,通过编程控制这几个发光二极管依次点亮。
‘肆’ 单片机中走马灯如何编程
就是所谓的流水灯,可以说是单片机中最简单的了,直接用一组总线控制(P0,P1,P2,P3口都可以),控制相应的LED的端口的高低电平就可以(至于是高电平还是低电平就要看你的硬件电路了)
‘伍’ 单片机跑马灯实验中,改变延时其的常数,使用全速运行命令,显示发生什么变化
单片机跑马灯的流动速度与延时长短有关,延时越长,跑的越慢。反之,延时越短,跑的越快,所以并没有什么全速运行命令,当流动速度快到一定程度后,看剧的效果就是全亮了。这与多位数码管动态显示是一个原理,如果每一位显示延时也和流水相近,同样,看到的效果是数字在跑,而延时足够短,看起来就全亮了,其实还是在流动,只是因为太快了,看不出流动了。