📄 define.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 + -