📄 24c02.lst
字号:
C51 COMPILER V8.01 24C02 07/01/2007 21:49:36 PAGE 1
C51 COMPILER V8.01, COMPILATION OF MODULE 24C02
OBJECT MODULE PLACED IN 24c02.OBJ
COMPILER INVOKED BY: C:\Program Files\ruanjian\keilv3\C51\BIN\C51.EXE 24c02.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #define uchar unsigned char
3 #define uint unsigned int
4 #define WriteAddress 0xa0 //定义器件在I2C总线中的地址
5 #define ReadAddress 0xa1 //定义器件在I2C总线中的地址
6 sbit SCL=P2^0;
7 sbit SDA=P2^1;
8
9
10 void delay(uint t)
11 {
12 1 uchar number;
13 1 while(t--)
14 1 {
15 2 for(number=0;number<110;number++);
16 2 }
17 1 }
18
19 //开始总线
20 void Star(void)
21 {
22 1 SDA=1;
23 1 SCL=1;
24 1 SDA=0;
25 1 SCL=0; //数据线 时钟线由高变低,开始总线
26 1
27 1 }
28
29 //结束总线
30 void Stop(void)
31 {
32 1 SCL=0;
33 1 SDA=0;
34 1 SCL=1;
35 1 SDA=1; //时钟线 数据线由低变高,停止数据传送
36 1
37 1 }
38
39 //测试ACK
40 bit Testack()
41 {
42 1 bit ErrorBit;
43 1 SDA=1;
44 1 SCL=1;
45 1 ErrorBit=SDA;
46 1 SCL=0; //数据线为高电平,时钟线由高变低,测试ACK
47 1 return(ErrorBit);
48 1 }
49
50 //写8 bit到24c02
51 Write8bit(uchar ch)
52 {
53 1 uchar temp;
54 1 for(temp=8;temp!=0;temp--)
55 1 {
C51 COMPILER V8.01 24C02 07/01/2007 21:49:36 PAGE 2
56 2 SDA=(bit)(ch&0x80);
57 2 SCL=1;
58 2 SCL=0;
59 2 ch=ch<<1;
60 2 }
61 1 }
62
63
64 //写一个字节到24c02
65 Write24c02(uchar ch,uchar address)
66 {
67 1 Star();
68 1 Write8bit(WriteAddress);
69 1 Testack();
70 1 Write8bit(address);
71 1 Testack();
72 1 Write8bit(ch);
73 1 Testack();
74 1 Stop();
75 1 delay(10);
76 1 }
77
78
79 //从24c02中读出8bit
80 Read8bit(uchar ch)
81 {
82 1 uchar temp;
83 1 for(temp=8;temp!=0;temp--)
84 1 {
85 2 SCL=1;
86 2 ch=ch<<1;
87 2 ch=ch|((uchar)(SDA));
88 2 SCL=0;
89 2 }
90 1 return(ch);
91 1 }
92
93
94 //从24c02中读出一个字节
95 Read24c02(uchar address)
96 {
97 1 uchar ch;
98 1 Star();
99 1 Write8bit(ReadAddress);
100 1 Testack();
101 1 Write8bit(address);
102 1 Testack();
103 1 Star();
104 1 Write8bit(ReadAddress);
105 1 Testack();
106 1 ch=Read8bit();
*** WARNING C209 IN LINE 106 OF 24C02.C: '_Read8bit': too few actual parameters
107 1
108 1 Stop();
109 1 return(ch);
110 1 }
111
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 163 ----
CONSTANT SIZE = ---- ----
C51 COMPILER V8.01 24C02 07/01/2007 21:49:36 PAGE 3
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -