📄 ds1302.lst
字号:
C51 COMPILER V9.01 DS1302 04/28/2012 12:23:32 PAGE 1
C51 COMPILER V9.01, 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 "DS1302.h"
2
3 volatile char datetime[]={0,0,12,26,4,4,12}; //SEC,MIN,HR,DATE,MONTH,DAY,YEAR 12年4月26日星期四12:00:00
4
5 void write_byte(dat)
6 {
7 1 unsigned char i;
8 1 ACC=dat;
9 1 for(i=8;i>0;i--)
10 1 {
11 2 SCLK=0;
12 2 IO=ACC0;
13 2 ACC=ACC>>1;
14 2 SCLK=1;
15 2 }
16 1 }
17
18 unsigned char read_byte()
19 {
20 1 unsigned char i;
21 1 for(i=8;i>0;i--)
22 1 {
23 2 ACC=ACC>>1;
24 2 SCLK=0;
25 2 ACC7=IO;
26 2 SCLK=1;
27 2 }
28 1 return(ACC);
29 1 }
30
31
32 void write_DS1302(address,dat)
33 {
34 1 RST=0;
35 1 SCLK=0;
36 1 RST=1;
37 1 write_byte(address);
38 1 write_byte(dat);
39 1 RST=0;
40 1 SCLK=1;
41 1 }
42
43
44 unsigned char read_DS1302(address)
45 {
46 1 unsigned char temp;
47 1 RST=0;
48 1 SCLK=0;
49 1 RST=1;
50 1 write_byte(address);
51 1 temp=read_byte();
52 1 RST=0;
53 1 SCLK=1;
54 1 temp=temp/16*10+temp%16;
55 1 return(temp);
C51 COMPILER V9.01 DS1302 04/28/2012 12:23:32 PAGE 2
56 1 }
57
58 /*void init_DS1302() //全部初始化
59 {
60 unsigned char i,j=0x80;
61 for(i=0;i<7;i++)
62 {
63 datetime[i]=datetime[i]/10*16+datetime[i]%10;
64 }
65 write_DS1302(0x8e,0x00);
66 for(i=0;i<7;i++)
67 {
68 write_DS1302(j,datetime[i]);
69 j+=2;
70 }
71 write_DS1302(0x8e,0x80);
72 } */
73
74
75 void init_DS1302() //部分初始化
76 {
77 1 unsigned char i,j=0x80;
78 1 for(i=0;i<7;i++)
79 1 {
80 2 datetime[i]=datetime[i]/10*16+datetime[i]%10;
81 2 }
82 1 write_DS1302(0x8e,0x00); //写保护关闭
83 1 write_DS1302(0x80,datetime[0]); //秒清零,主要是bit7=0,使ds1302时钟启动
84 1 write_DS1302(0x8c,datetime[7]); //年设置,为12年
85 1 write_DS1302(0x8e,0x80); //写保护
86 1 }
87
88
89 void read_RTC()
90 {
91 1 unsigned char i,j=0x81;
92 1 for(i=0;i<7;i++)
93 1 {
94 2 datetime[i]=read_DS1302(j);
95 2 j+=2;
96 2 }
97 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 193 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 7 1
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 + -