#include<reg52.h> //52系列单片机头文件
#include <intrins.h> //包含_crol_(循环左移)函数所在的头文件
void delay(int z); //声明子函数
unsigned char temp; //定义一个变量,用来给P1口赋值
int i,j;
void main()
{
temp=0xfc; //赋初值11111100
P1=temp; //先点亮第一个发光二极管
while(1) //大循环
{
for(i=6;i>0;i--) //控制亮点从低位往高位移动7次
{
delay(500); //延时500毫秒
temp=_crol_(temp,1); //将temp循环左移一位后再赋给temp
P1=temp; //将移位后的值赋给P1口,从低位到高位逐个点亮发光二极管
}
for(j=;j>0;j--) //控制亮点从高位往低位移动7次
{
delay(500); //延时500毫秒
temp=_cror_(temp,1); //将temp循环右移一位后再赋给temp
P1=temp; //将移位后的值赋给P1口,从高位到地位逐个点亮发光二极管
}
}
}
void delay(int z)
{
unsigned int x,y;
for(x=z;x>0;x--) //延时z毫秒
for(y=110;y>0;y--);
}
AT89C51,流水灯,同时亮着两个灯流动的效果
最新推荐文章于 2025-04-09 19:55:55 发布