📄 constants.h
字号:
/*#####################################################################
//#文件名: Constants.h
//#功能: 系统必须常数、表达式宏定义文件
//#单位: 浙江工商大学-信电学院
//#创建日期:2004-09-24
//#创建人: Houseivan
//#修改人: Houseivan
//#修改日期:2005-03-11
#####################################################################*/
#ifndef _CONSTANTS_H
#define _CONSTANTS_H
#define _CPU_51 0
#define _CPU_52 1
#if _CPU_51>0
#include<REG51.h>
#else
#include<REG52.h>
#endif
/*-------------------------------------------*/
/*-------------------------------------------*/
sbit Wdog=P2^5;
#define ClearWatchDog() \
{ \
Wdog=1; ; ; ; ; \
Wdog=0; \
}
sbit RxTxEn=P2^4;
#define AllowRx() RxTxEn=0;
#define AllowTx() RxTxEn=1;
/*-------------------------------------------*/
/*-------------------------------------------*/
#define _CMD_NORMAL_RUN 0x0F //显示器工作在正常的工作状态
#define _CMD_CTRL_RUN 0x1F //命令交互模式
#define _TIME_RUN 0x2F //显示器工作在time状态
#define _DATE_RUN 0x3F //显示器工作在date状态
#define _WEEKLY_RUN 0x4F //显示器工作在week状态
#define _COMBUSY_RUN 0x5F //显示器工作在busy状态
#define _ERROR_RUN 0x6F //显示器工作在error状态
#define _NET_MODE 1 //站点以及PC连网工作模式
#define _SITE_MODE 0 //站点独立工作模式
#define _MAX_LENG 17 //定义协议帧缓冲大小<=20
/*-------------------------------------------*/
/*-------------------------------------------*/
/*检查是否需要提供系统中断服务*/
#ifndef _FOSC
#define _FOSC 11.0592 //系统主频MHZ ☆☆☆☆☆
//#define _FOSC 12.0 //系统主频MHZ ☆☆☆☆☆
//#define _FOSC 18.432 //系统主频MHZ ☆☆☆☆☆
#endif
#define _MAC_CYCLE (12.0/_FOSC)//C51是采用12分频
#define _MAX_TIME1 65536 //定时器最大值
#define _NEED_TIME 20000 //20ms=20000us
#define _MODIFY 1 //定时器修正
#define _TIMER1 (uint)(_MAX_TIME1-(_NEED_TIME/_MAC_CYCLE)-_MODIFY)
//应该考虑取整
#define _TIMER1_H (_TIMER1/256) //定时器高字节初始化值
#define _TIMER1_L (_TIMER1%256) //定时器低字节初始化值
/*表达式宏定义*/
#define EnterCritical() EA=0
#define ExitCritical() EA=1
#define CloseScom() ES=0
#define OpenScom() ES=1
#define CloseTimer1() TR1=0
#define OpenTimer1() TR1=1
#define CloseHumiCounter() EX0=0
#define OpenHumiCounter() EX0=1
#define CloseTempCounter() TR0=0
#define OpenTempCounter() TR0=1
/*串行通信模式选择宏*/
#define ChooseScomMode0() {SCON=0x10; PCON=0x00; IP =0x00; IE |=0x90;}
#define ChooseScomMode1() {SCON=0x50; PCON=0x00; IP =0x00; IE |=0x90;}
#define ChooseScomMode2() {SCON=0x90; PCON=0x00; IP =0x00; IE |=0x90;}
#define ChooseScomMode3() {SCON=0xd0; PCON=0x00; IP =0x00; IE |=0x90;}
/*-------------------------------------------*/
/*-------------------------------------------*/
/*检测是否配置了网络操作功能*/
#define _F_SINGLE_NUM 0xFF //单一帧的序号默认为最大值
#define _F_HEAD_SIZE 6 //帧头大小
#define _F_EXTRA_LEN 3 //after data with num,crcrel
#define _F_CRC_LENG 2 //crc:2B High is at front.
#define _F_NUM_LENG 1 //Num:1B
#define _F_FRONT_SIZE 4 //at front of data there is 4 B in buf
#define _F_SEND_ADD 2 //when count crcrel add the constant
#define _F_RECV_ADD 4 //when count crcrel add the constant
#define _F_SOURCE_POS 0 //源地址
#define _F_DESTIN_POS 1 //目的地址
#define _F_COMMAD_POS 2 //命令地址
#define _F_LENGTH_POS 3 //帧内容段长度字节的位置from 4->CrcPos
#define _F_DSTART_POS 4 //数据起始地址
#define _F_CMD_BOUNDARY 0xb0 //boundary of no paras and have paras CMD
/*系统默认用户 */
#define _DEFAULT_PC_IP 0xff //主机系统IP地址
#define _DEFAULT_PC_USER 0xff //主机系统测试默认操作员
#define _DEFAULT_MCU_IP 0x00 //下位机测试初始化用地址刚出产的MCU都是这个ID
//定义通讯相关命令字常数0x00-0x7f
#define _CMD_END 0x7f //交互操作结束命令
#define _CMD_LOG_IN 0x7e //上线
#define _CMD_LOG_OUT 0x7d //下线
#define _CMD_ACK 0x7c //任何操作的确认信号命令
#define _CMD_ERROR 0x7b //数据出错信号命令
#define _CMD_SITE_INIT 0x7a //站点初始化
#define _CMD_REAL_GET 0x79 //定时采样
//定义读数据采样相关命令字常数0x80-0xaf
#define _CMD_RD_TEMP 0x80 //采样温度不带参数
#define _CMD_RD_HUMI 0x81 //采样湿度不带参数
#define _CMD_RD_TIME 0x82 //采样时钟不带参数
#define _CMD_RD_ALARM 0x83 //采样闹钟不带参数
#define _CMD_RD_DATE 0x84 //采样日期不带参数
#define _CMD_RD_WEEK 0x85 //采样周几不带参数
#define _CMD_RD_RECORD 0x86 //采样历史记录不带参数
#define _CMD_RD_RECNUM 0x87 //采样历史记录数量
#define _CMD_RD_MCUID 0xaf //采样MCU认证号不带参数
#define _CMD_RD_PCID 0xae //采样MCU上存储的当前PC的IP地址
#define _CMD_RD_PCUSER 0xad //采样MCU上存储的当前PC操作人帐户不带参数
//所有_CMD_RD_XX命令都以_CMD_WR_XX带参数响应返回0Xb0-0Xff
#define _CMD_WR_TEMP 0xB0 //写入或送出温度带参数
#define _CMD_WR_HUMI 0xB1 //写入或送出湿度带参数
#define _CMD_WR_TIME 0xB2 //写入或送出时钟带参数
#define _CMD_WR_ALARM 0xB3 //写入或送出闹钟带参数
#define _CMD_WR_DATE 0xB4 //写入或送出日期带参数
#define _CMD_WR_WEEK 0xB5 //写入或送出周几带参数
#define _CMD_WR_RECORD 0xB6 //写入或送出历史记录带参数
#define _CMD_WR_RECNUM 0xB7 //写入或送出历史记录数量
#define _CMD_WR_MCUID 0xff //写入或送出MCU认证号带参数
#define _CMD_WR_PCID 0xfe //写入或送出MCU上存储的当前PC的IP地址
#define _CMD_WR_PCUSER 0xfd //写入或送出MCU上存储的当前PC操作人帐户带参数
/*--------------------------------------------------*/
/*--------------------------------------------------*/
/*检查是否配置了显示器功能*/
#define READ 0x03 //011 use w_data()
#define WRITE 0x05 //101
#define COMD 0x01 //001
#define DOT 0x04 //DP=1
#define NO_DOT 0x00
#define DISP_ON 0xc0 //0x03 A7~A0 use W_addr(COMD)
#define DISP_OFF 0x40 //0x02 use W_data(COMD)
#define INIT 0x24 //0x24 模块初始化命令
#define CRY_OPEN 0x80 //0x01
#define NO_WDOG 0x01 //0x80
#define CLR_TIME 0xb0 //0x0d
#define IN_OK 0x18 //0x18
#define YES_SIGN 1
#define NO_SIGN 0
#define _MAX_LCM_NUM 10 //LCM最多10位字符
#define _BUF_MAX_LENG 10
#define _LCM_KEEP_T 60000 //显示保持时间片
#define _CHAR_0 0
#define _CHAR_1 1
#define _CHAR_2 2
#define _CHAR_3 3
#define _CHAR_4 4
#define _CHAR_5 5
#define _CHAR_6 6
#define _CHAR_7 7
#define _CHAR_8 8
#define _CHAR_9 9
#define _CHAR_A 10
#define _CHAR_B 11
#define _CHAR_C 12
#define _CHAR_D 13
#define _CHAR_E 14
#define _CHAR_F 15
#define _CHAR_ZK 16 //zuokuo : [
#define _CHAR_YK 17 //youkuo : ]
#define _CHAR_FH 18 //fuhao : -
#define _CHAR_XD 19 //xiandian: .
#define _CHAR_H 20 // 'H'
#define _CHAR_XH 21 //xiahua : _
#define _CHAR_XM 22 //ximie : off
/*-------------------------------------------*/
/*-------------------------------------------*/
/*检测是否配置了存储器功能*/
/*IIC 的通讯线口的定义*/
#define _WR_CMD 0xa0 //1010 000 0
#define _RD_CMD 0xa1 //1010 000 1
/*define MCU address in 24C02分配给参数的存储空间为16B:0x00~0x0F*/
#define _LOCAL_ID 0x00 //seg0:0本地采集站身份证号
#define _REMOTE_ID 0x01 //seg0:1远程主控处理器身份证号
#define _REMOTE_USER 0x02 //seg0:2远程主机上当前用户
#define _CUR_REC_ADDR 0x03 //seg0:3记录存储空间的容量记录
/*保留的空间:0x04~0x0F*/
#define _REC_SIZE 10 //E2PROM中的记录大小为10B
#define _MAX_REC_NUM 25 //可以存储的最大记录为24条
#define _MIN_REC_NUM 0 //最小值
#define _EMPTY_DATA 0xff //没有任何记录存储时操作获得的数据
/*-------------------------------------------*/
/*-------------------------------------------*/
#define _BLOCK_LENG 101 //数据块数据个数为101
#define _DECIMAL_BIT 10 //小数位数为1位
#define _MIN_NUM 0x0000 //最小为0
#define _MAX_NUM 0x03e8 //最大为1000x0.1=100
#define _FLOOR_LIMIT 0xc8 //20.0=0.1x200度
#define _PLUS_BIT 0x7fff //plus data
#define _MINUS_BIT 0x8000 //minus data
#define _MEASURE_ALARM 50 //1sec
#define _SAMPLE_ALARM 60 //1min
#define _STORE_ALARM 60 //1hour
/*-------------------------------------------*/
/*-------------------------------------------*/
#define _ID_SECOND 0
#define _ID_MINUTE 1
#define _ID_HOUR 2
#define _ID_WEEKLY 3
#define _ID_DAY 4
#define _ID_MONTH 5
#define _ID_YEAR 6
#define _ID_SECOND_H 7
#define _ID_SECOND_L 8
#define _ID_MINUTE_H 4
#define _ID_MINUTE_L 5
#define _ID_HOUR_H 1
#define _ID_HOUR_L 2
#define _ID_WEEKLY_H 4
#define _ID_WEEKLY_L 5
#define _ID_DAY_H 8
#define _ID_DAY_L 9
#define _ID_MONTH_H 5
#define _ID_MONTH_L 6
#define _ID_YEAR_H 2
#define _ID_YEAR_L 3
/*-------------------------------------------*/
/*-------------------------------------------*/
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -