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

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

?? 單相復費率.c

?? 單相復費率電能表源代碼 支持紅外、 RS85通訊。支持尖、峰、平、谷四個費率
?? C
?? 第 1 頁 / 共 5 頁
字號:
//特別聲明:本代碼為單相復費率電能表源代碼 cpu為LPC932單片機
//          利用中斷0模擬的485通訊簡稱串口通訊
//          利用MCU自帶的串口進行的紅外通訊
//          簡稱紅外通訊

#include <REG932.H>
#include <define.h>
#include <Stdio.h>
#include <Intrins.h>

void main(void)
{        
     EA=0;
     EA=0;            
     
     InitCpu();                         //初始化CPU      
     InitCmd();                         //命令初始化---判斷硬復位還是軟復位         
     InitLcd();                         //初始化液晶顯示驅動器
     InitRTC();                         //初始化時鐘
     WDT();
     EA=1;
     EA=1;
     while(1)
     {         
          LcdParse();                   //顯示方式處理
          Temperature();                //溫度采集處理
          TimeSpend();                  //費率時刻判斷         
          CmdParse();                   //外部通訊處理
          PulseParse();                 //脈沖采集處理
          DataProtect();                //數據定時存儲(15分鐘存儲一次數據)        
          LowPower();                   //掉電檢測
          KeyParse();                   //鍵盤采集處理
          DataCom();                    //通訊數據幀處理
          StakeOut(0x00,0x01);
    }
}
//485接收
void INT_INT0(void) interrupt 0 
{
    unsigned char BitData;
    bit BitChk;
    EX0=0;
    WDT();
    EX0=0;
    BitData=0;
    BitChk=1;
    SeriesInData=0;
    Delay(130);                          //等過起始位
       while(BitData<9)
       {         
           if(BitData==8)
        {
            SeriesBitNine=RXD;
        }
           if(RXD==1)
           {
               SeriesInData|=0x0080;
            BitChk=~BitChk;
           }           
          BitData++;
          if(BitData<8)
        {
            SeriesInData>>=1;
        }          
          Delay(90);
       }
    if(BitChk)
    {
        if(ComEn)
        {
            
            InfraredSt=0;
            if(SeriesSt)
            {
                if(SeriesBufDptr<60)
                 {
                  if(SeriesBufDptr==0)            //數據緩沖區地址指針是否為零
                  {                                   
                      if(SeriesInData==0x68)            //緩沖區的第一個數據是否等于0x68*/
                      {
                          ComDataBuf[0]=SeriesInData;    //數據保存到緩沖區*/
                             SeriesBufDptr++;        //緩沖區地址累加*/
                      }
                      else
                      {
                          SeriesBufDptr=0;
                      }
                 }
                 else
                 {
                      ComDataBuf[SeriesBufDptr]=SeriesInData;    //數據保存到緩沖區*/
                      SeriesBufDptr++;                    //緩沖區地址累加*/
                 }
               }
               else
               {
                      SeriesBufDptr=0;
               }
               if(ComDataBuf[ComDataBuf][9]+11]==0x16)
               {
                     SeriesBufDptr=0;
                     SeriesFg=1;//串口占用數據通道有標志效
                     ComBit=1;
               }
               else//命令錯誤釋放串口占用數據通道標志
               {
                   SeriesFg=0;//串口占用數據通道標志失效
               }               
            }            
        }
        else
        {
            ComEn=1;
            SeriesSt=1;            
        }        
    }
    EX0=1;
}
void INT_T0(void) interrupt 1            //定時器---產生模擬接受時序間隔信號
{
    ET0=0;                                //定時器0中斷使能禁止
    TR0=0;                              //定時器0中斷使能禁止
    TR0=0;
    ET0=0;
}
void INT_INT1(void) interrupt 2         //外部中斷1---紅外接收中斷
{
  EX1=0;
}
//定時器---產生0.25秒信號
void INT_T1(void) interrupt 3            
{
    
    ET1=0;
    TR1=0; 
    CkData++; 
    ComTimeA++;
    WDT();
    //LCD顯示間隔---秒單位
    if(CkData>=90)                      
    {
        CkData=0;
        LcdTime++;
        LcdTimeFg=1;
        TimeSpendFg=1;
        PingLed=~PingLed;              //峰指示燈點亮
        if(LcdTime>=4)
        {
            LcdRunData++;             //狀態顯示時間間隔--呂順
            LcdTime=0;          
        }
        ComTimeB++;
        if(ComTimeB>=5)               //通訊指示點亮時間---5秒
        {
            ComFg=0;            
        }   
        TemperatureTime++;
        if(TemperatureTime>=100)       //溫度補償程序定時時間---10分鐘
        {
            TemperatureTime=0;
            TemperatureTimeFg=1;
        }
        DataProtectTime++;
        if(DataProtectTime>=60)      //數據保護程序每一個小時運行一次
        {
            DataProtectTime=0;
            DataProtectFg=1;
        }
    } 
    TH1=0X00;
    TL1=0X00;
    TR1=1;
    ET1=1;
}
//串口中斷-紅外接收--*/
void INT_SERIAL(void) interrupt 4           
{
    unsigned char i,j,k,l;    
    ES=0;
    j=0;
    k=0;
    l=SBUF;
    //數據做偶校驗
    for(i=0;i<8;i++)
    {
       if(l & 0x80)
       {                                    //bytedata和0x80作AND邏輯運算等于0x80
               j++;
               if(j==2)
            {
               j=0;
            }                                 //即表示位7等于1則條件成立
       }
       l <<=1;    
    }                                        //禁止串口中斷
    if(j==0)
    {
        if(RB8)
        {
            k=0;
        }
        else
        {
            k=1;
        }            
    }
    else
    {
        if(RB8)
        {
            k=1;
        }
    }
    if(k)
    {
        if(ComEn)
        {
            SeriesSt=0;
            if(InfraredSt)
            {
                if(InfraredBufDptr<60)
                   {
                    if(InfraredBufDptr==0)            //數據緩沖區地址指針是否為零
                    {                                   
                        if(SBUF==0x68)                //緩沖區的第一個數據是否等于0x68*/
                        {
                            ComDataBuf[0]=SBUF;        //數據保存到緩沖區*/
                            InfraredBufDptr++;        //緩沖區地址累加*/
                        }
                        else
                        {
                            InfraredBufDptr=0;
                        }
                   }
                   else
                   {
                        ComDataBuf[InfraredBufDptr]=SBUF;    //數據保存到緩沖區*/
                        InfraredBufDptr++;                    //緩沖區地址累加*/
                   }
                   
                }
                else
                {
                    InfraredBufDptr=0;
                }
                if(ComDataBuf[ComDataBuf][9]+11]==0x16)
                {
                      InfraredBufDptr=0;
                      InfraredFg=1;//紅外占用數據通道有效
                      ComBit=1;
                }
                else
                {
                    InfraredFg=0;//紅外占用數據通道失效標志
                }
            }           
        }
        else
        {
            ComEn=1;
            InfraredSt=1;           
        }     
    }
    RI=0;
    ES=1;                                               //接收標志位清零*
}
void INT_KBI(void) interrupt 7                           //鍵盤中斷處理程序*/
{
    EKBI=0;    
    KBCON=0;
    KeyTemp=~P0&0x08;
    if(~P0&0x08)
    {
        LowPowerFg=1;
    }
    else
    {                                                   //清楚鍵盤中斷標志位
         KeyTemp=~P0&0x30;                              //提取當前中斷數值---對應鍵盤;
         KeyTemp=KeyTemp>>4;    
         switch(KeyTemp)                              //判斷正向還是反向,以及脈沖是否到來/
         {
             case 0x01 :    
                         PulseParseFg=1;
                         KBMASK=KBMASK&0xef;        //允許P0.1鍵盤產生中斷,禁止P0.0鍵盤中斷                    
             break;
             case 0x02 :
                         PulseParseFg=1;
                         KBMASK=KBMASK&0xdf;      //允許P0.0鍵盤產生中斷,禁止P0.1鍵盤中斷    
             break;
             case 0x03 :            
                         PulseParseFg=1;
                         KBMASK=KBMASK&0xcf;                   //禁止鍵盤中斷
             break;
         }
    }
     
}
void CMP_ISR() interrupt 8
{
      unsigned char data temp,RING,LED; 
      EA=0; //關中斷
      temp=CMP2&0x02;                                //判斷CMP1.1
      if(temp==0x02)                                 //如果CMP1.1為1(正向輸入端大于反向輸入端)
      {
           RING=~RING;
      }
      else if(temp==0x00)                            //如果CMP1.1為0
      {
           LED=~LED;
      }
      CMP2&=0xFE;                                   //清0比較器中斷標志位
      EA=1;                                         //開中斷
}
 

