原创 彬太郎51单片机视频教程C语言版之流水灯

2011-3-24 15:41 2431 7 7 分类: MCU/ 嵌入式

attachment downloadd77863e9-ffb7-4cd5-b06f-ee6aafdca6de.JPG


流水灯是一个最经典的单片机入门程序,实现对单片机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

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /3 下一条