📄 tools.lst
字号:
313 2 Command=Command<<1;
314 2 }
315 1 LcdStop();
316 1 }
317 //-----***-16近制数据转化为BCD-***-----//
318 unsigned char HexToBcd(unsigned char Bytedata)
319 {
320 1 unsigned char ii,Byte; /*定义减数i,被减数j,相减蚀锡k,余数h*/
321 1 ii=0;
322 1 while(Bytedata>=0x0a)
323 1 {
324 2 Bytedata=Bytedata-0x0a;
325 2 ii=ii+1;
326 2 }
327 1 Byte=16*ii+Bytedata;
328 1 return Byte;
329 1 }
330 //-----***-BCD数据转化为16近制-***-----//
331 unsigned char BcdToHex(unsigned char Bytedata)
332 {
333 1 unsigned char i,j,Byte; /*定义减数i,被减数j,相减蚀锡k,余数h*/
334 1 i=Bytedata & 0xf0;
335 1 j=Bytedata & 0x0f;
336 1 Byte=10*(i>>4)+j;
337 1 return Byte;
338 1 }
339 //-----***-通过485发送一个字节-***-----//
340 void SeriesSentByte(unsigned char Byte)
341 {
342 1 unsigned char idata i,j,k;
343 1 k=Byte;
344 1 DIR=0; /*创建一个停止位*/
345 1 for(i=0;i<8;i++)
346 1 {
347 2 if(k & 0x80)
348 2 { //bytedata和0x80作AND逻辑运算等于0x80---*/
349 3 j++;
350 3 if(j==2)
351 3 {
352 4 j=0;
353 4 } //即表示位7等于1则条件成立---*/
354 3 }
355 2 k <<=1;
356 2 } //禁止串口中断*/
357 1 if(j==0)
358 1 {
359 2 TB8=0;
360 2 }
361 1 else
362 1 {
C51 COMPILER V7.10 TOOLS 02/03/2005 10:45:41 PAGE 7
363 2 TB8=1;
364 2 }
365 1 SBUF=Byte; /*发送数据*/
366 1 while(TI!=1); /*等待发送完毕*/
367 1 TI=0; /*发送中断标志清零*/
368 1 DIR=1;
369 1 }
370 void ToDay(unsigned char Day)
371 {
372 1 unsigned char data i;
373 1 for(i=0x1f;i<Day;i++)
374 1 {
375 2 if(IIcByteStar==0)
376 2 {
377 3 IIcByteStar=0xc0;
378 3 }
379 2 IIcByteStar=IIcByteStar-16;
380 2 }
381 1 }
382 void ClerBuf(void)
383 {
384 1 unsigned char data i;
385 1 //清除接收缓存
386 1 TimeSendFg=0;
387 1 for(i=0;i<60;i++)
388 1 {
389 2 ComDataBuf[i]=0;
390 2 }
391 1 }
392 void ClerData(void)
393 {
394 1 unsigned char i,j;
395 1 //清除IIC
396 1 EA=0;
397 1 for(i=0;i<255;i++)
398 1 {
399 2 IicByteWrite(0xa0,i,0x00); //
400 2 }
401 1 //编程初始密码:123456
402 1 j=0x56;
403 1 for(i=0;i<3;i++)
404 1 {
405 2 IicByteWrite(0xa0,0x4c+i,j);
406 2 j=j-0x22;
407 2 }
408 1 //清零初始密码:123456
409 1 j=0x56;
410 1 for(i=0;i<3;i++)
411 1 {
412 2 IicByteWrite(0xa0,0x50+i,j);
413 2 j=j-0x22;
414 2 }
415 1 //默认时段08:00---21:00峰段21:00---08:00谷段(分-时)
416 1 IicByteWrite(0xa0,0x80,0x02);
417 1 IicByteWrite(0xa0,0x82,0x08);
418 1 IicByteWrite(0xa0,0x83,0x04);
419 1 IicByteWrite(0xa0,0x85,0x21);
420 1 //时段数目默认值:2
421 1 IicByteWrite(0xa0,0xa5,2);
422 1 //液晶显示时间设置默认值:10s
423 1 IicByteWrite(0xa0,0x62,10);
424 1 //清零次数2
C51 COMPILER V7.10 TOOLS 02/03/2005 10:45:41 PAGE 8
425 1 IicByteWrite(0xa0,0x6a,0x02);
426 1 EA=1;
427 1 }
428 //-----***-数据提取-***-----//
429 void DataPickup(void)
430 {
431 1 unsigned char idata i,j;
432 1 EA=0;
433 1 j=0x00;
434 1 for(i=0;i<4;i++)
435 1 {
436 2 SumPulseData[i]=IicByteRead(0xa0,j);
437 2 FengPulseData[i]=IicByteRead(0xa0,j+4);
438 2 PingPulseData[i]=IicByteRead(0xa0,j+8);
439 2 GuPulseData[i]=IicByteRead(0xa0,j+12);
440 2 j++;
441 2 }
442 1 IicMuchByteRead(0xa0,0x34,3);
443 1 for(i=0;i<3;i++)
444 1 {
445 2 ReverseTime[i]=IIcBuf[i];
446 2 }
447 1 LcdShowTime=IicByteRead(0xa0,0x62);
448 1 LcdShowBit[1]=IicByteRead(0xa0,0x63);
449 1 LcdShowBit[0]=IicByteRead(0xa0,0x64);
450 1 MataStData=IicByteRead(0xa0,0x65);
451 1 PulseData=IicByteRead(0xa0,0x70);
452 1 EA=1;
453 1 }
454 //-----***-数据保存-***-----//
455 void DataSave(void)
456 {
457 1 EA=0;
458 1
459 1 EA=1;
460 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1208 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 17
IDATA SIZE = ---- 5
BIT SIZE = ---- 3
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -