⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tools.i

📁 个人学习参考!禁止使用到产品上! 任何人不得公开发布!
💻 I
📖 第 1 页 / 共 2 页
字号:
 }                                                                           IicStop();							                               FgTimeout=0;						                                    if(ack==0)							                               break;                                                                      }    								                               Delay(75); IIcWP=1;							                               }  unsigned char IicReceiveByte(void)										      { unsigned char i;												      unsigned char bytedata=0; SDA=1; for(i=0;i<8;i++)												      { SCL=1;													      IicWait();  bytedata<<=1;												      if (SDA) bytedata |=0x01;									       SCL=0;													      IicWait(); } return bytedata;												      }  bit IicSentByte(unsigned char bytedata)							      { unsigned char i;												      bit ack;														        for(i=0;i<8;i++)												      { if(bytedata & 0x80) {												      	      SDA=1;  } else { SDA=0;  } bytedata <<=1;												      IicWait();												       SCL=1;  IicWait();												      SCL=0;  IicWait();												      } SDA=1;  IicWait();													      SCL=1;  IicWait();													      ack=SDA;														      SCL=0;  IicWait();													      return ack;													      }  void IicStart(void)													      { SDA=1;														      SCL=1;														      IicWait();													      SDA=0;														      IicWait();													      SCL=0;														      }  void IicStop(void)													      { SDA=0;														      IicWait();													      SCL=1;														      IicWait();													      SDA=1;														      }  void IicWait(void)													      { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();  }  void SendAcknowledge(bit ack)											      { SDA=ack;														       SCL=1;														      IicWait(); SCL=0;  }   void LcdStart(void) { LcdCs=0; Delay(3); }  void LcdStop(void) { LcdCs=1; Delay(3); }  void LcdSendId(unsigned char ID) { unsigned char data i;  for(i=3;i>0;i--) { LcdWr=0; Delay(3);  if((ID&0x80)==0x80) { LcdData=1; } else { LcdData=0; } LcdWr=1; Delay(3);  ID=ID<<1; } }  void LcdSendAddress(unsigned char Address) { unsigned char data i;  for(i=6;i>0;i--) { LcdWr=0; Delay(3);  if((Address&0x80)==0x80) { LcdData=1; } else { LcdData=0;; } LcdWr=1; Delay(3);  Address=Address<<1; } }  void LcdSendByte(unsigned char Data) { unsigned char data i,k; for(i=2;i>0;i--) {  for(k=4;k>0;k--) { LcdWr=0; Delay(3);  if((Data&0x80)==0x80) { LcdData=1; } else { LcdData=0; } LcdWr=1; Delay(3); Data=Data<<1; } } } void LcdFull(unsigned char DataOne,unsigned char DataTwo,unsigned char DataThree,unsigned char DataFour) { unsigned char data i,j,k; unsigned char idata DataBufA[4],DataBufB[4]; unsigned char code	Digit[12]={	 0xBE,	  0x06,	  0x7C,	  0x5E,	  0xC6,	  0xDA,	  0xFA,	  0x0E,	  0xFE,	  0xDE,	  0xf8,     0x40,     };    DataBufA[0]=DataOne; DataBufA[1]=DataTwo; DataBufA[2]=DataThree; DataBufA[3]=DataFour;  if(BataMoveFg==1) { for(i=0;i<4;i++)  { k=DataBufA[i];			 j=DataBufA[i+1];			 k=k&0x0f;						 k=k<<4;							 j=j>>4;					 j=j&0x0f;	 DataBufB[i]=k|j; } } for(i=0;i<3;i++) { k=DataBufB[i] & 0xf0; k=k>>4; LcdShowBuf[i+i]=Digit[k]; k=DataBufB[i] & 0x0f; LcdShowBuf[i+i+1]=Digit[k]; }  } void LcdDisplayData(unsigned char DataOne,unsigned char DataTwo,unsigned char DataThree,unsigned char DataFour,unsigned char DataFive,unsigned char DataSix,unsigned char DataSeven) { unsigned char data i;  LcdShowBuf[6]=DataFive; LcdShowBuf[7]=DataSix; if(ComFg) { LcdShowBuf[7]=LcdShowBuf[7]|0x10; ComFg=0; ComTimeA=0; ComTimeB=0; } else { if(ComTimeB>=30)  { LcdShowBuf[7]=LcdShowBuf[7]&0xef; } } if( ReverseFg) { LcdShowBuf[7]=LcdShowBuf[7]|0x40; } else { LcdShowBuf[7]=LcdShowBuf[7]&0xbf; } switch(DataSeven) { case 0x00 :   LcdFull(DataOne,DataTwo,DataThree,DataFour);                   break; case 0x21 :   LcdFull(DataOne,DataTwo,DataThree,DataFour);   LcdShowBuf[1]=LcdShowBuf[1]|0x01; break; case 0x41 :   LcdFull(DataOne,DataTwo,DataThree,DataFour);   LcdShowBuf[1]=LcdShowBuf[1]|0x01; LcdShowBuf[3]=LcdShowBuf[3]|0x01; break; case 0x51 :   LcdFull(DataOne,DataTwo,DataThree,DataFour);   LcdShowBuf[4]=LcdShowBuf[4]|0x01; break; }	 LcdStart(); LcdSendId(0xa0);                 LcdSendAddress(0x00);  for(i=0;i<8;i++) { LcdSendByte(LcdShowBuf[i]); Delay(3);  }  LcdStop(); Delay(3); }  void LcdSendCommand(unsigned char Command) { unsigned char data i; LcdStart(); LcdSendId(0x80);  for(i=0;i<9;i++) { LcdWr=0; Delay(3);  if((Command&0x80)==0x80) { LcdData=1; } else { LcdData=0; } LcdWr=1; Delay(3);  Command=Command<<1; } LcdStop(); }  unsigned char HexToBcd(unsigned char Bytedata) { unsigned char ii,Byte;					  ii=0; while(Bytedata>0x0a) { Bytedata=Bytedata-0x0a; ii=ii+1; } Byte=16*ii+Bytedata; return Byte;	 }  unsigned char BcdToHex(unsigned char Bytedata) { unsigned char i,j,Byte;					  i=Bytedata & 0xf0; j=Bytedata & 0x0f; Byte=10*(i>>4)+j; return Byte; }  void DataSave(void) { unsigned char idata i,j,k,l; EA=0; j=0x00; l=0x60; for(i=0;i<5;i++) { k=HexToBcd(AddUpPulseData[i]); IicByteWrite(0xa0,j,k); k=HexToBcd(ReversePulseData[i]); IicByteWrite(0xa0,l,k); j++; l++; } EA=1; }  void DataPickup(void) { unsigned char idata i,j,k; EA=0; j=0x00; k=0x60; for(i=0;i<5;i++) { AddUpPulseData[i]=BcdToHex(IicByteRead(0xa0,j)); ReversePulseData[i]=BcdToHex(IicByteRead(0xa0,k)); j++; k++; } EA=1; }  void SeriesSend(void)								  { unsigned char idata i; SendDataBuf[0]=0x10; SendDataBuf[1]=0x10; SendDataBuf[4]=SendDataBuf[1]+SendDataBuf[2]+SendDataBuf[3]; SendDataBuf[5]=0x16; for(i=0;i<SendDataBuf[9]+11;i++) { SeriesSentByte(SendDataBuf[i]); } }  void SeriesSentByte(unsigned char Byte) { unsigned char idata i,j,k; k=Byte;	 ES=0;										   for(i=0;i<8;i++) { if(k & 0x80) {												      	      j++; if(j==2) { j=0; }         																      } k <<=1;	 }								                      if(j==0) { TB8=0;      } else { TB8=1; } SBUF=Byte;									  while(TI!=1);									  TI=0;										  ES=1;										  }  void DataFill(void) { unsigned char data i; for(i=0;i<8;i++) { SendDataBuf[i]=InceptDataBuf[i]; }  } void ToDay(unsigned char Day) { unsigned char data CheckSum ,i; for(i=0x1f;i<Day;i++) {                                                                if(IIcByteStar==0) { IIcByteStar=0xc0; } IIcByteStar=IIcByteStar-16; } DataFill(); CheckSum=0x00; SendDataBuf[8]=0x81; SendDataBuf[9]=18; IicMuchByteRead(0xa2,IIcByteStar,16); for(i=12;i<28;i++) { SendDataBuf[i]=IIcBuf[i-12]; } for(i=0;i<(SendDataBuf[9]+11);i++) { CheckSum=CheckSum+SendDataBuf[i]; } SendDataBuf[SendDataBuf[9]+10]=CheckSum; SendDataBuf[SendDataBuf[9]+11]=0x16; SeriesSend(); } 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -