问题专家app做一个单片机编程,把跑马灯从1个灯亮到4个灯,再从4个灯到一个灯的循环,
1个回答
展开全部
#include <reg52.h>
void Delay10ms(unsigned int c); //延时10ms
unsigned char LED;
void main()
{
unsigned char i;
LED = 0xFE; //--首先赋值LED--//
while (1)
{
//--LED往左闪烁--//
for (i = 0 ;i < 7 ; i++)
{
//--将LED 的值赋给P0口--//
P0 = LED;
Delay10ms(50); //延时一下,为了让灯有持续点亮的时间
LED = LED << 1; // 将LED里面的值左移一位,然后重新赋给LED
LED = LED | 0x01; // 移位后,前面的位为高电平
}
//--LED向右显示--//
for (i = 0 ;i < 7 ; i++)
{
P0 = LED;
Delay10ms(50);
LED = LED >> 1; // 右移
LED = LED | 0x80; // 移位后,后面的位为高电平
}
}
}
void Delay10ms(unsigned int c) //误差 0us
{
unsigned char a, b;
for (;c>0;c--)
{
for (b=38;b>0;b--)
{
for (a=130;a>0;a--);
}
}
}
void Delay10ms(unsigned int c); //延时10ms
unsigned char LED;
void main()
{
unsigned char i;
LED = 0xFE; //--首先赋值LED--//
while (1)
{
//--LED往左闪烁--//
for (i = 0 ;i < 7 ; i++)
{
//--将LED 的值赋给P0口--//
P0 = LED;
Delay10ms(50); //延时一下,为了让灯有持续点亮的时间
LED = LED << 1; // 将LED里面的值左移一位,然后重新赋给LED
LED = LED | 0x01; // 移位后,前面的位为高电平
}
//--LED向右显示--//
for (i = 0 ;i < 7 ; i++)
{
P0 = LED;
Delay10ms(50);
LED = LED >> 1; // 右移
LED = LED | 0x80; // 移位后,后面的位为高电平
}
}
}
void Delay10ms(unsigned int c) //误差 0us
{
unsigned char a, b;
for (;c>0;c--)
{
for (b=38;b>0;b--)
{
for (a=130;a>0;a--);
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询