📄 main.c
字号:
/***************************************************************************
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 + -