一个简单的流水灯c51程序
时间:11-15
来源:互联网
点击:
//代码
#includereg52.h> //头文件
#define uchar unsigned char //宏定义
#define uint unsigned int
void delay(uint x) //延时函数(控制灯亮与灭的间隔)
{
uint i,j;
for(i=500;i>0;i--)
for(j=x;j>0;j--);
}
void main() //主函数
{
uchar i; //定义局部变量
P2=0x00; //关闭所有发光二极管
while(1) //死循环
{
P2=0xfe; //第一个二极管亮
delay(100); //延时
for(i=0;i7;i++) //左移7次
{
P2=~P2; //把P2的值取反
P2=P21; //左移一位
P2=~P2;
delay(100);
}
for(i=0;i3;i++)
{
P2=0xff; //所有的二极管都灭
delay(100);
P2=0x00; //所有的二极管都亮
delay(100);
}
P2=0x7f; //最后一个二极管亮
delay(100);
for(i=0;i7;i++)
{
P2=~P2;
P2=P2>>1;
P2=~P2;
delay(100);
}
for(i=0;i3;i++)
{
P2=0x00;
delay(100);
P2=0xff;
delay(100);
}
}
}
/*注:发光二极管接单片机的P2口,低电平有效,即可实现流水灯效果
*/
#includereg52.h> //头文件
#define uchar unsigned char //宏定义
#define uint unsigned int
void delay(uint x) //延时函数(控制灯亮与灭的间隔)
{
uint i,j;
for(i=500;i>0;i--)
for(j=x;j>0;j--);
}
void main() //主函数
{
uchar i; //定义局部变量
P2=0x00; //关闭所有发光二极管
while(1) //死循环
{
P2=0xfe; //第一个二极管亮
delay(100); //延时
for(i=0;i7;i++) //左移7次
{
P2=~P2; //把P2的值取反
P2=P21; //左移一位
P2=~P2;
delay(100);
}
for(i=0;i3;i++)
{
P2=0xff; //所有的二极管都灭
delay(100);
P2=0x00; //所有的二极管都亮
delay(100);
}
P2=0x7f; //最后一个二极管亮
delay(100);
for(i=0;i7;i++)
{
P2=~P2;
P2=P2>>1;
P2=~P2;
delay(100);
}
for(i=0;i3;i++)
{
P2=0x00;
delay(100);
P2=0xff;
delay(100);
}
}
}
/*注:发光二极管接单片机的P2口,低电平有效,即可实现流水灯效果
*/
- avr单片机流水灯汇编程序及电路图(12-02)
- 51单片机矩阵键盘与左右流水灯控制C程序(12-02)
- 单片机左右流水灯与数码管动态显示C程序(12-02)
- 51单片机流水灯左移 右移控制程序(12-02)
- 51单片机心形流水灯源程序(12-02)
- PIC单片机控制8位流水灯C语言程序(12-02)