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

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

?? hicj6.c.bak

?? 這是一個
?? BAK
?? 第 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 idata Press_Count,Rcv_Count;
BYTE data  Run_Count;
BYTE data Hdd_En[5],Short_En[5],Break_En[5];
BYTE data Ms10;

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 Change[5];
BYTE data WriteOrder;
BYTE data Keep_Flag[5];
BYTE idata Short_Old[5];
BYTE idata RelayOff[5];

BYTE xdata Hdd_New[20][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];

//BYTE idata Hdd_New[2][5];

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;

   Rcv_Wp++;
  }
 if (TI)
  {
   TI=0;

  }
 EA=1;
 }
/**********************************************************
*名	   稱:timer2
*功	   能:定時器2 中斷函數
*說	   明:完成定時采集電度端口狀態(10MS)及其他一些定時處理
*調	   用:無
*入口參數:無
*返 回 值:無
***********************************************************/
void timer2(void) interrupt 5 //using 2
{
  BYTE data i,j;
  BYTE data P1_Tmp;
  TF2=0;
  Ms10++;
  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==20)
   {
    Hdd_Wp=0;

   }
  if(Key_Val)Key_C++;
  if(!Key)
   {
    Key_Count++;
   }
   else
   {
    Key_Count=0;
   }
  if (Press_Count<250)
   {
     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>>=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_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  First_Flag;
     First_Flag=Read_Hdd(40);
  // if (First_Flag!=0x5555aaaa)
     {
       Hdd_Str.Hdd_L=0x5555aaaa;
       Write_Hdd(40);
       for(i=0;i<160;i++)
        {
           Write1B(0,i,0);
         }
       Write1B(1,164,0);
       Write1B(0,165,0);
       Write1B(40,166,0);
       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(0x00,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[0]=0;
       }
       Station=Read1B(164,0);
       Write1B(0x80,255,0);
     //House=House_Max-1;
       Start=Read1B(255,0);
}


/**********************************************************
*名	   稱:InitTimer
*功	   能:定時器初始化
*說	   明:
*調	   用:
*入口參數:無
*返 回 值:無
***********************************************************/
void InitTimer(void)
{
  TMOD=0x22; /*定時器1為模式2(8位自動重裝),
               定時器0為模式2(8位自動重裝) */
  PCON=00;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国欧美国产一区| 午夜一区二区三区视频| 粗大黑人巨茎大战欧美成人| 久久久国产午夜精品| www.日韩av| 亚洲最大成人网4388xx| 欧美日韩视频在线观看一区二区三区 | 亚洲欧美怡红院| 91小视频免费看| 亚洲国产精品久久久久婷婷884| 欧美无乱码久久久免费午夜一区 | 免费一级片91| 亚洲精品一区二区三区蜜桃下载 | 91麻豆精品国产无毒不卡在线观看| 午夜不卡在线视频| 亚洲精品一线二线三线无人区| 国产99一区视频免费| 亚洲美女一区二区三区| 欧美日韩精品一区二区| 国产在线播精品第三| 中文字幕不卡三区| 欧美日本精品一区二区三区| 国产一区二区三区在线看麻豆| 成人免费一区二区三区视频| 欧美性猛交一区二区三区精品| 日韩va亚洲va欧美va久久| 国产视频一区二区三区在线观看| 色哟哟精品一区| 麻豆免费精品视频| 中文字幕亚洲欧美在线不卡| 欧美人伦禁忌dvd放荡欲情| 韩国v欧美v亚洲v日本v| 亚洲欧美日韩国产手机在线| 91精品国产91久久久久久一区二区 | 久久黄色级2电影| 国产精品国产三级国产普通话蜜臀 | 国产麻豆成人精品| 亚洲精品久久久久久国产精华液| 欧美日韩黄色影视| 波多野结衣亚洲一区| 日韩精品一二三| 国产精品久久久久久久第一福利| 欧美精品日韩综合在线| 成人av电影免费在线播放| 捆绑紧缚一区二区三区视频| 成人免费在线播放视频| 久久综合久久综合久久综合| 欧美美女bb生活片| 成年人国产精品| 国产原创一区二区三区| 亚洲成av人在线观看| 国产精品午夜春色av| 精品久久免费看| 欧美日韩精品一区二区三区四区| www.激情成人| 国产精品一区在线观看你懂的| 午夜激情一区二区| 亚洲激情在线激情| 国产视频一区二区在线观看| 精品理论电影在线观看| 69堂精品视频| 欧美精品少妇一区二区三区 | 欧美亚洲国产一区二区三区 | 91麻豆精品一区二区三区| 激情五月激情综合网| 天天综合色天天| 亚洲一区二区偷拍精品| 亚洲精品视频在线观看免费| 中文字幕成人av| 日本一区二区成人| 中文字幕免费观看一区| 国产亚洲精久久久久久| 国产三级精品在线| 国产日韩精品一区二区三区| 久久品道一品道久久精品| 欧美大片一区二区| 日韩一级片在线观看| 91精品黄色片免费大全| 在线综合+亚洲+欧美中文字幕| 欧美日韩一区三区| 777亚洲妇女| 欧美电影精品一区二区| 精品国产91九色蝌蚪| 欧美精品一区二区三区一线天视频| 日韩亚洲欧美在线| 欧美刺激午夜性久久久久久久| 日韩欧美一二三区| 精品福利二区三区| 久久色中文字幕| 国产精品视频九色porn| 1024精品合集| 亚洲成a人v欧美综合天堂 | 久久久午夜精品| 国产精品视频你懂的| 亚洲视频免费观看| 亚洲一区成人在线| 麻豆精品视频在线观看视频| 久久66热偷产精品| a4yy欧美一区二区三区| 91麻豆国产福利精品| 欧美色老头old∨ideo| 日韩一区二区电影在线| 久久亚洲私人国产精品va媚药| 中文在线资源观看网站视频免费不卡 | 亚洲欧美自拍偷拍色图| 亚洲欧美激情在线| 日韩1区2区3区| 国内精品视频一区二区三区八戒| 国产成人综合视频| 色婷婷综合久久久| 4438成人网| 中文字幕+乱码+中文字幕一区| 艳妇臀荡乳欲伦亚洲一区| 激情综合色综合久久综合| 丁香婷婷深情五月亚洲| 欧美系列日韩一区| 精品国产免费一区二区三区四区| 国产欧美精品一区| 性感美女极品91精品| 国内外精品视频| 在线看日韩精品电影| 久久综合色8888| 亚洲福利一二三区| 国产成人aaaa| 91精品国产乱码久久蜜臀| 成人免费一区二区三区视频| 人禽交欧美网站| 色婷婷av一区二区三区大白胸 | www.亚洲色图.com| 欧美一区三区二区| 日韩美女久久久| 精品一区二区在线看| 欧美在线观看视频一区二区| 久久在线免费观看| 日韩激情一区二区| 91免费国产视频网站| 久久免费看少妇高潮| 三级不卡在线观看| 99久久99久久综合| 国产欧美一区二区在线| 男男gaygay亚洲| 欧美三级乱人伦电影| 18成人在线视频| 成人激情动漫在线观看| 日韩美女在线视频| 婷婷亚洲久悠悠色悠在线播放| 色综合久久久久综合体| 国产精品网曝门| 国产成人亚洲综合a∨婷婷图片| 5858s免费视频成人| 亚洲图片欧美视频| 在线免费视频一区二区| 国产精品久久久久久久久免费桃花 | 激情深爱一区二区| 中文字幕精品一区二区三区精品| 成人午夜免费视频| 亚洲成人激情自拍| 久久综合色一综合色88| 奇米888四色在线精品| 欧美日韩综合在线免费观看| 最新高清无码专区| 成人免费av资源| 国产精品色呦呦| 国产成人av电影在线观看| www国产亚洲精品久久麻豆| 免费的国产精品| 在线电影欧美成精品| 日韩国产欧美在线视频| 欧美精品tushy高清| 午夜精品久久久久久久久久| 日本韩国精品一区二区在线观看| 国产精品久久久久久久久动漫 | 国产日韩精品一区二区三区在线| 狠狠色伊人亚洲综合成人| 26uuu欧美日本| 国产一区二区三区免费播放| 久久一日本道色综合| 91蜜桃网址入口| 欧美日韩一本到| 亚洲国产综合在线| 欧美精品丝袜久久久中文字幕| 天堂蜜桃91精品| 欧美一级午夜免费电影| 久久av资源网| 久久久www免费人成精品| 国产不卡高清在线观看视频| 亚洲国产精品成人综合色在线婷婷| 国产精品综合一区二区| 国产精品久久久一区麻豆最新章节| 不卡的电影网站| 一区二区久久久久| 欧美精选午夜久久久乱码6080| 日韩va欧美va亚洲va久久| 精品久久99ma| 成a人片亚洲日本久久| 亚洲综合一二区| 精品国产欧美一区二区| 99精品黄色片免费大全| 天天av天天翘天天综合网| 精品国产亚洲在线|