📄 general.lst
字号:
197 2 if(AckBus()==0) return(0);
198 2
199 2 if( I2STAT!=0x50 )
200 2 {
201 3 I2CON = GENERATE_STOP;
202 3 return(0);
203 3 }
204 2
205 2 *DataPrt = I2DAT; //读取数据
206 2 DataPrt++;
207 2 }
208 1
209 1 I2CON = RELEASE_BUS_NOACK; //接收最后一字节数据并发送非应答位
210 1 // while( SI==0 );
211 1 if(AckBus()==0) return(0);
212 1
213 1 *DataPrt = I2DAT;
214 1 I2CON = GENERATE_STOP; //结束总线
215 1
216 1 return(1);
217 1 }
218
219
220
221
222
223
224 //**********************************************************
225 //名称:
226 //功能:
227 //说明:
228 //**********************************************************
229 void Watchdog_feed(void)
230 {
231 1 EA = 0;
232 1 WFEED1 = 0xA5;
233 1 WFEED2 = 0x5A;
234 1 EA = 1;
235 1 }
236
237
238
239
240 //**********************************************************
241 //名称:DelayNmS
C51 COMPILER V7.50 GENERAL 04/13/2007 13:24:51 PAGE 5
242 //功能:
243 //说明:延时NmS
244 //**********************************************************
245 void DelayNms(uchar value)
246 {
247 1 uchar i;
248 1 uchar j;
249 1
250 1 while(value--)
251 1 {
252 2 //1ms=10*100us
253 2 for(i=0;i<10;i++)
254 2 {
255 3 //100us
256 3 j=184;
257 3 while(--j);
258 3 }
259 2 }
260 1 }
261
262
263
264
265 //**********************************************************
266 //名称:
267 //功能:
268 //说明:
269 //**********************************************************
270 void ArrayInit(uchar idata *ptr,uchar len)
271 {
272 1 uchar i;
273 1
274 1 i= 0x00;
275 1 do
276 1 {
277 2 *ptr = 0x00;
278 2 ptr++;
279 2 i++;
280 2 }while(i<len);
281 1 }
282
283
284
285
286 //**********************************************************
287 //名称:BCD检查
288 //功能:
289 //说明:
290 //**********************************************************
291 bit BCDCHK(uchar idata *ptr,uchar len)
292 {
293 1 uchar i;
294 1 uchar Temp;
295 1
296 1 i=0x00;
297 1 do
298 1 {
299 2 Temp = *ptr;
300 2 if( (Temp&0x0F)>0x09 || (Temp&0xF0)>0x90 ) return(0);
301 2 ptr++;
302 2 i++;
303 2 }while(i<len);
C51 COMPILER V7.50 GENERAL 04/13/2007 13:24:51 PAGE 6
304 1
305 1 return(1);
306 1 }
307
308
309
310
311 //**********************************************************
312 //名称:BCD转HEX
313 //功能:
314 //说明:返回HEX值
315 //**********************************************************
316 uchar BCD2HEX(uchar BCDdata)
317 {
318 1 uchar Temp;
319 1
320 1 Temp = (BCDdata>>4)*10;
321 1 Temp += BCDdata&0x0F;
322 1
323 1 return Temp;
324 1 }
325
326
327
328
329 //**********************************************************
330 //名称:SumCHK()
331 //功能:返回数据校验和
332 //说明:
333 //**********************************************************
334 uchar SumCHK(uchar idata *ptr, uchar len)
335 {
336 1 uchar i;
337 1 uchar TmpData;
338 1 uchar SumData;
339 1
340 1 TmpData = 0x00;
341 1 SumData = 0x00;
342 1 i = 0x00;
343 1 do
344 1 {
345 2 TmpData = *ptr;
346 2 SumData += TmpData;
347 2 ptr++;
348 2 i++;
349 2 } while(i<len);
350 1
351 1 return SumData;
352 1 }
353
354
355
356
357
358 //**********************************************************
359 //名称:BCD加法
360 //功能:
361 //说明:返回进位
362 //**********************************************************
363 uchar BCDINC(uchar idata *ptr,uchar len,uchar step)
364 {
365 1 uchar i;
C51 COMPILER V7.50 GENERAL 04/13/2007 13:24:51 PAGE 7
366 1 uchar TCF;
367 1 uchar Temp;
368 1
369 1 i = 0x00;
370 1 TCF = 0x00;
371 1 Temp = 0x00;
372 1 TCF = step;
373 1 do
374 1 {
375 2 Temp = BCD2HEX(*ptr)+TCF;
376 2 TCF = Temp/100;
377 2 Temp = Temp%100;
378 2 *ptr = (Temp/10)<<4;
379 2 *ptr = *ptr+Temp%10;
380 2 ptr++;
381 2 i++;
382 2 }while(i<len);
383 1
384 1 return TCF;
385 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 442 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -