main.c

来自「keilc51 Digital_Clock_C」· C语言 代码 · 共 105 行

C
105
字号
#include"main.h"

   unsigned int tcnt;
   unsigned char i,j;
   unsigned char hour;
   unsigned char minite;
   unsigned char second; 
   unsigned char dispbuf[6];
   unsigned char  dipcod[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};

void t0() interrupt 1 using 0	            //定时器T0中断服务函数
{	
	  tcnt++;
          if(tcnt==3701)			            //定时1S
              {
                tcnt=0;
                  second++;
                    if(second==60)
                       {
                          second=0;
                            minite++;   	    //分钟加一
                               if(minite==60)
                                 {
                                    minite=0;
                                      hour++;	//时钟加一
                                        if(hour==24)
                                           {
                                             hour=0;
                                           }
                                  }
                       }
              dispbuf[5]=dipcod[second%10];
              dispbuf[4]=dipcod[(second/10)];
              dispbuf[3]=dipcod[(minite%10)];
              dispbuf[2]=dipcod[(minite/10)];
              dispbuf[1]=dipcod[(hour%10)];
              dispbuf[0]=dipcod[(hour/10)];	
     		  				  
   	 
			  lcd_moveto(8);
           
		        for(i=0;i<6;i++)				  
                   {lcd_wrdata(dispbuf[i]);
				       if((i==1)|(i==3))
					        {lcd_string(":");}
				    }
	 	  
    
			  }  
  	 
 }
void main(void)
{
P1=0xef;
TMOD=0x02;
TH0=0x06;
TL0=0x06;  
TR0=1;
ET0=1;
EA=1;
DisplayLCD(); 
while(1)
{if(k0==0)	   //判断分钟调整键是非按下
          {
             for(i=125;i>0;i--)
               for(j=248;j>0;j--);
                   if(k0==0)
                      {
                         minite++;
                           if(minite==60)
                              {
                                minite=0;
                              }
                          	   //存储分钟值
						dispbuf[3]=dipcod[minite%10];
                        dispbuf[2]=dipcod[minite/10];

                       while(k0==0);
                    }
         }
     if(k1==0)	  //判断时钟调整键是非按下
        {
            for(i=5;i>0;i--)
             for(j=248;j>0;j--);
                  if(k1==0)
                     {
                       hour++;
                         if(hour==24)
                             {
                               hour=0;
                             }
                             
					   dispbuf[1]=dipcod[hour%10];
                       dispbuf[0]=dipcod[hour/10];

                      while(k1==0);
                     }
        } 					  
   	
}  
}


          

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?