使用LPC932制作的一款電表---InitCmd 

#include <REG932.H>
#include <define.h>
#include <Stdio.h>
#include <Intrins.h>
void InitCmd(void)
{
    unsigned char data ii;
    if((PowerStA==0x55)|(PowerStB==0xAA))
    {
        PowerStA=0x55;
        PowerStB=0xaa;
    }
    else
    {
        DIR=1;
        ClerBuf();
        DataPickup();    
        SeriesBufDptr=0;
        SendOverFg=1;
        LcdDelay=1;    //由5改為1
        InfraredBufDptr=0;
        TimeSendFg=0;
        DataProtectFg=0;
        InfraredBufDptr=0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本中文在线一区| 在线视频欧美精品| 日本道精品一区二区三区| 日韩一区二区免费电影| 国产精品免费久久| 日韩主播视频在线| 不卡高清视频专区| 欧美刺激脚交jootjob| 亚洲人123区| 国产成人夜色高潮福利影视| 欧美日韩中文国产| 自拍偷自拍亚洲精品播放| 六月丁香婷婷久久| 欧美日本国产一区| 一区二区三区欧美视频| 成人免费视频播放| 精品国产污污免费网站入口 | 国产婷婷一区二区| 奇米影视一区二区三区| 欧美三级视频在线播放| 自拍av一区二区三区| 成人自拍视频在线观看| 欧美α欧美αv大片| 热久久免费视频| 欧美日韩国产首页| 亚洲综合网站在线观看| 色老汉av一区二区三区| 国产精品国产三级国产aⅴ入口 | 在线观看91精品国产入口| 精品久久一区二区三区| 午夜日韩在线观看| 91国偷自产一区二区三区观看| 亚洲欧洲av一区二区三区久久| 国产69精品一区二区亚洲孕妇| 亚洲精品在线电影| 激情综合色丁香一区二区| 91精品在线免费观看| 日韩av一区二区在线影视| 欧美日韩美少妇| 五月婷婷综合激情| 日韩一区二区在线观看视频播放| 日韩成人一级大片| 日韩免费高清视频| 国产一区不卡在线| 国产喂奶挤奶一区二区三区| 国产一区二区三区视频在线播放| 久久久亚洲精品石原莉奈| 国产黄色精品网站| 中文字幕制服丝袜一区二区三区 | 欧美videofree性高清杂交| 日韩高清不卡在线| 日韩欧美中文一区| 精品一区二区在线视频| 国产日韩三级在线| 91视频在线观看| 亚洲国产日韩一区二区| 91精品国产色综合久久| 国产乱码一区二区三区| 中文在线一区二区 | 亚洲精品成人精品456| 欧美日韩一区二区三区免费看 | 国产成人免费在线观看不卡| 中文字幕精品—区二区四季| 欧美私人免费视频| 韩国精品主播一区二区在线观看| 中文字幕av一区二区三区免费看 | 欧美福利一区二区| 精品一区二区三区久久| 一区在线播放视频| 91精品在线观看入口| 高清日韩电视剧大全免费| 亚洲视频一区在线| 91在线视频观看| 午夜欧美2019年伦理| 欧美一卡二卡在线观看| 国内精品国产成人| 欧美一卡二卡在线| 一本色道久久综合狠狠躁的推荐| 亚洲成人动漫精品| 精品区一区二区| 99久久99久久精品免费观看| 亚洲一区二区三区精品在线| 91精品黄色片免费大全| 狠狠久久亚洲欧美| 日韩理论电影院| 精品美女一区二区三区| 97精品国产露脸对白| 奇米精品一区二区三区在线观看一| 日韩欧美电影在线| 91美女视频网站| 免费在线观看日韩欧美| 中文字幕一区二区不卡| 欧美videos大乳护士334| 一本色道综合亚洲| 久久国产尿小便嘘嘘尿| 亚洲精品免费在线观看| 欧美成人性战久久| 在线观看日韩一区| 国产成人综合在线播放| 最新国产精品久久精品| 久久久噜噜噜久久人人看| 欧美日韩亚洲不卡| 国产激情一区二区三区四区 | 久久久久久久久伊人| 欧美日本一道本| 91视频国产资源| 国产一区欧美二区| 香蕉av福利精品导航 | 在线观看91精品国产入口| 国产中文一区二区三区| 日韩高清在线观看| 一区二区三区**美女毛片| 久久精品欧美一区二区三区不卡| 欧美日韩中文精品| 在线亚洲精品福利网址导航| 成人丝袜高跟foot| 国产精品亚洲第一| 日欧美一区二区| 奇米在线7777在线精品| 精品视频一区 二区 三区| 婷婷中文字幕一区三区| 怡红院av一区二区三区| 中文字幕国产精品一区二区| 欧美tickle裸体挠脚心vk| 91精品国模一区二区三区| 国产成人综合在线播放| 国产精品一区一区| 久久不见久久见免费视频7| 国产精品久久久久久久久晋中 | 亚洲风情在线资源站| 国产女主播视频一区二区| 91精品国产福利| 精品视频色一区| 欧美日韩国产小视频| 欧美私人免费视频| 欧美一区二区视频免费观看| 色噜噜狠狠一区二区三区果冻| 白白色 亚洲乱淫| 成人深夜福利app| 在线观看中文字幕不卡| 91亚洲精品乱码久久久久久蜜桃| 北条麻妃国产九九精品视频| 国产.欧美.日韩| 不卡av在线免费观看| 91在线观看污| 91亚洲男人天堂| 99久久久无码国产精品| 欧美日韩精品欧美日韩精品一| 欧美在线制服丝袜| 在线电影院国产精品| 欧美一区二区视频在线观看2020| 91精品国产色综合久久久蜜香臀| 911精品国产一区二区在线| 一本一道综合狠狠老| 日韩欧美资源站| 国产亚洲1区2区3区| 中文字幕一区二区三区精华液 | 亚洲欧洲精品成人久久奇米网| 国产精品看片你懂得| 午夜精品久久久久久久久久| 日韩av中文在线观看| 国产在线精品免费| 国产成人免费视频网站 | 奇米影视在线99精品| 成人性生交大合| 一本色道久久综合亚洲精品按摩| 欧美视频自拍偷拍| 日韩免费高清视频| 中文字幕永久在线不卡| 国产精品第四页| 国产剧情一区二区三区| 一本色道久久综合狠狠躁的推荐| 在线播放亚洲一区| 国产欧美精品一区二区色综合朱莉| 亚洲色图都市小说| 日韩不卡一区二区三区| 欧洲在线/亚洲| 久久久美女艺术照精彩视频福利播放 | 欧美在线免费播放| 精品剧情在线观看| 久久久精品国产免大香伊| 日韩中文字幕不卡| 成人av在线影院| 91精品国产综合久久福利软件| 久久精品视频一区二区| 亚洲国产精品影院| 成人午夜免费视频| 国产日韩欧美综合一区| 亚洲一区二区在线播放相泽| 国产精品资源在线观看| 欧美日韩视频不卡| 国产精品久久久久精k8| 久久精品二区亚洲w码| 欧美精选一区二区| 亚洲欧美怡红院| 国产精品综合一区二区三区| 欧美精品123区| 亚洲男人的天堂在线观看| 国产一区二区久久| 精品国产乱码久久久久久久|