标题: 这是我初学做的时钟,可见附件还有码源如下 [打印本页]

作者: 钟麻麻    时间: 2018-11-17 20:07
标题: 这是我初学做的时钟,可见附件还有码源如下
#include"reg51.h"

#define  uint  unsigned int
sbit    key1=P1^0;
sbit    key2=P1^1;
sbit    key3=P1^2;
unsigned int addNum;
unsigned char Nums,Numm,Numh;  
#define SEGNUM P0
#define WEI    P2            
unsigned char code table[]={0x3f ,0x06 ,0x5b ,0x4f ,0x66 ,0x6d ,
                            0x7d ,0x07 ,0x7f ,0x6f ,0x77 ,0x7c ,
                                                        0x39 ,0x5e ,0x79 ,0x71 ,0x00};
void delay(unsigned int num)
          {
       unsigned i,j;
           for(i=num;i>0;i--)
            for(j=120;j>0;j--);
    }



void main()
        {
      TMOD=0X02;
          TL0=TH0=6;
          ET0=1;        //中断允许位
          EA=1;
          TR0=1;        //TR0置1,开启计时

      IT0=1;  //中断0的中断方式
          EX0=1;        //开通允许位
          IT1=1;        //中断方式
          EX1=1;
          TR0=1;          //启动

while(1)
{               
                if(!key1)
        {  
              delay(10) ;
              if(!key1)
              {
           Numh++;  while(!key1) ;
              }
            }

                if(!key2)
        {  
              delay(10) ;
              if(!key2)
              {
           Numm++;  while(!key2) ;
              }
            }

                if(!key3)
        {  
              delay(10) ;
              if(!key3)
              {
           Nums++;  while(!key3) ;
              }
            }

                WEI=0Xef;
                SEGNUM=table[Nums/10];  //对10取整
                delay(5);
             WEI=0Xdf;
                SEGNUM=table[Nums%10];
                delay(5);

            WEI=0xfb;
            SEGNUM=table[Numm/10];               
        delay(5);
        WEI=0xf7;
        SEGNUM=table[Numm%10];
            delay(5);
            if(Numm==60)
           {
                   Numm=0;
           }

       WEI=0xfe;
           SEGNUM=table[Numh/10];               
       delay(5);
       WEI=0xfd;
       SEGNUM=table[Numh%10];
           delay(5);
               
           }

}
void timer0() interrupt 1
{
    addNum++;
        if(addNum==4000)
        {
        Nums++;
        addNum=0;   
        }
        if(Nums==60)
        {
        Numm++;
        Nums=0;   
        }
       
        if(Numm==60)
        {
        Numh++;
        Numm=0;
         }
                  
        if(Numh==24)
        {
    Numh=0;   
    }
                  
}


HTWN6AHLBU_2Z5YQ`}VI67M.png (50.62 KB, 下载次数: 20)

HTWN6AHLBU_2Z5YQ`}VI67M.png

时钟.rar

59.71 KB, 下载次数: 5, 下载积分: 黑币 -5






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1