1个回答
展开全部
#include <reg51.h>
#define LED P1 //宏定义,使用LED代替P1口(相当于LED=P1)
#define uchar unsigned char //用uchar代替unsigned char方便操作
#define uint unsigned int
/*------------------time ms延时函数-----------------*/
void delay_ms(uint time)
{
uchar tres;
for(;time>0;time--)
{
tres=150;
while(tres--);
}
}
void main()
{
uchar t;
LED=0X01;//P1=00000001B
while(1)//死循环,不停的点亮和熄灭LED
{
for(t=0;t<8;t++)
{
LED=~LED;//按位取反,点亮一个LED
delay_ms(100);//延时0.1s
LED=~LED;//按位取反
LED<<=1;//左移一位,点亮不同的LED
}
LED=0X80;//P1=10000000B
for(t=0;t<8;t++)
{
LED=~LED;//按位取反,点亮一个LED
delay_ms(100);//延时0.1s
LED=~LED;//按位取反
LED>>=1;//右移一位,点亮不同的LED
}
LED=0X01;//P1=00000001B
}
}
#define LED P1 //宏定义,使用LED代替P1口(相当于LED=P1)
#define uchar unsigned char //用uchar代替unsigned char方便操作
#define uint unsigned int
/*------------------time ms延时函数-----------------*/
void delay_ms(uint time)
{
uchar tres;
for(;time>0;time--)
{
tres=150;
while(tres--);
}
}
void main()
{
uchar t;
LED=0X01;//P1=00000001B
while(1)//死循环,不停的点亮和熄灭LED
{
for(t=0;t<8;t++)
{
LED=~LED;//按位取反,点亮一个LED
delay_ms(100);//延时0.1s
LED=~LED;//按位取反
LED<<=1;//左移一位,点亮不同的LED
}
LED=0X80;//P1=10000000B
for(t=0;t<8;t++)
{
LED=~LED;//按位取反,点亮一个LED
delay_ms(100);//延时0.1s
LED=~LED;//按位取反
LED>>=1;//右移一位,点亮不同的LED
}
LED=0X01;//P1=00000001B
}
}
通友智能装备(江苏)有限公司_
2023-01-30 广告
2023-01-30 广告
i=P0;//是检测P0端口的值1或0;以便将检测完的数据赋值给P1,从而实现P1口对应的二极管点亮; P1=i;//是将检测到的值用发光二极管点亮显示出来。 死循环是一直执行上面两条操作,因为程序一直在检测按键操作, 我只要将开关按下,...
点击进入详情页
本回答由通友智能装备(江苏)有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询