專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

單片機(jī)C語(yǔ)言(0到100計(jì)時(shí))

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2012年11月26日   【字體:

基于51hei單片機(jī)開(kāi)發(fā)板的計(jì)時(shí)器程序


     #include<reg52.h>
     #define uint unsigned int
     #define uchar unsigned char
     uchar temp,bai,shi,ge,aa;
     sbit dula=P2^6;
     sbit wela=P2^7;
     uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,
   0x39,0x5e,0x79,0x71};
     void display(uchar bai,uchar shi,uchar ge); 
        void delay(uint z);
     void init();
     void main()
   {
        init(); //初始化子程序
        while(1)
      {
    if(aa==20)
    {
     aa=0;
     temp++;
      if(temp==100)
        {
        temp=0;      
     }
    
     bai=temp/100;
     shi=temp%100/10;
     ge=temp%10;
     }
     display(bai,shi,ge);
    }
   }
   void delay(uint z) 
   {
      uint x,y;
   for(x=z;x>0;x--)
      for(y=110;y>0;y--);    
   } 
    void display(uchar bai,uchar shi,uchar ge) 
   
    
     
    {
    dula=1;
    P0=table[bai];
    dula=0;
    P0=0xff;//     
    wela=1;
    P0=0xfe; //位選通
    wela=0;
    delay(1) ;
     
       dula=1;
    P0=table[shi];
    dula=0;
    P0=0xff; //消隱
    wela=1;
    P0=0xfd;
    wela=0;
    delay(1) ;
     
    dula=1;
    P0=table[ge];
    dula=0;
    P0=0xff;// 消隱
    wela=1;
    P0=0xfb;
    wela=0;
    delay(1) ;
    } 
    void init()
    {wela=0;
     dula=0;
     temp=0;
    TMOD=0x01;
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
        EA=1;
    ET0=1;
    TR0=1;
    } 
    void timer0() interrupt 1
    { TH0=(65536-50000)/256;
      TL0=(65536-50000)%256;
      aa++;
    }   
關(guān)閉窗口

相關(guān)文章