📄 iicdemo.lst
字号:
205 {
206 1 u_char n;
207 1
208 1 iic_start();
209 1 iic_send_byte(0xa0);
210 1 iic_wait_ack();
211 1 iic_send_byte(address / 256);
212 1 iic_wait_ack();
213 1 iic_send_byte(address % 256);
214 1 iic_wait_ack();
215 1
216 1 for(n=0; n<num; n++)
217 1 {
218 2 iic_send_byte(write_data[n]);
219 2 iic_wait_ack();
220 2 }
221 1
222 1 iic_stop();
223 1 }
224
225 /****************************************************************************/
226 /* 函数名:read_iic_data */
227 /* 功 能:从iic设备读取N个字节 */
228 /* 作 者:spot */
229 /* 输 入: */
230 /* read_data 存放读取字节的数组 */
231 /* address 指定从address处开始读取 */
232 /* num 读取的字节数 */
233 /* */
234 /* 输 出:无 */
235 /* */
236 /* 历史记录: */
237 /* spot 2005-06-20 Creat Inital version. (Version 1.0) */
238 /****************************************************************************/
239 void read_iic_data(u_char read_data[], u_int address, u_char num)
240 {
241 1 u_char n;
C51 COMPILER V6.12 IICDEMO 09/23/2005 17:15:48 PAGE 5
242 1 u_char *pread_data;
243 1 pread_data = read_data;
244 1 iic_start();
245 1 iic_send_byte(0xa0);
246 1 iic_wait_ack();
247 1 iic_send_byte(address / 256);
248 1 iic_wait_ack();
249 1 iic_send_byte(address % 256);
250 1 iic_wait_ack();
251 1
252 1 iic_start();
253 1 iic_send_byte(0xa1);
254 1 iic_wait_ack();
255 1
256 1 for (n=0; n<num; n++)
257 1 {
258 2 *pread_data = iic_receive_byte();
259 2 pread_data++;
260 2
261 2 if (n != (num - 1)) //最后一个数据不应答
262 2 {
263 3 iic_ack();
264 3 }
265 2 }
266 1
267 1 iic_no_ack();
268 1 iic_stop();
269 1 }
270
271 main()
272 {
273 1 u_char idata test_write[64];
274 1 u_char test_read[64];
275 1 u_char i;
276 1
277 1 while(1)
278 1 {
279 2 for (i=0; i<64; i++)
280 2 {
281 3 test_read[i] = 0;
282 3 }
283 2
284 2 for (i=0; i<64; i++)
285 2 {
286 3 test_write[i] = i + 0;
287 3 }
288 2 write_iic_data(test_write, 0, 64);
289 2 read_iic_data(test_read, 0, 64);
290 2
291 2
292 2 for (i=0; i<64; i++)
293 2 {
294 3 test_write[i] = i + 64;
295 3 }
296 2 write_iic_data(test_write, 64, 64);
297 2 read_iic_data(test_read, 64, 64);
298 2 }
299 1 }
C51 COMPILER V6.12 IICDEMO 09/23/2005 17:15:48 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
IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1
_read_iic_data . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
read_data. . . . . . . . . . . . . . AUTO DATA PTR 0001H 3
address. . . . . . . . . . . . . . . AUTO DATA U_INT 0003H 2
num. . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0005H 1
n. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0004H 1
pread_data . . . . . . . . . . . . . AUTO DATA PTR 0006H 3
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_INT 0002H 2
num. . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0005H 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 IDATA ARRAY 0000H 64
test_read. . . . . . . . . . . . . . AUTO DATA ARRAY 0000H 64
i. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0040H 1
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
ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1
C51 COMPILER V6.12 IICDEMO 09/23/2005 17:15:48 PAGE 7
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
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 0008H -----
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 = 411 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 80
IDATA SIZE = ---- 64
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 + -