📄 fm24c16a.lst
字号:
123 I_clock();
124 FMSDAA = HIGH;
125 } */
126 /****************************************************************************
127 * 函数原型: bit function E_address(unsigned char Address);
128 * 功 能: 向f24C16写入器件地址和一个指定的字节地址。
129 *****************************************************************************/
130 void E_addressA( unsigned char Device_Address,unsigned char Address )
131 {
132 1 I_startA() ;
133 1 I_sendA( Device_Address&0xfe );
134 1 I_sendA( Address );
135 1 }
136 /*********************************************************************************************************
137 ** 函数名称: EepromReadByte
138 ** 功能描述: 从指定的地址读出一个字节数据
139 ** 输 入: address,bytenumber
140 ** 输 出: 所读数据
141 ** 全局变量: 无
142 ** 调用模块: SM_Receive
143 ** 注 意:此函数不可重入,使用前要先申请信号量
144 ** 作 者: 刘宝贵
145 ** 日 期: 2004年5月5日
146 **-------------------------------------------------------------------------------------------------------
147 ** 修改人:
148 ** 日 期:
149 **-------------------------------------------------------------------------------------------------------
150 *********************************************************************************************************/
151 uint8 EepromReadByteA (uint16 address)
152 {
153 1 unsigned char a;
154 1 unsigned char device_address,data_address;
155 1 data_address=(unsigned char)address;
156 1 device_address=(unsigned char)(address>>8);
157 1 device_address=device_address<<1;
158 1 device_address=device_address&0x0f;
159 1 device_address=device_address|0xA1;
160 1 I_initA();
161 1 E_addressA( device_address,data_address );
162 1 I_startA();
163 1 I_sendA(device_address);
164 1 a = I_receiveA();
165 1 I_stopA();
166 1 return(a);
167 1 }
168 /*********************************************************************************************************
169 ** 函数名称: EepromReadWord
170 ** 功能描述: 从指定的地址读出一个字节数据
171 ** 输 入: address,bytenumber
172 ** 输 出: 所读数据
C51 COMPILER V7.06 FM24C16A 06/06/2005 16:32:37 PAGE 4
173 ** 全局变量: 无
174 ** 调用模块: SM_Receive
175 ** 注 意:此函数不可重入,使用前要先申请信号量
176 ** 作 者: 刘宝贵
177 ** 日 期: 2004年5月5日
178 **-------------------------------------------------------------------------------------------------------
179 ** 修改人:
180 ** 日 期:
181 **-------------------------------------------------------------------------------------------------------
182 *********************************************************************************************************/
183 uint16 EepromReadWordA (uint16 address)
184 {
185 1 unsigned int a;
186 1 unsigned char b,c;
187 1 b = EepromReadByteA(address);
188 1 c = EepromReadByteA(address+1);
189 1 a=b;
190 1 a=a<<8;
191 1 a=a|c;
192 1 return(a);
193 1 }
194 /*********************************************************************************************************
195 ** 函数名称: EepromWriteByte
196 ** 功能描述: 在指定的地址写入指定的字节
197 ** 输 入: address,temp
198 ** 输 出: 无
199 ** 全局变量:
200 ** 调用模块: SM_Send
201 ** 注 意:此函数不可重入,使用前要先申请信号量
202 ** 作 者: 刘宝贵
203 ** 日 期: 2004年5月5日
204 **-------------------------------------------------------------------------------------------------------
205 ** 修改人:
206 ** 日 期:
207 **-------------------------------------------------------------------------------------------------------
208 *********************************************************************************************************/
209 void EepromWriteByteA(uint16 address ,uint8 temp)
210 {
211 1 uint8 device_address,data_address;
212 1 data_address=(uint8)address;
213 1 device_address=(uint8)(address>>8);
214 1 device_address=device_address<<1;
215 1 device_address=device_address&0xe;
216 1 device_address=device_address|0xA0;
217 1 I_initA();
218 1 E_addressA( device_address,data_address );
219 1 I_sendA(temp);
220 1 I_stopA();
221 1 }
222 /*********************************************************************************************************
223 ** 函数名称: EepromWriteWord
224 ** 功能描述: 在指定的地址写入指定的字节
225 ** 输 入: address,temp16
226 ** 输 出: 无
227 ** 全局变量:
228 ** 调用模块: SM_Send
229 ** 注 意:此函数不可重入,使用前要先申请信号量
230 ** 作 者: 刘宝贵
231 ** 日 期: 2004年5月5日
232 **-------------------------------------------------------------------------------------------------------
233 ** 修改人:
234 ** 日 期:
C51 COMPILER V7.06 FM24C16A 06/06/2005 16:32:37 PAGE 5
235 **-------------------------------------------------------------------------------------------------------
236 *********************************************************************************************************/
237 void EepromWriteWordA(uint16 address ,uint16 pata_data)
238 {
239 1 uint8 high_byte,low_byte;
240 1 high_byte =(uint8)( pata_data>>8);
241 1 EepromWriteByteA(address,high_byte);
242 1 low_byte =(uint8)( pata_data&0xff);
243 1 EepromWriteByteA( address+1, low_byte);
244 1 }
245
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 495 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 4
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 + -