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

📄 constants.h

📁 带时钟功能温度和湿度测量的仪器
💻 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 + -