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

📄 lcd.h

📁 1、arm7芯片2148驱动大液晶 2、ym320240的液晶驱动 3、I2c通信at24c256 4、各种字符的显示
💻 H
📖 第 1 页 / 共 3 页
字号:

#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 + -