📄 24c02.lst
字号:
C51 COMPILER V8.08 24C02 01/12/2009 19:00:37 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE 24C02
OBJECT MODULE PLACED IN 24C02.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 24C02.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include"24C02.h"
2 bit ack;
3 void delay5us()
4 {
5 1 _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
6 1 }
7 void Start_I2C()
8 {
9 1 SDA=1;
10 1 _nop_();
11 1 SCL=1;
12 1 delay5us();
13 1 SDA=0;
14 1 delay5us();
15 1 SCL=0;
16 1 _nop_();
17 1 }
18 void Stop_I2C()
19 {
20 1 SDA=0;
21 1 _nop_();
22 1 SCL=1;
23 1 delay5us();
24 1 SDA=1;
25 1 delay5us();
26 1
27 1 }
28 void SendByte(unsigned char Data)
29 {
30 1 unsigned char i;
31 1 for (i=0;i<8;i++)
32 1 {
33 2 SDA=Data&0x80;
34 2 Data=Data<<1;
35 2 SCL=1;
36 2 delay5us();
37 2 SCL=0;
38 2 }
39 1 _nop_();
40 1 SDA=1;
41 1 _nop_();
42 1 SCL=1;
43 1 if(SDA==1)
44 1 ack=0;
45 1 else
46 1 ack=1;
47 1 SCL=0;
48 1 }
49
50 uchar RcvByte()
51 {
52 1 uchar retc=0;
53 1 uchar i;
54 1 SDA=1;
55 1 for ( i=0;i<8;i++)
C51 COMPILER V8.08 24C02 01/12/2009 19:00:37 PAGE 2
56 1 {
57 2 SCL=0;
58 2 delay5us();
59 2 SCL=1;
60 2 retc=retc<<1;
61 2 if(SDA==1)retc++;
62 2 _nop_();
63 2 }
64 1 SCL=0;
65 1 return(retc);
66 1 }
67 void Ack_I2C(bit a)
68 {
69 1 if(a==0)
70 1 SDA=0;
71 1 else
72 1 SDA=1;
73 1 _nop_();
74 1 SCL=1;
75 1 delay5us();
76 1 SCL=0;
77 1 _nop_();
78 1 }
79 void I2CSendByte(uchar suba,uchar Byte)
80 {
81 1 Start_I2C(); // 启动总线
82 1 SendByte(0XA0); //写器件地址
83 1 SendByte(suba); //写数据地址
84 1 SendByte(Byte); //写数据
85 1 Stop_I2C(); //结束总线
86 1 }
87 uchar I2CReadByte(uchar suba)
88 {
89 1 uchar Byte;
90 1 Start_I2C(); // 启动总线
91 1 SendByte(0XA0); //写器件地址
92 1 SendByte(suba); //写数据地址
93 1 Start_I2C(); // 重新启动总线
94 1 SendByte(0XA0+1); //写器件地址并以下是读状态
95 1 Byte=RcvByte(); //读指定地址中的数据
96 1 Ack_I2C(1); //应答
97 1 Stop_I2C(); //结束总线
98 1 return(Byte);
99 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 180 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = 1 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -