回覆列表
  • 1 # 使用者7364316064609

    /***************************************************************************/

    #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--);}}//延時函式

    /***************************************************************************/

    這是我做的利用微控制器定時器中斷,模擬時鐘的程式

    和你要的一樣,無償奉獻了

    數碼管的埠用的可能不一樣,自己改下

  • 中秋節和大豐收的關聯?
  • 古詩《房兵曹胡馬》的簡單意思是什麼?