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

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

?? hicj6.c

?? 這是一個
?? C
?? 第 1 頁 / 共 2 頁
字號:
/********************Copyright******************************

名稱:HICJ6.C
功能:主程序
說明:
修改:2004/12/24

************************************************************/
#include "P89C60X2.h"
#include "hicj6.h"
#include "hd7279.h"
#include "fm25040.h"

extern void Trs_Edit(void);
extern void Rcv_Pro(void);
extern void PSendChar(unsigned char);
void Hdd_Check(void);
void Disp_Pro(void);
void Key_Pro(void);
void TrsRelay(BYTE,BYTE);
void Init();
BYTE code Relay_Station=13;
BYTE code LedCode[6]={0x40,0x30,0x08,0x06,0x01,0x80};
BYTE code Bat_Val[5]={0x40,0x60,0x70,0x78,0x7c};
BYTE code  A8_A10[8]={2,1,0,3,4,6,7,5};
//DWORD code Full_Val[4]={1000000,10000000,160000000,32000000};

BYTE data Time_Counter;
BYTE idata Trs_Counter;
BYTE data Hdd_Wp,Hdd_Rp;
BYTE data Rcv_Count;
BYTE data  Run_Count;
BYTE data Hdd_En[5],Short_En[5],Break_En[5];
BYTE data Ms20;

BYTE data Hdd_New_Bak[5];
BYTE data Hdd_Old[5],Hdd_Old_Bak[5];
extern BYTE data Short_New[5],Break_New[5];
BYTE data Short_Bak,Break_Bak;
BYTE idata Key_Count,Pulse,Type;
BYTE data Key_New,Key_Old,Key_Val,Key_Press;
BYTE data Alarm;
extern BYTE data Trs_Wp,Trs_Rp,Rcv_Wp,Rcv_Rp;
extern BYTE data Station,House_Max;
BYTE data Start,House;
BYTE data HddEn_Sum,Key_C,Flash;
BYTE idata TrsRelayOff[5];
BYTE data WriteOrder;
BYTE data Keep_Flag[5];
BYTE idata Short_Old[5];
BYTE idata RelayOff[5];

BYTE xdata Hdd_New[10][5];
BYTE xdata HddVal[40];
BYTE xdata Trs_Buf[25];
BYTE xdata Rcv_Buf[30];
//BYTE xdata Hdd10s[40];
//BYTE xdata RelayOffTimes[40];
//WORD xdata TrsOffCount[40];



bit Trs_Flag,Rcv_Flag,Alarm_Flag;
bit Sp_Flag,Alarm_Check,HddEn_Count;
bit  Ac_New,Ac_Old,Ac_Tmp;
bit  Bat_New,Bat_Old,Bat_Tmp;
BYTE idata Keep_Count[40]=0;
WORD  idata Press_Count;

union hdd_long {BYTE Hdd_B[4];DWORD Hdd_L;} Hdd_Str;
union Full_Str {BYTE Full_B[4];unsigned long Full_L;} Full;

/**********************************************************
*名	   稱:serial_int
*功	   能:串口中斷函數
*說	   明:處理串口發送、接收數據,每個字節中斷一次
*調	   用:
*入口參數:無
*返 回 值:無
***********************************************************/

void serial_int(void) interrupt 4 //using 1
{
 EA=0;
 if (RI)
  {
   RI=0;
   Rcv_Count=0;
    if(Rcv_Wp==29)
    {
     Rcv_Wp=0;
    }
   Rcv_Buf[Rcv_Wp]=SBUF;
   if(
       Rcv_Buf[Rcv_Wp-2]==0xeb && Rcv_Buf[Rcv_Wp-1]==0x90
      &&Rcv_Wp<8)
      {
      	Rcv_Flag=1;
      	Rcv_Rp=Rcv_Wp;
      }
   Rcv_Wp++;
  }
 if (TI)
  {
   TI=0;
   if(Trs_Wp!=Trs_Rp)
    {
    	SBUF=Trs_Buf[Trs_Rp];
    	Trs_Rp++;
    }
    else  DIR485=1;

  }
 EA=1;
 }

