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

📄 tm2.lst

📁 高奇公司ICD的例子,全部能用,非常好!C语言编程
💻 LST
字号:
     1: /*********************************************************************

     2: *   Filename:       Tm2.c                                            *

     3: *   Date:           10/22/2002                                       *

     4: *   Edit by Yamato View ,Goldenchip Electronic Co. ,Ltd.             *

     5: *                                                                    *

     6: *   TEL: 86-0591-3375855-721                                         *

     7: *                                                                    *

     8: *********************************************************************/

     9: 

    10:    #include <pic.h>                             

    11:    #include <stdio.h>                           

    12:    #include "lcd.h"                             

    13: unsigned char seconds = 0x00;                   

    14: unsigned char minutes = 0x00;                   // Minutes variable 

    15: unsigned char hours = 0x00;                     // Hours variable

    16: unsigned char monthes = 0x0A;

    17: unsigned char days = 0x14;

    18: unsigned char years = 0x02;

    19: unsigned char daysLmt;

    20: extern char Temp;

    21: /*********************************************

    22:  *  Real Time Clock Update and Display Code  *

    23:  *********************************************/

    24: void Dayscount(void)

    25: {

    26:  switch(monthes)

    27:    {

    28:      case 1 : daysLmt = 31;break;

    29:      case 2 : daysLmt = 28;break;

    30:      case 3 : daysLmt = 31;break;

    31:      case 4 : daysLmt = 30;break;

    32:      case 5 : daysLmt = 31;break;

    33:      case 6 : daysLmt = 30;break;

    34:      case 7 : daysLmt = 31;break;

    35:      case 8 : daysLmt = 31;break;

    36:      case 9 : daysLmt = 30;break;

    37:      case 10: daysLmt = 31;break;

    38:      case 11: daysLmt = 30;break;

    39:      case 12: daysLmt = 31;break;

    40:    }

    41: }

    42: void Time_Disp1(void)

    43: {

    44:         Line_1();                               // Reset LCD Cusor to home      

    45:         printf("20");

    46:         if (years <10) printf("0");

    47:         printf("%d",years);                     // Print years

    48:         printf("-");                                    

    49:         if (monthes <10) printf("0");           // 

    50:         printf("%d",monthes);                   // Print monthes

    51:         printf("-");                                            

    52:         if (days<10) printf("0");               // 

    53:         printf("%d",days);                      // Print days

    54: }

    55: void Time_Disp2(void)

    56: {        

    57:         Line_2(); 

    58:         printf("It's  %2d",hours);              // Print "It's" time

    59:         printf(":");                                    

    60:         if (minutes<10) printf("0");            // If minutes <10, print leading 0

    61:         printf("%d",minutes);                   // Print minutes 

    62:         printf(":");                                            

    63:         if (seconds<10) printf("0");            // If seconds <10, print leading 0

    64:         printf("%d",seconds);                   // Print seconds

    65: } 

    66: void Tm1_disp( void )

    67: {

    68:         Time_Disp1();

    69:         printf(" %d",Temp);

    70:         printf("C ");

    71:         Time_Disp2();

    72: }

    73: void Tm1_Update( void )

    74: {

    75:    if ( seconds < 59 )                  // Is cummulative seconds < 59?

    76:      seconds++;                         // Yes, so increment seconds

    77:    else                                 // else seconds => 59     

    78:     {

    79:       seconds = 0x00;                   // Reset seconds

    80:         if ( minutes < 59 )             // Is cummulative minutes < 59?

    81:           minutes++;                    // Yes, so updates minutes  

    82:         else                            // else minutes => 59

    83:          {

    84:            minutes = 0x00;              // Reset minutes

    85:             if ( hours < 23 )           // Is cummulative hours < 23

    86:               hours ++;                 // Yes, so update hours

    87:             else

    88:              {

    89:                hours = 0x00;            // Reset time

    90:                Dayscount();

    91:                 if(days<daysLmt)

    92:                  days++;

    93:                 else

    94:                  {

    95:                   days=1;

    96:                    if(monthes<12) monthes++;

    97:                      else

    98:                         {

    99:                          monthes=1;

   100:                           if (years<99)

   101:                             years++;

   102:                             else years=0;

   103:                         }

   104:                  }

   105:              }

   106:          }

   107:     } 

   108: }

   109: 

   110: /******************************

   111:  * Timer1 initialization code *

   112:  ******************************/

   113: 

   114: void Init_Timer1( void )

   115: {

   116:     T1CON = 0b00001110;                         // T1CON register setup

   117:     TMR1L = 0x00;                               // Initialize Timer1 low byte: TMR1L

   118:     TMR1H = 0x80;                                       // initialize Timer1 high byte:TMR1H

   119:     TMR1IF = 0;                                 // Reset Timer1 Overflow H/W flag

   120:     TMR1IE = 1;                                 // Enable Timer1 Overflow interrupt:TMR1IE

   121:     PEIE = 1;

   122:     TMR1ON = 1;                                 // Turn on Timer1 module: TMR1ON        

   123: }

   124: 

⌨️ 快捷键说明

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