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

📄 ddcjc.h

📁 电动车测试平台控制系统。自动测量电动车各项参数
💻 H
字号:
#ifndef DDCJC_H
#define DDCJC_H	  	

#include <reg52.h>
#include <intrins.h>
#include <math.h> 

#define uchar  unsigned char
#define uint   unsigned int
#define byte   unsigned char
#define word   unsigned int
#define dword  unsigned long 

#define FALSE 0
#define TRUE ~FALSE
#define HIGH 1
#define LOW 0

sbit DAT_595   = P0^0;  //595引脚
sbit CLK_595   = P0^1;
sbit STB_595   = P0^2;
sbit SEL_595   = P0^3;
sbit TRIP_PIN  = P0^7;
sbit PRT_BUSY  = P3^0;
sbit PAPER_OUT = P1^7;
sbit COM_SEL   = P1^6;

#include "PCF8583.h"
//#include "CRC.h"
#include "TLC2543.h"

typedef union _WordType
{
	word w;
	byte b[2];
}WordType;

typedef union _DwordType
{
	dword dw;
	word w[2];
	byte b[4];
}DwordType; 

//T0
#define TH0_VAL 0x55  //50ms
#define TL0_VAL 0xE6
//T1
#define TH1_VAL 0xFC   //1ms
#define TL1_VAL 0x66   
//T2
#define TH2_VAL 0xEE   //5ms	
#define TL2_VAL 0x00

#define RATE_TIME 200

#define DISPLAY_BUF_LEN 9
#define DISPLAY_BUF_SIZE 18
#define BUF_SIZE 30

#define PERPULSE 15
#define PREHZ 1
#define NVALUE 60
#define DIA	406

#define PI 314

#define TIMEOUT 250

#define ZERORATE 30

#define START_STATUS 0
#define UNDER_STATUS 1
#define OVER_STATUS  2
#define END_STATUS   3

#define ALL_MODE     0
#define NOV_MODE	 1
#define NOA_MODE     2
#define OLR_MODE     3

#define AUTO_PRINT   1
#define HAND_PRINT   0

#define MAX517_ADDR  0x5A

/***********************显示缓冲区**************************/
uchar idata DispBuf[DISPLAY_BUF_SIZE];
uchar idata DispIndex;//当前显示的数据下标

/***********************通信缓冲区**************************/
uchar idata UartBuf[BUF_SIZE];
uchar idata Uindex;
uchar idata UartLength;
uchar idata PrintIndex;

uchar idata TimeBuf[4];	
//uchar idata cBaseYear;

uint  idata NValue;       //N值
uint  idata Dia;          //直径
uint  idata Bike;         //电动车直径
uint  idata PulseCount;   //脉冲计数器
uint  idata PerTime;      //单位一脉冲的时间
uchar idata PreCount;     //预分频计数器
uchar idata ShineTimes;   //闪烁延时

uint idata DisPulse;	  //里程脉冲
uint idata KilDistance;   //里程(整数部分)
uint idata Distance;      //里程(小数部分)
uint idata uLength;       //不满1米的距离  
uint idata DisTheory;     //理论续航值

//uint idata Rev;         //转速
int idata Rate;           //速度 
int idata OldRate;        //前一检测速度
uchar idata ZeroRate;     //0速度比较值
uint idata Voltage;	      //电压
uint idata Current;       //电流

uint idata MaxRate;       //最大速度
uint idata RateVoltage;   //最大转速时电压
uint idata RateCurrent;   //最大转速时电流
uint idata MinVoltage;    //电压最小值
uint idata MaxCurrent;    //电流最大值
uchar idata Battery;      //电池容量

uint idata Wheel;         //轮子周长

uint idata OptDistance;   //设置里程
uint idata OptRate;       //设置车速 
uint idata OptCurrent;    //设置电流
uint idata OptVoltage;    //设置电压
uint idata OptKilDis;    //设置里程公里整数部分
uint idata OptDis;       //设置里程公里小数部分

uint idata RecordIndex;  //记录编号

uchar idata CodeIndex[4] = {0, 0, 0 ,0};  //段码下标,依次对应片1, 2, 3, 4

//键盘选择
uchar idata OptIndex;    //设置选项
bit   bdata IsShine;     //闪烁
bit   bdata IsOption;	 //进入设置状态
uchar idata ShiftIndex;	 //当前闪烁位置
uchar idata ShineTime;   //闪烁时间
uchar idata DataIndex;   //置数选项
uchar idata BikeIndex;   //轮子直径选项下标
uchar idata ModeIndex;   //测试模式
uchar idata PrinterIndex;  //打印模式 
//uchar idata FlashTime;   //电压刷新频率

//报警标志
bit bdata bDistAlarm;    //里程报警
bit	bdata bRateAlarm;    //速度报警
bit bdata bVoltAlarm;    //电压报警
bit bdata bCurrAlarm;    //电流报警
bit bdata bSaved;        //保存标志
bit bdata bPause;        //刹车开始标志
bit bdata bPauseOver;    //刹车测试结束
uchar idata AlarmTime;   //报警时间
 
bit bdata bStartTime;    //开始测试标志
bit bdata bStartFlag;   //开始测速标志
bit bdata bDispTime;
uint idata StartTime;    //启动时间

uint idata DispPause;    //显示刹车时间
uchar idata CheckStatus; //检测状态

bit bdata bUndered;      //采集到电压标志

uchar code LED_CODE[17] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,
                           0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71,
						   0x40};
uchar code DIA_SEL[5] = {16, 18, 20, 22, 24};

void InitSys ();       //系统初始化 
void ClearAllData (void);         //所有数据清零 
//uchar BCDToBin (uchar uBCD);	  //BCD码转成2进制
//uchar BinToBCD (uchar uBin);      //2进制转成BCD
uchar GetYear (uchar uBCD);       //得到年份
uchar GetDate (uchar uBCD);       //得到日期
uchar GetWeekday (uchar uBCD);  //得到星期
uchar GetMonth (uchar uBCD);      //得到月份 
void GetDateTime ();          	  //得到日期和时间
 
void SendLED (uchar *DataBuf);  	   //595输出
void Display (void);                   //显示数据
void IntToLED (uint uData, uchar uLength, uchar uDotPos, bit bIsDot, bit bClear, uchar StartIndex);  //数据转换到LED
void Delay (uint time1, uint time2);   //延时
uint read2543(uchar port);             //读TLC2543
void DisplaySysTime ();     //显示系统时间 
void ClearLED ();   //清除屏幕
uchar ReadKey ();   //读键盘  
uint GetResult (uchar uLen); 	//得到键盘输入值
void InitCodeIndex (uint Data);   //得到置数下标
uint GetWheel ();   //得到轮子周长
void GetBike ();    //轮子直径
void ReadParam ();  //读参数设置
void WriteParam (); //写参数设置
void WriteDateTime();  //写日期时间
void SaveRecord (); //写当前鉴定记录
void InitUart ();   //T2复用,用于通信
void Printer (uchar uIndex);    //打印文字
void InitT2 ();     //T2复用,用于计时 
void GetVoltage (); //读电压
void GetCurrent ();	//读电流
void DispMode();    //显示模式
#endif

⌨️ 快捷键说明

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