51单片机8个led向左循环依次点亮,按一下开关后往右循环一次后继续向左循环
51单片机8个led向左循环依次点亮,按一下开关后往右循环一次后继续向左循环p1口接8个发光二极管,每个时刻只有一只点亮,点亮的灯每隔0.5秒移动一次。p2口为开关...
51单片机8个led向左循环依次点亮,按一下开关后往右循环一次后继续向左循环p1口接8个发光二极管,每个时刻只有一只点亮,点亮的灯每隔0.5秒移动一次。p2口为开关
展开
1个回答
展开全部
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
uchar time=0,num,led=0xfe;
bit flag=0;
sbit key=P2^0;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
time++;
if(time>=10)
{
time=0;
if(flag==0)
{
P0=led;
led=_crol_(led,1);
念搜返 }
else
{
P0=led;
led=_cror_(led,1);
num++;
漏凯 if(num>8)flag=0;
}
仔饥 }
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
while(1)
{
if(key==0)
{
while(key==0);
flag=1;
num=0;
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询