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

📄 define.h

📁 绝对原创
💻 H
字号:
/*************************************************************************************************************/
/*************************************************************************************************************/
/**************************************** 十段温度 ***********************************************************/
/*************************************************************************************************************/
	
	/* 接于SST51单片机89E564RD */
	/* SO-P1.6 ; CS-P1.5 ; SCK-P1.7 */
	/* MAX6675测四路K型热电偶 */
	/* MAX6675测温转换时间一般0.17S,最大0.22S */
	/* 用继电器选通各路热电偶 */
	/* 通信协议:不发送小数点位,用四舍五入取小数位.共10位温度数据 */
	/* 先发送告知是哪段温度,F0为第一段,F1为第二段,F2,F3 */
	/* 送温度数据为BCD码,先送高位,后送低位,共送2个字节,连续发两次 */
	/* 连续发两次温度数据,最后以FF结束(共发六个字节)波特率9600(11.0592M) */
	/* E0,E1,E2,E3为加热信息,00为不加热,11为加热,22为断线标志,连续发两次标志位数据 */
	/* 每接通一次继电器,转换两次温度(为考虑继电器寿命) */
	/* 平均温度,12次,去除头尾两个,读6次新值,加5次上次排在中间的值和上次平均的值,
	/* 修改平均温度*/
	/* 修改FLASH */
	/* 2006.2.6 */

/*************************************************************************************************************
*	函数名称 :
*	功能描述 :
*	实际参数 :
*	返回值   :
*	说明     :
**************************************************************************************************************/
 
    #include<SST89x5x4.H>
	#include<stdio.h>
    #include<intrins.h>

	#define  uchar  unsigned char        
    #define  uint   unsigned int
	#define  ulong	unsigned long 

	#define	 ON				1 
	#define	 OFF			0
	#define	 CLEAR  		0x00

	#define  HEAT_ON 		0
	#define  HEAT_OFF		1

	#define	 SEC_TIME		20					// 中断20次为1秒
    
    #define  TIME_S  		(65536-51000)       /* 定时转换时间为55MSx4=0.20S */
	#define	 READ_TIME		4                   // 读温度时间	
 	#define  MAX_TEMP   	160    				// 设置与实际最大温度 差(实际温度差是40度)
	#define  MIN_TEMP   	20  				// 设置与实际最小温度差(实际温度5度)
	#define  MAX_SEC    	30  				// 最大时间秒钟检测加温(单位S)
	#define  MIN_SEC    	3					// 中断20次为1秒  // 最小时间秒钟检测加温
	#define  TYP_TEMP   	60 					// 出厂值,原程序的值得(实际温度15度)
	#define  TYP_SEC		5  					// 出厂值,原程序的值得	

	#define	 MAX_ADJUSTDAT  240					// 最大修正值(实际温度60度)比实际大了4倍,因为有小数点在内
	
	#define	 CLE_TEMPDAT 	2					// 定义在求平均值时,排序后,去掉头尾几个
   												// 修改flash 时送的地址
	#define  ADDRESS_WIRTE_FLASH    0x00  		// 存储地址   

