定时器T0控制流水灯

2019-03-24 16:54发布

/* 定时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;//这一句什么意思,看不懂
                        }
                }
        }       
}

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
tiankai001
2019-03-24 22:59
本帖最后由 tiankai001 于 2019-2-25 17:14 编辑

K的值不能超过8,超过8后,从零开始,这与8个LED是对应的。也就是说从第一个LED开始(此时K=0),然后到第8个LED(此时K=7),再循环一次后,K=8,这个时候,要从新从第一个LED开始,所以这时要让K=0

一周热门 更多>