📄 24c02.lst
字号:
C51 COMPILER V7.07 24C02 07/07/2006 03:55:51 PAGE 1
C51 COMPILER V7.07, 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 #define uchar unsigned char //定义一下方便使用
2 #define uint unsigned int
3 #define ulong unsigned long
4 #include <reg52.h> //包括一个52标准内核的头文件
5
6 #define WriteDeviceAddress 0xa0 //定义器件在IIC总线中的地址
7 #define ReadDviceAddress 0xa1
8 sbit SCL=P2^7;
9 sbit SDA=P2^6;
10
11 sbit P10=P1^0;
12 /*
13 //定时函数
14 void DelayMs(unsigned int number)
15 {
16 unsigned char temp;
17 for(;number!=0;number--)
18 {
19 for(temp=112;temp!=0;temp--) ;
20 }
21 }
22 */
23 //开始总线
24 void Start()
25 {
26 1 SDA=1;
27 1 SCL=1;
28 1 SDA=0;
29 1 SCL=0;
30 1 }
31
32 //结束总线
33 void Stop()
34 {
35 1 SCL=0;
36 1 SDA=0;
37 1 SCL=1;
38 1 SDA=1;
39 1 }
40
41
42 //发ACK0
43 void NoAck()
44 {
45 1 SDA=1;
46 1 SCL=1;
47 1 SCL=0;
48 1 }
49
50 //测试ACK
51 bit TestAck()
52 {
53 1 bit ErrorBit;
54 1 SDA=1;
55 1 SCL=1;
C51 COMPILER V7.07 24C02 07/07/2006 03:55:51 PAGE 2
56 1 ErrorBit=SDA;
57 1 SCL=0;
58 1 return(ErrorBit);
59 1 }
60
61 //写入8个bit到24c02
62 Write8Bit(unsigned char input)
63 {
64 1 unsigned char temp;
65 1 for(temp=8;temp!=0;temp--)
66 1 {
67 2 SDA=(bit)(input&0x80);
68 2 SCL=1;
69 2 SCL=0;
70 2 input=input<<1;
71 2 }
72 1 }
73 /*
74 //写入一个字节到24c02中
75 void Write24c02(uchar ch,uchar address)
76 {
77 Start();
78 Write8Bit(WriteDeviceAddress);
79 TestAck();
80 Write8Bit(address);
81 TestAck();
82
83 Write8Bit(ch);
84 TestAck();
85
86 Stop();
87 DelayMs(10);
88 }
89 */
90 //从24c02中读出8个bit
91 uchar Read8Bit()
92 {
93 1 unsigned char temp,rbyte=0;
94 1 for(temp=8;temp!=0;temp--)
95 1 {
96 2 SCL=1;
97 2 rbyte=rbyte<<1;
98 2 rbyte=rbyte|((unsigned char)(SDA));
99 2 SCL=0;
100 2 }
101 1 return(rbyte);
102 1 }
103
104 //从24c02中读出1个字节
105 uchar Read24c02(uchar address)
106 {
107 1 uchar ch;
108 1
109 1 Start();
110 1 Write8Bit(WriteDeviceAddress);
111 1 TestAck();
112 1 Write8Bit(address);
113 1 TestAck();
114 1 Start();
115 1 Write8Bit(ReadDviceAddress);
116 1 TestAck();
117 1 ch=Read8Bit();
C51 COMPILER V7.07 24C02 07/07/2006 03:55:51 PAGE 3
118 1 NoAck();
119 1 Stop();
120 1 return(ch);
121 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 115 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -