📄 ds1302.lst
字号:
173 1 RTInputByte(0xbf); /* 0xbf:时钟多字节读命令 */
174 1 for (i=8; i>0; i--)
175 1 {
176 2 *pRClock = RTOutputByte(); /* 读1Byte数据 */
177 2 pRClock++;
178 2 }
179 1 T_CLK = 1;
C51 COMPILER V7.50 DS1302 08/15/2007 10:09:59 PAGE 4
180 1 T_RST = 0;
181 1 }
182 /********************************************************************
183 函 数 名:BurstW1302R()
184 功 能:往DS1302寄存器数写入数据(多字节方式)
185 说 明:先写地址,后写数据(寄存器多字节方式)
186 调 用:RTInputByte()
187 入口参数:pWReg: 寄存器数据地址
188 返 回 值:无
189 设 计:zhaojunjie 日 期:2002-03-19
190 修 改: 日 期:
191 ***********************************************************************/
192 void BurstW1302R(uchar *pWReg)
193 {
194 1 uchar i;
195 1 W1302(0x8e,0x00); /* 控制命令,WP=0,写操作*/
196 1 T_RST = 0;
197 1 T_CLK = 0;
198 1 T_RST = 1;
199 1 RTInputByte(0xfe); /* 0xbe:时钟多字节写命令 */
200 1 for (i=31; i>0; i--) /* 31Byte 寄存器数据 */
201 1 {
202 2 RTInputByte(*pWReg); /* 写1Byte数据*/
203 2 pWReg++;
204 2 }
205 1 T_CLK = 1;
206 1 T_RST = 0;
207 1 }
208 /********************************************************************
209 函 数 名:BurstR1302R()
210 功 能:读取DS1302寄存器数据
211 说 明:先写地址,后读命令/数据(寄存器多字节方式)
212 调 用:RTInputByte() , RTOutputByte()
213 入口参数:pRReg: 寄存器数据地址
214 返 回 值:无
215 设 计:zhaojunjie 日 期:2002-03-19
216 修 改: 日 期:
217 ***********************************************************************/
218 void BurstR1302R(uchar *pRReg)
219 {
220 1 uchar i;
221 1 T_RST = 0;
222 1 T_CLK = 0;
223 1 T_RST = 1;
224 1 RTInputByte(0xff); /* 0xff:时钟多字节读命令 */
225 1 for (i=31; i>0; i--) /*31Byte 寄存器数据 */
226 1 {
227 2 *pRReg = RTOutputByte(); /* 读1Byte数据 */
228 2 pRReg++;
229 2 }
230 1 T_CLK = 1;
231 1 T_RST = 0;
232 1 }
233 /********************************************************************
234 函 数 名:Set1302()
235 功 能:设置初始时间
236 说 明:先写地址,后读命令/数据(寄存器多字节方式)
237 调 用:W1302()
238 入口参数:pClock: 设置时钟数据地址 格式为: 秒 分 时 日 月 星期 年
239 7Byte (BCD码)1B 1B 1B 1B 1B 1B 1B
240 返 回 值:无
241 设 计:zhaojunjie 日 期:2002-03-19
C51 COMPILER V7.50 DS1302 08/15/2007 10:09:59 PAGE 5
242 修 改: 日 期:
243 ***********************************************************************/
244 void Set1302(uchar *pClock)
245 {
246 1 uchar i;
247 1 uchar ucAddr = 0x80;
248 1 W1302(0x8e,0x00); /* 控制命令,WP=0,写操作?*/
249 1 for(i =7; i>0; i--)
250 1 {
251 2 W1302(ucAddr,*pClock); /* 秒 分 时 日 月 星期 年 */
252 2 pClock++;
253 2 ucAddr +=2;
254 2 }
255 1 W1302(0x8e,0x80); /* 控制命令,WP=1,写保护?*/
256 1 }
257 /********************************************************************
258 函 数 名:Get1302()
259 功 能:读取DS1302当前时间
260 说 明:
261 调 用:R1302()
262 入口参数:ucCurtime: 保存当前时间地址。当前时间格式为: 秒 分 时 日 月 星期 年
263 7Byte (BCD码) 1B 1B 1B 1B 1B 1B 1B
264 返 回 值:无
265 设 计:zhaojunjie 日 期:2002-03-19
266 修 改: 日 期:
267 ***********************************************************************/
268 void Get1302(uchar ucCurtime[])
269 {
270 1 uchar i;
271 1 uchar ucAddr = 0x81;
272 1 for (i=0; i<7; i++)
273 1 {
274 2 ucCurtime[i] = R1302(ucAddr);/*格式为: 秒 分 时 日 月 星期 年 */
275 2 ucAddr += 2;
276 2 }
277 1 }
278
C51 COMPILER V7.50 DS1302 08/15/2007 10:09:59 PAGE 6
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
ACC7 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00E7H 1
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P2 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A0H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1
T_CLK. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A7H 1
IP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B8H 1
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
time_init. . . . . . . . . . . . . . AUTO DATA ARRAY 0000H 7
time . . . . . . . . . . . . . . . . AUTO DATA ARRAY 0007H 7
T_RST. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0097H 1
_RTInputByte . . . . . . . . . . . . . PUBLIC CODE PROC 0006H -----
d. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1
TCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1
_?ix1000 . . . . . . . . . . . . . . . STATIC CODE ARRAY 0000H 7
_?ix1001 . . . . . . . . . . . . . . . STATIC CODE ARRAY 0007H 7
ACC. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00E0H 1
_Get1302 . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
ucCurtime. . . . . . . . . . . . . . AUTO DATA PTR 0000H 3
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1
ucAddr . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
T_IO . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0094H 1
RTOutputByte . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
_Set1302 . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
pClock . . . . . . . . . . . . . . . * REG * DATA PTR 0001H 3
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0004H 1
ucAddr . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
_BurstR1302R . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
pRReg. . . . . . . . . . . . . . . . * REG * DATA PTR 0001H 3
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
_BurstR1302T . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
pRClock. . . . . . . . . . . . . . . * REG * DATA PTR 0001H 3
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
_BurstW1302R . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
pWReg. . . . . . . . . . . . . . . . * REG * DATA PTR 0001H 3
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
_BurstW1302T . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
pWClock. . . . . . . . . . . . . . . * REG * DATA PTR 0001H 3
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C8H 1
ACC0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00E0H 1
_R1302 . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
ucAddr . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
ucData . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1
_W1302 . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0004H -----
ucAddr . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
ucDa . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 342 ----
CONSTANT SIZE = 14 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
C51 COMPILER V7.50 DS1302 08/15/2007 10:09:59 PAGE 7
DATA SIZE = ---- 18
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 + -