📄 flowunit.h
字号:
/********************************************************************************************************
** RIDen A50 流量计
**
** 版权所有 (c) 2007,罗建
** 保留所有权利
**
** V1.03
**
**
**-------------------------------------------------文件信息----------------------------------------------
**文 件 名: FlowUnit.H
**创 建 人: 罗 建
**最后修改日期: 2007年02月09日
**描 述: RIDen A50流量计主程序头文件。
**
**-----------------------------------------------历史版本信息--------------------------------------------
** 创建人: 罗建
** 版 本: V1.00
** 日 期: 2007年02月08日
** 描 述: 原始版本
**
**-------------------------------------------------------------------------------------------------------
** 修改人: 罗建
** 版 本: V1.02
** 日 期: 2007年03月16日
** 描 述: 增加类型和函数定义。
**
**-------------------------------------------------------------------------------------------------------
** 修改人: 罗建
** 版 本: V1.03
** 日 期: 2007年03月23日
** 描 述: 新增加了功能参数定义。
**
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 版 本:
** 日 期:
** 描 述:
**
**-----------------------------------------------当前版本修订--------------------------------------------
** 修改人: 罗建
** 日 期: 2007年03月23日
** 描 述: 新增加了功能参数定义。
**
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef __FLOWUNIT_H__
#define __FLOWUNIT_H__
/* 定义数据类型 */
#define INT8U unsigned char
#define INT8 signed char
#define INT16U unsigned int
#define INT16 signed int
#define INT32U unsigned long
#define INT32 signed long
/* 定义位常量 */
#define TRUE (bit)1
#define FALSE (bit)0
#define OPEN (bit)0
#define CLOSE (bit)1
/* 定义常数 */
#define FX2 2 /* 取值1表示不对外部振荡时钟倍频,取值2表示对外部振荡时钟2倍频 */
#define FOSC 11059200 /* 外部晶振振荡频率(Hz) */
#define FSYS FOSC*FX2 /* 系统振荡器频率(Hz) */
#define BAUD 19200 /* 通讯波特率(bps) */
#define T0_TIMER 2 /* T0定时器定时间隔时间(ms) */
#define T0_COMP 14 /* T0定时器晶振补偿值,需实际测试求得 */
#define T0_CONST T0_TIMER*FSYS/12000 /* T0定时器定时初值,10ms定时 */
#define T1_CONST 13993
#define LOGO_WAIT 300/T0_TIMER /* 显示LOGO信息的时间 */
#define KEY_WAIT 30/T0_TIMER /* 按键响应间隔时间(默认为15*20ms=300ms) */
#define TIME_WAIT 10/T0_TIMER /* 检测时,时间倒计数的间隔数(默认为5*20ms=100ms) */
#define FLASH_WAIT 50/T0_TIMER /* LED闪烁间隔时间(默认为25*20ms=500ms) */
#define PARAMS_NUMS 14 /* 系统定义的参数个数(目前仅14个,2008.06.20) */
#define ADD_DOT 0x7F /* 将该常量与要显示的LED内容相与,可在当前LED上显示小数点 */
#define NOT_DIS 0xFF /* 作为LED段选码送入LED中使该位LED消隐 */
#define PASS 0xFE /* 对应于a段显示(代表PASS指示灯)的LED段选码 */
#define FAIL 0xFD /* 对应于b段显示(代表FAIL示灯)的LED段选码 */
#define WARN 0xFB /* 对应于c段显示(代表WARN示灯)的LED段选码 */
#define NONE 0x10 /* 在LED段选码数组中,对应于消隐位的索引 */
#define SIGN_NEG 0x1E /* 在LED段选码数组中,对应于负号位(-)的索引 */
#define ADDR_FILL_TIME 0x8000 /* 填充时间参数在EEPROM中的首地址 */
#define ADDR_TEST_TIME 0x8200 /* 测试时间参数在EEPROM中的首地址 */
#define ADDR_MAX_PRESS 0x8400 /* 压力告警上限参数在EEPROM中的首地址 */
#define ADDR_MIN_PRESS 0x8600 /* 压力告警下限参数在EEPROM中的首地址 */
#define ADDR_MAX_LEAK 0x8800 /* 流量告警上限参数在EEPROM中的首地址 */
#define ADDR_MIN_LEAK 0x8A00 /* 流量告警下限参数在EEPROM中的首地址 */
#define ADDR_LEAK_AREA1 0x8C00 /* 第1段流量分段最大流量值在EEPROM中的首地址(2008.06.20) */
#define ADDR_LEAK_COEF1 0x8E00 /* 第1段流量显示比例系数在EEPROM中的首地址(2008.06.20) */
#define ADDR_LEAK_AREA2 0x9000 /* 第2段流量分段最大流量值在EEPROM中的首地址(2008.06.20) */
#define ADDR_LEAK_COEF2 0x9200 /* 第2段流量显示比例系数在EEPROM中的首地址(2008.06.20) */
#define ADDR_LEAK_AREA3 0x9400 /* 第3段流量分段最大流量值在EEPROM中的首地址(2008.06.20) */
#define ADDR_LEAK_COEF3 0x9600 /* 第3段流量显示比例系数在EEPROM中的首地址(2008.06.20) */
#define ADDR_LEAK_AREA4 0x9800 /* 第4段流量分段最大流量值在EEPROM中的首地址(2008.06.20) */
#define ADDR_LEAK_COEF4 0x9A00 /* 第4段流量显示比例系数在EEPROM中的首地址(2008.06.20) */
// ------------------------------------------------------------------------------------------------------
/* P0口引脚定义 */
sbit Q1 = P0^0; /* Q1~Q6控制LED数码管位选,为0时表示选通对应的LED数码管 */
sbit Q2 = P0^1;
sbit Q3 = P0^2;
sbit Q4 = P0^3;
sbit Q5 = P0^4;
sbit Q6 = P0^5;
sbit Q7 = P0^6; /* 控制远程PASS声光报警继电器,为0时接通继电器 */
sbit Q8 = P0^7; /* 控制远程FAIL声光报警继电器,为0时接通继电器 */
/* P1口引脚定义 */
sbit RELAY = P1^4; /* 电磁阀驱动继电器开关输入,为0时接通继电器 */
sbit AD_POL = P1^7; /* ICL7135转换极性标志,AD_POL=1表示输入信号为正 */
/* P2口引脚定义 */
sbit START = P2^0; /* 启动远控接口(输入),START=0表示启动测试进程 */
sbit STOP = P2^1; /* 停止远控接口(输入),STOP=0表示停止正在进行的测试进程 */
sbit KEY1 = P2^2; /* 第一组按键检测公共引脚 */
sbit KEY2 = P2^3; /* 第二组按键检测公共引脚 */
sbit SER1 = P2^4; /* 74HC595(U8)的串行数据输入引脚 */
sbit SER2 = P2^5; /* 74HC595(U9)的串行数据输入引脚 */
sbit SCK = P2^6; /* 74HC595的串行移位时钟输入引脚 */
sbit RCK = P2^7; /* 74HC595的串行锁存时钟输入引脚 */
/* P3口引脚定义 */
sbit AD_BUSY = P3^3; /* ICL7135转换结束中断输入,下降沿触发中断 */
sbit AD_CLK = P3^5; /* ICL7135转换时钟输入,默认为125kHz方波信号 */
/* 特殊功能寄存器定义 */
sfr WDT_CONTR = 0xE1;
// ------------------------------------------------------------------------------------------------------
/* 按键类型定义 */
typedef enum tagKeyType
{ktStartKey = 1,
ktStopKey = 2,
ktFuncKey = 3,
ktSetKey = 4,
ktUpKey = 5,
ktDownKey = 6,
ktLeftKey = 7,
ktRightKey = 8
} TKeyType;
/* 参数名称类型定义,2008.06.20增加了流量修正值及对应的修正系数 */
typedef enum tagParamName
{pnFillTime = 0,
pnTestTime = 1,
pnMaxPress = 2,
pnMinPress = 3,
pnMaxLeak = 4,
pnMinLeak = 5,
pnLeakArea1= 6,
pnLeakCoef1= 7,
pnLeakArea2= 8,
pnLeakCoef2= 9,
pnLeakArea3= 10,
pnLeakCoef3= 11,
pnLeakArea4= 12,
pnLeakCoef4= 13
} TParamName;
/* 字/字节联合类型定义 */
typedef union tagWordType
{
INT16U Word;
INT8U Byte[2];
} TWordType;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -