永发信息网

定时器控制单个数码管每隔0.5s循环递增显示0-9

答案:1  悬赏:20  手机版
解决时间 2021-02-19 19:39
  • 提问者网友:饥饿走向夜
  • 2021-02-18 21:52
定时器控制单个数码管每隔0.5s循环递增显示0-9
最佳答案
  • 五星知识达人网友:掌灯师
  • 2021-02-18 22:36
#include 

#define LED_7SEG (P0)

unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

void Timer0Init(void) //50毫秒@12.000MHz
{
TMOD &= 0xF0; //设置定时器模式
TMOD |= 0x01; //设置定时器模式
TL0 = 0xB0; //设置定时初值
TH0 = 0x3C; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
}


void main()
{
    LED_7SEG=table[0];
    Timer0Init();
    EA=1;
    ET0=1;
    while(1);   
}

void t0inter() interrupt 1
{
    static unsigned char count=0,show=0;
TL0 = 0xB0; //设置定时初值
TH0 = 0x3C; //设置定时初值
    if(++count>9)
    {
        count=0;
        if(++show>9)
        {
            show=0;
        }
        LED_7SEG=table[show];
    }
}
追问呵呵,很好,谢谢啦。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