定时器控制单个数码管每隔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];
}
}
追问呵呵,很好,谢谢啦。
#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];
}
}
追问呵呵,很好,谢谢啦。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