/**********************************************************
*名	   稱:timer2
*功	   能:定時器2 中斷函數
*說	   明:完成定時采集電度端口狀態(20MS)及其他一些定時處理
*調	   用:無
*入口參數:無
*返 回 值:無
***********************************************************/
void timer2(void) interrupt 5 //using 2
{
  BYTE data i,j;
  BYTE data P1_Tmp;
  TF2=0;
  Ms20++;
  Time_Counter++;
  Trs_Counter++;
  Rcv_Count++;
 // Run=~Run;
//  Run=1;

    for (i=0;i<5;i++)
    {
     P1_Tmp=1<<(i+3);
     P1_Tmp=~P1_Tmp&0xf8;
     for(j=0;j<8;j++)
      {
       P1=P1_Tmp|A8_A10[j];
       long_delay();
       if(Hdd==0)
        {
          Hdd_New[Hdd_Wp][i]|=1<<j;
        }
         else
         {
          Hdd_New[Hdd_Wp][i]&=~(1<<j);
         }

      }
    }

// Run=0;
 /*
  for(B_i1=0;B_i1<5;B_i1++)
   {
    if(TrsRelayOff[B_i1])
     {
       for(B_i2=0;B_i2<8;B_i2++)
        {
          B_i3=1<<B_i2;
          if(TrsRelayOff[B_i1]&B_i3)
          TrsOffCount[B_i1*8+B_i2]++;
        }
     }
   }
   */
  Hdd_Wp++;
  if(Hdd_Wp==10)
   {
    Hdd_Wp=0;

   }
  if(Key_Val)Key_C++;
  if(!Key)
   {
    Key_Count++;
   }
   else
   {
    Key_Count=0;
   }
  if (Press_Count<1000)
   {
     Press_Count++;
    }
}

/**********************************************************
*名	   稱:Disp_Pro
*功	   能:顯示處理
*說	   明:將要顯示的內容傳送給HD7279
*調	   用:write7279
*入口參數:無
*返 回 值:無
***********************************************************/
void Disp_Pro(void)
{
/*
LED 定義
LED[7]-LED[0]  Hdd
LED[9]-LED[8]  House_Code
LED[11]-LED[10] Station-Code

LED[12]         Battery  Red
LED[13]         BAttery  Green
LED[14]         8 @3 LED
LED[15]         One LED
0x80  0x40  0x20  0x10  0x08  0x04  0x02  0x01
A4    B4    B3    B2    B1    A1    A2    A3
A1-Water   0x32
A2-Power   0x31
A3-Gass    0x30
A4-Warm    0x37
B1-heat    0x36
B2-Break   0x35
B3-Short   0x34
B4-Pulse   0x33
從上至下排列,表類型為A,報警類型為B

*/
  BYTE data i,Led[16];

  //BYTE Constant_Range;

  Key_Press=0;
  Flash=0;
  i=House%8;
  if((Hdd_En[i]&(1<<i)))
   {
//    Hdd_Str.Hdd_L=HddVal[House];
    Read_Hdd(House);
    Hdd_Str.Hdd_L+=HddVal[House];
  //  Hdd_Str.Hdd_L>>=5;   // /3200

    Led[15]=Read1B(House*3+2,1);
    i=Read1B(House*3+1,1);
    Led[9]=i/0x10;
    Led[8]=i%0x10;
    if(Led[8]>9)Led[8]=0x0f;
    i=Read1B(House*3,1);
    Led[11]=i/0x10;
    Led[10]=i%0x10;
    for(i=8;i<12;i++)
     {
      if(Led[i]>9)Led[i]=0x0f;
     }

    Led[7]=Hdd_Str.Hdd_L/10000000;
    Led[6]= (Hdd_Str.Hdd_L%10000000)/1000000;
    Led[5]=(Hdd_Str.Hdd_L%1000000 )/100000;
    Led[4]=(Hdd_Str.Hdd_L%100000  )/10000;
    Led[3]=(Hdd_Str.Hdd_L%10000   )/1000;
    Led[2]=(Hdd_Str.Hdd_L%1000    )/100;
    Led[1]=(Hdd_Str.Hdd_L%100     )/10;
    Led[0]= Hdd_Str.Hdd_L%10;

    if (Led[7]==0)
    {
      Led[7]=0x0f;
      if(Led[6]==0)
       {
         Led[6]=0x0f;
         if(Led[5]==0)
          {
            Led[5]=0x0f;
           if(Led[4]==0)
            {
              Led[4]=0x0f;
              if(Led[3]==0)
               {
                Led[3]=0x0f;

               }

            }
          }
       }

    }
    i=Read1B(200+House,0);
    i=(i>>4)&7;
    if(i) Led[i]|=0x80; //Point
    for(i=0;i<8;i++)
     {
       write7279(DECODE0+i,Led[i],0);        //Hdd
     }
    for(i=0;i<4;i++)
     {
       write7279(DECODE0+i,Led[i+8],1);      //House Code
     }

      if(Led[15]>0)
      write7279(DECODE1+7,Led[15],1);
      else
      write7279(DECODE0+7,0x0f,1);
     i=Read1B(200+House,0);
     i&=0x0f;
      switch (i)
                  {
                    case (0x01):
                             Type=0x04;
                             break;
                    case (0x02):
                             Type=0x02;
                             break;
                    case (0x04):
                             Type=0x01;
                             break;
                    case (0x08):
                             Type=0x80;
                             break;
                    default:
                             Type=0;
                             break;
                  }
      Sp_Flag=0;
      Alarm=0;
      if(Pulse%2) Alarm=0x08;
      Short_Bak=Read1B(170+House/8,0);
      if(Short_Bak&(1<<(House%8)))
       {
        Alarm|=0x10;
        Sp_Flag=1;
       }
       Break_Bak=Read1B(175+House/8,0);
      if(Break_Bak&(1<<(House%8)))
       {
        Alarm|=0x20;
        Sp_Flag=1;
       }
       Alarm|=Type;
       Alarm_Flag=1;

       if(Short_New[House/8]&(1<<(House%8)))
         Flash|=1;
       if(Break_New[House/8]&(1<<(House%8)))
         Flash|=2;

   }
   else
   {
      for(i=0;i<8;i++)
     {
       write7279(UNDECODE+i,1,0);
     }
      for(i=0;i<2;i++)
     {
       write7279(UNDECODE+i,1,1);
     }
      write7279(UNDECODE+7,1,1);      //One Led
      Led[11]=(House+1)/10;
      Led[10]=(House+1)%10;
      write7279(DECODE0+2,Led[10],1);
      write7279(DECODE0+3,Led[11],1);
      write7279(UNDECODE+6,0x00,1);           //Type Alarm
      Sp_Flag=0;
   }






 }
 /*
 void Key_Pro(void)
{
  //Key_New=read7279(CMD_READ);
  if(Key_New==0xff) Key_New=0;
  Key_Val=Key_New^Key_Old & Key_New;
  Key_Old=Key_New;
  if (Key_Val==0x3a)
    {
      Key_Press=1;
      House++;
      House=House%House_Sum;
      Press_Count=0;
     }


 }
   */
void Key_Pro(void)
{
  BYTE Key_Tmp;
  Key_New =Key;
  Key_Tmp=(Key_New^Key_Old)&(~Key_New);
  if(Key_Tmp)
   {
    Key_Val=1;
    Key_C=0;
   }
  if(Key_Val)Key_C++;
  Key_Old=Key_New;
  if (Key_C>1)
    {
      Key_Val=0;
      Key_C=0;
      Key_Press=1;
      House++;
      if(House_Max>1)
       {
        House=House%House_Max;
       }
       else House=0;
      Press_Count=0;
     }


 }

 /**********************************************************
*名	   稱:LedTest
*功	   能:LED數碼管檢測
*說	   明:對數碼管分別按段、位進行檢測  send_byte 后的片選為什么要獨立?
*調	   用:write7279 send_byte
*入口參數:無
*返 回 值:無
***********************************************************/

void LedTest(void)
{
BYTE data i,j;
 send_byte(CMD_RESET,0);     // 清除顯示
 cs1=cs2=1;
 send_byte(CMD_RESET,1);
 cs1=cs2=1;
 /*
 send_byte(CMD_TEST,0);
 cs1=cs2=1;
 send_byte(CMD_TEST,1);
 cs1=cs2=1;
 send_byte(CMD_RESET,0);     // 清除顯示
 cs1=cs2=1;
 send_byte(CMD_RESET,1);
 cs1=cs2=1;   */
 for(i=0;i<6;i++)
 {
   Speaker=0;
   for(j=0;j<8;j++)
    {
     write7279(UNDECODE+j,LedCode[i],0);
     write7279(UNDECODE+j,LedCode[i],1);

    }
    delay10ms(20);
    Speaker=1;
    delay10ms(80);

 }
 send_byte(CMD_RESET,0);     // 清除顯示
 cs1=cs2=1;
 send_byte(CMD_RESET,1);
 cs1=cs2=1;
 for(i=1;i<8;i++)
 {
     Speaker=0;
     write7279(UNDECODE+7-i,0xff,1);
     delay10ms(20);
     Speaker=1;
     delay10ms(80);
     send_byte(CMD_RESET,1);     // 清除顯示
     cs1=cs2=1;

 }

     Speaker=0;
     write7279(UNDECODE+7,0xff,1);
     delay10ms(20);
     Speaker=1;
     delay10ms(80);
     send_byte(CMD_RESET,1);     // 清除顯示
     cs1=cs2=1;

 for(i=0;i<8;i++)
 {
     Speaker=0;
     write7279(UNDECODE+7-i,0xff,0);
     delay10ms(20);
     Speaker=1;
     delay10ms(80);
     send_byte(CMD_RESET,0);     // 清除顯示
     cs1=cs2=1;
 }
}


void HddEn_Count_Pro(void)
{
  BYTE i,j;
  HddEn_Count=0;
  HddEn_Sum=0;
   for (i=0;i<5;i++)
    {
     for(j=0;j<8;j++)
      {
       if((Hdd_En[i]&(1<<j))!=0)
       {
       HddEn_Sum++;
       House_Max=i*8+j+1;
       }
      }
    }
}

 /**********************************************************
*名	   稱:InitFram
*功	   能:從鐵電存儲器FM25040中讀取參數,給變量賦值
*說	   明:參考HICJ6.H中的地址分配表
*調	   用:Write1B Read1B Write_Hdd Read_Hdd
*入口參數:無
*返 回 值:無
***********************************************************/

void InitFram()
{
    BYTE data i,j;
    unsigned long  data First_Flag;

  // if (First_Flag!=0x5555aaaa)
     {
       Hdd_Str.Hdd_L=0x5555aaaa;
       Write_Hdd(40);
       First_Flag=Read_Hdd(40);
       for(i=0;i<160;i++)
        {
           Write1B(0,i,0);
         }
       Write1B(1,164,0);    //Station L
       Write1B(0,165,0);    //Station H
       Write1B(40,166,0);   //House_Sum
       for(i=0;i<5;i++)
         {
          Write1B(0,170+i,0);  // Clear Short_Bak
          Write1B(0,175+i,0);  // Clear Break_Bak
         }
       for(i=200;i<240;i++)
         {
           Write1B(0x21,i,0);
         }
       for(i=240;i<255;i++)
         {
           Write1B(0xff,i,0);
         }
          Write1B(0x80,255,0);    //Start
       for(i=0;i<40;i++)        //House Code
         {
           Write1B(1,i*3,1);
           j=((i+1)/10)*16+(i+1)%10;
           Write1B(j,i*3+1,1);
           Write1B(0,i*3+2,1);
         }
       for(i=120;i<160;i++)
         {
           Write1B(0x36,i,1);
         }
       for(i=200;i<240;i++)
         {
           Write1B(0x87,i,1);
         }

     }

      for(i=0;i<5;i++)
       {
        Hdd_En[i]=Read1B(250+i,0);
        Short_En[i]=Read1B(240+i,0);
        Break_En[i]=Read1B(245+i,0);
       }
       for(i=0;i<40;i++)
       {
        HddVal[i]=0;
       }
       Station=Read1B(164,0);
      // Write1B(0x0,255,0);
     //House=House_Max-1;
       Start=Read1B(255,0);
}


/**********************************************************
*名	   稱:InitTimer
*功	   能:定時器初始化
*說	   明:
*調	   用:
*入口參數:無
*返 回 值:無
***********************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看欧美精品| 欧美α欧美αv大片| 3d动漫精品啪啪一区二区竹菊| 欧美日韩亚洲不卡| 欧美国产日韩a欧美在线观看| 一个色综合av| 亚洲国产wwwccc36天堂| 成人黄动漫网站免费app| 欧美亚洲国产怡红院影院| 精品少妇一区二区三区在线视频| 自拍偷拍亚洲欧美日韩| 国产乱码精品一区二区三区忘忧草| 国产精品影音先锋| 欧美日韩国产首页| 午夜精品视频在线观看| 成人午夜在线播放| 国产一区91精品张津瑜| 成人三级伦理片| 91精品黄色片免费大全| 亚洲欧美在线视频| 亚洲成av人片在线观看无码| 国产精品18久久久久| 欧美成人性战久久| 亚洲国产日韩一区二区| 在线亚洲精品福利网址导航| 国产亚洲欧美激情| 国产在线不卡一区| 久久日韩粉嫩一区二区三区| 香蕉av福利精品导航| 欧美性生活久久| 亚洲乱码国产乱码精品精可以看 | 欧美欧美午夜aⅴ在线观看| 久久久777精品电影网影网| 激情深爱一区二区| 欧美刺激午夜性久久久久久久| 亚洲国产成人tv| 欧美理论电影在线| 午夜一区二区三区视频| 91黄色免费看| 亚洲自拍偷拍欧美| 91丝袜国产在线播放| 一区二区三区资源| 日本高清不卡aⅴ免费网站| 亚洲一区二区五区| 欧美日韩国产精品自在自线| 亚洲国产一区在线观看| 日韩一区国产二区欧美三区| 久久国产精品区| 国产无遮挡一区二区三区毛片日本| 六月丁香综合在线视频| 欧美sm美女调教| 国产69精品久久99不卡| 国产精品网站一区| 欧美日韩成人一区| 琪琪久久久久日韩精品| 欧美一区二区黄色| 激情六月婷婷久久| 欧美国产欧美亚州国产日韩mv天天看完整| 国产91露脸合集magnet | 亚洲视频在线观看一区| 91福利视频在线| 午夜视频一区在线观看| 国产亚洲人成网站| 色婷婷av一区二区三区gif| 中文字幕欧美日韩一区| 欧美私人免费视频| 免费观看在线综合| 亚洲欧美另类久久久精品2019| 欧美午夜视频网站| 日韩专区欧美专区| 久久―日本道色综合久久| 99在线视频精品| 美女视频黄免费的久久| 国产精品天干天干在观线| 制服丝袜中文字幕一区| 日本vs亚洲vs韩国一区三区 | 奇米一区二区三区| 26uuu亚洲综合色欧美| 91浏览器入口在线观看| 日韩精品一二三四| 国产精品色在线| 精品三级av在线| 91麻豆文化传媒在线观看| 九色综合国产一区二区三区| 国产精品激情偷乱一区二区∴| 欧美影院精品一区| 色婷婷综合久久久中文一区二区| 亚洲成a人v欧美综合天堂下载| 国产日韩精品一区| 8x福利精品第一导航| 97se亚洲国产综合自在线观| 亚欧色一区w666天堂| 日本一区二区三区四区在线视频| 欧美性受xxxx黑人xyx| 国内精品久久久久影院色| 天天操天天干天天综合网| 日本一区二区三区在线不卡 | 亚洲一区在线电影| 久久综合九色综合久久久精品综合| 欧美性欧美巨大黑白大战| 国产成人在线视频免费播放| 亚洲伦理在线免费看| 亚洲人成人一区二区在线观看 | 国产日韩欧美电影| 欧美综合亚洲图片综合区| 成人av电影观看| 成人av在线资源| 国产九九视频一区二区三区| 国内一区二区视频| 免费看欧美美女黄的网站| 日本va欧美va瓶| 日韩高清国产一区在线| 国产精品女主播av| 亚洲天堂成人网| 国产精品久久久爽爽爽麻豆色哟哟 | 日本不卡的三区四区五区| 亚洲乱码日产精品bd| 亚洲综合在线五月| 亚欧色一区w666天堂| 久久久久久久久久久99999| 欧美一区二区三区四区久久| 欧美亚洲自拍偷拍| 欧美日本一道本| 欧美日韩亚洲丝袜制服| 在线综合+亚洲+欧美中文字幕| 欧美日韩在线精品一区二区三区激情| 国产a久久麻豆| 色老汉一区二区三区| 色综合久久综合| 欧美精品在线观看播放| 欧美高清视频不卡网| 日韩一级视频免费观看在线| 欧美一卡在线观看| 欧美久久一二三四区| 日韩区在线观看| 久久人人97超碰com| 国产日韩精品一区| 亚洲丝袜精品丝袜在线| 亚洲bt欧美bt精品| 日本视频一区二区三区| 国产一区二区三区久久悠悠色av| 国产精品自拍av| 成人av网站在线观看| 91麻豆免费看片| 欧美日韩中文另类| 久久一区二区三区四区| 国产精品久久久久久久久晋中 | 91精品久久久久久久91蜜桃| 久久久天堂av| 亚洲欧美日韩国产综合在线| 日本成人在线不卡视频| 国产一区二区免费在线| 欧洲一区二区三区在线| 欧美一级搡bbbb搡bbbb| 中文字幕一区在线观看| 亚洲国产视频直播| 日韩av电影天堂| 成人国产一区二区三区精品| 色一情一乱一乱一91av| 日韩欧美黄色影院| 国产精品乱人伦| 久久99热这里只有精品| 成人性生交大片免费看视频在线| 这里只有精品99re| 国产精品国产自产拍高清av王其 | voyeur盗摄精品| 欧美日本一区二区在线观看| 17c精品麻豆一区二区免费| 日本欧美一区二区三区乱码| 色哟哟在线观看一区二区三区| 欧美一级片在线| 亚洲成人免费av| 国产91精品在线观看| 精品国产亚洲一区二区三区在线观看| 中文字幕在线观看不卡视频| 国内精品第一页| 欧美日韩www| 欧美日韩一区二区在线观看视频 | 一区二区三区免费看视频| 麻豆国产精品777777在线| 欧美日韩视频一区二区| 亚洲欧洲美洲综合色网| 日本欧美一区二区三区| 成人精品视频一区二区三区| 欧美不卡视频一区| 一区二区三区产品免费精品久久75| 国产乱码一区二区三区| 成人av中文字幕| 欧美一区二区三区日韩视频| 亚洲美女少妇撒尿| 不卡高清视频专区| 国产精品美女久久久久久久久久久| 首页综合国产亚洲丝袜| 欧美日韩精品二区第二页| 中文字幕在线视频一区| 97成人超碰视| 国产婷婷色一区二区三区四区 | 亚洲综合在线五月| 在线观看精品一区| 亚洲欧美偷拍三级|