📄 sd2kdrv.lst
字号:
210 2
211 2 }
212 1 SCL=0;
213 1 return ddata;
214 1 }
215
216 /****************************************************************************/
217 /* 函数名:sd2000_read_date */
218 /* 功 能:读取sd2000时钟数据 */
219 /* 作 者:spot */
220 /* 输 入:无 */
221 /* 输 出:无 */
222 /* */
223 /* 历史记录: */
224 /* spot 2005-06-20 Creat Inital version. (Version 1.0) */
225 /****************************************************************************/
226 void sd2000_read_date(void)
227 {
228 1 u_char i;
229 1
230 1 sd2000_start();
231 1 sd2000_send_byte(0x65,1); /* 从年开始读取数据 */
232 1 sd2000_wait_ack();
233 1
234 1 for (i=0; i<7; i++)
235 1 {
236 2 date[i] = sd2000_receive_byte();
237 2
238 2 if (i != 6) /* 最后一个数据不应答 */
239 2 {
240 3 sd2000_ack();
241 3 }
C51 COMPILER V6.12 SD2KDRV 09/11/2005 13:05:15 PAGE 5
242 2 }
243 1 date[4] &= 0x7F;
244 1 sd2000_no_ack();
245 1 sd2000_stop();
246 1 }
247
248 /****************************************************************************/
249 /* 函数名:sd2000_write_status */
250 /* 功 能:写sd2000状态寄存器 */
251 /* 作 者:spot */
252 /* 输 入:无 */
253 /* 输 出:无 */
254 /* */
255 /* 历史记录: */
256 /* spot 2005-06-20 Creat Inital version. (Version 1.0) */
257 /****************************************************************************/
258 void sd2000_write_status(void)
259 {
260 1 sd2000_start();
261 1 sd2000_send_byte(0x62,1); /* 发送SD20001C状态寄存器命令 */
262 1 sd2000_wait_ack();
263 1 sd2000_send_byte(0xc0,0); /* 24小时制,关所有中断 */
264 1 sd2000_wait_ack();
265 1 sd2000_stop();
266 1 }
267
268 void delay(void)
269 {
270 1 u_char i;
271 1 for (i=0; i<200; i++);
272 1 }
273
274 /* 在数码管上显示当前湿度 */
275 void display_time(u_char current_time[2])
276 {
277 1 u_char second = 0;
278 1 u_char hour = 0;
279 1
280 1 hour = ( ((current_time[0] & 0xf0) >> 4) * 10) + (current_time[0] & 0x0f);
281 1 second = ( ((current_time[1] & 0xf0) >> 4) * 10) + (current_time[1] & 0x0f);
282 1
283 1 load_number( (second %10), 0);
284 1 load_number( (second /10), 0);
285 1
286 1 load_number( (hour %10), 1);
287 1 load_number( (hour /10), 0);
288 1 send_latch_clock();
289 1 }
290
291 main()
292 {
293 1
294 1 sd2000_write_status();
295 1
296 1 while(1)
297 1 {
298 2 sd2000_read_date();
299 2 clear_led();
300 2 display_time(&date[4]);
301 2 /*delay(); */
302 2 }
303 1
C51 COMPILER V6.12 SD2KDRV 09/11/2005 13:05:15 PAGE 6
304 1
305 1 }
C51 COMPILER V6.12 SD2KDRV 09/11/2005 13:05:15 PAGE 7
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P0 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
T0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B4H 1
AC . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D6H 1
T1 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
T2 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0090H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
u_long . . . . . . . . . . . . . . . . TYPEDEF ----- U_LONG ----- 4
u_short. . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
send_latch_clock . . . . . . . . . . . EXTERN CODE PROC ----- -----
IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1
delay. . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
EXF2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CEH 1
RD . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B7H 1
ES . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ACH 1
IP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B8H 1
sd2000_read_date . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0004H 1
RI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0098H 1
INT0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B2H 1
CY . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D7H 1
TI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0099H 1
INT1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B3H 1
_sd2000_send_byte. . . . . . . . . . . PUBLIC CODE PROC 0000H -----
demand . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
order. . . . . . . . . . . . . . . . AUTO DATA BIT 0000H 1
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
date . . . . . . . . . . . . . . . . . PUBLIC DATA ARRAY 0000H 7
clear_led. . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
u_int. . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
PS . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BCH 1
T2EX . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0091H 1
OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
C_T2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C9H 1
WR . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B6H 1
sd2000_ack . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
sd2000_start . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
RCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CDH 1
TCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CCH 1
sd2000_write_status. . . . . . . . . . PUBLIC CODE PROC 0000H -----
sd2000_wait. . . . . . . . . . . . . . PUBLIC CODE PROC 0007H -----
SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1
TCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1
IE0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0089H 1
IE1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008BH 1
sd2000_wait_ack. . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
errtime. . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
sd2000_stop. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
CP_RL2 . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C8H 1
ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1
ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1
TF0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008DH 1
ET2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ADH 1
TF1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008FH 1
C51 COMPILER V6.12 SD2KDRV 09/11/2005 13:05:15 PAGE 8
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
TF2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CFH 1
RB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009AH 1
EX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A8H 1
IT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0088H 1
TB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009BH 1
EX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AAH 1
IT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008AH 1
P. . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D0H 1
SM0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009FH 1
SM1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009EH 1
SM2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009DH 1
PT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B9H 1
PT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BBH 1
RS0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D3H 1
PT2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BDH 1
TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1
RS1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D4H 1
TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1
SDA. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0086H 1
TR2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CAH 1
PX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B8H 1
PX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BAH 1
SCL. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0087H 1
EXEN2. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CBH 1
REN. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009CH 1
T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C8H 1
sd2000_no_ack. . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
_display_time. . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
current_time . . . . . . . . . . . . * REG * DATA PTR 0001H 3
second . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
hour . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1
RXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B0H 1
_load_number . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
TXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B1H 1
u_char . . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1
F0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D5H 1
sd2000_receive_byte. . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
ddata. . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 355 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 7 2
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -