📄 ds1302.lst
字号:
C51 COMPILER V7.50 DS1302 02/16/2009 09:18:56 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE DS1302
OBJECT MODULE PLACED IN D:\VW\INTEGR~1\MAIN\DS1302.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\VW\INTEGR~1\MAIN\DS1302.C DB SB OE
line level source
1 #include "system.h"
2
3 //======================================================
4 // RAM资源
5 // 占用7个字节
6 //=======================================================
7 //
8 idata UINT8 sys_second; //系统时间 秒
9 idata UINT8 sys_min; //系统时间 分
10 idata UINT8 sys_hour; //系统时间 时
11 idata UINT8 sys_date; //系统时间 日
12 idata UINT8 sys_mon; //系统时间 月
13 idata UINT8 sys_week; //系统时间 星期
14 idata UINT8 sys_year; //系统时间 年
15 // 地址 80h ---- 写秒
16 // 地址 82h ---- 写分
17 // 地址 84h ---- 写时
18 // 地址 86h ---- 写日
19 // 地址 88h ---- 写月
20 // 地址 8ah ---- 写星期
21 // 地址 8ch ---- 写年
22
23 // 地址 81h ---- 读秒
24 // 地址 83h ---- 读分
25 // 地址 85h ---- 读时
26 // 地址 87h ---- 读日
27 // 地址 89h ---- 读月
28 // 地址 8bh ---- 读星期
29 // 地址 8dh ---- 读年
30
31 //
32 //==========================================================================================
33 //
34 // filename : read_byte(UINT8 addr)
35 // 功 能 : 从给定地址(addr)读1个字节数据
36 // 返 回 值 : 返回读出的数据
37 //
38 //==========================================================================================
39 UINT8 read_time_byte(UINT8 addr)
40 { UINT8 i,k;
41 1 _nop_(); _nop_();
42 1 k=addr;
43 1 DST_RST = 1;
44 1 _nop_(); _nop_();
45 1 for(i=8;i>0;i--)
46 1 { DST_CLK = 0;
47 2 k>>=1;
48 2
49 2 _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
50 2 DST_IO = CY;
51 2
52 2 _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
53 2 DST_CLK = 1;
54 2
55 2
C51 COMPILER V7.50 DS1302 02/16/2009 09:18:56 PAGE 2
56 2 _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
57 2 }
58 1 k=0; DST_IO=1;
59 1 for(i=8;i>0;i--)
60 1 { DST_CLK=1;
61 2
62 2 _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
63 2 DST_CLK = 0;
64 2 k>>=1;
65 2
66 2 _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
67 2 if (DST_IO) k|=0x80;
68 2
69 2 _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
70 2 }
71 1 DST_RST =0;
72 1
73 1 return(k);
74 1 }
75 //==========================================================================================
76 //
77 // filename : write_time_byte(UINT8 addr,UINT8 tdata)
78 // 功 能 : 向给定地址(addr)写入1个字节数据(tdata)
79 // 返 回 值 : 无
80 //
81 //==========================================================================================
82 //
83 void write_time_byte(UINT8 addr,UINT8 tdata)
84 { UINT8 i,k;
85 1 k=addr;
86 1 DST_RST = 0;DST_RST = 1;
87 1 _nop_(); _nop_();
88 1 for(i=8;i>0;i--)
89 1 { DST_CLK = 0;
90 2 k>>=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
91 2 DST_IO = CY; _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
92 2 DST_CLK = 1;
93 2 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
94 2 }
95 1 k=tdata;
96 1 for(i=8;i>0;i--)
97 1 { DST_CLK = 0;
98 2 k>>=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
99 2 DST_IO = CY; _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
100 2 DST_CLK = 1;
101 2 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
102 2 }
103 1 DST_CLK=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
104 1 DST_RST =0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
105 1 }
106
107
108 //==========================================================================================
109 // filename : write_systime()
110 // 功 能 : 向ds1302中写入当前时间(秒,分,时,日,月,星期,年)
111 // 返 回 值 : 无
112 // 本程序精确到时间 --- 分,秒单位默认 0
113 // 时间数据格式如下
114 // 13: 25 0x13 0x25 BCD码表示
115 //==========================================================================================
116 //
117 void write_systime()
C51 COMPILER V7.50 DS1302 02/16/2009 09:18:56 PAGE 3
118 {
119 1 write_time_byte(0x8e,0x00); //WP=0, 取消写保护
120 1 write_time_byte(0x80,sys_second); //设置 --- 秒
121 1 write_time_byte(0x82,sys_min); //设置 --- 分
122 1 write_time_byte(0x84,sys_hour); //设置 --- 时
123 1 write_time_byte(0x86,sys_date); //设置 --- 日
124 1 write_time_byte(0x88,sys_mon); //设置 --- 月
125 1 write_time_byte(0x8a,sys_week); //设置 --- 星期
126 1 write_time_byte(0x8c,sys_year); //设置 --- 年
127 1 write_time_byte(0x8e,0x80); //WP=1, 设置写保护
128 1 }
129
C51 COMPILER V7.50 DS1302 02/16/2009 09:18:56 PAGE 4
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
sys_hour . . . . . . . . . . . . . . . PUBLIC IDATA U_CHAR 0000H 1
P2 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A0H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
XICON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C0H 1
P4 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00E8H 1
sys_min. . . . . . . . . . . . . . . . PUBLIC IDATA U_CHAR 0001H 1
sys_mon. . . . . . . . . . . . . . . . PUBLIC IDATA U_CHAR 0002H 1
IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1
size_t . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
festa. . . . . . . . . . . . . . . . . TYPEDEF ----- UNION ----- 2
whole. . . . . . . . . . . . . . . . MEMBER ----- ARRAY 0000H 2
holiday. . . . . . . . . . . . . . . MEMBER ----- ARRAY 0000H 2
IP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B8H 1
CY . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D7H 1
write_systime. . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
_read_time_byte. . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
addr . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
k. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
DST_CLK. . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
UINT16 . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
bool . . . . . . . . . . . . . . . . . TYPEDEF ----- BIT ----- 1
SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1
TCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1
_write_time_byte . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
addr . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
tdata. . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
k. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
sys_second . . . . . . . . . . . . . . PUBLIC IDATA U_CHAR 0003H 1
user . . . . . . . . . . . . . . . . . TYPEDEF ----- UNION ----- 16
whole. . . . . . . . . . . . . . . . MEMBER ----- ARRAY 0000H 16
class. . . . . . . . . . . . . . . . MEMBER ----- STRUCT 0000H 16
DST_RST. . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B7H 1
sys_date . . . . . . . . . . . . . . . PUBLIC IDATA U_CHAR 0004H 1
DST_IO . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B6H 1
T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C8H 1
ULONG32. . . . . . . . . . . . . . . . TYPEDEF ----- U_LONG ----- 4
sys_week . . . . . . . . . . . . . . . PUBLIC IDATA U_CHAR 0005H 1
sys_year . . . . . . . . . . . . . . . PUBLIC IDATA U_CHAR 0006H 1
UINT8. . . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1
PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 233 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = 7 ----
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 + -