📄 ds12887.lst
字号:
C51 COMPILER V8.05a DS12887 05/12/2008 15:08:57 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE DS12887
OBJECT MODULE PLACED IN E:\PROJECTS\CYDLJK1\DS12887.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE E:\PROJECTS\CYDLJK1\DS12887.C DB SB OE OT(0)
line level source
1 /*************************************/
2 /* 时钟芯片DS12887A驱动
3 /* 作者:刘延军
4 /* 2007年10月4日
5 /************************************/
6 #include <DS12887.H>
7
8 /*************************************************************
9 函数功能:该函数用来启动时钟芯片工作
10 应用范围:仅在时钟芯片首次使用时用到一次
11 入口参数:
12 出口参数:
13 *************************************************************/
14 void StartDs12c887(void)
15 {
16 1 chRegA = CMD_START_DS12C887;
17 1 }
18
19 /*************************************************************
20 函数功能:该函数用来关闭时钟芯片
21 应用范围:一般用不到
22 入口参数:
23 出口参数:
24 *************************************************************/
25 void CloseDs12c887(void)
26 {
27 1 chRegA = CMD_CLOSE_DS12C887;
28 1 }
29
30 void InitDs12c887()
31 {
32 1 StartDs12c887();
33 1 chRegB = chRegB | MASK_SETB_SET; /* 禁止刷新 */
34 1 chRegB = chRegB & MASK_CLR_DM | MASK_SETB_2412 \
35 1 & MASK_CLR_DSE;
36 1
37 1 /* 使用BCD码格式、24小时模式、不使用夏令时 */
38 1 chCenturyChannel = 0x21; /* 设置为21世纪 */
39 1 chRegB = chRegB & MASK_CLR_SET; /* 使能刷新 */
40 1 }
41
42 /*************************************************************
43 函数功能:该函数用来从时钟芯片读取秒字节
44 应用范围:
45 入口参数:
46 出口参数:
47 *************************************************************/
48 unsigned char GetSeconds(void)
49 {
50 1 return(chSecondsChannel);
51 1 }
52
53 /*************************************************************
54 函数功能:该函数用来从时钟芯片读取分字节
55 应用范围:
C51 COMPILER V8.05a DS12887 05/12/2008 15:08:57 PAGE 2
56 入口参数:
57 出口参数:
58 *************************************************************/
59 unsigned char GetMinutes(void)
60 {
61 1 return(chMinutesChannel);
62 1 }
63
64 /*************************************************************
65 函数功能:该函数用来从时钟芯片读取小时字节
66 应用范围:
67 入口参数:
68 出口参数:
69 *************************************************************/
70 unsigned char GetHours(void)
71 {
72 1 return(chHoursChannel);
73 1 }
74
75 /*************************************************************
76 函数功能:该函数用来从时钟芯片读取日字节
77 应用范围:
78 入口参数:
79 出口参数:
80 *************************************************************/
81 unsigned char GetDate(void)
82 {
83 1 return(chDateChannel);
84 1 }
85 /*************************************************************
86 函数功能:该函数用来从时钟芯片读取月字节
87 应用范围:
88 入口参数:
89 出口参数:
90 *************************************************************/
91 unsigned char GetMonth(void)
92 {
93 1 return(chMonthChannel);
94 1 }
95
96 /*************************************************************
97 函数功能:该函数用来从时钟芯片读取年字节
98 应用范围:
99 入口参数:
100 出口参数:
101 *************************************************************/
102 unsigned char GetYear(void)
103 {
104 1 return(chYearChannel);
105 1 }
106
107 /*************************************************************
108 函数功能:该函数用来从时钟芯片读取世纪字节
109 应用范围:
110 入口参数:
111 出口参数:
112 *************************************************************/
113 unsigned char GetCentury(void)
114 {
115 1 return(chCenturyChannel);
116 1 }
117
C51 COMPILER V8.05a DS12887 05/12/2008 15:08:57 PAGE 3
118 /*************************************************************
119 函数功能:该函数用来设置时钟芯片的时间
120 应用范围:
121 入口参数:chSeconds、chMinutes、chHours是设定时间的压缩BCD码
122 出口参数:
123 *************************************************************/
124 void SetTime(unsigned char chSeconds,unsigned char chMinutes,unsigned char
125 chHours)
126 {
127 1 chRegB = chRegB | MASK_SETB_SET; /* 禁止刷新 */
128 1 chSecondsChannel = chSeconds;
129 1 chMinutesChannel = chMinutes;
130 1 chHoursChannel = chHours;
131 1 chRegB = chRegB & MASK_CLR_SET; /* 使能刷新 */
132 1 }
133
134 /*************************************************************
135 函数功能:该函数用来设置时钟芯片的日期
136 应用范围:
137 入口参数:chDate、chMonth、chYear是设定日期的压缩BCD码
138 出口参数:
139 *************************************************************/
140 void SetDate(unsigned char chDate,unsigned char chMonth,unsigned char chYear)
141 {
142 1 chRegB = chRegB | MASK_SETB_SET; /* 禁止刷新 */
143 1 chDateChannel = chDate;
144 1 chMonthChannel = chMonth;
145 1 chYearChannel = chYear;
146 1 chRegB = chRegB & MASK_CLR_SET; /* 使能刷新 */
147 1 }
148
149 /*************************************************************
150 函数功能:该函数利用时钟芯片延时count秒
151 应用范围:
152 入口参数:count:秒数
153 出口参数:
154 *************************************************************/
C51 COMPILER V8.05a DS12887 05/12/2008 15:08:57 PAGE 4
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
GetMinutes . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
GetCentury . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
CloseDs12c887. . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
GetDate. . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
GetMonth . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
_SetDate . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
chDate . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
chMonth. . . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1
chYear . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0002H 1
GetYear. . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
GetHours . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
StartDs12c887. . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
InitDs12c887 . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
_SetTime . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
chSeconds. . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
chMinutes. . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1
chHours. . . . . . . . . . . . . . . AUTO DATA U_CHAR 0002H 1
GetSeconds . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 200 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 ----
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 + -