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

📄 电表.txt

📁 LPC932设计的电表程序。完整的设计代码
💻 TXT
📖 第 1 页 / 共 2 页
字号:
    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 + -