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

📄 includes.h

📁 项目是为日本瑞萨工作所做的BAKE炉温控系统 整个文件夹包括设计文档
💻 H
字号:
//[Includes.h]总头文件-----------------------------------------------------*
//本文件包含:                                                              *  
//    主函数(main)文件中用到的头文件、外部函数声明及有关常量命名         *
//-------------------------------------------------------------------------*

//1.包含通用头文件
#include "GP32C.H"          //MCU头文件
#include "Type.h"           //类型别名定义
#include "EnDisInt.h"       //开放或禁止MCU各模块中断头文件

//2.包含面向硬件对象头文件
#include "SCI.h"            //串行通信函数声明
#include "ADC11P.h"         //1片TLC2543采集函数声明
#include "LCD.h"            //LCD驱动函数声明
#include "SwitchOutput.h"   //开关量输出函数声明
#include "Timer.h"          //定时器1相关函数声明
#include "Flash.h"          //擦写Flash函数声明
#include "InputCapture.h"   //定时器2通道0和通道1输入捕捉函数声明
#include "Show.h"

//3.函数声明
void MCUInit(void);         //芯片初始化

//4.常量声明 (常量以C_打头)
//4.1报警灯中各部分所在引脚
#define C_GreenLight  1     //绿灯所在引脚
#define C_YellowLight 2     //黄灯所在引脚
#define C_BakeSw      3     //Bake阀所在引脚
#define C_CoolSw      4     //Cool阀所在引脚
#define C_RedLight    5     //红灯及蜂鸣器所在引脚
//4.2与温度有关
#define C_TmpBound   2000   //最高最低温度差,300度,精确到0.1度
#define C_MinTmp     25     //可显示的最低温度
#define C_TmpPC      10      //温度偏差允许AD值变化范围
//4.3与时间有关
#define C_TimBound   1200   //最长最短时间差,10小时*60=600分钟,精确到0.1分
#define C_MinTim     5     //可显示的最短时间(分钟)
//4.4电位器旋至最大时的AD值
#define C_RADMax      3276
//4.5与红外传感器有关
#define C_Exist      0xA0  //有无物体时所采红外传感器的AD值边界值

//5.全局变量声明
                     //外部定义64个字节的Lcd显示缓冲区
INT8U LcdShowBuff[64]="                "
                      "                "    
                      "                "   
                      "            青星";
INT16U ADValue[11];      //11路A/D采集数据
INT16U CurtTmp;      //当前温度
INT16U Temper;       //设定温度
INT16U CurtTime;     //当前时间
INT16U Time;         //设定时间
INT16U Infrared;     //红外传感器当前值
INT8U ScdTim;        //计时秒数
INT16U MntTim;       //计时分数
INT16U ADCurtTmp;    //校准当前温度时写flash更改TADmax
INT16U TmaxAdjust;   //PC发来的当前温度校准值
INT8U NewMCUno;      //PC发来的新MCU号
INT8U CaptureTime;   //捕捉中断用来记上次中断发生时间防"抖动"

INT8U StateFlag;     //执行流程标志
INT8U CoolFlag;      //初始为0,将物体放入Cool箱后置1,取出时清0
INT8U ResetFlag;     //红灯闪后按复位按钮,置此标志;在输入捕捉中被置1
INT8U BakeFlag;      //黄灯闪后按Bake炉电源手动开关,置此标志
INT8U SendFlag;      //是否需要向PC发送参数的标志
INT8U FlashFlag1;    //因为校准值要写Flash的标志
INT8U FlashFlag2;    //因为改MCU号要写Flash的标志
INT8U  N;     //写入数据的个数
INT8U  FlashData[110]; //写入的数据
INT16U pbase,pend,faddr;

//6.存入Flash的常量
//6.1程序运行中修改的参数复位后仍要有效的数据应存入Flash
#pragma abs_address:0x8000          //常量存入Flash首地址0x8000 
/**/
const INT8U  MCUno=131;             //MCU号
const INT8U  Tmin=25;               //可设定的最低温度
const INT16U  Tmax=180;             //可设定的最高温度
const INT16U  TADmin=0x0080;        //最低温度对应的AD值
const INT16U  TADmax=0x0181;        //最高温度对应的AD值
#pragma end_abs_address

