📄 cable_ann.h
字号:
/*******************************************************************************
Copyright (C), 2000-2004, 深圳市中兴新地通信器材有限公司
文件名称: 电缆测距系统 CABLE_ANN.h头文件
作 者: 配线技术部
版 本: V1.0
日 期: 2006,12,06
备 注: CPU为STC89C58 RD+,PLC44
修改记录:
/******************************************************************************
前缀规则说明:
以下为变量类型前缀
p - 指针
g - 全局变量
Cnt - 计数器
b - 位
CN - 常量
AD - 地址常量
*******************************************************************************/
//*************************** 定义变量简称***************************
#define INT8U unsigned char //无符号8位数
#define INT8S signed char //有符号8位数
#define INT16U unsigned int //无符号16位数
#define INT16S signed int //有符号16位数
#define INT32U unsigned long //无符号32位数
#define INT32S signed long //有符号32位数
#define FP32 float //单精度浮点数
#define FP64 double //双精度浮点数
#define TRUE 1
#define FALSE 0
//************************** 8051中断源定义 ***********************
#define INT_EX0 0 //外部中断0源,P3.2
#define INT_T0 1 //定时器0中断源,Timer0
#define INT_EX1 2 //外部中断1源,P3.3
#define INT_T1 3 //定时器1中断源,Timer1
#define INT_COM 4 //串口中断源,P3.0,P3.1
#define INT_T2 5 //定时器2中断源,Timer2
//****************************************************************
//******************定义各相关输入输出端口************************
#define AD_LED0 XBYTE[0x2000] //右面LED数码管地址
#define AD_LED1 XBYTE[0x1000] //中间LED数码管地址
#define AD_LED2 XBYTE[0x0800] //左面LED数码管地址
#define AD_ALM_LED XBYTE[0x0400] //告警指示灯地址
#define AD_CAB_STA_IN XBYTE[0x0200] //电缆通断状态输入地址。电缆未断时,输入为低电平
#define AD_CAB_SW_CTR XBYTE[0x0100] //电缆继电器切换控制地址,输出低电平时切换到测距电路
sbit AD_KEY1 = 0x92; //定义P1.2为左向键
sbit AD_KEY2 = 0x93; //定义P1.3为右向键
sbit AD_DISCHARGE = 0x94; //定义P1.4为放电控制口,控制输出0时放电
sbit AD_C0CTR = 0x95; //定义P1.5为补偿电容控制口
sbit AD_BUZZER = 0x96; //定义P1.6为蜂鸣器控制口
sbit AD_15VCTR =0x97; //定义P1.7为15V控制口
//*******************定义各相关工作状态标识字及常量**********************
//-------------------------系统配置常量------------------------------
#define CN_CAB_NUM 8 //监控电缆数量
#define CN_TIMER 108 //定义1ms延时的时间常数
//---------------------------告警常量--------------------------------
#define CN_PREALM_ON //预告警标志置位
#define CN_PREALM_OFF //预告警标志复位
//-------------------------距离计算常量-------------------------------
#define CN_DISCHARGE 0 //放电控制口输出0时放电
#define CN_CHARGE 1 //放电控制口输出1时充电
#define CN_15V_ON 0 //15V控制口输出0时将15V电源切换到测距电路
#define CN_15V_OFF 1 //15V控制口输出1时将15V电源切换到测断电路
#define CN_AllDist_OK 1 //所有电缆测距完成
#define CN_AllDist_NOK 0 //所有电缆测距未完成
#define CN_AllSW_OFF 0xFF //所有电缆投切继电器断开切到测断电路(MCU输出高电平断开)
//----------------------------中断常量-------------------------------
#define CN_CP_ON//捕获标志置位
#define CN_CP_OFF//捕获标志复位
//----------------------------显示常量-------------------------------
#define CN_ALMLED_OFF 0x00 //所有告警发光二极管灭
#define CN_ALMCABSW_ON 1 //告警电缆显示切换标志置位
#define CN_ALMCABSW_OFF 0 //告警电缆显示切换标志复位
//----------------------------按键常量-------------------------------
#define CN_KEY_1 0x10 //左键(-)
#define CN_KEY_2 0x20 //右键(+)
#define CN_KEY_12 0x30 //组合按键,用于校准
#define CN_KEY_SUB 0x01 //减键
#define CN_KEY_ADD 0x02 //加键
#define CN_KEY_ADJ 0x03 //组合键(校准)
#define CN_KEY_NONE 0xff //无按键
#define CN_ALM_REV_ON 1 //按键浏览标志开
#define CN_ALM_REV_OFF 0 //按键浏览标志关
//----------------------------声音常量-------------------------------
#define CN_BUZZER_ON 0 //蜂鸣器开
#define CN_BUZZER_OFF 1 //蜂鸣器关
#define CN_BUZZER_STAR 1 //蜂鸣器告警启动
#define CN_BUZZER_STOP 0 //蜂鸣器告警停止
//----------------------------菜单常量-------------------------------
#define CN_MENU_INSP 1 //监测菜单
#define CN_MENU_ALM 2 //告警菜单
#define CN_MENU_ADJ 3 //校准菜单
//----------------------------串口常量-------------------------------
#define CN_SER_ASK_DATA 0x00
#define CN_SER_ASK_CFG 0x01
#define CN_SER_WR_CFG 0x02
#define CN_SER_WR_ADJ 0x03
#define CN_SER_DOOR_MASK 0x04
#define CN_SER_ALM_RESET 0x05
#define CN_SER_VER_ADJUST 0x06
#define CN_SER_TEST_MODE 0x07
#define CN_SER_EXIT_TEST 0x08
#define CN_EN_TX 1
#define CN_DIS_EN_TX 0
//***************************定义全局变量******************************
//---------------------------告警变量--------------------------------
bit gb_PreAlmFlag ;//预告警标志
INT8U g_CntPreAlm ;//预告警后电缆状态检测次数
INT8U g_OriAlmSta ;//八路电缆原始告警状态
INT8U g_AlmFlag ;//八路电缆告警状态
//-------------------------距离计算变量-------------------------------
INT8U g_CurChkCab ;//当前检测的告警电缆标号
INT8U g_AlmCabQua ;//发生告警电缆数量
INT16U g_AlmCabDist[CN_CAB_NUM];//告警电缆断线距离数组(按告警电缆序号渐增排序)
INT8U g_AlmCabArr[CN_CAB_NUM] ;//告警电缆标号数组(按告警电缆序号渐增排序)
bit gb_AllDistflag ;//所有电缆测距完成标志
//----------------------------中断变量-------------------------------
INT8U g_Cnt50ms ;//测距过程T2的50ms中断计数
INT8U g_Cnt1s ;//T0的1S计数
bit gb_CpFlag ;//捕获中断发生标志
//----------------------------显示变量-------------------------------
INT8U g_LedNo ;//LED显示序号(将三个数码管和发光二极管轮流显示)
INT8U g_Led_AlmDist[CN_CAB_NUM][3];//LED告警电缆距离显存(存距离的字形码),标号2、1、0对应左、中、右数码管
INT8U g_AlmLed_DisMem ;//告警发光二极管显存
INT8U g_Led_DisMem[3] ;//数码管显存(标号2、1、0对应左、中、右数码管)
INT8U g_CntLedFlash ;//告警发光二极管闪烁计数
INT8U g_CurDisAlmCab ;//当前显示告警电缆标号
INT8U g_CntDisAlmCab ;//告警电缆显示时间计数器
INT8U g_FlashByte ;//告警LED闪烁位指示字节
bit gb_AlmCabSwFlag ;//告警电缆显示切换标志
//----------------------------按键变量-------------------------------
bit gb_AlmReview ;//按键浏览标志
INT8U g_KeyPoint ;//键盘防抖动指针
INT8U data g_KeyCir[5] ;//键盘防抖动缓冲环
INT8U data g_KeyBuf[10] ;//键值存贮缓冲环
INT8U g_KeyWrPoint ;//键盘写指针
INT8U g_KeyRdPoint ;//键盘读指针
INT8U g_KeyRptBuf ;//长按缓存
INT8U g_KeyCntRpt1 ;//长按次数计数1
INT8U g_KeyCntRpt2 ;//长按次数计数2
//----------------------------声音变量-------------------------------
INT8U g_BuzzerFlag ;// 蜂鸣器启停标志
INT8U g_CntBuzzer ;//告警声计数
INT8U g_CntSoundDuty ;//告警声占空比计数
//----------------------------菜单变量-------------------------------
INT8U g_Par[3]; ;//配置参数数组
INT8U g_MenuSta ;//菜单状态
INT16U g_cntAdjCfg ;//校准计数器
//----------------------------串口变量-------------------------------
bit gb_ComOvT_Flag ;//串口接收超时标志
bit gb_EnTx ;//串口发送许可标志
enum {RX_HEAD0,RX_HEAD1,RX_ARR_HEAD,RX_DATA,RX_TAIL,RX_ERR,RX_COMPLETE};
INT8U g_RxSta; //串口接收状态机
enum {TX_HEAD0,TX_HEAD1,TX_ARR_HEAD,TX_DATA,TX_TAIL,TX_ERR,TX_COMPLETE};
INT8U g_TxSta; //串口发送状态机
enum {ANS_AL_DATA,ANS_CFG,ANS_ADJ,ANS_WR,ANS_ALM_RESET,ANS_ALM_MASK,ANS_NONE,ANS_TEST_MODE,ANS_EXIT_TEST};
INT8U g_AnsSta; //串口应答状态机
INT8U g_cntCOMOvT; //串口接收超时计数器
INT8U RxPcDataLen
INT8U g_RxDataLen RxPcDataLen; //电脑串口接收数据长度
INT8U g_PointRxData PointRxData; //电脑串口接收数据指针
INT8U g_TxDataLen TxPcDataLen; //电脑串口发送数据长度
INT8U g_PointTxData PointPcTxData; //电脑串口发送数据指针
INT8U CfgPcRxData[30]; //电脑串口接收配置数据缓存
//INT16U data KeyTimeOut ;//按键时间溢出
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -