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