📄 ds1302.lst
字号:
C51 COMPILER V8.17 DS1302 02/22/2009 16:39:38 PAGE 1
C51 COMPILER V8.17, COMPILATION OF MODULE DS1302
OBJECT MODULE PLACED IN DS1302.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE DS1302.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <at89x52.h>
2 #include <intrins.h>
3 #define uchar unsigned char
4 #define dd _nop_ ();_nop_ ();_nop_ ();_nop_ ();_nop_ ();_nop_ ();_nop_ ();
5 //*******DS1302管脚定义*******
6 sbit DS_RESET=P2^6; //复位
7 sbit DS_IO=P2^5; // IO
8 sbit DS_CLK=P2^4; //时钟
9 //***************************
10 sbit ACC0=ACC^0;
11 sbit ACC1=ACC^1;
12 sbit ACC2=ACC^2;
13 sbit ACC3=ACC^3;
14 sbit ACC4=ACC^4;
15 sbit ACC5=ACC^5;
16 sbit ACC6=ACC^6;
17 sbit ACC7=ACC^7;
18 //************函数声明**********
19 void w_1302 (uchar add,uchar dat); //对指定的寄存器写数据,add寄存器地址,dat数据
20 uchar r_1302 (uchar add); //读指定的寄存器数据,返回值为十进制数
21 void init_ds1302 (void);
22 //向DS1302写入控制字及数据
23 void w_1302 (uchar add,uchar dat)
24 {
25 1 ACC=add;
26 1
27 1 DS_CLK=0;
28 1 DS_RESET=1;
29 1 dd;
30 1 DS_IO=ACC0;
31 1 DS_CLK=0;
32 1 dd;
33 1 DS_CLK=1;
34 1 DS_IO=ACC1;
35 1 DS_CLK=0;
36 1 dd;
37 1 DS_CLK=1;
38 1 DS_IO=ACC2;
39 1 DS_CLK=0;
40 1 dd;
41 1 DS_CLK=1;
42 1 DS_IO=ACC3;
43 1 DS_CLK=0;
44 1 dd;
45 1 DS_CLK=1;
46 1 DS_IO=ACC4;
47 1 DS_CLK=0;
48 1 dd;
49 1 DS_CLK=1;
50 1 DS_IO=ACC5;
51 1 DS_CLK=0;
52 1 dd;
53 1 DS_CLK=1;
54 1 DS_IO=ACC6;
55 1 DS_CLK=0;
C51 COMPILER V8.17 DS1302 02/22/2009 16:39:38 PAGE 2
56 1 dd;
57 1 DS_CLK=1;
58 1 DS_IO=ACC7;
59 1 DS_CLK=0;
60 1 dd;
61 1 DS_CLK=1;
62 1 dd;
63 1 //*********
64 1 ACC=dat;
65 1 DS_IO=ACC0;
66 1 DS_CLK=0;
67 1 dd;
68 1 DS_CLK=1;
69 1 DS_IO=ACC1;
70 1 DS_CLK=0;
71 1 dd;
72 1 DS_CLK=1;
73 1 DS_IO=ACC2;
74 1 DS_CLK=0;
75 1 dd;
76 1 DS_CLK=1;
77 1 DS_IO=ACC3;
78 1 DS_CLK=0;
79 1 dd;
80 1 DS_CLK=1;
81 1 DS_IO=ACC4;
82 1 DS_CLK=0;
83 1 dd;
84 1 DS_CLK=1;
85 1 DS_IO=ACC5;
86 1 DS_CLK=0;
87 1 dd;
88 1 DS_CLK=1;
89 1 DS_IO=ACC6;
90 1 DS_CLK=0;
91 1 dd;
92 1 DS_CLK=1;
93 1 DS_IO=ACC7;
94 1 DS_CLK=0;
95 1 dd;
96 1 DS_CLK=1;
97 1 dd;
98 1 DS_RESET=0;
99 1 DS_CLK=0;
100 1 dd;
101 1 }
102 //读DS1302数据
103 uchar r_1302 (uchar add)
104 {
105 1 uchar a,b,k;
106 1
107 1 DS_CLK=0;
108 1 DS_RESET=1;
109 1 ACC=add;
110 1 DS_IO=ACC0;
111 1 DS_CLK=0;
112 1 dd;
113 1 DS_CLK=1;
114 1 DS_IO=ACC1;
115 1 DS_CLK=0;
116 1 dd;
117 1 DS_CLK=1;
C51 COMPILER V8.17 DS1302 02/22/2009 16:39:38 PAGE 3
118 1 DS_IO=ACC2;
119 1 DS_CLK=0;
120 1 dd;
121 1 DS_CLK=1;
122 1 DS_IO=ACC3;
123 1 DS_CLK=0;
124 1 dd;
125 1 DS_CLK=1;
126 1 DS_IO=ACC4;
127 1 DS_CLK=0;
128 1 dd;
129 1 DS_CLK=1;
130 1 DS_IO=ACC5;
131 1 DS_CLK=0;
132 1 dd;
133 1 DS_CLK=1;
134 1 DS_IO=ACC6;
135 1 DS_CLK=0;
136 1 dd;
137 1 DS_CLK=1;
138 1 DS_IO=ACC7;
139 1 DS_CLK=0;
140 1 dd;
141 1 DS_CLK=1;
142 1 dd;
143 1 DS_CLK=0;
144 1 dd;
145 1 //************
146 1 ACC0=DS_IO;
147 1
148 1 DS_CLK=1;
149 1 dd;
150 1 DS_CLK=0;
151 1 ACC1=DS_IO;
152 1 dd;
153 1 DS_CLK=1;
154 1 dd;
155 1 DS_CLK=0;
156 1 ACC2=DS_IO;
157 1 dd;
158 1 DS_CLK=1;
159 1 dd;
160 1 DS_CLK=0;
161 1 ACC3=DS_IO;
162 1 dd;
163 1 DS_CLK=1;
164 1 dd;
165 1 DS_CLK=0;
166 1 ACC4=DS_IO;
167 1 dd;
168 1 DS_CLK=1;
169 1 dd;
170 1 DS_CLK=0;
171 1 ACC5=DS_IO;
172 1 dd;
173 1 DS_CLK=1;
174 1 dd;
175 1 DS_CLK=0;
176 1 ACC6=DS_IO;
177 1 dd;
178 1 DS_CLK=1;
179 1 dd;
C51 COMPILER V8.17 DS1302 02/22/2009 16:39:38 PAGE 4
180 1 DS_CLK=0;
181 1 ACC7=DS_IO;
182 1 dd;
183 1
184 1 DS_RESET=0;
185 1 DS_CLK=0;
186 1 dd;
187 1
188 1 k=ACC;
189 1 a=k/16;
190 1 b=k%16;
191 1 k=a*10+b;
192 1 return (k);
193 1 }
194
195 //DS1302初始化操作
196 void init_ds1302 (void)
197 {
198 1 w_1302 (0x8e,0x00); //禁止写保护
199 1 w_1302 (0x80,0x00); //写秒
200 1 w_1302 (0x82,0x00); //写分
201 1 w_1302 (0x84,0x12); //写时
202 1 w_1302 (0x86,0x01); //写日
203 1 w_1302 (0x88,0x01); //写月
204 1 w_1302 (0x8c,0x09); //写年
205 1 w_1302 (0x8a,0x04); //写周日
206 1 w_1302 (0x90,0xaa); //打开充电二级管 二个二级管串联一个4K电阻
207 1 w_1302 (0x8e,0x80); //允许写保护
208 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 670 ----
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 + -