您的当前位置:首页正文

单片机数码管60分钟倒计时c程序

来源:我们爱旅游


#include

#define uchar unsigned char

#define uint unsigned int

uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阴数码管 0-9

uint a=20;

uchar buffer[]={59,59};

sbit P2_7=P2^7;

sbit P2_6=P2^6;

sbit P2_5=P2^5;

sbit P2_4=P2^4;

sbit P2_3=P2^3;

sbit P2_2=P2^2;

void delay(uint x);

void display();

void init()

{

TH0=0x4c;

TL0=0x00;

TMOD=0X01;

IE=0X82;

TR0=1;

}

void main()

{

init();

while(1)

{

display();

}

}

timer0() interrupt 1 using 1

{

TH0=0x4c;

TL0=0x00;

a--;

if(a==10)

{

P2_3=0;

P2_2=0;

}

if (a==0)

{

a=20;

P2_3=1;

P2_2=1;

buffer[1]--;

if(buffer[1]==0)

{

buffer[1]=59;

buffer[0]--;

if(buffer[0]==0)

{

buffer[0]=59;

}

}

}

}

void display()

{

P0=tab[buffer[0]/10];

P2_7=0;

delay(50);

P2_7=1;

P0=tab[buffer[0]%10];

P2_6=0;

delay(50);

P2_6=1;

P0=tab[buffer[1]/10];

P2_5=0;

delay(50);

P2_5=1;

P0=tab[buffer[1]%10];

P2_4=0;

delay(50);

P2_4=1;

}

void delay(uint x)

{

uint j ,k;

for(x=j;j>0;j--)

for(k=100;k>0;k--);

}

因篇幅问题不能全部显示,请点此查看更多更全内容