📄 second.h
字号:
#include <reg51.h>
#include <absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
/*****************************************************************************************************/
#define D12887C XBYTE[0XC00C]
/*****************************************************************************************************/
sbit FarContrlLed=P1^1;
sbit WatchDog = P1^3; //看门狗
/*****************************************************************************************************/
bit ssecond;
bit work_time; /*开机时段标志,1,开机时段,0,关机时段*/
bit period_update; /*周期更迭标志*/
bit sensor_car_flag;
bit ensensor_flag;
bit sensor_virgin_flag;
uchar xdata updatanvram=1;
uchar xdata auto_down=0;
uchar xdata mmax_timed;
uchar xdata selcal_flag=0;
uchar xdata no_lamp=0;
extern uchar xdata per_count;
uchar min_green=0,max_green=0;
uchar now_day; /*星期*/
uchar now_year; /*年份*/
uchar now_month;/*月份*/
uchar now_date; /*日子*/
uchar now_hour; /*小时*/
uchar now_min; /*分钟*/
uchar now_sec; /*秒*/
uint xdata now_time; //当前时间
uint xdata begin_time; //开始时间
uint xdata end_time; //结束时间
uchar xdata clear_state;
uchar xdata re_exe_flag=0,re_coloc=0; //遥控执行标志,遥控执行阶段为1,执行完毕为0
uchar xdata lamp_state[16]; //灯色状态
uchar xdata greenl,greenh;
uchar xdata yell,yelh;
uchar xdata redl,redh;
uchar xdata force_coloc=0;
uchar xdata force_exe_flag;
uchar xdata re_keep_force;
uchar xdata last_forcenumber=0,forceacting=0,act_force=0,clear_force=0;
extern uchar re_message[12];
uchar xdata clear_time; //清空时间
extern uchar xdata max_green_flash;//阶段的最大绿闪时间
uint key; //周期内时间累计
uchar now_uncount; //当前阶段的倒计时
uchar now_step_key;
uchar step_time;
unsigned char start_counter=0;
uchar xdata test_couter=0;
uchar xdata tran_count=0;
//uint xdata step_uncount[5][16]; //当前阶段的剩余时间累计,全红时间,黄灯时间,绿闪时间,绿灯时间
uint xdata now_phase_temp;
uint xdata now_phase_tempn;
uint xdata now_lamp_temp;
uint xdata now_lamp;
uint xdata inuse_lamp_temp;
uint xdata savecount=0;
uchar xdata no_vehicle_step[32];
uchar xdata sensor_distance;
uchar xdata min_greentime;
uchar xdata max_greentime;
uchar xdata add_greentime;
uchar xdata esc_counter=0;
uchar xdata esc_flag=0;
uchar xdata exit_remote=0;
uchar xdata hand_counter=0;//强制操作计数器
uchar xdata hand_esc=0; //强制取消计数器
uchar xdata led82[5];
uchar xdata led83[30];
uchar xdata machine_run_error;
uchar now_step_uncount; //当前阶段的倒计时
uchar temp,force_number;
uchar xdata nowforce=0,lastforce=0;
extern uchar xdata ing;
extern uchar xdata step_num;
unsigned char xdata act_flag=0; //遥控发生标志,在秒中断中使用
unsigned char xdata re_keep_flag;//遥控阶段维持标志
unsigned int xdata lai,hand_lamp,hand_phase;
unsigned int xdata lai_nouse;
unsigned int xdata tmd;
unsigned char xdata last_re_control=0;
//unsigned int xdata stadgenumber;
unsigned int xdata guli;
unsigned int xdata control_chunel;
unsigned char xdata sss;
unsigned char xdata period_sch[41];
unsigned char xdata count_step=0;
unsigned char xdata lastreph;
unsigned char xdata clear_flag=0; //绿闪黄清空,绿清空标志,为1,表示处于清空阶段
unsigned char xdata machine_flag; //主机或从机标志 1:主机 0:从机
unsigned char xdata alt_change=1; //新阶段开始标志
unsigned char xdata door,door_front,door_back;
extern unsigned char xdata zone_differ[5];
extern unsigned int xdata zone_number[5];
/*****************************************************************************************************/
void read_time(); //读时间
void search_color(); //查找灯色
void make0x83();
void remote_ph();
void trans_volum(); //周期更迭时传送流量信息
void tran_psh(); //周期更迭时传送方案信息
void re_ye_allred();
/*****************************************************************************************************/
void deal_zone();
void send_zone();
void hard_greenconflic();
extern uchar xdata step_num; //阶段数
extern uchar xdata max_yellow,max_red_clear;
extern bit re_control;
extern uint xdata use_phase ;
extern uint xdata inuse_lamp_temp;
extern uint xdata use_lamp_temp;
extern uchar xdata step_counter;
extern uint xdata use_lamp,use_lamp_sch;
extern uchar xdata now_day_planid;
extern uchar xdata timeid;
extern uchar xdata now_schemeid;
extern uchar xdata now_step_schid;
extern uint xdata baseaddr_now_schemesch;
extern uint xdata baseaddr_now_stepsch;
extern uint xdata baseaddr_now_phasesch;
extern uchar xdata sensor_step[32];
extern uint xdata inuse_phase[32]; //阶段用到的相位
extern uint xdata inuse_phasen[32]; //下阶段用到的相位
//extern uchar xdata step_uncount[4][16]; //当前阶段的剩余时间累计,全红时间,黄灯时间,绿闪时间,绿灯时间
extern uchar xdata red_clear[16],red_yellow_clear[16],red_yellow_green_clear[16];
extern uint xdata carnumber,lastcarnumber;
extern uchar xdata hand_step; //手动控制阶段
uchar xdata control_step;//手动、强制、遥控的阶段
extern bit hand_step_flag;
extern uint xdata g_error1,y_error1,r_error1; /*驱而不亮的故障*/
extern uint xdata g_error2,y_error2,r_error2; /*不驱而亮的故障*/
extern uint xdata lpp,hpp;
extern uint xdata now_phase_status;
extern unsigned char reph_number;
extern uint xdata g_load1,y_load1,r_load1;
extern unsigned char xdata conflag,hconflag;
uchar xdata last_force_flag=0;
uchar xdata remote_state=0;
uchar xdata last_stepcounter=0;
uchar xdata max_end_flag=0x00;
//uchar xdata max_yellow,max_red_clear,max_green_flash;
uchar xdata turn_off_state;
unsigned int data shift;
unsigned char xdata hand_state,force_flag,force_state,last_forceflag=0;
extern uchar xdata go;
extern unsigned char xdata sch_step[16];
/*****************************************************************************************************/
extern unsigned char xdata run_state;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -