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

📄 cable_ann.h

📁 通讯电缆智能防盗报警器--通讯电缆智能防盗报警器安装在各局的机房内
💻 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 + -