📄 ds1307.lst
字号:
C51 COMPILER V7.05 DS1307 12/20/2004 15:31:06 PAGE 1
C51 COMPILER V7.05, COMPILATION OF MODULE DS1307
OBJECT MODULE PLACED IN ds1307.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE ds1307.c DEBUG OBJECTEXTEND
stmt level source
1 #include "REG51F.H"
2 #include "ds1307.H"
3 #include <stdio.h>
4 /***********************1307*********************/
5
6 #define USER_SNR 0x10 //1307 address
7 #define WR1307 0xD0
8 #define RD1307 0xD1
9 sbit SCL = P1^3;
10 sbit SDA = P1^7;
11 bit cart;
12 unsigned char dell=2;
13 bit tflag;
14 extern unsigned char cardstate,b,bitnum,bytenum ;
15 /***********************************************************************
16 * void Delay5(void) *
17 ***********************************************************************/
18 void Delay5(void) // 5 us
19 {
20 1 unsigned char data i;
21 1 for(i=0;i<10;i++);
22 1 }
23
24 /***********************************************************************
25 * I2c BUS Related sbit SCL= P1^0; sbit SDA = P1^1; *
26 ***********************************************************************/
27 /*void Delay5(void) // 5 us
28 { unsigned char data i;
29 for(i=0;i<8;i++);
30 }*/
31 void Start(void)
32 { SDA=1;SCL=1;Delay5();SDA=0;Delay5();SCL=0; }
33
34 void Stop(void)
35 { SDA=0;Delay5();SCL=1;Delay5();SDA=1;Delay5(); }
36
37 void SendByte(unsigned char b)
38 {
39 1 unsigned char i;
40 1 unsigned char bb=0x80;
41 1 for(i=0;i<8;i++)
42 1 {
43 2 SDA=b&bb;
44 2 bb>>=1;
45 2 Delay5();
46 2 SCL=1;
47 2 Delay5();
48 2 SCL=0;
49 2 }
50 1 Delay5();
51 1 SCL=1;
52 1 Delay5();
53 1 SCL=0;
54 1 Delay5();
55 1 }
C51 COMPILER V7.05 DS1307 12/20/2004 15:31:06 PAGE 2
56
57 unsigned char ReceByte(bit ack)
58 {
59 1 unsigned char i;
60 1 unsigned char b=0;
61 1 for(i=0;i<8;i++)
62 1 {
63 2 Delay5();
64 2 SDA=1;
65 2 SCL=1;
66 2 Delay5();
67 2 b=2*b+(unsigned char)SDA;
68 2 SCL=0;
69 2 }
70 1 SDA=ack; //ACK
71 1 Delay5();
72 1 SCL=1;
73 1 Delay5();
74 1 SCL=0;
75 1 Delay5();
76 1 return b;
77 1 }
78 /**************************************************
79 * DS1307 relate Functons *
80 **************************************************/
81 void Init_1307(unsigned char control)
82 { Start();
83 1 SendByte(WR1307);
84 1 SendByte(0x07);
85 1 SendByte(control);
86 1 Stop();
87 1 }
88 void GetTime(unsigned char *t)
89 { unsigned char data i;
90 1 //TOGGLE_WD();
91 1 Start();
92 1 SendByte(WR1307);
93 1 SendByte(0x00);
94 1 Start();
95 1 SendByte(RD1307);
96 1 for(i=6;i>0;i--)t[i] = ReceByte(0);
97 1 t[0] = ReceByte(1);
98 1 Stop();
99 1 }
100 void SetTime(unsigned char *t)
101 { unsigned char data i;
102 1 // TOGGLE_WD();
103 1 Start();
104 1 SendByte(WR1307);
105 1 SendByte(0x00);
106 1 for(i=0;i<7;i++)SendByte(t[6-i]);
107 1 Stop();
108 1 }
109 unsigned char Rd1307(unsigned char Adrr)
110 { unsigned char b;
111 1 //TOGGLE_WD();
112 1 Start();
113 1 SendByte(WR1307);
114 1 SendByte(Adrr);
115 1 Start();
116 1 SendByte(RD1307);
117 1 b=ReceByte(1);
C51 COMPILER V7.05 DS1307 12/20/2004 15:31:06 PAGE 3
118 1 Stop();
119 1 return(b);
120 1 }
121 void Wr1307(unsigned char Addr,unsigned char b)
122 { // TOGGLE_WD();
123 1 Start();
124 1 SendByte(WR1307);
125 1 SendByte(Addr);
126 1 SendByte(b);
127 1 Stop();
128 1 }
129 void T1307(void) interrupt 2 using 0
130 {
131 1 // unsigned char i;
132 1 EX1 = 0 ; //close INT0
133 1 tflag=1;
134 1
135 1 EX1 = 1 ; //open INT0
136 1
137 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 307 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 6
IDATA SIZE = ---- ----
BIT SIZE = 2 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -