程序如下 :
#include <reg52.h> //52系列
#include<intrins.h> //左右移
#define uint unsigned int /*定义一个无符号整形变量*/
#define uchar unsigned char //定义一个无符号字符型变量(0-255)
uchar aa; // //定义一个变量aa
void delay (uint z); //声明延时子函数
void main()//主函数
{
while(1) //大循环
{ //定义变量a和b
uchar a,b;
for(a=0;a<8;a++)//闪烁8次
{
P2=0x00; // 全亮
delay(20000); // 延时
P2=0xff; // 全灭
delay(20000);
}
aa=0xfe; // 第一个灯亮
for(b=0;b<9;b++)//左移7次
{
P2=aa;//P2赋值
aa=_crol_(aa,1); //左移一位
delay(20000);
}
P2=0xaa;//1357亮
delay(20000);
P2=0x55; //2468 亮
delay(20000);
}
}
void delay(uint z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
延时时间开始是500 后来改成20000 但是时间一点没有变化 移位也是只移了6次 左后一个灯没亮 就开始下一步了
#include <reg52.h> //52系列
#include<intrins.h> //左右移
#define uint unsigned int /*定义一个无符号整形变量*/
#define uchar unsigned char //定义一个无符号字符型变量(0-255)
uchar aa; // //定义一个变量aa
void delay (uint z); //声明延时子函数
void main()//主函数
{
while(1) //大循环
{ //定义变量a和b
uchar a,b;
for(a=0;a<8;a++)//闪烁8次
{
P2=0x00; // 全亮
delay(20000); // 延时
P2=0xff; // 全灭
delay(20000);
}
aa=0xfe; // 第一个灯亮
for(b=0;b<9;b++)//左移7次
{
P2=aa;//P2赋值
aa=_crol_(aa,1); //左移一位
delay(20000);
}
P2=0xaa;//1357亮
delay(20000);
P2=0x55; //2468 亮
delay(20000);
}
}
void delay(uint z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
延时时间开始是500 后来改成20000 但是时间一点没有变化 移位也是只移了6次 左后一个灯没亮 就开始下一步了