/*************************************************************************************************************
*	函数名称 :
*	功能描述 :
*	实际参数 :
*	返回值   :
*	说明     :
**************************************************************************************************************/

    sbit SO  = P1^6 ;                    /* 数据输入 */    
    sbit SCK = P1^7 ;                    /* 时钟输出 */
	sbit CS0 = P1^5 ;                    /* 从机选择 */
	sbit CS1 = P1^4 ;                    /* 从机选择 */

    sbit Temp_Heat0 = P0^0 ;             /* 第一路加温输出,LED灯指示 */
    sbit Temp_Heat1 = P0^1 ;
    sbit Temp_Heat2 = P0^2 ;
    sbit Temp_Heat3 = P0^3 ;
	sbit Temp_Heat4 = P0^4 ;
	sbit Temp_Heat5 = P0^5 ;
	sbit Temp_Heat6 = P0^6 ;
	sbit Temp_Heat7 = P0^7 ;
	sbit Temp_Heat8 = P2^1 ;
	sbit Temp_Heat9 = P2^0 ;   	 
		
    sbit Temp_Relay0 = P1^0 ;             /* 第一路热电藕继电器控制口 */
    sbit Temp_Relay1 = P1^1 ;
	sbit Temp_Relay2 = P1^2 ;
	sbit Temp_Relay3 = P1^3 ;
	sbit Temp_Relay4 = P2^7 ;
	sbit Temp_Relay5 = P2^6 ;
	sbit Temp_Relay6 = P2^5 ;
	sbit Temp_Relay7 = P2^4 ;
	sbit Temp_Relay8 = P2^3 ;
	sbit Temp_Relay9 = P2^2 ;

	sbit Run_Led  = P3^7 ;             /* 程序运行指示灯,大约1S一次 */

/*************************************************************************************************************
*	函数名称 :
*	功能描述 :
*	实际参数 :
*	返回值   :
*	说明     :	外部变量
**************************************************************************************************************/
	
	extern  bit	Wirte_Flash_Flag ;						// 改写FLASH标志	

	extern uchar code SiteFack_Temp ;  					// 存储设置温度与实际温度相差几度才开始运算 																/* 存储第一路温度在与设置温度差15时,开始控制加温 */	uchar code Road_5s_dat _at_ 0xff01;   					/* 存储第一路温度以5S一个周期控制温度 */
	extern uchar code Check_TempTimeCycle ;   			// 检测温度时间周期 

	extern uchar code Road_AdhystSign[10] ;     		// 第一路修正符号,0为加修正值,1为减修正值

	extern uchar code Road_AdjustDat[10] ; 				// 第一路校正值                                                							 
 	
	extern 	uchar Int0_Time ;							// 累加定时器0中断
	extern  uchar Send_Finger ;							// 发送指针
	extern  uchar Send_Counter ;						// 发送计数器
	extern  uchar Breed_Dat ;							// 数据种类,暂时有4种,F0,E0,D0,C0
	
	extern  uint  xdata Site_TempDat[10] ;				// 设置温度数据

	extern	uint  xdata Fact_Temp[10] ;					// 10路最终平均后的实际温度

	extern	uint  xdata New_Temp[10] ;					// 瞬间值(最新读出的温度值)

	extern 	uchar xdata Thermocouple_Open[10] ;			// 5路热电偶断开标志

	extern  uchar WiteFalsh_Dat[22] ;					// 改写FLASH

	extern  uint  xdata All_Temp0[5][12] ;				// 5段温度,每段12个数值(求平均,头尾去掉两个)
	extern	uint  xdata All_Temp1[5][12] ;
	extern  uchar xdata Send_DatBag[6] ;				// 发送数据包

	extern  uint  xdata Check_TempTime[10] ;							// 检测温度周期时间
	extern  uint  xdata Old_NewTemp[10] ;								// 在前一周期的瞬间时间
	extern  uint  xdata HeatUp_Time[10] ;								// 加热时间


/*************************************************************************************************************
*	函数名称 :
*	功能描述 :
*	实际参数 :        
*	返回值   :
*	说明     :	外部函数
**************************************************************************************************************/

	extern  void InitializeDat(void) ;							// 初始化变量
    extern 	void Delay0(uchar a) ;  							// 延时程序	
	extern  void NeatenTemp(void) ;								// 处理温度		
	extern  void InitialValue1(void) ;							// 载入初值	
	extern  void SendDat(void) ;								// 发送数据
	extern  void ReceiptDat(void) ;								// 接收数据
	extern  void Wirte_Flash_dat(void) ;						// 改写FLSH 
	extern  void HeatUPCheckTempTime(void) ;					// 加温计时,检测温度周期时间计时
	extern  void ControlTemp(void) ;							// 控温
	extern  uchar BCD(uchar temp_data) ;						// 变BCD码

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -