📄 24c02.lst
字号:
C51 COMPILER V7.01 24C02 02/05/2009 23:38:10 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE 24C02
OBJECT MODULE PLACED IN 24c02.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 24c02.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg52.h>
2 #include <intrins.h>
3
4
5 //定义一下方便使用
6 #define uchar unsigned char
7 #define uint unsigned int
8
9
10 //数码管段码和位码定义
11 /****************--0-----1------2-----3-----4------5-----6-----7-----8-----9---全选-**/
12 uchar code duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
13 /****************-1-----2-----3------4-----5-----6------7-----8---全选-***********/
14 uchar code wei[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff};
15
16
17 uchar k[9]={0,0,0,0,0,0,0,0,10};
18 uchar j;
19
20
21 //按键调节定义
22 sbit k1=P0^0;
23 //加按键
24 sbit k2=P0^1;
25 //减按键
26 sbit k3=P0^2;
27 //功能键
28
29
30 //AT24C02管脚定义
31 sbit SCL =P1^4;
32 //24c02时钟信号
33 sbit SDA=P1^5;
34 //24c02数据端
35
36
37 //74HC595管脚定义
38
39
40 sbit SCK =P3^1;
41 //移位时钟
42 sbit RCK =P3^0;
43 //锁存时钟
44 sbit SER = P3^2;
45 //数据输入
46
47
48 //TLC0834管脚定义
49 sbit ADC_CLK=P3^0;
50 //转换时钟
51 sbit ADC_CS =P3^1;
52 //转换片选
53 sbit ADC_DIO = P3^2;
54 //串行数据输入输出,DI和 DO接在一起使用
55
C51 COMPILER V7.01 24C02 02/05/2009 23:38:10 PAGE 2
56
57 /******************************24c02声明**********************************/
58
59
60 /************************************
61
62 延时程序
63
64
65 *************************************/
66 void delay()
67 {
68 1
69 1
70 1 uchar i;
71 1 for(i=248;i>0;i--);
72 1 }
73
74
75 /************************************
76
77 开始总线
78
79
80 *************************************/
81 void start()
82 {
83 1
84 1
85 1 SDA=1;
86 1 SCL=1;
87 1 SDA=0;
88 1 SCL=0;
89 1
90 1
91 1 }
92
93
94 /*************************************
95
96 结束总线
97
98
99 **************************************/
100 void stop()
101 {
102 1
103 1
104 1 SCL=0;
105 1 SDA=0;
106 1 SCL=1;
107 1 SDA=1;
108 1
109 1
110 1 }
111
112
113
114 /*************************************
115
116 发
117 ack0
C51 COMPILER V7.01 24C02 02/05/2009 23:38:10 PAGE 3
118 **************************************/
119 void noack()
120 {
121 1
122 1
123 1 SDA=1;
124 1 SCL=1;
125 1 SCL=0;
126 1
127 1
128 1 }
129
130
131 /*************************************
132
133 应答子函数
134
135
136 **************************************/
137 bit ack()
138 {
139 1
140 1
141 1 bit e;
142 1 SDA=1;
143 1 SCL=1;
144 1 e=SDA;
145 1 SCL=0;
146 1 return(e);
147 1
148 1
149 1 }
150
151
152 /**************************************
153 写
154 8个
155 bit到
156 24C02
157 为写字节作准备
158
159
160 **************************************/
161 void wb(uchar input)
162 {
163 1
164 1
165 1 uchar j;
166 1 for(j=8;j>0;j--)
167 1 {
168 2
169 2
170 2 SDA=(bit)(input&0x80);
171 2 SCL=1;
172 2 SCL=0;
173 2 input=input<<1;
174 2
175 2
176 2 }
177 1 }
178
179
C51 COMPILER V7.01 24C02 02/05/2009 23:38:10 PAGE 4
180 /***************************************
181
182 写一个字节到
183 24c02
184 ****************************************/
185 void w(uchar d,uchara)
186 {
187 1
188 1
189 1 start();
190 1
191 1
192 1 wb(0xa0);
193 1 ack();
194 1 //写入指令 0xa0,该指令表示准备对 24c02进行写操作
195 1 wb(a);
*** ERROR C202 IN LINE 195 OF 24C02.C: 'a': undefined identifier
196 1 ack();
197 1 //先写要存数据的地址
198 1 wb(d);
199 1 ack();
200 1 //再写要存数据
201 1 }
202 stop();
*** ERROR C231 IN LINE 202 OF 24C02.C: 'stop': redefinition
203 delay();
*** ERROR C231 IN LINE 203 OF 24C02.C: 'delay': redefinition
204
205
206 /**************************************
207 从
208 24C02中读
209 8个
210 bit
211 为读字节作准备
212
213
214 ***************************************/
215 uchar rb()
216 {
217 1
218 1
219 1 uchar j,rb=0;
220 1 for(j=8;j>0;j--)
221 1 {
222 2
223 2
224 2 SCL=1;
225 2 rb=rb<<1;
226 2 rb=rb|((uchar)(SDA));
227 2 SCL=0;
228 2
229 2
230 2 }
231 1 return(rb);
232 1 }
233
234
235 /****************************************
236
237 从
238 24c02中读一个字节
C51 COMPILER V7.01 24C02 02/05/2009 23:38:10 PAGE 5
239 *****************************************/
240 uchar r(uchara)
241 {
242 1
243 1
244 1 uchar d;
245 1 //读操作得到的数据
246 1
247 1
248 1 start();
249 1 wb(0xa0);
250 1 //写入指令 0xa0,该指令表示准备对 24c02进行写操作
251 1 ack();
252 1 wb(a);
*** ERROR C202 IN LINE 252 OF 24C02.C: 'a': undefined identifier
253 1 //写入要读数据的地址 a
254 1
255 1
256 1
257 1 ack();
258 1
259 1
260 1 start();
261 1 wb(0xa1);
262 1 ack();
263 1 d=rb();
264 1 noack();
265 1 stop();
266 1 //写入指令 0xa1,该指令表示准备对 24c02进行读操作
267 1 //从地址 a中读出数据
268 1 }
269 return(d);
*** ERROR C141 IN LINE 269 OF 24C02.C: syntax error near 'return'
270 //返回得到的数据
271
272
273 /****************************24c02声明结束********************************/
274
275
276 /****************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -