⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tm2.c

📁 高奇公司ICD的例子,全部能用,非常好!C语言编程
💻 C
字号:
/*********************************************************************
*   Filename:       Tm2.c                                            *
*   Date:           10/22/2002                                       *
*   Edit by Yamato View ,Goldenchip Electronic Co. ,Ltd.             *
*                                                                    *
*   TEL: 86-0591-3375855-721                                         *
*                                                                    *
*********************************************************************/

   #include <pic.h>				
   #include <stdio.h>				
   #include "lcd.h"				
unsigned char seconds = 0x00;			
unsigned char minutes = 0x00;			// Minutes variable 
unsigned char hours = 0x00;			// Hours variable
unsigned char monthes = 0x0A;
unsigned char days = 0x14;
unsigned char years = 0x02;
unsigned char daysLmt;
extern char Temp;
/*********************************************
 *  Real Time Clock Update and Display Code  *
 *********************************************/
void Dayscount(void)
{
 switch(monthes)
   {
     case 1 : daysLmt = 31;break;
     case 2 : daysLmt = 28;break;
     case 3 : daysLmt = 31;break;
     case 4 : daysLmt = 30;break;
     case 5 : daysLmt = 31;break;
     case 6 : daysLmt = 30;break;
     case 7 : daysLmt = 31;break;
     case 8 : daysLmt = 31;break;
     case 9 : daysLmt = 30;break;
     case 10: daysLmt = 31;break;
     case 11: daysLmt = 30;break;
     case 12: daysLmt = 31;break;
   }
}
void Time_Disp1(void)
{
	Line_1();				// Reset LCD Cusor to home	
	printf("20");
        if (years <10) printf("0");
	printf("%d",years);		        // Print years
	printf("-");					
	if (monthes <10) printf("0");		// 
	printf("%d",monthes);			// Print monthes
	printf("-");						
	if (days<10) printf("0");		// 
	printf("%d",days);			// Print days
}
void Time_Disp2(void)
{        
	Line_2(); 
	printf("It's  %2d",hours);		// Print "It's" time
	printf(":");					
	if (minutes<10) printf("0");		// If minutes <10, print leading 0
	printf("%d",minutes);			// Print minutes 
	printf(":");						
	if (seconds<10) printf("0");		// If seconds <10, print leading 0
	printf("%d",seconds);			// Print seconds
} 
void Tm1_disp( void )
{
	Time_Disp1();
	printf(" %d",Temp);
	printf("C ");
	Time_Disp2();
}
void Tm1_Update( void )
{
   if ( seconds < 59 )			// Is cummulative seconds < 59?
     seconds++;				// Yes, so increment seconds
   else					// else seconds => 59     
    {
      seconds = 0x00;			// Reset seconds
        if ( minutes < 59 )		// Is cummulative minutes < 59?
	  minutes++;			// Yes, so updates minutes  
	else				// else minutes => 59
	 {
	   minutes = 0x00;		// Reset minutes
	    if ( hours < 23 )		// Is cummulative hours < 23
	      hours ++;			// Yes, so update hours
	    else
  	     {
	       hours = 0x00;		// Reset time
	       Dayscount();
	        if(days<daysLmt)
		 days++;
		else
		 {
		  days=1;
		   if(monthes<12) monthes++;
		     else
			{
			 monthes=1;
			  if (years<99)
			    years++;
			    else years=0;
			}
		 }
	     }
         }
    } 
}

/******************************
 * Timer1 initialization code *
 ******************************/

void Init_Timer1( void )
{
    T1CON = 0b00001110;				// T1CON register setup
    TMR1L = 0x00;				// Initialize Timer1 low byte: TMR1L
    TMR1H = 0x80;					// initialize Timer1 high byte:TMR1H
    TMR1IF = 0;					// Reset Timer1 Overflow H/W flag
    TMR1IE = 1;					// Enable Timer1 Overflow interrupt:TMR1IE
    PEIE = 1;
    TMR1ON = 1;					// Turn on Timer1 module: TMR1ON	
}

⌨️ 快捷键说明

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