求你89C52单片机流水灯移动的程序 第一次一个LED左移8次,第二次二个LED
求你89C52单片机流水灯移动的程序第一次一个LED左移8次,第二次二个LED右移8次,第三次三个LED左移8次,以此类推....第八次LED闪烁8次。求程序,谢谢。...
求你89C52单片机流水灯移动的程序
第一次一个LED左移8次,第二次二个LED右移8次,第三次三个LED左移8次,以此类推....第八次LED闪烁8次。求程序,谢谢。 展开
第一次一个LED左移8次,第二次二个LED右移8次,第三次三个LED左移8次,以此类推....第八次LED闪烁8次。求程序,谢谢。 展开
2个回答
展开全部
#include<reg52.h>
#include<intrins.h>
typedef unsigned int u16;
typedef unsigned char u8;
sbit led=P2;//这里填你LED连接的端口(引脚),不一定是P2,也有可能是P3、P0
void delay(u16 i)
{
while(i--);
}
void shan1()
{
u8 i;
led=0x01;//我默认led输入高电平1是亮,具体按照你实际情况,低电平亮就0xfe;
for(i=0;i<7;i++)//已经点亮一个了,所以剩7个。
{
led=_crol_(led,1);//左移1位
}
led=0x00;
}
void shan2()
{
u8 i;
led=0xc0;//我默认led输入高电平1是亮,具体按照你实际情况
for(i=0;i<6;i++)已经点亮两个个了,所以剩6个。
{
led=_cror_(led,1);//右移一位
delay(1000);
}
led=0x00;
}
void shan2()
{
u8 i;
led=0xc0;//我默认led输入高电平1是亮,具体按照你实际情况
for(i=0;i<6;i++)
{
led=_cror_(led,1);
delay(1000);
}
led=0x00;
}
void main()
{
while(1)
{
shan1();
delay(1000);
shan2();
}
}
#include<intrins.h>
typedef unsigned int u16;
typedef unsigned char u8;
sbit led=P2;//这里填你LED连接的端口(引脚),不一定是P2,也有可能是P3、P0
void delay(u16 i)
{
while(i--);
}
void shan1()
{
u8 i;
led=0x01;//我默认led输入高电平1是亮,具体按照你实际情况,低电平亮就0xfe;
for(i=0;i<7;i++)//已经点亮一个了,所以剩7个。
{
led=_crol_(led,1);//左移1位
}
led=0x00;
}
void shan2()
{
u8 i;
led=0xc0;//我默认led输入高电平1是亮,具体按照你实际情况
for(i=0;i<6;i++)已经点亮两个个了,所以剩6个。
{
led=_cror_(led,1);//右移一位
delay(1000);
}
led=0x00;
}
void shan2()
{
u8 i;
led=0xc0;//我默认led输入高电平1是亮,具体按照你实际情况
for(i=0;i<6;i++)
{
led=_cror_(led,1);
delay(1000);
}
led=0x00;
}
void main()
{
while(1)
{
shan1();
delay(1000);
shan2();
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询