📄 cat1161.lst
字号:
203 /* spot 2005-06-20 Creat Inital version. (Version 1.0) */
204 /****************************************************************************/
205 void write_iic_data(u_char write_data[], u_char address, u_char num)
206 {
207 1 u_char n;
208 1
209 1 iic_start();
210 1 iic_send_byte(0xa0);
211 1 iic_wait_ack();
212 1 iic_send_byte(address);
213 1 iic_wait_ack();
214 1
215 1 for(n=0; n<num; n++)
216 1 {
217 2 iic_send_byte(write_data[n]);
218 2 iic_wait_ack();
219 2 }
220 1
221 1 iic_stop();
222 1 }
223
224 /****************************************************************************/
225 /* 函数名:read_iic_data */
226 /* 功 能:从iic设备读取N个字节 */
227 /* 作 者:spot */
228 /* 输 入: */
229 /* read_data 存放读取字节的数组 */
230 /* address 指定从address处开始读取 */
231 /* num 读取的字节数 */
232 /* */
233 /* 输 出:无 */
234 /* */
235 /* 历史记录: */
236 /* spot 2005-06-20 Creat Inital version. (Version 1.0) */
237 /****************************************************************************/
238 void read_iic_data(u_char read_data[], u_char address, u_char num)
239 {
240 1 u_char n;
241 1
C51 COMPILER V6.12 CAT1161 09/24/2005 15:47:31 PAGE 5
242 1 iic_start();
243 1 iic_send_byte(0xa0);
244 1 iic_wait_ack();
245 1 iic_send_byte(address);
246 1 iic_wait_ack();
247 1
248 1 iic_start();
249 1 iic_send_byte(0xa1);
250 1 iic_wait_ack();
251 1
252 1 for (n=0; n<num; n++)
253 1 {
254 2 read_data[n] = iic_receive_byte();
255 2
256 2 if (n != (num - 1)) /* 最后一个数据不应答 */
257 2 {
258 3 iic_ack();
259 3 }
260 2 }
261 1
262 1 iic_no_ack();
263 1 iic_stop();
264 1 }
265
266 main()
267 {
268 1 u_char test_write[16];
269 1 u_char test_read[16];
270 1 u_int i;
271 1
272 1 /* iic读写函数单步调试,可以观看写入数据与读出数据结果 */
273 1 while(1)
274 1 {
275 2 for (i=0; i<16; i++)
276 2 {
277 3 test_read[i] = 0;
278 3 test_write[i] = i;
279 3 }
280 2 write_iic_data(test_write, 0, 16);
281 2
282 2 read_iic_data(test_read, 0, 16);
283 2
284 2 for (i=0; i<16; i++)
285 2 {
286 3 test_write[i] = i + 16;
287 3 test_read[i] = 0;
288 3 }
289 2 write_iic_data(test_write, 16, 16);
290 2
291 2 read_iic_data(test_read, 16, 16);
292 2 read_iic_data(test_read, 0, 16);
293 2 }
294 1 }
C51 COMPILER V6.12 CAT1161 09/24/2005 15:47:31 PAGE 6
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P0 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
T0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B4H 1
AC . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D6H 1
T1 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
iic_no_ack . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
T2 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0090H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
u_long . . . . . . . . . . . . . . . . TYPEDEF ----- U_LONG ----- 4
u_short. . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1
_read_iic_data . . . . . . . . . . . . PUBLIC CODE PROC 000BH -----
read_data. . . . . . . . . . . . . . AUTO DATA PTR 0000H 3
address. . . . . . . . . . . . . . . AUTO DATA U_CHAR 0004H 1
num. . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0004H 1
n. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0004H 1
iic_receive_byte . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
ddata. . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
EXF2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CEH 1
RD . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B7H 1
ES . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ACH 1
IP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B8H 1
RI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0098H 1
INT0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B2H 1
CY . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D7H 1
TI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0099H 1
INT1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B3H 1
_write_iic_data. . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
write_data . . . . . . . . . . . . . AUTO DATA PTR 0000H 3
address. . . . . . . . . . . . . . . AUTO DATA U_CHAR 0004H 1
num. . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0004H 1
n. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0004H 1
u_int. . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
PS . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BCH 1
T2EX . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0091H 1
OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
test_write . . . . . . . . . . . . . AUTO DATA ARRAY 0000H 16
test_read. . . . . . . . . . . . . . AUTO DATA ARRAY 0010H 16
i. . . . . . . . . . . . . . . . . . AUTO DATA U_INT 0020H 2
C_T2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C9H 1
WR . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B6H 1
RCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CDH 1
TCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CCH 1
SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1
TCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1
_iic_send_byte . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
sbyte. . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
IE0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0089H 1
IE1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008BH 1
CP_RL2 . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C8H 1
iic_ack. . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
iic_start. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1
C51 COMPILER V6.12 CAT1161 09/24/2005 15:47:31 PAGE 7
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1
TF0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008DH 1
ET2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ADH 1
TF1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008FH 1
TF2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CFH 1
RB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009AH 1
EX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A8H 1
IT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0088H 1
iic_wait . . . . . . . . . . . . . . . PUBLIC CODE PROC 0007H -----
TB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009BH 1
EX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AAH 1
IT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008AH 1
P. . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D0H 1
SM0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009FH 1
SM1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009EH 1
SM2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009DH 1
PT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B9H 1
PT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BBH 1
RS0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D3H 1
PT2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BDH 1
TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1
RS1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D4H 1
TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1
SDA. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0085H 1
TR2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CAH 1
PX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B8H 1
PX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BAH 1
iic_wait_ack . . . . . . . . . . . . . PUBLIC CODE PROC 0012H -----
errtime. . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
iic_stop . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
SCL. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0084H 1
EXEN2. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CBH 1
REN. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009CH 1
T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C8H 1
RXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B0H 1
TXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B1H 1
u_char . . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1
F0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D5H 1
PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 388 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 44
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 + -