2个回答
2013-11-13
展开全部
我用的是89C52单片机写的,数码管是共阴极的。99秒定时器,你只需要修改初始的值就可以了。#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar tt=0,flag;
uint i=0;
uchar code table[10] = {0x03, 0x9f, 0x25, 0x0d, 0x99, 0x49, 0x41, 0x1f, 0x01, 0x09};
void display(uint i);
void delay(uint del)
{
uchar i, j;
for(i=0; i<del; i++)
for(j=0; j<=148; j++);}
main()
{
TMOD=0X01;
TR0=1; //启动定时器
ET0=1; //开定时器
TH0=0X40;
TL0=0X00;
EA=1; //开总中断
while(1)
{
if(tt==20)
{
tt=0;
i++;
if(i==99)
i=0;
} display(i);
}
}
void display(uint k)
{
P2=0X04;
P0=table[k/100];
delay(5);
P2=0X02;
P0=table[k%100/10];
delay(5);
P2=0X01;
P0=table[k%10];
delay(5);
}
void timer0() interrupt 1
{
TH0=0X40;
TL0=0X00;
tt++;
}
#define uchar unsigned char
#define uint unsigned int
uchar tt=0,flag;
uint i=0;
uchar code table[10] = {0x03, 0x9f, 0x25, 0x0d, 0x99, 0x49, 0x41, 0x1f, 0x01, 0x09};
void display(uint i);
void delay(uint del)
{
uchar i, j;
for(i=0; i<del; i++)
for(j=0; j<=148; j++);}
main()
{
TMOD=0X01;
TR0=1; //启动定时器
ET0=1; //开定时器
TH0=0X40;
TL0=0X00;
EA=1; //开总中断
while(1)
{
if(tt==20)
{
tt=0;
i++;
if(i==99)
i=0;
} display(i);
}
}
void display(uint k)
{
P2=0X04;
P0=table[k/100];
delay(5);
P2=0X02;
P0=table[k%100/10];
delay(5);
P2=0X01;
P0=table[k%10];
delay(5);
}
void timer0() interrupt 1
{
TH0=0X40;
TL0=0X00;
tt++;
}
2013-11-13
展开全部
用片内定时/计数器就可以,再外加LED显示器
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询