51单片机怎么用button开关控制8个led从左往右以及从右往左的转化,要c需要代码,谢谢!

如题所述

第1个回答  2018-01-02
设:button 开关接在P0.1口,LED灯接P2口,共阳极接法。程序如下:
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit button=P0^1 ;
void delay1ms(uint x) 延时。。。ms
{
for(uint s=0;s<x;s++)

for(uint m=0;m<113;m++);

}
void main ( )//主函数
{
uint j,k;
k=0;

uchar data=0xfe; //数据

while(1)
{
if(button==1) //按键按下

{
delay1ms(5);//防抖动,误操作

if(button==1)//确认按键按下

{
k++;
if(k==1) //第一次按键按下执行右移
{
for(j=0;j<8;j++)

{
P2=data;

delay1ms(500);

date>>=1;
}
}

if(k==2)//第二次按键按下,循环左移
{
k=0;

for(j=0;j<8;j++)

{
P2=data;

delay1ms(500);

date<<=1;
}
}
}

}
}

}本回答被网友采纳
相似回答