📄 ds1302.lst
字号:
C51 COMPILER V8.08 DS1302 03/10/2009 15:02:48 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE DS1302
OBJECT MODULE PLACED IN DS1302.OBJ
COMPILER INVOKED BY: D:\软件\单片机\proteus7.1+keil8.08\Keil8.08\C51\BIN\C51.EXE DS1302.c LARGE BROWSE DEBUG OBJECTEXTEN
-D
line level source
1 //========================================================================================
2 // 程序功能: 取出DS1302时间地址所对应的时间
3 // 程序接口: void DS1302_GetTime();
4 // 编写时间: 2009-03-02
5 //========================================================================================
6
7 #include<Module.h>
8
9 sbit CLK=P3^4;
10 sbit IO=P3^5; //ds1302
11 sbit RST=P3^6;
12
13 uc G_ucTime[7]; //秒,分,时,星期,日,月,年 注意为BCD码
14 //========================================================================================
15 // 函数功能: 读取DS1302某地址的数据
16 // 函数接口: uc DS1302_ReadByte(uc ucAddr);
17 // 入口参数: ucAddr: DS1302地址
18 // 出口参数: k
19 //========================================================================================
20 uc DS1302_ReadByte(uc ucAddr)
21 {
22 1 uc i,k;
23 1
24 1 RST = 0;
25 1 CLK = 0; //clk为低电平时才能将rst置高
26 1 RST=1; //启动数据传送
27 1
28 1 ucAddr |= 0x01;
29 1 k=1;
30 1 for(i=0;i<8;i++)
31 1 {
32 2 CLK = 0;
33 2 if( ucAddr&k )
34 2 IO = 1;
35 2 else
36 2 IO = 0;
37 2 CLK = 1;
38 2 k<<=1;
39 2 }//for
40 1 k=0;
41 1 IO = 1;
42 1 CLK = 1;
43 1
44 1 for(i=0;i<8;i++)
45 1 {
46 2 k >>= 1;
47 2 CLK = 0;
48 2 if( IO )
49 2 k|= 0x80;
50 2 CLK = 1;
51 2 }//for
52 1 CLK = 1;
53 1 RST =0;
54 1
C51 COMPILER V8.08 DS1302 03/10/2009 15:02:48 PAGE 2
55 1 return k;
56 1 }
57 //========================================================================================
58 // 函数功能: 读取DS1302当前时间
59 // 函数接口: void DS1302_GetTime();
60 // 入口参数: DS1302_ReadByte(ucAddr): 保存当前时间地址。
61 // 出口参数: unsigned char G_ucTime[i] ;
62 //========================================================================================
63 void DS1302_GetTime()
64 {
65 1 uc i, ucAddr = 0x81;
66 1
67 1 for(i=0;i<7;i++)
68 1 {
69 2 G_ucTime[i] = DS1302_ReadByte(ucAddr); //格式为: 秒 分 时 日 月 星期 年
70 2 ucAddr += 2;
71 2 }//for
72 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 99 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 7 ----
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 + -