/***************************************************************************/
#include
sbit Axs=P1^3; sbit Bxs=P1^2; sbit Cxs=P1^1; sbit Dxs=P1^0;//數碼管位選埠
char table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//數碼管顯示編碼
void YS(char hs); void XS(int xm,int xs); void Time1(void);int n,i,m,s;
void main(void){Time1();while(1){XS(m,s);}}//主函式
void int1() interrupt 1 //定時器中斷
{
TH0=(65536-1000)/256; TL0=(65536-1000)%256; n++;
if(n>1000){n=0;s++; if(s>59){s=0;m++;if(m>59){m=0;}}}
}
void Time1(void)//定時器初始化
TH0=(65536-921)/256; TL0=(65536-921)%256;
TMOD=0x01; EA=1; ET0=1; TR0=1;
void XS(int xm,int xs) //數碼管顯示
char d1,d2,d3,d4;
d1=(xs/1)%10; d2=(xs/10)%10; d3=(xm/1)%10; d4=(xm/10)%10;
P0=table[d1]; Axs=0; YS(10); Axs=1;//個位顯示
P0=table[d2]; Bxs=0; YS(10); Bxs=1;//十位顯示
P0=table[d3]; Cxs=0; YS(10); Cxs=1;//百位顯示
P0=table[d4]; Dxs=0; YS(10); Dxs=1;//千位顯示
void YS(char hs){char hk;for(;hs>0;hs--){for(hk=200;hk>0;hk--);}}//延時函式
這是我做的利用微控制器定時器中斷,模擬時鐘的程式
和你要的一樣,無償奉獻了
數碼管的埠用的可能不一樣,自己改下
/***************************************************************************/
#include
sbit Axs=P1^3; sbit Bxs=P1^2; sbit Cxs=P1^1; sbit Dxs=P1^0;//數碼管位選埠
char table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//數碼管顯示編碼
void YS(char hs); void XS(int xm,int xs); void Time1(void);int n,i,m,s;
/***************************************************************************/
void main(void){Time1();while(1){XS(m,s);}}//主函式
/***************************************************************************/
void int1() interrupt 1 //定時器中斷
{
TH0=(65536-1000)/256; TL0=(65536-1000)%256; n++;
if(n>1000){n=0;s++; if(s>59){s=0;m++;if(m>59){m=0;}}}
}
/***************************************************************************/
void Time1(void)//定時器初始化
{
TH0=(65536-921)/256; TL0=(65536-921)%256;
TMOD=0x01; EA=1; ET0=1; TR0=1;
}
/***************************************************************************/
void XS(int xm,int xs) //數碼管顯示
{
char d1,d2,d3,d4;
d1=(xs/1)%10; d2=(xs/10)%10; d3=(xm/1)%10; d4=(xm/10)%10;
P0=table[d1]; Axs=0; YS(10); Axs=1;//個位顯示
P0=table[d2]; Bxs=0; YS(10); Bxs=1;//十位顯示
P0=table[d3]; Cxs=0; YS(10); Cxs=1;//百位顯示
P0=table[d4]; Dxs=0; YS(10); Dxs=1;//千位顯示
}
/***************************************************************************/
void YS(char hs){char hk;for(;hs>0;hs--){for(hk=200;hk>0;hk--);}}//延時函式
/***************************************************************************/
這是我做的利用微控制器定時器中斷,模擬時鐘的程式
和你要的一樣,無償奉獻了
數碼管的埠用的可能不一樣,自己改下