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