我是一个刚接触这方面的学生,所以有些东西是真的搞不懂,求各位帮我一把
参考代码:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit p30=P3^0;
sbit p31=P3^1;
uchar tt=0,count=160,num=99;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
void init() //初始化定时器 和数码管
{
TH0=0X3C; //给定时器赋处置
TL0=0XB0;
EA=1; //开总中断
ET0=1; //开定时器中断
TMOD=0X01; //选择定时器方式1
TR0=1; //开定时器
P2=0;
p30=1;
p31=1;
}
void delay(uint ms) //延时函数
{
uint x,y;
for(x=ms;x>0;x--)
for(y=110;y>0;y--);
}
void display(uchar num) //显示函数
{
uchar ge,shi;
ge=num%10;
shi=num/10;
p31=1;
p30=0;
P2=table[shi];
delay(5);
p31=0;
p30=1;
P2=table[ge];
delay(5);
}
main() //主函数
{
init();
while(1)
{
if(tt==20)
{
tt=0;
num--;
if(num==-1)
num=99;
}
display(num);
}
}
void timer0() interrupt 1 //中断服务程序
{
TH0=0X3C;
TL0=0XB0;
tt++;
}
#晶振频率12MHZ 数码管是共阴极数码管
先搞定数码管的刷新,然后就是更新刷新内容的问题了