📄 at24c02driver.lst
字号:
C51 COMPILER V8.01 AT24C02DRIVER 03/08/2006 20:08:08 PAGE 1
C51 COMPILER V8.01, COMPILATION OF MODULE AT24C02DRIVER
OBJECT MODULE PLACED IN AT24C02Driver.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE AT24C02Driver.c BROWSE DEBUG OBJECTEXTEND TABS(2)
line level source
1 #include <REGX51.H>
2 #include <INTRINS.H>
3 #include "AT24C02Driver.h"
4
5
6 void delay(void);
7 void i_start(void);
8 void i_stop(void);
9 bit i_clock(void);
10 bit i_send(unsigned char i_data);
11 unsigned char i_receive(void);
12
13 void delay(void)
14 {
15 1 _nop_();
16 1 _nop_();
17 1 _nop_();
18 1 _nop_();
19 1 _nop_();
20 1 _nop_();
21 1 }
22
23 void i_start(void)
24 {
25 1 SCL_1;
26 1 delay();
27 1 SDA_0;
28 1 delay();
29 1 SCL_0;
30 1 delay();
31 1 }
32
33 void i_stop(void)
34 {
35 1 SDA_0;
36 1 delay();
37 1 SCL_1;
38 1 delay();
39 1 SDA_1;
40 1 delay();
41 1 SCL_0;
42 1 delay();
43 1 }
44
45 bit i_clock(void)
46 {
47 1 bit sample;
48 1
49 1 SCL_1;
50 1 delay();
51 1 sample=SDA;
52 1 _nop_();
53 1 _nop_();
54 1 SCL_0;
55 1 delay();
C51 COMPILER V8.01 AT24C02DRIVER 03/08/2006 20:08:08 PAGE 2
56 1 return(sample);
57 1 }
58
59
60 bit i_send(unsigned char i_data)
61 {
62 1 unsigned char i;
63 1
64 1 for(i=8;i>0;i--)
65 1 {
66 2 SDA=(bit)(i_data & 0x80);
67 2 i_data=i_data<<1;
68 2 i_clock();
69 2 }
70 1 SDA_1;
71 1 return(~i_clock());
72 1 }
73
74 unsigned char i_receive(void)
75 {
76 1 unsigned char i_data=0;
77 1 unsigned char i;
78 1
79 1 for(i=8;i>0;i--)
80 1 {
81 2 i_data*=2;
82 2 if(i_clock()) i_data++;
83 2 }
84 1 return(i_data);
85 1 }
86
87
88
89 unsigned char at24c02byteread(unsigned char address)
90 {
91 1 unsigned char retdata;
92 1
93 1 i_start();
94 1 if(i_send(0xa0))
95 1 {
96 2 if(i_send(address))
97 2 {
98 3 i_start();
99 3 if(i_send(0xa1))
100 3 {
101 4 retdata=i_receive();
102 4 i_stop();
103 4 delay();
104 4 return(retdata);
105 4 }
106 3 }
107 2 }
108 1 }
109
110
111 void at24c02bytewrite(unsigned char address,unsigned char writedata)
112 {
113 1 i_start();
114 1 if(i_send(0xa0))
115 1 {
116 2 if(i_send(address))
117 2 {
C51 COMPILER V8.01 AT24C02DRIVER 03/08/2006 20:08:08 PAGE 3
118 3 if(i_send(writedata))
119 3 {
120 4 i_stop();
121 4 delay();
122 4 }
123 3 }
124 2 }
125 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 172 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -