实现流水灯代码

#include <reg52.h> //包含特殊功能寄存器定义的头文件

sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
void main()
{
unsigned int cnt = 0;
unsigned int i = 0; //从左到右的计数器
unsigned int j = 0; //从右到左的计数器

ENLED = 0;
ADDR3 = 1;
ADDR2 = 1;
ADDR1 = 1;
ADDR0 = 0;
TMOD=0x01; //采用模式
TH0=0xB8;
TL0= 0x00;
TR0=1; //启动定时器

while (1)
{
if(TF0==1)
{
TF0=0; //判断溢出标识
TH0=0XB8;
TL0=0X00;
cnt++;
if(cnt>=50){
cnt=0;
if(i<8) //当i=8时,则退出该判断,进行j
{
P0 = ~(0x01 << i);
i++;

}
else
{
P0=~(0x80>>j);
j++;
if(j>=8) //完成第一轮循环,i,j变量置初始值
{
i=0;
j=0;
}
}
}
}
}
}

 

posted @ 2022-06-26 17:33  hisweetyGirl  阅读(192)  评论(0编辑  收藏  举报