/* 定时1秒来控制流水灯的流动速度 */
#include<reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
void tim0init()//定时器0初始化
{
TMOD=0X01; //t0 方式1
TH0=0XFC;
TL0=0X18;//定时1ms
TR0=1; //打开t0定时器
}
void main()
{
u16 j;
u8 k;
tim0init();
while(1)
{
if(TF0==1)
{
TF0=0;
TH0=0XFC;
TL0=0X18;//定时1ms
j++;
if(j==1000) //1s
{
j=0;
P0=0x01<<k;
k++;
if(k==8)k=0;//这一句什么意思,看不懂
}
}
}
}
此帖出自
小平头技术问答
K的值不能超过8,超过8后,从零开始,这与8个LED是对应的。也就是说从第一个LED开始(此时K=0),然后到第8个LED(此时K=7),再循环一次后,K=8,这个时候,要从新从第一个LED开始,所以这时要让K=0
一周热门 更多>