📄 variable.h
字号:
/***************************宏定义*********************************************************************/
//////////////SMBUS////////////////
#define WRITE 0x00 // SMBus WRITE command
#define READ 0x01 // SMBus READ command
#define CHIP_A 0xA0 // Device address for chip A
// SMBus states:
// MT = Master Transmitter
// MR = Master Receiver
#define SMB_BUS_ERROR 0x00 // (all modes) BUS ERROR
#define SMB_START 0x08 // (MT & MR) START transmitted
#define SMB_RP_START 0x10 // (MT & MR) repeated START
#define SMB_MTADDACK 0x18 // (MT) Slave address + W transmitted;
// ACK received
#define SMB_MTADDNACK 0x20 // (MT) Slave address + W transmitted;
// NACK received
#define SMB_MTDBACK 0x28 // (MT) data byte transmitted; ACK rec'vd
#define SMB_MTDBNACK 0x30 // (MT) data byte transmitted; NACK rec'vd
#define SMB_MTARBLOST 0x38 // (MT) arbitration lost
#define SMB_MRADDACK 0x40 // (MR) Slave address + R transmitted;
// ACK received
#define SMB_MRADDNACK 0x48 // (MR) Slave address + R transmitted;
// NACK received
#define SMB_MRDBACK 0x50 // (MR) data byte rec'vd; ACK transmitted
#define SMB_MRDBNACK 0x58 // (MR) data byte rec'vd; NACK transmitted
/////////////按键//////////////////////
#define REG_KEY 0x13
#define NO 5
#define YES 4
#define DOWNKEY 3
#define UPKEY 2
#define RIGHTKEY 1
#define LEFTKEY 0
////////////主菜单//////////////////////
#define MEASURE 0x40 //测量
#define ADJUST_ZERO 0x50 //调零
#define CALIBRATION 0x60 //校准
#define SHEZHI 0x70 //设置
#define LOUJIAN 0x80 //漏检
#define EDITION 0x90 //版本信息
#define SEARCH_CAR 0xa0 //查询记录
////////////设置子菜单//////////////////////
#define LIGHT 0x40 //亮度调节
#define SERIES 0x50 //串口设置
#define REST 0x60 //转速设置
#define CLMS 0x70 //测量方式
#define rlxz 0x80 //燃料选择
#define settime 0x90 //时间设置
//////////////////////////////////////////////
#define CAR_INPUT 0x40 //车牌号码输入
#define CAR_SEARCH 0x50 //查询车牌数据
#define CAR_MAIN 0x60 //进入主菜单
////////////////机芯/////////////////////////
#define COMMAND_STATUS 0x01
#define COMMAND_DATA 0x40
#define COMMAND_ZERO 0x19
#define ACK 0x06
////////////////A/D////////////////////////////
#define ADCTRL_EA0 0x60
#define ADCTRL0 0x40
#define ADCTRL_EA1 0x61
#define ADCTRL1 0x41
///////////////LCD/////////////////////////////
#define LCD_Command P5
#define LCD_Data P5
///////////////延时5秒/////////////////////////
#define FM_TIME 50
////////////////////////////////////////////////////
#define N_ad 10
#define N_ad_NO 10
//////////////////////////////////////////////////////////////
/***************************定义引脚******************************************************************/
///////////A/D//////////////
sbit ADNOTREADY=P3^7;
//////////////串口选择/////////////
sbit uartctrl_low =P2^6;
sbit uartctrl_high=P2^7;
///////////键盘/////////////
sbit dat=P2^2; // dat 连接于 P3.5
sbit key=P2^1;
sbit clk=P2^0; // clk 连接于 P3.3
///////////液晶////////////
sbit RST=P1^2;
sbit BSY=P1^7;
sbit CS1=P1^6;
sbit EN=P1^5;
sbit RW=P1^4;
sbit RS=P1^3;
///////////其它/////////////
sbit pump=P2^5;//泵
sbit valve=P2^4;//阀
sbit buzzer=P2^3;//蜂鸣器
/***********************地址变量******************************************************/
xdata volatile unsigned char ad_addr0 _at_ 0x3fff;//低8位输出
xdata volatile unsigned char ad_addr1 _at_ 0x7fff;
xdata volatile unsigned char ds_second _at_ 0xdf00;// 1101 1111 0000 0000
xdata volatile unsigned char ds_minute _at_ 0xdf02;
xdata volatile unsigned char ds_hour _at_ 0xdf04;
xdata volatile unsigned char ds_weekday _at_ 0xdf06;
xdata volatile unsigned char ds_day _at_ 0xdf07;
xdata volatile unsigned char ds_month _at_ 0xdf08;
xdata volatile unsigned char ds_year _at_ 0xdf09;
xdata volatile unsigned char ds_regA _at_ 0xdf0A;
xdata volatile unsigned char ds_regB _at_ 0xdf0B;
xdata volatile unsigned char ds_regC _at_ 0xdf0C;
xdata volatile unsigned char ds_regD _at_ 0xdf0D;
xdata volatile unsigned char ds_century _at_ 0xdf32;
/**************************************************************************************/
///////////////SMBUS//////////////////////////////
/******************************************************************************************
* 全局变量定义
******************************************************************************************/
char COMMAND; // Holds the slave address + R/W bit for
// use in the SMBus ISR.
char WORD; // Holds data to be transmitted by the SMBus
// OR data that has just been received.
char BYTE_NUMBER; // Used by ISR to check what data has just been
// sent - High address byte, Low byte, or data
// byte
unsigned char HIGH_ADD, LOW_ADD; // High & Low byte for EEPROM memory address
bit SM_BUSY; // This bit is set when a send or receive
// is started. It is cleared by the
// ISR when the operation is finished.
///////////////ds////////////////////////////////////////////
xdata unsigned char second,minute, hour,day,month,year;
xdata unsigned char ptminute,pthour,ptday,ptmonth,ptyear;
//////////////////////////////////////////////////////////
xdata unsigned int ad_resulth,ad_resultl;//ad转换值高低字节
xdata unsigned int val_lambda_1,val_lambda_2,Temperature_1,Temperature_2;//高低怠速的lambda和温度
xdata unsigned int co_con,co2_con,o2_con,hc_con;//通用测量时的数据
xdata unsigned int no,no_con,no_zero;
/*xdata unsigned int nospan_x;
xdata unsigned int nospan_0;
xdata unsigned int nospan_1;
xdata unsigned int nospan_2,nospan_3;
xdata unsigned int nospan_4,nospan_5;
xdata unsigned int nospan_6,nospan_7;
xdata float nospan,nosensorvolt;
*/
xdata unsigned char jiajia;//判断延时时是否按键
xdata unsigned char biaozhi;///高低怠速标志
xdata unsigned char Temp_Stroke,Temp_Cylinder4,Temp_Cylinder2;//冲程和汽缸
xdata unsigned char car_number[7]={0,55,81,82,83,84,85};
//xdata unsigned char car_number[7]={91,91,91,91,91,91,91};
xdata unsigned char car_data[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; //数据存储
xdata unsigned char date[5]={0,0,0,0,0 }; //
xdata unsigned char Stroke,Cylinder4,Cylinder2;//冲程和汽缸
xdata unsigned char ArrowHeadY,ArrowHeadY1;
xdata unsigned char diii;//测量方式标志位 0:通用,1:双怠速
xdata unsigned char GDdai;//怠速类型50:高怠速(数据)70:怠速(数据)
xdata unsigned char Star;//串口设置 50:与打印机通讯 70:与微机通讯
xdata unsigned char clcs;//测量次数1:高怠速2:怠速
xdata unsigned char cjcs;//调节校准值用的横坐标,计算高低怠速平均值时的总次数
xdata unsigned char XUANZE;//测量方式(通用/双怠速)
xdata unsigned char pc_test;
xdata unsigned int Pressure;
//以下是双怠速时的测量值
xdata unsigned int T_IS_7,T_IS_h;//双怠速法测量时的额定转速的70%和高怠速(额定转速的50%)
xdata unsigned int co_con_1,co2_con_1,o2_con_1,hc_con_1,no_con_1,Idle_Speed_h;//高怠速数据
xdata unsigned int co_con_2,co2_con_2,o2_con_2,hc_con_2,no_con_2,Idle_Speed;//怠速数据
xdata unsigned long int no_cons,co_cons,co2_cons,o2_cons,hc_cons,Idle_Speeds;
xdata float frequency;
xdata unsigned char Coefficient;
//以上是双怠速时的测量值
xdata unsigned char COMMAND_CODE;//机芯命令码
xdata unsigned char keynumber;//按键值
xdata unsigned char xuanze2;//燃料选择fuel_opt
xdata unsigned char Temp;//临时变量
xdata unsigned char x1000,x100,x10,x1;//数据的千百十个位
xdata unsigned char flag_success;//接收成功标志位
xdata unsigned char rx_array[20];//接收数据的数组
xdata unsigned char bright=0x30;//亮度,写入LCD值为0x20 ~0x3f,对应设定值为0~31
xdata unsigned char byte_sel=91,position_sel=0,yuyan_sel=0;//选择车牌的变量
xdata unsigned int val_lambda;
xdata unsigned int Temperature,T_filter[N_ad];
xdata unsigned int Speed;//通用时转速的测量值
xdata unsigned int mem_position=0,current_position=0,head_position=0; //存储器位置变量memory position 0~399;
xdata unsigned int *int_ptr;
/////////////////////////////////////////////////////////////////////
union Float_or_uchar
{
float flt;
unsigned char fltc[4];
};
union Float_or_uchar changetype;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -