📄 iic.lst
字号:
C51 COMPILER V8.02 IIC 11/14/2006 21:58:17 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE IIC
OBJECT MODULE PLACED IN iic.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE iic.c OPTIMIZE(9,SPEED) DEBUG OBJECTEXTEND
line level source
1 /**************************************************************
2 **文件功能:24c04的驱动函数 **
3 **创建人:xingyuegu **
4 **创建日期:2006-7-12 **
5 **版本:1.0 **
6 **************************************************************/
7 #include <reg51.h> #include <reg51.h>
8 #include <intrins.h>
9 #include "common.h"
10
11 #define nop() _nop_()
12
13 #define WriteDeviceAddress 0xa0 //写驱动地址指令
14 #define ReadDeviceAddress 0xa1 //读驱动地址指令
15
16 //sbit AT24C04_SCL=P2^0;
17 //sbit AT24C04_SDA=P2^1;
18 void delay10ms(void)
19 {
20 1 uint i;
21 1 for(i=0;i<6000;i++);
22 1 }
23
24 //启动信号
25 void Start(void)
26 {
27 1 AT24C04_SCL=0;
*** ERROR C202 IN LINE 27 OF IIC.C: 'AT24C04_SCL': undefined identifier
28 1
29 1 AT24C04_SDA=1;
*** ERROR C202 IN LINE 29 OF IIC.C: 'AT24C04_SDA': undefined identifier
30 1 nop();
31 1 nop();
32 1 nop();
33 1 nop();
34 1 nop();
35 1 AT24C04_SCL=1;
*** ERROR C202 IN LINE 35 OF IIC.C: 'AT24C04_SCL': undefined identifier
36 1 nop();
37 1
38 1 nop();
39 1 nop();
40 1 nop();
41 1 nop();
42 1
43 1 AT24C04_SDA=0;
*** ERROR C202 IN LINE 43 OF IIC.C: 'AT24C04_SDA': undefined identifier
44 1 nop();
45 1 nop();
46 1 nop();
47 1 nop();
48 1 nop();
49 1
50 1 }
51 //停止信号
C51 COMPILER V8.02 IIC 11/14/2006 21:58:17 PAGE 2
52 void Stop(void)
53 { AT24C04_SCL=0;
*** ERROR C202 IN LINE 53 OF IIC.C: 'AT24C04_SCL': undefined identifier
54 1 nop();
55 1 nop();
56 1 nop();
57 1 nop();
58 1 nop();
59 1 nop();
60 1
61 1 AT24C04_SDA=0;
*** ERROR C202 IN LINE 61 OF IIC.C: 'AT24C04_SDA': undefined identifier
62 1
63 1 AT24C04_SCL=1;
*** ERROR C202 IN LINE 63 OF IIC.C: 'AT24C04_SCL': undefined identifier
64 1 nop();
65 1 nop();
66 1 nop();
67 1 nop();
68 1 AT24C04_SDA=1;
*** ERROR C202 IN LINE 68 OF IIC.C: 'AT24C04_SDA': undefined identifier
69 1 nop();
70 1 nop();
71 1 nop();
72 1 nop();
73 1 nop();
74 1 nop();
75 1 }
76 //发应答信号
77 void ack(void)
78 {
79 1 AT24C04_SCL=0;
*** ERROR C202 IN LINE 79 OF IIC.C: 'AT24C04_SCL': undefined identifier
80 1 nop();
81 1 nop();
82 1 AT24C04_SDA=0;
*** ERROR C202 IN LINE 82 OF IIC.C: 'AT24C04_SDA': undefined identifier
83 1 AT24C04_SCL=1;
*** ERROR C202 IN LINE 83 OF IIC.C: 'AT24C04_SCL': undefined identifier
84 1 nop();
85 1 nop();
86 1
87 1 }
88 //发非应答信号
89 void no_ack(void)
90 {
91 1 AT24C04_SCL=0;
*** ERROR C202 IN LINE 91 OF IIC.C: 'AT24C04_SCL': undefined identifier
92 1 nop();
93 1 nop();
94 1 AT24C04_SDA=1;
*** ERROR C202 IN LINE 94 OF IIC.C: 'AT24C04_SDA': undefined identifier
95 1 AT24C04_SCL=1;
*** ERROR C202 IN LINE 95 OF IIC.C: 'AT24C04_SCL': undefined identifier
96 1 nop();
97 1 nop();
98 1 }
99 //写字节
100 bit write8bit(uchar input)
101 {
102 1 uchar i;
103 1 for(i=0;i<8;i++)
C51 COMPILER V8.02 IIC 11/14/2006 21:58:17 PAGE 3
104 1 {
105 2 AT24C04_SCL=0;
*** ERROR C202 IN LINE 105 OF IIC.C: 'AT24C04_SCL': undefined identifier
106 2 input=input<<1;
107 2 AT24C04_SDA=CY;
*** ERROR C202 IN LINE 107 OF IIC.C: 'AT24C04_SDA': undefined identifier
108 2 nop();
109 2 nop();
110 2 AT24C04_SCL=1;
*** ERROR C202 IN LINE 110 OF IIC.C: 'AT24C04_SCL': undefined identifier
111 2 nop();
112 2 }
113 1
114 1 AT24C04_SCL=0; //read ack
*** ERROR C202 IN LINE 114 OF IIC.C: 'AT24C04_SCL': undefined identifier
115 1 nop();
116 1 //AT24C04_SDA=1;
117 1 nop();
118 1 nop();
119 1 // nop();
120 1 AT24C04_SCL=1;
*** ERROR C202 IN LINE 120 OF IIC.C: 'AT24C04_SCL': undefined identifier
121 1 nop();
122 1
123 1 CY=AT24C04_SDA;
*** ERROR C202 IN LINE 123 OF IIC.C: 'AT24C04_SDA': undefined identifier
124 1 if(CY)
125 1 return 0;
126 1 else
127 1 return 1;
128 1
129 1 //return(CY);
130 1 }
131 //读字节
132 uchar read8bit(void)
133 {
134 1 uchar i,readdata;
135 1 for(i=0;i<8;i++)
136 1 {
137 2 AT24C04_SCL=0;
*** ERROR C202 IN LINE 137 OF IIC.C: 'AT24C04_SCL': undefined identifier
138 2 nop();
139 2
140 2 readdata=(readdata<<1)|AT24C04_SDA;
*** ERROR C202 IN LINE 140 OF IIC.C: 'AT24C04_SDA': undefined identifier
141 2 AT24C04_SCL=1;
*** ERROR C202 IN LINE 141 OF IIC.C: 'AT24C04_SCL': undefined identifier
142 2 nop();
143 2 }
144 1 return readdata;
145 1 }
146
147 void write_byte(uchar address,uchar output)
148 {
149 1 Start();
150 1 write8bit(WriteDeviceAddress);
151 1 write8bit(address);
152 1 write8bit(output);
153 1 Stop();
154 1 delay10ms();
155 1 }
156
C51 COMPILER V8.02 IIC 11/14/2006 21:58:17 PAGE 4
157 uchar random_read(uchar address)
158 {
159 1 uchar rddata;
160 1 Start();
161 1 write8bit(WriteDeviceAddress);
162 1 write8bit(address);
163 1 Start();
164 1 write8bit(ReadDeviceAddress);
165 1 rddata=read8bit();
166 1 no_ack();
167 1 Stop();
168 1 delay10ms();
169 1 return rddata;
170 1 }
C51 COMPILATION COMPLETE. 0 WARNING(S), 23 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -