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

📄 main.c

📁 实时监控系统嵌入式内核源码
💻 C
📖 第 1 页 / 共 2 页
字号:
/***************************************************************************
         Routine :           main
         description:       the main function
         created by         zfei
         version:             2.0 -- 1118 new board for CDMA Bellwave BM860  -- noenv & nodial1001& no VHL 
         					add some FUNC. accoring the new version protocol 1.31
        - E:\work_zhc\project manage\monitor\文档\monitor\后台与监控单元间的通信流程和协议_定稿.doc
*****************************************************************************/

// 10-02 add the watchdog to protect the reliabilty 
//#include <reg51.h>                       /* special function register declarations   */
//#include <reg52.h>
#include <REG66x.H>                                                   /* for the intended 8051 derivative         */
#include <stdio.h> 
#include <stdlib.h>                          /* prototype declarations for I/O functions */
#include <ctype.h>
#include <intrins.h>

#define data_timming_step  6
#define REMAX 2
extern void Get_dat_msg_Len();
extern void Msg_DATA_handle();
//unsigned int      data     T_10_500ms;                 //the variable is used to control switch serial com
unsigned char   xdata      count_senor;        // count_sensor is used to count  the times of interrupt0 for T_1s;
unsigned char   xdata     count_GSM;          //count_GSM is used to count the times of interrupt0 foe T_10_500ms;
unsigned char   xdata    flag_scom;           // flag_scom = 1  equal to (SCOM is receving/sending  flag_scom = o equal to (sbuf have no data)
unsigned char   xdata     len_AMN;                       // two variable is used to store the sbuf into the data buffer;
unsigned char   xdata       count_io;              //the variable is used to count the pulse of I/o port;
//unsigned char   flag_io;                //flag_io = 1 ,  may compute i/o data
unsigned char   xdata       alarm_supply;       //To control the supply alarm reponse time
unsigned char   xdata        alarm_sennor;      //To control the sennor alarm reponse time 
unsigned long int  xdata  supply_1m;          
unsigned char  xdata       sennor_10s;
//unsigned long int  data  reponse_1m;
unsigned char  xdata       Flag_reponse_arrive;
 unsigned int    xdata       count_senor_1m;        // count_sensor is used to count  the times of interrupt0 for T_1s;
unsigned char   data  count_supply_1m;          //count_GSM is used to count the times of interrupt0 foe T_10_500ms;
//unsigned long int   data  count_reponse_1m;
unsigned int    data       count_io_1s;   
//unsigned long int   data count_re_supply1m;
//unsigned  int    data count_re_10s,count_re_5s;
unsigned char   data     count_re_10s,count_re_5s,count_re_1min,count_re_30s;
unsigned char   data    count_re_5min;    //  count_re_3min,
unsigned char  xdata        Flag_Reponse_supply;
unsigned char   xdata      flag_msg_handle,cmgs_err_time;

unsigned char   xdata     test_min,test_hour;          // test zhc 04-0208 , del them after test
/*------------------------------------------------------------------------------ 
I/O pin define 
------------------------------------------------------------------------------*/ 
//the new board's pins

sbit SMOKE          =   P0^6; 
sbit SMOKE_P      =   P0^5; 
sbit WATER          =   P0^0; 
sbit DOOR_A        =   P0^4; 
sbit AIR_DET1     =   P0^3; 
sbit AIR_DET2     =   P0^2; 
sbit watch_t0      =   P2^2;
sbit CDMA_SW     =   P1^5;       // maybe to p2^3
sbit AIR_CTL2     =   P3^4; 
sbit AIR_CTL1     =   P3^5; 
sbit RI_SMS        =   P1^2;
sbit IN_SERVICE =   P1^1;

sbit TEMPER     =   P1^0; 
//sbit SCL            =   P1^6; 
//sbit SDA           =   P1^7; 

//sbit NC1           =   P1^4;             //A0 ????μ¥???úáa′??ú 
sbit SER_TOGSM       =   P2^4;             //A1 ????gsm moduleáa′??ú 
sbit SER_TO_POWER =  P2^3;             //A2 ????POWER áa′??ú 
sbit  WG        =P3^6;


sbit MCU_RXD       =   P3^0; 
sbit MCU_TXD       =   P3^1; 

sbit Alarm_CL       =   P0^7;         //  every day 00:00 it was clr  by 8563
/*
//the old one's
sbit SMOKE          =   P0^7; 
sbit SMOKE_P      =   P0^6; 
sbit WATER          =   P0^5; 
sbit DOOR_A        =   P0^4; 
sbit AIR_DET1     =   P0^3; 
sbit AIR_DET2     =   P0^2; 
sbit watch_t0      =   P2^2;
sbit CDMA_SW     =   P2^7;       // maybe to p2^3
sbit AIR_CTL2     =   P2^5; 
sbit AIR_CTL1     =   P2^6; 

sbit TEMPER     =   P1^0; 
//sbit SCL            =   P1^6; 
//sbit SDA           =   P1^7; 

//sbit NC1           =   P1^4;             //A0 ????μ¥???úáa′??ú 
sbit SER_TOGSM       =   P2^0;             //A1 ????gsm moduleáa′??ú 
sbit SER_TO_POWER =  P2^1;             //A2 ????POWER áa′??ú 
sbit  WG        =P1^4;


sbit MCU_RXD       =   P3^0; 
sbit MCU_TXD       =   P3^1; 

sbit Alarm_CL       =   P3^2;         //  every day 00:00 it was clr  by 8563



//sfr T2MOD=0xC9;
//sfr S0CON=0x98;
//sfr IEN0=0xA8;


//sbit ES1=IEN0^3;
//sbit ES0=IEN0^4;
//sbit EC=IEN0^6;
/*
sfr S1CON=0xD8;
sfr S1STA=0xD9;
sfr S1DAT=0xDA;
sfr S1ADR=0xDB;
sfr IEN0=0xA8;
sfr IP0=0xB8;
*/


//zhc 07-04
unsigned char xdata Nnm_Byte_Len_tho,Nnm_Byte_Len_hun;
unsigned char xdata Nnm_Byte_Len_dec,Nnm_Byte_Len_tenthou;
unsigned char xdata Nnm_Byte_Len_remain,flag_nomsg,sms_send_ready;
unsigned char xdata sms_mem[2],flag_sms_mem;

bit  flag_power_alarm,flag_handler_bak, flag_i2c,Flag_supply,env_set,flag_3s_overtime,flag_overtime;
bit  RPwr_start,RPwr_end,timming_again,Flag_0f,show_bug,sms_256,init_pwr_fail,init_CDMA_fail; 
bit  flag_Alarm_AC,flag_Alarm_RE,flag_Alarm_DC,pwr_init; 
//bit  Pwr_Alarm_AC,Pwr_Alarm_RE,Pwr_Alarm_DC; 
bit flag_ala_env_req,flag_ala_pwr_req;
bit  flag_Alarm_AC_bak,flag_Alarm_RE_bak,flag_Alarm_DC_bak;
bit  AC1,AC2,RC1,RC2,cmgl_01;   // 0-- at+cmgl=0  1-- at+cmgl=1 
bit  fill_sim,send_cmgr,test_cmti,cmti_sms_ov40;           //flag_cmti -- 040127  test_cmti =0 at+cmgl     =1 +cmgr
bit  flag_set_time,flag_del_sms,temp_bit,set_time_ok,flag_delsms;
bit  flag_day,flag_day_bak,flag_day_set,flag_cmgl1_req;
bit  flag_code_set;    //  flag_mc_SG,GSM_down,                        
				     // zhc 09-05 correct the GSM auto off
bit  flag_mc_err,flag_sc1_err,flag_sc2_err,flag_mc_err2,flag_sc1_err2;
bit  flag_sc2_err2,flag_se_err,flag_se_err2,flag_ala_main;
                                                                                  // zhc 11-02 to make sure the center code correct
//unsigned char data  temp_csca,temp_sca;
//unsigned char data   TD_Hex[2],TD_Hex_num;	  // TD_Hex[0]=0x5C,TD_Hex[1]=0x78; 
//bit TD_Hex_01,flag_csca;
bit RI_start,sms_rx,flag_over_1s,flag_msgof_rx,CDMA_connect,CDMA_offline;
bit flag_get_time,flag_CDMA1x_cov,IP_open,IP_data_send,IP_Closed,IP_exit; 
bit flag_data_S_Rx,flag_data_E_Rx;                               //04-0127
bit Flag_cmgl_time,flag_2min_over,flag_30s_over,flag_5min_over;
bit get_cnt_suc;                  
bit flag_CKD,flag_CKD_S;                   // back the pwr key dat to center contiously
unsigned int      data Len_msg_data;                                 //04-0127
unsigned char   data send_data_step;                               //04-0129
bit get_time_succ,flag_mmsg_1pa,flag_update_KD;                                                           //04-0201
unsigned char xdata sum_mc,sum_sc1,sum_sc2,F_msg_len;        //,seri_code
unsigned char xdata com_len_mc,com_chksum_mc,chksum_mc;
unsigned char xdata com_len_sc1,com_chksum_sc1,chksum_sc1;
unsigned char xdata com_len_sc2,com_chksum_sc2,chksum_sc2;
unsigned char xdata com_len_MTN,com_chksum_MTN,chksum_MTN;
bit  get_cnt_fail,flag_code_req,del_sms_ok,sms_send_ok,flag_sms_result; 
bit state_chg_flag = 0;//控制状态是否改变标志 0--没改变,1--改变
bit get_CTL_flag = 1;  // 0-- get the pwr CTRL fail 
unsigned char xdata  sms_send_result,RTN_res;
unsigned char xdata  CDMA_comm_time,CDMA_err_time;    // zhc 09-05 correct the GSM auto off
unsigned char xdata sms_cnt,unread_sms,sms_cnt_asc[15],len_sms_cnt;
unsigned char xdata uns_len,handled_sms,deleted_sms,comma_seri;                  //n;
unsigned char xdata sms_a_cnt[2],unread_sms_cnt[2],flag_sms_unread;
unsigned char data   GSC_step,point_cnt;
unsigned char xdata comma_msg[10],sms_dat_type,Len_Rx_sms;
//unsigned int data count_over_3s,count_over_15s;
unsigned int    data   count_over_1s;
unsigned char data  count_over_3s;
unsigned char data  used_serv_ver;
unsigned char xdata flag_handler;   // 0 -- sms;   1 -- power; 2 -- envior.
unsigned char xdata err_pwr_time,err_i2c_time,err_cmgd_time;
//unsigned char xdata last_timming[4],curr_timming[4];  //0--year  1 -- mon  2-- day 3--hour
unsigned char xdata flag_seri_wr,flag_seri_envi;
unsigned char xdata seri_wr,seri_envi;
//unsigned char data  flag_send_sms_bak;
unsigned  char xdata init_CDMA_step,Del_sms_step,CDMA_con_step;
unsigned char xdata Env_alarm_bak;   // 0 -- connect  fail  1 -- voice  2-- data transfer
unsigned char xdata Env_state,Env_state_main,alarm_byte_main,alarm_byte_main_bak;
unsigned char xdata alarm_byte,alarm_byte_bak;
unsigned char xdata CDMA_systime[10],CDMA_con_comma;    // sms_center_len,sms_head_len;
unsigned char   data temp_time,len_cent_command;
                          //len_cent_command < 255, if more than it , change the char to int

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -