流水灯是一个最经典的单片机入门程序,实现对单片机IO口的控制,学会了控制就能写出花样流水灯了。
1.简单流水灯
/****先点亮8个LED,然后闪烁****/
//作者:许彬@SCUT
//时间:2010.07.23
#include<reg52.h>//包含51单片机的头文件
#define uint unsigned int //宏定义,即用“uint”代替“unsigned int”
#define uchar unsigned char
void delay_ms(uint ms)//毫秒级带形参延时子函数
{uint i,j;
for(i=0;i<ms;i++)
for(j=0;j<1000;j++);
}
void main()
{
while(1)
{
P3=~P3;//LED闪烁
delay_ms(80);//LED亮或灭一段时间
}
}
2.花样流水灯
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
#define port P2
uchar tim;
void delay_ms(uint ms)//毫秒级带形参延时子函数
{uint i,j;
for(i=0;i<ms;i++)
for(j=0;j<1000;j++);
}
void show_one() //一个LED来回移动
{uchar i,A;
A=0xfe;
for(i=0;i<8;i++)
{port=(A<<i)|(A>>(8-i));//循环左移
delay_ms(tim);}
A=0x7f;
for(i=0;i<8;i++)
{port=(A>>i)|(A<<(8-i));//循环右移
delay_ms(tim);}
}
void show_two() //相邻两个LED来回移动
{uchar i,A;
A=0xfa;
for(i=0;i<8;i++)
{port=(A<<i)|(A>>(8-i));
delay_ms(tim);}
A=0x7f;
for(i=0;i<8;i++)
{port=(A>>i)|(A<<(8-i));
delay_ms(tim);}
}
void main()
{tim=50;
while(1)
{ show_one();
show_two();}
}
这是本人自主设计的51单片机开发板配套的视频教程。在这里分享一下,希望能给单片机新手一点帮助。如有错误,敬请指出!(后续更新)
欢迎光临我们的淘宝网店:http://item.taobao.com/auction/item_detail.htm?item_num_id=9447334857
文章评论(0条评论)
登录后参与讨论