好了,单片机的实验板终于做好了,现在我们开始我们的试验教程吧.如果你觉得这款20元的实验板不错,你可以到这里购买:
http://store.taobao.com/shop/view_shop.htm?asker=wangwang&shop_nick=king_of_wind
下面我们来开始基础教程,你使用别的实验板或是仿真软件都一样.
所谓的流水灯,就是控制数码管按照一定的顺序流动就是了.比如,你先让第一个亮,一段时间后让第二个亮,再过一段时间让第三个亮.就这样连续起来,我们就会发现灯的亮暗就像流水一样,来来去去.
下面我们就开始程序吧:
#include <reg51.h>
sbit S1=0xA4;
void delay()
{
int i;
for(i=0;i<10000;i++) ;
}
void main()
{
char Mode[]={
0x7F, //第一个灯亮.低电平有效.=0b0111 1111;
0XBF, //0b1011 1111
0xDF, //0b1101 1111
0xEF, //0b1110 1111
0xF7, //0b1111 0111
0xFB, //0b1111 1011
0xFD, //0b1111 1101
0xFE //0b1111 1110
};
char Count="0";
for(;;)
{
if(S1==0)
{
P0=Mode[Count++];
if(Count>7)
Count="0";
delay();
}
}
}
注意:上面代码里面的两行Count="0";的零上面没有引号,是因为网站的问题,所以自动在零上面加了引号.请大家注意.
好了,就这么简单的一个程序,我们下载到实验板上面看看结果吧,视频结果你们可以看这里:
http://player.youku.com/player.php/sid/XNTQ3NTk1NDA=/v.swf
看来很成功嘛,我们那就再来一个复杂一点的,不是有四个按键嘛,我们就来个四个模式,不同的流水:
#include <reg51.h>
sbit S1=0xA4;
sbit S2=0xA5;
sbit S3=0xA6;
sbit S4=0xA7;
void delay()
{
int i;
for(i=0;i<10000;i++) ;
}
void main()
{
char Mode1[]={0x7F, 0XBF, 0xDF, 0xEF, 0xF7, 0xFB, 0xFD, 0xFE};
char Mode2[]={ 0x77, 0xBB, 0xDD, 0xEE};
char Mode3[]={ 0x7E, 0xBD, 0xDB, 0xE7};
char Mode4[]={0xE7, 0xDB, 0xBD, 0x7E};
char Count="0";
for(;;)
{
if(S1==0)
{
P0=Mode1[Count++];
if(Count>7)
Count="0";
delay();
}
if(S2==0)
{
P0=Mode2[Count++];
if(Count>3)
Count=0;
delay();
delay();
delay();
delay();
}
if(S3==0)
{
P0=Mode3[Count++];
if(Count>3)
Count=0;
delay();
delay();
delay();
delay();
}
if(S4==0)
{
P0=Mode4[Count++];
if(Count>3)
Count=0;
delay();
delay();
delay();
delay();
}
if(S1==1&&S2==1&&S3==1&&S4==1)
P0=0xFF;
}
}
好了,没有什么新玩意,就是刚才的程序换了的就是每个灯的开通顺序,我们来看看效果吧:
文章评论(0条评论)
登录后参与讨论