#pragma abs_address:0x8080
const INT16U ADtoPHY_X[10]={635,663,718,781,844,908,1011,1062,1113,1235};//AD值
const INT16U ADtoPHY_k1[10]={0,0,0,0,0,0,0,0,0,0};          //k整数部分
const INT16U ADtoPHY_k2[10]={0x27,0x122,0x122,0x11E,0x119,0x113,0x10C,0xE7,0xCD,0xA2};     //k小数部分
const INT16U ADtoPHY_b0[10]={0,1,1,1,1,1,1,1,1,0};          //b符号
const INT16U ADtoPHY_b1[10]={0,0x9E,0x9E,0x99,0x93,0x8B,0x82,0x55,0x35,0};          //b整数部分
const INT16U ADtoPHY_b2[10]={0,0x199,0x13D,0x27A,0x1BA,0x38B,0x322,0x223,0x46,0};          //b小数部分
#pragma end_abs_address

//6.2数据量比较大时应该存入Flash
#pragma abs_address:0x8100          //编码存入Flash首地址0x8080 
const INT16U BigNumCode[320]={      //32*16点阵数字编码首地址
 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0380,0x0C60, //"0"
 0x0830,0x1830,0x3018,0x3018,0x3018,0x3018,0x701C,0x701C,
 0x701C,0x701C,0x701C,0x3018,0x3018,0x3018,0x3018,0x1830,
 0x1830,0x0C60,0x0380,0x0000,0x0000,0x0000,0x0000,0x0000,
 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0040,0x03C0, //"1"
 0x03C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,
 0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,
 0x01C0,0x01C0,0x0FF8,0x0000,0x0000,0x0000,0x0000,0x0000,
 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07C0,0x1FF0, //"2"
 0x3078,0x603C,0x403C,0x001C,0x001C,0x001C,0x0018,0x0038,
 0x0030,0x0060,0x0040,0x00C0,0x0180,0x0300,0x0600,0x0C02,
 0x1806,0x3FFC,0x7FFC,0x0000,0x0000,0x0000,0x0000,0x0000,
 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07C0,0x0FF0, //"3"
 0x1878,0x2038,0x0018,0x0018,0x0010,0x0020,0x0040,0x01F0,
 0x07F8,0x00F8,0x003C,0x001C,0x000C,0x000C,0x000C,0x0008,
 0x3810,0x3C20,0x1FC0,0x0000,0x0000,0x0000,0x0000,0x0000,
 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0030,0x0070, //"4"
 0x00F0,0x00F0,0x0170,0x0170,0x0270,0x0470,0x0470,0x0870,
 0x1870,0x1070,0x2070,0x6070,0x7FFE,0x7FFE,0x0070,0x0070,
 0x0070,0x0070,0x0070,0x0000,0x0000,0x0000,0x0000,0x0000,
 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03F8,0x07F0, //"5"
 0x07F0,0x0800,0x0800,0x1E00,0x1F80,0x3FE0,0x03F0,0x00F0,
 0x0078,0x0038,0x0018,0x0018,0x0018,0x0018,0x0010,0x0030,
 0x3060,0x3FC0,0x1F00,0x0000,0x0000,0x0000,0x0000,0x0000,
 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x003C,0x00E0, //"6"
 0x0380,0x0700,0x0E00,0x1C00,0x1800,0x3800,0x33E0,0x7C70,
 0x7038,0x703C,0x701C,0x701C,0x701C,0x701C,0x301C,0x3818,
 0x1830,0x0C70,0x07C0,0x0000,0x0000,0x0000,0x0000,0x0000,
 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x1FFE,0x3FFE, //"7"
 0x3FFC,0x200C,0x401C,0x0018,0x0018,0x0038,0x0030,0x0030,
 0x0070,0x0060,0x0060,0x00E0,0x00C0,0x00C0,0x01C0,0x0180,
 0x0180,0x0380,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, 
 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07E0,0x0C38, //"8"
 0x1818,0x381C,0x381C,0x381C,0x3C38,0x1E30,0x0F60,0x0780,
 0x03E0,0x05F0,0x0CF8,0x1878,0x383C,0x381C,0x381C,0x381C,
 0x1C18,0x0E30,0x07E0,0x0000,0x0000,0x0000,0x0000,0x0000,
 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07C0,0x0C70, //"9"
 0x1838,0x301C,0x701C,0x700E,0x700E,0x700E,0x700E,0x780E,
 0x380E,0x1C1E,0x0FEC,0x001C,0x0038,0x0030,0x0070,0x00E0,
 0x0180,0x0F00,0x7800,0x0000,0x0000,0x0000,0x0000,0x0000};
#pragma end_abs_address

⌨️ 快捷键说明

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