📄 电表.txt
字号:
LcdCs=1;
Delay(LcdDelay);
}
void LcdSendId(unsigned char ID)
{
unsigned char data i;
for(i=3;i>0;i--)
{
LcdWr=0;
Delay(LcdDelay);
if((ID&0x80)==0x80)
{
LcdData=1;
}
else
{
LcdData=0;
}
LcdWr=1;
Delay(LcdDelay);
ID=ID<<1;
}
}
void LcdSendAddress(unsigned char Address)
{
unsigned char data i;
for(i=6;i>0;i--)
{
LcdWr=0;
Delay(LcdDelay);
if((Address&0x80)==0x80)
{
LcdData=1;
}
else
{
LcdData=0;;
}
LcdWr=1;
Delay(LcdDelay);
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(LcdDelay);
if((Data&0x80)==0x80)
{
LcdData=1;
}
else
{
LcdData=0;
}
LcdWr=1;
Delay(LcdDelay);
Data=Data<<1;
}
}
}
void LcdSendCommand(unsigned char Command)
{
unsigned char data i;
LcdStart();
LcdSendId(0x80);
for(i=0;i<9;i++)
{
LcdWr=0;
Delay(LcdDelay);
if((Command&0x80)==0x80)
{
LcdData=1;
}
else
{
LcdData=0;
}
LcdWr=1;
Delay(LcdDelay);
Command=Command<<1;
}
LcdStop();
}
//-----***-16近制数据转化为BCD-***-----//
unsigned char HexToBcd(unsigned char Bytedata)
{
unsigned char ii Byte; /*定义减数i 被减数j 相减蚀锡k 余数h*/
ii=0;
while(Bytedata>=0x0a)
{
Bytedata=Bytedata-0x0a;
ii=ii+1;
}
Byte=16*ii+Bytedata;
return Byte;
}
//-----***-BCD数据转化为16近制-***-----//
unsigned char BcdToHex(unsigned char Bytedata)
{
unsigned char i j Byte; /*定义减数i 被减数j 相减蚀锡k 余数h*/
i=Bytedata & 0xf0;
j=Bytedata & 0x0f;
Byte=10*(i>>4)+j;
return Byte;
}
//-----***-通过485发送一个字节-***-----//
void SeriesSentByte(unsigned char Byte)
{
unsigned char idata i j k;
k=Byte;
DIR=0; /*创建一个停止位*/
for(i=0;i<8;i++)
{
if(k & 0x80)
{ //bytedata和0x80作AND逻辑运算等于0x80---*/
j++;
if(j==2)
{
j=0;
} //即表示位7等于1则条件成立---*/
}
k <<=1;
} //禁止串口中断*/
if(j==0)
{
TB8=0;
}
else
{
TB8=1;
}
SBUF=Byte; /*发送数据*/
while(TI!=1); /*等待发送完毕*/
TI=0; /*发送中断标志清零*/
DIR=1;
}
void ToDay(unsigned char Day)
{
unsigned char data i;
for(i=0x1f;i<Day;i++)
{
if(IIcByteStar==0)
{
IIcByteStar=0xc0;
}
IIcByteStar=IIcByteStar-16;
}
}
void ClerBuf(void)
{
unsigned char data i;
//清除接收缓存
TimeSendFg=0;
for(i=0;i<60;i++)
{
ComDataBuf[i]=0;
}
}
void ClerData(void)
{
unsigned char i j;
//清除IIC
EA=0;
for(i=0;i<255;i++)
{
IicByteWrite(0xa0 i 0 0 j);
j=j-0x22;
}
//清零初始密码:123456
j=0x56;
for(i=0;i<3;i++)
{
IicByteWrite(0xa0 0 j);
j=j-0x22;
}
//默认时段08:00---21:00峰段21:00---08:00谷段(分-时)
IicByteWrite(0xa0 0 0 0 0 0 0 0 0 0 2 0 10 0 0 DataPickup(void)
{
unsigned char idata i j;
EA=0;
j=0x00;
for(i=0;i<4;i++)
{
SumPulseData[i]=IicByteRead(0xa0 j);
FengPulseData[i]=IicByteRead(0xa0 j+4);
PingPulseData[i]=IicByteRead(0xa0 j+8);
GuPulseData[i]=IicByteRead(0xa0 j+12);
ReversePulseData[i]=IicByteRead(0xa0 j+0x30);
j++;
}
IicMuchByteRead(0xa0 0 3 0 0 0 0 0 DataSave(void)
{
EA=0;
EA=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -