实现流水灯代码

复制代码
#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 @   hisweetyGirl  阅读(193)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示