亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lcdparse.txt

?? 用pic單片機實現的對鋰電池沖電的程序
?? TXT
字號:
使用LPC932制作的一款電表---LcdParse
redbug 發表于 2005-10-14 16:35:00  


#i nclude <REG932.H>
#i nclude <define.h>
#i nclude <Stdio.h>
#i nclude <Intrins.h>

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,    //0
                                    0x06,    //1
                                    0x7C,    //2
                                    0x5E,    //3
                                    0xC6,    //4
                                    0xDA,    //5
                                    0xFA,    //6
                                    0x0E,    //7
                                    0xFE,    //8
                                    0xDE,    //9
                                    0xf8,   //a--E
                                    0x40,   //b--_
                                  };   
   DataBufA[0]=DataOne;
   DataBufA[1]=DataTwo;
   DataBufA[2]=DataThree;
   DataBufA[3]=DataFour;
   
   if(BataMoveFg)
   {
     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;

    switch(DataSeven)
    {
       case 0x00 : //沒有小數點的顯示/                  
                   LcdFull(DataOne,DataTwo,DataThree,DataFour);                  
       break;
       case 0x21 : //第2位帶小數點的顯示/                  
                   LcdFull(DataOne,DataTwo,DataThree,DataFour);  
                   LcdShowBuf[1]=LcdShowBuf[1]|0x01;
       break;
       case 0x41 : //第4位帶小數點的顯示/                  
                   LcdFull(DataOne,DataTwo,DataThree,DataFour);  
                   LcdShowBuf[1]=LcdShowBuf[1]|0x01;
                   LcdShowBuf[3]=LcdShowBuf[3]|0x01;
       break;
       case 0x51 : //第5位帶小數點的顯示/                  
                   LcdFull(DataOne,DataTwo,DataThree,DataFour);  
                   LcdShowBuf[4]=LcdShowBuf[4]|0x01;
       break;
   }
   if(ComFg)
   {
        LcdShowBuf[7]=LcdShowBuf[7]|0x10;
   }
   else
   {
        LcdShowBuf[7]=LcdShowBuf[7]&0xef;
   }
   if(ReverseFgToLcd)
   {
        LcdShowBuf[7]=LcdShowBuf[7]|0x40;
   }
   else
   {
        LcdShowBuf[7]=LcdShowBuf[7]&0xbf;
   }     
   LcdStart();
   LcdSendId(0xa0);               //寫數據操作
   LcdSendAddress(0x00);
   for(i=0;i<8;i++)
   {
        LcdSendByte(LcdShowBuf[i]);
        Delay(LcdDelay);
   }
   LcdStop();
}
void LcdParse(void)
{
    unsigned char data i,j,k,l,m;
    unsigned char data databuf[4];
    if(LcdTimeFg)
    {
        m=LcdShowBit[0]&0x80;
        switch(LcdRunData)
        {
            case 0x01 ://第01種顯示方式數據提取到顯示緩沖區---當前日期/                   
                       if(LcdShowBit[0]&0x01)
                       {
                          i=IicByteRead(0x64,0x40) & 0x3f;
                          j=IicByteRead(0x64,0x50) & 0x1f;
                          k=IicByteRead(0x64,0x60);
                          l=0;
                          BataMoveFg=0;//不執行移位操作 
                          LcdDisplayData(i,j,k,l,0x80,0x00,0x41);
                       }
                       else
                       {
                          LcdRunData=0x02;
                       }
              break;       
              case 0x02 ://第02種顯示方式數據提取到顯示緩沖區---當前時間/
                         if(LcdShowBit[0]&0x02)
                         {
                             k=IicByteRead(0x64,0x00) & 0x7f;
                             j=IicByteRead(0x64,0x10) & 0x7f;
                             i=IicByteRead(0x64,0x20) & 0x3f;
                             l=0; 
                             BataMoveFg=0;//不執行移位操作
                             LcdDisplayData(i,j,k,l,0x40,0x0c,0x00);
                         }
                         else
                         {
                             LcdRunData=0x03;
                         }
              break;                                
              case 0x03 ://第03種顯示方式數據提取到顯示緩沖區---當前總電量(整數加小數|整數)
            
                            //電表先顯示整數---6位整數
                            if(m)
                         {        
                             BataMoveFg=0;//不執行移位操作 
                                for(i=0;i<4;i++)    
                                {
                                   databuf[i]=HexToBcd(SumPulseData[i]);
                                }
                             LcdDisplayData(databuf[2],databuf[1],databuf[0],0x00,0x08,0x82,0x00);
                         }
                         //電表顯示整數加小數---5位整數加一位小數
                         else
                         {
                             BataMoveFg=1;//執行移位操?
                                for(i=0;i<4;i++)    
                                {
                                   databuf[i]=HexToBcd(SumPulseData[i]);
                                }
                             LcdDisplayData(databuf[3],databuf[2],databuf[1],databuf[0],0x08,0x82,0x51);
                         }
              break;                               
              case 0x04 ://第04種顯示方式數據提取到顯示緩沖區---當前總電量(小數)/
                         //顯示小數---4位小數最后兩位代表脈沖個數 
                         if(m)
                         {
                             BataMoveFg=0;//不執行移位操作 
                             LcdDisplayData(0x00,SumPulseData[4],SumPulseData[3],0x00,0x08,0x82,0x21);
                         }
                         else
                         {
                               LcdRunData=0x05;
                            }
              break;                               
              case 0x05 ://第05種顯示方式數據提取到顯示緩沖區---當前峰電量(整數加小數|整數)/
                         //電表先顯示整數---6位整數  
                            if(m)
                          {        
                              BataMoveFg=0;//不執行移位操作 
                                 for(i=0;i<4;i++)    
                                 {
                                    databuf[i]=HexToBcd(FengPulseData[i]);
                                 }
                              LcdDisplayData(databuf[2],databuf[1],databuf[0],0x00,0x04,0x82,0x00);
                          }
                          //電表顯示整數加小數---5位整數加一位小數
                          else
                          {
                              BataMoveFg=1;//執行移位操?
                                 for(i=0;i<4;i++)    
                                 {
                                    databuf[i]=HexToBcd(FengPulseData[i]);
                                 }
                              LcdDisplayData(databuf[3],databuf[2],databuf[1],databuf[0],0x04,0x82,0x51);
                          }
              break;                          
              case 0x06 ://第06種顯示方式數據提取到顯示緩沖區---當前峰電量(小數)/
                         //顯示小數---4位小數最后兩位代表脈沖個數 
                         if(m)
                         {
                             BataMoveFg=0;//不執行移位操作 
                             for(i=0;i<4;i++)    
                                {
                                    databuf[i]=HexToBcd(FengPulseData[i]);
                                }
                             LcdDisplayData(0x00,databuf[4],databuf[3],0x00,0x04,0x82,0x21);
                         }
                            else
                            {
                                LcdRunData=0x07;
                            }   
              break;        
              case 0x07 ://第07種顯示方式數據提取到顯示緩沖區---當前谷電量(整數加小數|整數)/
                            //電表先顯示整數---6位整數 
                            if(m)
                         {
                             BataMoveFg=0;//不執行移位操作 
                                for(i=0;i<4;i++)    
                                {
                                    databuf[i]=HexToBcd(GuPulseData[i]);
                                }
                             LcdDisplayData(databuf[2],databuf[1],databuf[0],0x00,0x01,0x82,0x00);
                         }
                         //電表顯示整數加小數---5位整數加一位小數
                         else
                         {
                             BataMoveFg=1;//執行移位操?
                                for(i=0;i<4;i++)    
                                {
                                    databuf[i]=HexToBcd(GuPulseData[i]);
                                }
                             LcdDisplayData(databuf[3],databuf[2],databuf[1],databuf[0],0x01,0x82,0x51);
                         }
              break;         
              case 0x08 ://第08種顯示方式數據提取到顯示緩沖區---當前谷電量(小數)/
                         //顯示小數---4位小數最后兩位代表脈沖個數 
                         if(m)
                         {
                             BataMoveFg=0;//不執行移位操作 
                             for(i=0;i<4;i++)    
                                {
                                   databuf[i]=HexToBcd(GuPulseData[i]);
                                }
                             LcdDisplayData(0x00,databuf[4],databuf[3],0x00,0x01,0x82,0x21);
                         }
                            else
                            {
                                LcdRunData=0x09;
                            }
              break;                              
              case 0x09 ://第09種顯示方式數據提取到顯示緩沖區---電表地址(后6位)/
                         //電表顯示后六位表地址---6位整數 
                            if(LcdShowBit[0]&0x20)
                         {
                             IicMuchByteRead(0xa0,0x83,3);
                             BataMoveFg=0;//不執行移位操作 
                             LcdDisplayData(IIcBuf[0],IIcBuf[1],IIcBuf[2],0x00,0x01,0x82,0x00);
                         }
                         else
                         {
                             LcdRunData=0x0a;
                         }
              break;                                  
              case 0x0a ://第10種顯示方式數據提取到顯示緩沖區---電表自檢/
                         //電表顯示錯誤特征碼(E-0000) 
                            if(LcdShowBit[0]&0x40)
                         {
                             IIcBuf[2]=IicByteRead(0xa0,0xC9);
                             BataMoveFg=0;//不執行移位操作 
                             LcdDisplayData(0xab,0x00,IIcBuf[2],0x00,0x00,0x00,0x00);
                         }
                         else
                         {
                             LcdRunData=0x0b;
                         }
              break;                                 
              case 0x0b ://第11種顯示方式數據提取到顯示緩沖區---上月總電量(整數加小數|整數)/
                           //電表先顯示整數---6位整數  
                            if(LcdShowBit[1]&0x01) 
                         {
                              if(m)
                           {
                               IicMuchByteRead(0xa0,0x20,3);
                               BataMoveFg=0;//不執行移位操作 
                               LcdDisplayData(IIcBuf[2],IIcBuf[1],IIcBuf[0],0x00,0x18,0x82,0x00);
                           }
                           //電表顯示整數加小數---5位整數加一位小數
                           else
                           {
                               IicMuchByteRead(0xa0,0x20,4);
                               BataMoveFg=1;//執行移位操作 
                               LcdDisplayData(IIcBuf[3],IIcBuf[2],IIcBuf[2],IIcBuf[0],0x18,0x82,0x51);
                           }
                         }
                         else
                         {
                               LcdRunData=0x0d;
                         }
              break;                             
              case 0x0c ://第12種顯示方式數據提取到顯示緩沖區---上月總電量(小數)/
                         //顯示小數---4位小數最后兩位代表脈沖個數 
                         if(m)
                         {
                             IicMuchByteRead(0xa0,0x23,2);
                             BataMoveFg=0;//不執行移位操作 
                             LcdDisplayData(0x00,IIcBuf[2],IIcBuf[1],0x00,0x18,0x82,0x21);
                         } 
              break; 
              case 0x0d ://第13種顯示方式數據提取到顯示緩沖區---上月峰電量(整數加小數|整數)/
                         //電表先顯示整數---6位整數  
                            if(LcdShowBit[1]&0x02) 
                         {
                                if(m)
                             {
                                 IicMuchByteRead(0xa0,0x25,3);
                                 BataMoveFg=0;//不執行移位操作 
                                 LcdDisplayData(IIcBuf[2],IIcBuf[1],IIcBuf[0],0x00,0x14,0x82,0x00);
                             }
                             //電表顯示整數加小數---5位整數加一位小數
                             else
                             {
                                 IicMuchByteRead(0xa0,0x25,4);
                                 BataMoveFg=1;//執行移位操作 
                                 LcdDisplayData(IIcBuf[3],IIcBuf[2],IIcBuf[1],IIcBuf[0],0x14,0x82,0x51);
                             }
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
视频一区二区三区入口| 国产精品2024| 经典三级视频一区| 懂色av一区二区三区免费观看 | 国产精品自在在线| 国产成人aaaa| 欧美影视一区在线| 精品国产凹凸成av人导航| 精品久久久久av影院| 欧美激情一区在线观看| 亚洲欧美国产77777| 秋霞午夜av一区二区三区| 不卡视频免费播放| 欧美日韩免费高清一区色橹橹| 精品欧美一区二区久久| 亚洲情趣在线观看| 亚洲日本一区二区| 日韩—二三区免费观看av| 成人午夜视频免费看| 欧美日韩一区三区四区| 国产欧美1区2区3区| 午夜国产精品一区| 成人sese在线| 日韩美女天天操| 一区二区三区日韩欧美| 国内久久婷婷综合| 欧美日韩国产高清一区| 久久久久97国产精华液好用吗| 亚洲欧美日韩中文播放| 美女免费视频一区| 在线精品视频一区二区三四| 欧美国产精品一区二区三区| 免费一级欧美片在线观看| 色婷婷综合久久| 亚洲国产精品二十页| 九色综合国产一区二区三区| 欧美日韩免费电影| 亚洲综合无码一区二区| youjizz久久| 欧美精品一区二区三区很污很色的| 亚洲国产裸拍裸体视频在线观看乱了| 国产成人综合亚洲91猫咪| 精品日韩一区二区三区 | 欧美精品123区| 亚洲视频你懂的| 粉嫩在线一区二区三区视频| 在线综合视频播放| 亚洲123区在线观看| 在线观看国产91| 亚洲三级电影全部在线观看高清| 成人午夜视频免费看| 国产日韩在线不卡| 99久久精品免费看国产| 欧美一级生活片| 开心九九激情九九欧美日韩精美视频电影 | 国产mv日韩mv欧美| 国产欧美视频在线观看| 成人高清视频在线观看| 中文欧美字幕免费| 99精品黄色片免费大全| 亚洲另类在线视频| 欧美日韩国产天堂| 免费在线一区观看| 久久综合色之久久综合| 国产成人av一区二区三区在线 | 一级做a爱片久久| 欧美色综合影院| 天天做天天摸天天爽国产一区| 777奇米成人网| 亚洲国产日日夜夜| 欧美一区日韩一区| 国产又黄又大久久| 国产精品国产自产拍高清av王其| 97久久精品人人做人人爽50路| 亚洲精品老司机| 欧美一区二区三区日韩视频| 国产精品自在在线| 久久久国产午夜精品| av亚洲精华国产精华| 亚洲一二三区视频在线观看| 91精品国产乱| 成人国产在线观看| 天天操天天综合网| 国产午夜精品一区二区三区嫩草 | 中文在线资源观看网站视频免费不卡 | 亚洲成人自拍网| 欧美电视剧在线观看完整版| 国产69精品久久99不卡| 亚洲人精品午夜| 3751色影院一区二区三区| 国产成人夜色高潮福利影视| 亚洲欧美自拍偷拍| 欧美日韩一区小说| 国产精品中文欧美| 亚洲h在线观看| 国产日产亚洲精品系列| 欧美日韩免费视频| 99精品国产91久久久久久| 日韩精品一级中文字幕精品视频免费观看 | 蜜桃av噜噜一区| 中文字幕在线视频一区| 91精品国产高清一区二区三区蜜臀 | 亚洲高清在线视频| 国产精品无码永久免费888| 欧美剧情电影在线观看完整版免费励志电影 | 欧美妇女性影城| 北条麻妃一区二区三区| 韩国欧美一区二区| 亚洲精品国产第一综合99久久| 精品国产乱码久久久久久老虎| 欧美三级电影网站| 色一情一伦一子一伦一区| 韩国精品主播一区二区在线观看| 一区二区三区四区视频精品免费 | 久久精品理论片| 亚洲电影视频在线| 国产精品美女久久久久av爽李琼| 欧美一级理论片| 6080午夜不卡| 欧美性受xxxx黑人xyx| av综合在线播放| 国产电影精品久久禁18| 精品一二三四在线| 日韩精品欧美精品| 亚洲成av人影院| 一区二区三区四区av| 一级特黄大欧美久久久| 亚洲精品国产高清久久伦理二区| 综合自拍亚洲综合图不卡区| 91视视频在线直接观看在线看网页在线看| 国产精品伦理一区二区| 国产精品国模大尺度视频| 亚洲欧美激情小说另类| 亚洲国产cao| 看国产成人h片视频| 国产成人综合在线观看| 91免费版pro下载短视频| 欧美日韩精品一二三区| 欧美xxxxx牲另类人与| 国产精品理论在线观看| 日韩理论片在线| 亚洲成av人片www| 毛片av一区二区三区| 国产成人精品免费在线| 99国产一区二区三精品乱码| 欧美日韩精品一区二区| 久久久青草青青国产亚洲免观| 国产精品久久一卡二卡| 五月天亚洲精品| 成人免费毛片嘿嘿连载视频| 色综合久久久久网| 精品美女一区二区三区| 国产精品久久夜| 青青青爽久久午夜综合久久午夜| 国产精品一区二区久激情瑜伽 | 欧美高清在线一区| 亚洲综合色视频| 国产一区二区调教| 欧美日韩在线播| 中文字幕精品综合| 日本不卡不码高清免费观看| 99久久精品情趣| 精品久久久网站| 一区二区欧美在线观看| 国产成人免费视频精品含羞草妖精| 91成人免费电影| 中文字幕第一区二区| 麻豆91小视频| 欧美亚洲国产bt| 综合久久综合久久| 国产成人高清视频| 日韩午夜精品视频| 视频一区二区三区中文字幕| aaa欧美色吧激情视频| 久久综合成人精品亚洲另类欧美 | 欧美高清性hdvideosex| 最新热久久免费视频| 国产一区二区免费在线| 91精品国产高清一区二区三区蜜臀| 亚洲色图在线播放| 成人国产精品免费观看视频| 精品国产乱码久久久久久闺蜜| 午夜日韩在线观看| 欧美午夜精品一区二区蜜桃| 亚洲人成在线播放网站岛国| 韩国一区二区视频| 欧美成人a视频| 麻豆成人综合网| 欧美一区二区观看视频| 午夜激情久久久| 4438x成人网最大色成网站| 亚洲成a人v欧美综合天堂下载 | 一区二区三区视频在线看| 粉嫩嫩av羞羞动漫久久久| 色婷婷综合久久久久中文一区二区 | 亚洲视频一二三区| 99久久99久久久精品齐齐| 中文字幕二三区不卡| 懂色av噜噜一区二区三区av| 欧美高清一级片在线观看|