📄 5.lst
字号:
C51 COMPILER V6.12 5 02/18/2009 12:20:28 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE 5
OBJECT MODULE PLACED IN .\5.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE .\5.c DEBUG OBJECTEXTEND
stmt level source
1
2 #include<REG51.h>
3 #define uchar unsigned char
4
5 sbit scl= P3^3;
6 sbit sda= P3^4;
7
8 void delay()
9 {
10 1 ; ;
11 1 }
12
13
14 void start()
15 {
16 1 sda=1;
17 1 scl=1;
18 1 delay();
19 1 sda=0;
20 1 delay();
21 1 }
22
23 void stop()
24 {
25 1 sda=0;
26 1 scl=1;
27 1 delay();
28 1 sda=1;
29 1 delay();
30 1 }
31
32 void response()
33 {
34 1 uchar i;
35 1 scl=1;
36 1 delay();
37 1 while(sda==1 && i<255 ) i++;
38 1 delay();
39 1 scl=0;
40 1 delay();
41 1 }
42
43 void init()
44 {
45 1 sda=1;
46 1 scl=1;
47 1 delay();
48 1 }
49
50 void write_byte( uchar data1 )
51 {
52 1 unsigned int i;
53 1 uchar temp;
54 1 temp=data1;
55 1
C51 COMPILER V6.12 5 02/18/2009 12:20:28 PAGE 2
56 1
57 1 for(i=0;i<8;i++)
58 1 {
59 2 temp=temp<<1;
60 2 scl=0;
61 2 delay();
62 2 sda=CY;
63 2 delay();
64 2 scl=1;
65 2 delay();
66 2 }
67 1 scl=0;
68 1 delay();
69 1 sda=1;
70 1 delay();
71 1 }
72
73 uchar read_byte()
74 {
75 1 unsigned int i;
76 1 uchar k;
77 1
78 1 for(i=0;i<8;i++)
79 1 {
80 2 scl=0;
81 2 delay();
82 2 scl=1;
83 2 delay();
84 2 k=(k<<1) | sda;
85 2 }
86 1 scl=0;
87 1 delay();
88 1 return k;
89 1 }
90
91
92 void write_addr(uchar addr,uchar data1)
93 {
94 1 start();
95 1 write_byte(0xa0);
96 1 response();
97 1 write_byte(addr);
98 1 response();
99 1 write_byte(data1);
100 1 response();
101 1 stop();
102 1 }
103
104 uchar read_addr(uchar addr)
105 {
106 1 uchar data1;
107 1 start();
108 1 write_byte(0xa0);
109 1 response();
110 1 write_byte(addr);
111 1 response();
112 1
113 1 start();
114 1 write_byte(0xa1);
115 1 response();
116 1 data1=read_byte();
117 1 response();
C51 COMPILER V6.12 5 02/18/2009 12:20:28 PAGE 3
118 1 stop();
119 1 return data1;
120 1 }
121
122
123 void delay1(uchar x)
124 {
125 1 uchar a,b;
126 1 for(a=x;a>0;a--)
127 1 for(b=100;b>0;b--);
128 1 }
129
130 void main()
131 {
132 1 init();
133 1 // write_addr(23,0x77);
134 1 // delay1(100);
135 1 P1=read_addr(23);
136 1 while(1);
137 1 }
138
139 /*
140 #include<reg52.h>
141 #define uchar unsigned char
142 sbit sda=P2^7;
143 sbit scl=P2^6;
144 uchar a;
145 void delay()
146 { ;; }
147 void start() //开始信号
148 {
149 sda=1;
150 delay();
151 scl=1;
152 delay();
153 sda=0;
154 delay();
155 }
156
157 void stop() //停止
158 {
159 sda=0;
160 delay();
161 scl=1;
162 delay();
163 sda=1;
164 delay();
165 }
166
167 void respons() //应答
168 {
169 uchar i;
170 scl=1;
171 delay();
172 while((sda==1)&&(i<250))i++;
173 scl=0;
174 delay();
175 }
176
177 void init()
178 {
179 sda=1;
C51 COMPILER V6.12 5 02/18/2009 12:20:28 PAGE 4
180 delay();
181 scl=1;
182 delay();
183 }
184
185 void write_byte(uchar date)
186 {
187 uchar i,temp;
188 temp=date;
189
190
191 for(i=0;i<8;i++)
192 {
193 temp=temp<<1;
194 scl=0;
195 delay();
196 sda=CY;
197 delay();
198 scl=1;
199 delay();
200 // scl=0;
201 // delay();
202 }
203 scl=0;
204 delay();
205 sda=1;
206 delay();
207 }
208
209 uchar read_byte()
210 {
211 uchar i,k;
212 scl=0;
213 delay();
214 sda=1;
215 delay();
216 for(i=0;i<8;i++)
217 {
218 scl=1;
219 delay();
220 k=(k<<1)|sda;
221 scl=0;
222 delay();
223 }
224 return k;
225 }
226
227 void delay1(uchar x)
228 {
229 uchar a,b;
230 for(a=x;a>0;a--)
231 for(b=100;b>0;b--);
232 }
233
234 void write_add(uchar address,uchar date)
235 {
236 start();
237 write_byte(0xa0);
238 respons();
239 write_byte(address);
240 respons();
241 write_byte(date);
C51 COMPILER V6.12 5 02/18/2009 12:20:28 PAGE 5
242 respons();
243 stop();
244 }
245
246 uchar read_add(uchar address)
247 {
248 uchar date;
249 start();
250 write_byte(0xa0);
251 respons();
252 write_byte(address);
253 respons();
254 start();
255 write_byte(0xa1);
256 respons();
257 date=read_byte();
258 stop();
259 return date;
260 }
261
262 void main()
263 {
264 uchar m_temp;
265 init();
266 write_add(23,0x88);
267 delay1(100);
268 m_temp=read_add(23);
269 while(1)
270 {
271 P1=m_temp;
272 }
273 }
274
275 */
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 236 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 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 + -