📄 lcd.h
字号:
#ifndef __LCD_H
#define __LCD_H
#include "config.h"
/********************************************
**** LCD Define 2138 ****
********************************************
#define LCD_WR 0x01 << 17 //P0.17
#define LCD_RD 0x01 << 18 //P0.18
#define LCD_CS 0x01 << 11 //P0.11
#define LCD_A0 0x01 << 10 //P0.10 A0=1写指令代码和读数据,A0=0写数据,参数和读忙标志
#define LCD_D0 0x01 << 16 //P1.16
#define LCD_D1 0x01 << 17 //P1.17
#define LCD_D2 0x01 << 18 //P1.18
#define LCD_D3 0x01 << 19 //P1.19
#define LCD_D4 0x01 << 20 //P1.20
#define LCD_D5 0x01 << 21 //P1.21
#define LCD_D6 0x01 << 22 //P1.22
#define LCD_D7 0x01 << 23 //P1.23
*/
/********************************************
**** LCD Define 2148 ****
********************************************/
#define LCD_WR 0x01 << 16 //P0.16
#define LCD_RD 0x01 << 19 //P0.19
#define LCD_CS 0x01 << 13 //P0.13
#define LCD_A0 0x01 << 15 //P0.15 A0=1写指令代码和读数据,A0=0写数据,参数和读忙标志
#define LCD_RST 0x01 << 17 //P0.17
#define LCD_D0 0x01 << 16 //P1.16
#define LCD_D1 0x01 << 17 //P1.17
#define LCD_D2 0x01 << 18 //P1.18
#define LCD_D3 0x01 << 19 //P1.19
#define LCD_D4 0x01 << 20 //P1.20
#define LCD_D5 0x01 << 21 //P1.21
#define LCD_D6 0x01 << 22 //P1.22
#define LCD_D7 0x01 << 23 //P1.23
//定是引脚为I/0功能
#define LCD_WR_FOOT 0xfffffffc //P0.16
#define LCD_RD_FOOT 0xffffff3f //P0.19
#define LCD_CS_FOOT 0xf3ffffff //P0.13
#define LCD_A0_FOOT 0x3fffffff //P0.15 A0=1写指令代码和读数据,A0=0写数据,参数和读忙标志
#define LCD_RST_FOOT 0xfffffff3 //P0.17
#define LCD_WR_RD LCD_WR_FOOT & LCD_RD_FOOT & LCD_RST_FOOT //位于PINSEL1
#define LCD_CS_A0 LCD_CS_FOOT & LCD_A0_FOOT //位于PINSEL0
#define LCD_CTRL LCD_WR | LCD_RD | LCD_CS | LCD_A0
#define LCD_FOOT LCD_D0 | LCD_D1 | LCD_D2 | LCD_D3 | LCD_D4 | LCD_D5 | LCD_D6 | LCD_D7
#define ROW 0x28; /*同SYSTEM SET中的P6设置,液晶的所显示的行数 用来计算光标地址的*/
/******************************************************************************************************************
* 文 件 名:LCM12864Drive.h
* 功 能:LCM12864图形液晶模块驱动头文件。使用LPC213X/214X的GPIO口模拟总线控制操作。
*
******************************************************************************************************************/
// 定义颜色数据类型(可以是数据结构)*/
#define SaveAll_num 80 //保存历史数据总数
// 定义LCM像素数宏
#define GUI_LCM_XMAX 320 // 定义液晶x轴的像素数
#define GUI_LCM_YMAX 240 // 定义液晶y轴的像素数
#ifdef LPC2148 //采用快速通道I/0口
#define LCD_RW_STATE() {FIO0SET |= LCD_RD; FIO0CLR = LCD_WR;} // 定义RW控制
#define LCD_RE_STATE() {FIO0SET |= LCD_WR; FIO0CLR = LCD_RD;} // 定义RD控制
#define LCD_CLOSE() {FIO0SET |= LCD_CTRL;} // 定义RD控制
// 定义A0数据线
// 定义D0数据线
#define H_LCD_D0() FIO1SET2 |= LCD_D0
#define L_LCD_D0() FIO1CLR2 = LCD_D0
// 定义D1数据线
#define H_LCD_D1() FIO1SET2 |= LCD_D1
#define L_LCD_D1() FIO1CLR2 = LCD_D1
// 定义D2数据线
#define H_LCD_D2() FIO1SET2 |= LCD_D2
#define L_LCD_D2() FIO1CLR2 = LCD_D2
// 定义D3数据线
#define H_LCD_D3() FIO1SET2 |= LCD_D3
#define L_LCD_D3() FIO1CLR2 = LCD_D3
// 定义D4数据线
#define H_LCD_D4() FIO1SET2 |= LCD_D4
#define L_LCD_D4() FIO1CLR2 = LCD_D4
// 定义D5数据线
#define H_LCD_D5() FIO1SET2 |= LCD_D5
#define L_LCD_D5() FIO1CLR2 = LCD_D5
// 定义D6数据线
#define H_LCD_D6() FIO1SET2 |= LCD_D6
#define L_LCD_D6() FIO1CLR2 = LCD_D6
// 定义D7数据线
#define H_LCD_D7() FIO1SET2 |= LCD_D7
#define L_LCD_D7() FIO1CLR2 = LCD_D7
// 定义A0数据线
#define H_LCD_A0() FIO0SET |= LCD_A0
#define L_LCD_A0() FIO0CLR = LCD_A0
// 定义CS数据线
#define H_LCD_CS() FIO0SET |= LCD_CS
#define L_LCD_CS() FIO0CLR = LCD_CS
#else
#define LCD_COM_START() {IO0SET |= (LCD_A0 | LCD_RD); IO0CLR = (LCD_WR | LCD_CS);} // 定义RW控制
#define LCD_COM_END() {IO0SET |= (LCD_CS | LCD_RD);} // 定义RW控制
#define LCD_DATA_START() {IO0SET |= LCD_RD; IO0CLR = (LCD_WR | LCD_CS | LCD_A0);} // 定义RW控制
#define LCD_DATA_END() {IO0SET |= (LCD_CS | LCD_RD);} // 定义RW控制
#define LCD_RE_BUZY_START() {IO0SET |= LCD_WR; IO0CLR = (LCD_RD | LCD_CS | LCD_A0);} // 定义RW控制
#define LCD_RE_DATA_START() {IO0SET |= (LCD_WR | LCD_A0); IO0CLR = (LCD_RD | LCD_CS);} // 定义RW控制
// 定义D0数据线
#define H_LCD_D0() IO1SET |= LCD_D0
#define L_LCD_D0() IO1CLR = LCD_D0
// 定义D1数据线
#define H_LCD_D1() IO1SET |= LCD_D1
#define L_LCD_D1() IO1CLR = LCD_D1
// 定义D2数据线
#define H_LCD_D2() IO1SET |= LCD_D2
#define L_LCD_D2() IO1CLR = LCD_D2
// 定义D3数据线
#define H_LCD_D3() IO1SET |= LCD_D3
#define L_LCD_D3() IO1CLR = LCD_D3
// 定义D4数据线
#define H_LCD_D4() IO1SET |= LCD_D4
#define L_LCD_D4() IO1CLR = LCD_D4
// 定义D5数据线
#define H_LCD_D5() IO1SET |= LCD_D5
#define L_LCD_D5() IO1CLR = LCD_D5
// 定义D6数据线
#define H_LCD_D6() IO1SET |= LCD_D6
#define L_LCD_D6() IO1CLR = LCD_D6
// 定义D7数据线
#define H_LCD_D7() IO1SET |= LCD_D7
#define L_LCD_D7() IO1CLR = LCD_D7
// 定义A0数据线
#define H_LCD_A0() IO0SET |= LCD_A0
#define L_LCD_A0() IO0CLR = LCD_A0
// 定义CS数据线
#define H_LCD_CS() IO0SET |= LCD_CS
#define L_LCD_CS() IO0CLR = LCD_CS
// 定义WR数据线
#define H_LCD_WR() IO0SET |= LCD_WR
#define L_LCD_WR() IO0CLR = LCD_WR
// 定义RE数据线 LCD_E
#define H_LCD_RE() IO0SET |= LCD_RD
#define L_LCD_RE() IO0CLR = LCD_RD
#endif
typedef struct{ //时间的结构体
Ushort16 YE;
Uchar8 MO;
Uchar8 DD;
Uchar8 HH;
Uchar8 MI;
Uchar8 SS;
}Str_Date;
#define Time_Num 7 //表示有7个字节
typedef struct //设置内容
{
Uchar8 Hv_Channels; //三通道与单通道选择, 0表示单通道,1表示多通道
Uchar8 Lv_Channels; //三通道与单通道选择, 0表示单通道,1表示多通道
Uchar8 Hv_tap_num; //高压的分接数
Uchar8 Lv_tap_num; //高压的分接数
Uchar8 Hv_Ampen; //高压侧测试电流
Uchar8 Lv_Ampen; //高压侧测试电流
Uchar8 Work_Mode; //工作模式, 0表示手动,1表示自动
Str_Date Time_Data; //时间
Ushort16 Temper_num; //温度
}Str_Setup;
#define Dis_SetupNum 16 //表示有16个字节
typedef struct //数据索引
{
Uchar8 Save_Current; //当前保存的数据
Uchar8 Save_Used; //已用保存的数据
Uchar8 Save_Leaving; //还剩余多少空间
Uchar8 Index_buf[SaveAll_num]; //此数据是否有效志
Uchar8 EquipmentName_buf[SaveAll_num][10]; //设备编号
Str_Date Time_Data_buf[SaveAll_num]; //时间
Uchar8 SaveAddr; //保存地址时间
}Str_HisIndex;
#define His_IndexNum 1440 //这么多字节
typedef struct //数据保存结构
{
Uchar8 Index; //此数据是否有效志
Uchar8 Hv_Channels; //三通道与单通道选择, 0表示单通道,1表示多通道
Uchar8 Lv_Channels; //三通道与单通道选择, 0表示单通道,1表示多通道
Uchar8 Hv_tap_num; //高压的分接数
Uchar8 Lv_tap_num; //高压的分接数
Uchar8 Hv_Ampen; //高压侧测试电流
Uchar8 Lv_Ampen; //高压侧测试电流
Uchar8 Work_Mode; //工作模式, 0表示手动,1表示自动
Uint32 Save_Data_buf[20][4]; //保存的数据
Uchar8 AutoPreferences_buf[2]; //自动参数
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -