实现流水灯代码
#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; } } } } } }