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

📄 total.h

📁 这个是汽车制动台控制程序的C语言版本. 用于实际产品中.单片机用的是PIC16F877A.
💻 H
字号:
/*****************************************************************************************************************
* 在这个文件中说明所有的全局变量
* 声明所有的外部函数
* 说明: 1 轴重的AD通道号为0
*		  制动力的AD通道号为1
*****************************************************************************************************************/
#ifdef	MT_GLOBALS								//MT => Motor Trig	摩托车制动
#define MT_EXT
#else 
#define MT_EXT extern
#endif

//定义信号量
#define FALSE	0		//假
#define TRUE	1		//真

//定义AD转换对象
#define	FORCE	0		//制动力
#define	WEIGH	1		//轮重

//定义数字
#define		ZER0	0
#define 	ONE		1
#define		TWO		2
#define		THREE	3

//输入端口定义
#define WEIGH_DEMA	 	RB0		//轴重标定
#define	FORCE_DEMA		RB1		//制动标定
#define	ARRIVE			RB2		//到位信号(检测制动)
#define BACK_ARRIVE		RE0		//后轮检测信号
#define ESC 			RC0		//退出
#define MOVE			RC1		//移位
#define ENSURE			RC2		//确认
#define ADD_ONE			RC5 	//加1
//输出端口定义
#define ENABLE_273		RA3		//使能273
#define ENABLE_DISPLAY	RE1		//使能显示输出		
#define FRONT_CLOSE		RD0		//前夹紧器
#define	BACK_CLOSE		RD1		//后夹紧器
#define LIGHT			RD2		//制动灯
#define MOTOR 			RD3		//电机
#define LOCK			RD4		//锁(用于出车)

//前后宏定义
#define	FRONT			0		//前 
#define	BACK			1		//后

//10mS去抖动延时参数
#define D_SHAKE_H	8	
#define	D_SHAKE_L	250

//定义标定数据在EEPROM中存放的地址
#define FORCE_ADDRESS	0x0
#define	WEIGH_ADDRESS	0x40

//定义上位机的命令字
#define NO_WEIGH		0x01			//无需检测轮重	
#define NO_TRIG			0x02			//无需检测制动
#define CHECK_F_WEIGH	0x03			//检测前轮轮重
#define CHECK_B_WEIGH 	0x04			//检测后轮轮重
#define	CHECK_F_FORCE	0x05			//检测前轮制动力
#define CHECK_B_FORCE	0x06			//检测后轮制动力

//定义数组大小
#define DEMA_POINT_SIZE	  19		//定义制动力标定数组的大小
#define	DISPLAY_SIZE	  3
#define SEND_DATA_SIZE	  10

//全局变量定义区
MT_EXT unsigned short display_data[DISPLAY_SIZE];	//显示数据
MT_EXT bank1 short dema_force[DEMA_POINT_SIZE];		//制动力标定数组
MT_EXT bank1 short dema_weigh[DEMA_POINT_SIZE];		//轴重标定数组
MT_EXT bank2 unsigned char send_buffer[SEND_DATA_SIZE];			//向上位机发送数据数组
MT_EXT bank2 short f_motor_weigh;					//前轴轴重
MT_EXT bank2 short b_motor_weigh;					//后轴轴重
MT_EXT bank2 short f_trig_force;					//前轴制动力	
MT_EXT bank2 short b_trig_force;					//后轴制动力
MT_EXT bank2 short f_compare;						//前轴制动性能
MT_EXT bank2 short b_compare;						//后轴制动性能
MT_EXT bank2 volatile unsigned char command;		//上位机的命令
MT_EXT bank2 volatile unsigned char weigh_side;		//轮重标识
//MT_EXT bank2 volatile unsigned char trig_side;		//制动标识
MT_EXT bank2 unsigned char display_weigh;			//显示重量

//外部函数定义区
extern void System_Init(void);										//系统初始化函数
extern void Init_Tmr1(void);										//TMR1初始化函数
extern void SelectDisplay273(void);									//选通输出273
extern void Display(unsigned short *ptr,unsigned char number);		//显示函数
extern void Normal_Display(void);
extern unsigned short Adc_Adverage(unsigned char channel);			//读取AD函数
extern void Delay(unsigned short i,unsigned short j);  			 	//延时函数
extern void Send_Computer(bank2 unsigned char *ptr, unsigned char number);//向上位机发送数据函数
extern short Count_Force(unsigned short *dema_point, unsigned short ad_result);		//计算力函数
extern unsigned char My_Write(bank1 short *data, unsigned char number, unsigned char address);	//向EEPROM写数据函数
extern unsigned char My_Read(bank1 short *data, unsigned char number, unsigned char address);	//从EEPROM中读数据
extern unsigned char Dema(short *dema_point, unsigned char object,unsigned char address);		//制动力标定函数
extern void Dema_Release(void);
extern unsigned char Measure_Weigh(void);				//轮重检测函数
extern unsigned char Measure_Trig(unsigned char side);							//制动检测函数
extern void Clear_Zero(unsigned short *ptr,unsigned  short ad_change);				//清0函数
extern unsigned short Bcd_Hex(unsigned short i);					//BCD码转换16进制数函数
extern unsigned short Hex_Bcd(unsigned short i);					//16进制数转BCD码函数

⌨️ 快捷键说明

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