📄 tm2.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 + -