当前位置: 代码迷 >> 单片机 >> 初学者有关问题:一个简单的流水灯
  详细解决方案

初学者有关问题:一个简单的流水灯

热度:34   发布时间:2016-04-28 15:36:56.0
菜鸟问题:一个简单的流水灯
要求,开始4个亮,四个不亮,然后按下按键后,从上往下,每次亮两个,一直循环

别人的代码如下:

#include <AT89X51.H>
unsigned char a,k,n,i=0;
main()
{
P2=0x0f;
for(k=0;k<20;k++);  //这句是什么意思?

if(P1_0 == 0)  //还有这句
{
while(1)
{

?while(P1_0 == 0);  //还有这句
a=0x03;
for(i=0;i<4;i++)
{
P2=a;
a<<=2;
for(k=0;k<200;k++)
{
for(n=0;n<200;n++);
}
}


}
}
}



能不能给我说下总体流程,然后  怎么表示按键是否按下去?

谢谢大家了


------解决方案--------------------
#include <AT89X51.H>
unsigned char a,k,n,i=0;
main()
{
P2=0x0f;//使p2.7-p2.4为输入
for(k=0;k<20;k++);  //延时,什么也不做

if(P1_0 == 0)  //当p1.0为低电平0时
{
while(1)//循环条件
{

?while(P1_0 == 0);  //当p1.0为0时什么也不做,直到p1.0为1
a=0x03;
for(i=0;i<4;i++)//共循环4次,每次点亮两个灯
{
P2=a;//a赋值给p2口,p2.1和p2.0为1,对应灯亮
a<<=2;//a右移2位
for(k=0;k<200;k++)//以下为延时
{
for(n=0;n<200;n++);
}
}
}
}
}

给你加了注释,程序中,一直等待,p1.0应该是接在按键上,按下后p1.0为1,程序才开始执行,每次点亮2个灯,循环4次,将p2口连接的灯循环点亮。
------解决方案--------------------
楼上已经都说了
------解决方案--------------------



引用:
引用:C/C++ code?1234567891011121314151617181920212223242526#include <AT89X51.H>unsigned char a,k,n,i=0;main(){P2=0x0f;//使p2.7-p2.4为输入for(k=0;k<20;k++);  //延时,什么也不做     if(P1_……


这个不一定,关键是看的你的硬件是如何设计的
------解决方案--------------------
  相关解决方案