📄 head.h
字号:
//**************************************************************************************************************************
#define DeviceNum 1 // 设备地址号
#define SYSCLK 24000000 // 系统主晶振
#define BAUDRATE 115200 // 串口波特率
#define SAM_NUM 100 // N次平均的次数
#define RunLedFre 4 // 运行指示灯闪烁频率(80=0.5Hz 40=1Hz 20=2Hz 4=10Hz)
#define TimeFre 20 // 时间显示刷新频率(80=0.5Hz 40=1Hz 20=2Hz 4=10Hz)
#define RtuDataLong 100 // RTU地址数据长度
#define WC256 0xA0 ` // CAT24WC256基地址
#define EEPROM_CAP 0x8000 // EEPROM的最大容量
#define HollDateLong 1000 // 霍尔数据存储长度
#define MaxWellSaveNum 30 // 保存所有井数量
#define MainShowAddr 10 // 仪器名称显示起点
#define TimeShowAddrX 40 // 时间显示起点-横坐标
#define TimeShowAddrY1 26 // 时间显示起点-纵坐标1
#define TimeShowAddrY2 36 // 时间显示起点-纵坐标2
#define WellNumShowAddrX 40 // 井名显示起点-横坐标
#define WellNumShowAddrY 30 // 井名显示起点-纵坐标1
#define DISPLAY_LINE_NUM 7 // 每页显示井次数
//**************************************************************************************************************************
struct wellindex_name_date
{
unsigned char Num; // 井名
unsigned char BeginDate[9]; // 开始日期 YY-MM-DD
unsigned char BeginTime[9]; // 开始时间 HH:MM:SS
unsigned char index_num; // 井数据存储位置
};
//**************************************************************************************************************************
sbit TIME_CLK = P1^7; // 时钟口
sbit TIME_IO = P1^6; // 数据口
sbit TIME_RST = P1^5; // 复位口
sbit KEYLED = P1^4; // 按键指示灯.0:开 1:关?
sbit EE_SCL = P0^7; // EEPROM-SCL
sbit EE_SDA = P0^6; // EEPROM-SDA
sbit CTRL485 = P0^5; // 485控制口
sbit HOLL = P0^4; // HOLL信号口
sbit CS_LCD = P2^3;
sbit A0 = P2^2;
sbit WR = P2^1;
sbit RD = P2^0;
sbit IN_KEY_ROW = P2^4;
//**************************************************************************************************************************
#define KEY_OUT1_1 P2 |= 0x10;// P2.4
#define KEY_OUT1_0 P2 &=~0x10;// P2.4
#define KEY_OUT2_1 P2 |= 0x20;// P2.5
#define KEY_OUT2_0 P2 &=~0x20;// P2.5
#define KEY_CLK_1 P2 |= 0x40;// P2.6
#define KEY_CLK_0 P2 &=~0x40;// P2.6
#define KEY_DATA_1 P2 |= 0x80;// P2.7
#define KEY_DATA_0 P2 &=~0x80;// P2.7
//**************************************************************************************************************************
//#define SYSTEM_CLOSE = P5^7; // 系统关机键.0:按下 1:未按下
#define POWER_ON {P5 |= 0x20;} // P5.5 系统电源.0:关 1:开
#define POWER_OFF {P5 &=~0x20;} // P5.5 系统电源.0:关 1:开
#define SOUND_ON {P5 &=~0x10;} // P5.4 蜂鸣器.0:开 1:关
#define SOUND_OFF {P5 |= 0x10;} // P5.4 蜂鸣器.0:开 1:关
#define LED1_ON {P5 &=~0x08;} // P5.3 指示灯1.0:开 1:关
#define LED1_OFF {P5 |= 0x08;} // P5.3 指示灯1.0:开 1:关
#define LED1_CHANGE {P5 ^= 0x08;} // P5.3 指示灯1.0:开 1:关
#define LED2_ON {P5 &=~0x04;} // P5.2 指示灯1.0:开 1:关
#define LED2_OFF {P5 |= 0x04;} // P5.2 指示灯1.0:开 1:关
#define LED2_CHANGE {P5 ^= 0x04;} // P5.3 指示灯1.0:开 1:关
#define LED3_ON {P5 &=~0x02;} // P5.1 指示灯1.0:开 1:关
#define LED3_OFF {P5 |= 0x02;} // P5.1 指示灯1.0:开 1:关
#define LED3_CHANGE {P5 ^= 0x02;} // P5.3 指示灯1.0:开 1:关
#define LED4_ON {P5 &=~0x01;} // P5.0 指示灯1.0:开 1:关
#define LED4_OFF {P5 |= 0x01;} // P5.0 指示灯1.0:开 1:关
#define LED4_CHANGE {P5 ^= 0x01;} // P5.3 指示灯1.0:开 1:关
#define RETURN_KEY 0x1D
#define UP_ARROW_KEY 0x1B
#define DOWN_ARROW_KEY 0x1A
#define LEFT_ARROW_KEY 0x18
#define RIGHT_ARROW_KEY 0x14
//**************************************************************************************************************************
// MAIN.C
void main(void); // 系统主函数
void FeedDog(void); // 喂狗
void DisableDog(void); // 关闭看门狗
void CRYSTAL_INIT(void); // 晶振初始化
void PORT_INIT(void); // 管脚初始化
void SoftReset(void); // 系统软复位
void Delay_ms(unsigned int mini); // 延时
//**************************************************************************************************************************
// INTERFACE.C
void Sys_Function(void);
void Date_Test(void);
void Sys_Setup(void);
void Input_Time(void);
void Input_WellNameNum(void);
void Set_Test_Time(void);
void ReNew_All_Date(void);
void Date_Index(void);
void Clear_ALL_Date(void);
//**************************************************************************************************************************
// COM.C
void Com0_Init(void);
void Com0_Send_Char(unsigned char datas);
void Com0_Send_String(unsigned char *string,unsigned int bytes);
unsigned char Com0_Get_Char(void);
void Com1_Init(void);
void Com1_Send_Char(unsigned char datas);
void Com1_Send_String(unsigned char *string,unsigned int bytes);
unsigned char Com1_Get_Char(void);
void Com_Send_String(unsigned char *string,unsigned int bytes,unsigned char flag);
//**************************************************************************************************************************
// TIMER.C
void Timer3_INIT(void);
void Timer0_Init(void);
void Timer0_ReSet(void);
//**************************************************************************************************************************
// HOLL.C
void Holl_Init(void);
void DI_Station(void);
//**************************************************************************************************************************
// LED_SPEAK.C
void LED_Init(void);
//**************************************************************************************************************************
// TIMER.C
void Timer3_Init(void);
//**************************************************************************************************************************
// RTU.C
void RTU_Data(void);
void Write_RTU_4(unsigned int firstadress,unsigned int bytes);
void Read_RTU_4(unsigned int firstadress,unsigned int bytess);
void Pocket(unsigned char * Data,unsigned char D_Long);
unsigned int CRC16(unsigned char *buf,int start,int cnt);
//**************************************************************************************************************************
// AD.C
void ADC_Init(void);
void ADC_Work(void);
//**************************************************************************************************************************
// EEPROM.C
void EEPROM_Init(void);
void Start_I2C(void);
void Stop_I2C(void);
bit WriteEepromByet(unsigned char c);
unsigned char ReadEepromByet(void);
void Ack_I2C(bit a);
bit Write_Eeprom(unsigned int add,unsigned char date);
unsigned char Read_Eeprom(unsigned int add);
void Some_nop(unsigned char num);
bit Write_Well_date(unsigned int add,unsigned char * date,unsigned int D_Long);
void UpLoadWellDateTure(unsigned char truenum);
void UpLoadWellDate(unsigned char num);
void Well_Show(unsigned char num);
bit EEPROM_TEST(void);
//**************************************************************************************************************************
// TIME.C
void DS1302_Init(void);
void DS1302_Write_Byte(unsigned char addr,unsigned char dat);
unsigned char DS1302_Read_Byte(unsigned char addr);
void DS1302_Write(unsigned char * input_clock);
void DS1302_Read(void);
//**************************************************************************************************************************
// KEY.C
bit key_line_in(void);
void key_line_out(unsigned char out_data);
void delay(int n);
unsigned char get_key(unsigned char countinue_dir);
//**************************************************************************************************************************
// FLASH.C
//**************************************************************************************************************************
// LCD.C
void LCD_C_D(bit flag,unsigned char ldata);
void LCD_CLEAR(void);
void ChangeV(unsigned char jj);
void LCD_INIT(void);
void Display_Data(void);
void LCD_Cursor_Show(unsigned char lay_y,unsigned char lay_x);
unsigned char LcdDataChange(unsigned char datas);
void draw_line(unsigned char x1, unsigned char y1,unsigned char x2, unsigned char y2);
void display_hz1212(unsigned char* hz_idptr,unsigned char page,unsigned char column);
void disp_chn_str(unsigned char *addr_da, unsigned char disp_y,unsigned char disp_x,unsigned char x_step,unsigned char zishu);
void display_asc8x8(char asc_position,unsigned char page, unsigned char column, char val,unsigned char fx);
void display_asc8x6(unsigned char *data_ptr,unsigned char page, unsigned char column, char val,unsigned char fx);
void display_hz1212(unsigned char* hz_idptr,unsigned char page,unsigned char column);
void disp_chn_str(unsigned char *addr_da, unsigned char disp_y,unsigned char disp_x,unsigned char x_step,unsigned char zishu);
void LCD_DispStr(unsigned char *addr_da, char disp_x, char disp_y);
void LCD_SHOW_TIME(void);
void LCD_SHOW_ADC(void);
void LCD_SHOW_DAC(void);
void LCD_SHOW_DI(void);
void LCD_SHOW_BatVol(void);
void LCD_SHOW_KEY(unsigned char keybutton);
void LCD_SHOW_WellSaveStation(void);
void LCD_SHOW_InstantaneousSpeed(void);
//**************************************************************************************************************************
// DAC.C
void DAC_Init(void);
void DAC_OUT_1(unsigned int dat);
void DAC_OUT_2(unsigned int dat);
//**************************************************************************************************************************
extern unsigned int Timer3; // 定时器0的寄存器
extern unsigned char DatLong; // 串口发送数据长度指针
extern unsigned char ComFlag;
extern unsigned char DateUpLoadFlag;
extern xdata unsigned char FunctionKey; // 按键标志
extern xdata unsigned int Sam_Num_flag;// 采集次数计数
extern xdata unsigned char DatPocket[RtuDataLong+5];// 串口发送数据寄存器
extern xdata unsigned char RTUaddress4[RtuDataLong];// RTU地址数据寄存器
extern xdata unsigned int HollSigNum;
extern unsigned char code ASC8X8[][9];
extern unsigned char code hz_lib[][26];
extern xdata unsigned char disp_ram[][128];
extern xdata unsigned char Clock_Date_Str[9], Clock_Time_Str[9];// 时间寄存器
extern xdata unsigned char DI_Data[13];
extern xdata unsigned char Str_Buffer[16];
extern xdata unsigned char NowWellName;
extern float RotateSpeed;
extern xdata unsigned int HollSpaceTime; // 霍尔信号间隔
extern xdata unsigned char HollDate[HollDateLong];
extern xdata unsigned int HollDataNum;
extern xdata unsigned char WorkStation;
extern xdata unsigned char WellSaveStation[MaxWellSaveNum];
extern xdata unsigned char NowWellNum;
extern xdata unsigned char NowSaveWellAddr;
extern xdata unsigned char UsedWell[MaxWellSaveNum]; //有效井数
extern xdata struct wellindex_name_date well_index[MaxWellSaveNum];
extern xdata unsigned char TestTime;
extern xdata unsigned char TempT2;
extern xdata unsigned char Tem2Con;
extern xdata float InstantaneousSpeed;
//**************************************************************************************************************************
// The End
//**************************************************************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -