📄 time.lst
字号:
C51 COMPILER V7.08 TIME 10/31/2007 10:13:28 PAGE 1
C51 COMPILER V7.08, COMPILATION OF MODULE TIME
OBJECT MODULE PLACED IN time.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE time.c BROWSE DEBUG OBJECTEXTEND
line level source
1 //*****************************************************************
2 //DS12C887程序
3 //*****************************************************************
4 #include <stdio.h> /* standard I/O .h-file */
5 #include <reg51f.h>
6 #include <absacc.h>
7 #include "time.h"
8 #include "lcd.h"
9 /* 检查12c887是否处于忙状态 */
10 void CheckRTC(void)
11 {
12 1 unsigned char i;
13 1 i = RegA;
14 1 while(i&0x80) //REGA。7 UIP 为0表示至少在244US内芯片不会更新,此时,可以读写时间信息。
15 1 i = RegA;
16 1 }
17
18
19 void Init12c887(void)
20 {
21 1 RegB = 0x80; //芯片更新被禁止
22 1 CENTURY = 21; //century
23 1 RegA = 0x2f; //square wave with 2 Hz,pin SQW
24 1 RegB = 0x0e; //square wave enable,binary data mode,24-hour mode
25 1 }
26
27
28 /*取系统时间*/
29 void GetTime(struct TIME *S )
30 {
31 1 CheckRTC(); /* 检查12c887是否处于忙状态,忙则等待 */
32 1 S->sec = SECOND;
33 1 CheckRTC();
34 1 S->min = MINUTE;
35 1 CheckRTC();
36 1 S->hour = HOUR;
37 1 }
38
39
40 /*取系统日期*/
41 void GetDate(struct DATE *D )
42 {
43 1 CheckRTC();
44 1 D->day = DAY;
45 1 CheckRTC();
46 1 D->mon = MONTH;
47 1 CheckRTC();
48 1 D->year = YEAR;
49 1 // CheckRTC();
50 1 // D->week = Week;
51 1 }
52
53
54 /*设置系统日*/
55 /*void SetDate(year,month,day)
C51 COMPILER V7.08 TIME 10/31/2007 10:13:28 PAGE 2
56 unsigned char year,month,day;
57 {
58 unsigned char i;
59
60 i = RegB;
61 RegB = 0x80; //REGB。7=1 芯片更新被禁止,禁止后进行日期参数的设置
62 DAY = day; //day
63 MONTH = month; //month
64 YEAR = year; //year
65 RegB= i;
66 }*/
67
68
69 /*设置系统时*/
70 /*void SetTime(hour,min,sec)
71 unsigned char hour,min,sec;
72 {
73 unsigned char i;
74
75 i = RegB; //REGB。7=1 芯片更新被禁止,禁止后进行时间参数的设置
76 SECOND = sec; //second
77 MINUTE = min; //minute
78 HOUR = hour; //hour
79 RegB = i;
80 }*/
81
82 /******************************************************
83 功能:12C887定闹子程序。
84 描述:clock_time(t_min,t_sec);
85 参数:定闹时间t(1-120)分钟
86 返回:无
87 影响:无
88 *******************************************************/
89 /*void clock_time(t_min,t_sec)
90 unsigned char t_min,t_sec;
91 {
92 unsigned char sec_t,min_t,hour_t,t1;
93 t1 = t_min/60;
94 t_min = t_min%60;
95 CheckRTC();
96 sec_t = SECOND;
97 min_t = MINUTE;
98 hour_t = HOUR;
99 sec_t = sec_t+t_sec;
100 if(sec_t>=60)
101 {
102 min_t += sec_t/60;
103 sec_t = sec_t%60;
104 }
105 SEC_ALM = sec_t;
106 min_t = min_t + t_min;
107 if(min_t<60)
108 {
109 MIN_ALM = min_t;
110 HOUR_ALM = hour_t+t1;
111 }
112 else
113 {
114 MIN_ALM = min_t-60;
115 hour_t = hour_t + 1 +t1;
116 if(hour_t<24)
117 HOUR_ALM = hour_t;
C51 COMPILER V7.08 TIME 10/31/2007 10:13:28 PAGE 3
118 else
119 HOUR_ALM = hour_t-24;
120 }
121
122 }*/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 102 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -