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

📄 lcd.h

📁 LPC2148驱动320240的初始化代码
💻 H
字号:
//数据类型定义
typedef unsigned char  Uchar8;				        /* 无符号8位整型变量         */
typedef signed   char  Schar8; 				        /* 有符号8位整型变量         */
typedef unsigned short Ushort16;  				    /* 无符号16位整型变量        */
typedef signed   short Sshort16;   			        /* 有符号16位整型变量        */
typedef unsigned int   Uint32;				        /* 无符号32位整型变量        */
typedef signed   int   Sint32; 				        /* 有符号32位整型变量        */


/********************************************
****		LCD Define		 ****
*********************************************/
//LCD引脚与2148引脚连接定义
#define		LCD_WR	0x01<<25		                      //P1.25
#define     LCD_RD  0x01<<29							  //P0.29
#define		LCD_CS	0x01<<24		                      //P1.24
#define		LCD_A0	0x01<<30		                      //P0.30  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


#define  	ROW 0x28;  /*同SYSTEM SET中的P6设置,液晶的所显示的行数 用来计算光标地址的*/

//2148和LCD连接的引脚的功能选择的定义,定义为GPIO口。
#define     LCD_PINSEL0	  0xffffffff	   //PINSEL0的管脚定义不变
#define     LCD_PINSEL1   0xc3ffffff       //定义PINSEL1的bit[26..29]为0,使p0.29和p0.30为GPIO口
#define     LCD_PINSEL2   0xfffffff7       //定义PINSEL2的bit[3]为0,使P1.16 - P1.25为GPIO口                

//2148与LCD连接的引脚的数据传输方向定义 
#define     RDA0_0DIR    LCD_RD | LCD_A0   //定义P0.29和P0.30方向选择
#define     WRCS_1DIR    LCD_WR | LCD_CS   //定义P1.24和P1.25方向选择 
#define     Data_1DIR    LCD_D0 | LCD_D1 | LCD_D2 | LCD_D3 | LCD_D4 | LCD_D5 | LCD_D6 | LCD_D7   // P1.16至P1.23的方向选择   		 

     
	 // 定义A0数据线 
#define H_LCD_A0()   IO0SET |= LCD_A0
#define L_LCD_A0()   IO0CLR  = LCD_A0
	// 定义CS数据线 
#define H_LCD_CS()   IO1SET |= LCD_CS
#define L_LCD_CS()   IO1CLR  = LCD_CS
	// 定义WR数据线 
#define H_LCD_WR()   IO1SET |= LCD_WR
#define L_LCD_WR()   IO1CLR  = LCD_WR
	// 定义RD数据线
#define H_LCD_RD()   IO0SET |= LCD_RD
#define L_LCD_RD()   IO0CLR  = LCD_RD

//写数据时序
#define DATA_WR_STEP1() (L_LCD_CS(),L_LCD_A0(),H_LCD_RD(),H_LCD_WR();)
#define DATA_WR_STEP2() (L_LCD_CS(),L_LCD_A0(),H_LCD_WR(),L_LCD_WR();)
#define DATA_WR_STEP3() (L_LCD_CS(),L_LCD_A0(),H_LCD_WR(),H_LCD_WR();)
#define DATA_WR_STEP4() (H_LCD_CS(),L_LCD_A0(),H_LCD_RD(),H_LCD_WR();)

//写指令时序
#define CMD_WR_STEP1()  (L_LCD_CS(),H_LCD_A0(),H_LCD_RD(),H_LCD_WR();)
#define CMD_WR_STEP2()  (L_LCD_CS(),H_LCD_A0(),H_LCD_RD(),L_LCD_WR();)
#define CMD_WR_STEP3()  (L_LCD_CS(),H_LCD_A0(),H_LCD_RD(),H_LCD_WR();)
#define CMD_WR_STEP4()  (H_LCD_CS(),H_LCD_A0(),H_LCD_RD(),H_LCD_WR();)


/*
//RA8835的控制参数 
#define 	SYSTEMSET		0x40              //该指令是SID13305软件初始化指令
#define 	SLEEP_IN		0x53              //空闲状态设置
#define 	DISP_ON			0x59              //开(59H)/关(58H)显示
#define 	DISP_OFF		0x58              //开(59H)/关(58H)显示
#define		SCROLL		    0x44			  //设置了显示RAM区中各显示区的起始地址及所占有的显示行数
#define 	CSRFORM			0x5D              //该指令设置了光标的显示方式及其形状
#define 	CSRDIR_RIGHT	0x4C              //令规定了光标地址指针自动移动的方向 
#define 	CSRDIR_LEFT		0x4D              //令规定了光标地址指针自动移动的方向 
#define 	CSRDIR_UP		0x4E              //令规定了光标地址指针自动移动的方向 
#define 	CSRDIR_DOWN		0x4F              //令规定了光标地址指针自动移动的方向 
#define 	OVLAY			0x5B              //令规定画面重叠显示的合成方式及显示一、三区的显示属性
#define 	CGRAMADR		0x5C              //设置CGRAM的起始地址SAG
#define 	HDOTSCR			0x5A              //设置以点为单位的显示画面水平移动量,相当于一个字节内的卷动
#define 	CSRW			0x46              //令设置了光标地址CSR
#define 	CSRR			0x47              //读出当前的光标地址值
#define 	MWRTTE			0x42              //指令允许MPU连续地把显示数据写入显示区内,在使用指令之前要首先设置好光标地址和光标移动方向的参数
#define 	MREAD			0x43              //将光标地址所确定的单元内的数据送至数据输出缓冲器内供MPU读取

 */

 #define SystemSet   0x40 
Uchar8 ParaSysTable[8]= {0x30,0x87,0x07,0x27,0x42,0xF0,0x30,0x00};	// {0x30,0x87,0x07,0x28,0x42,0xF0,0x30,0x00};

#define Scroll      0x44
//uchar ParaScrTableA[10]={0x00,0x00,0xF0,0x00,0x40,0xF0,0x00,0xF0,0x00,0x00};
//Uchar8 ParaScrTableA[10]={0x00,0x00,0x80,0xf0,0x01,0x80,0x00,0x00,0x00,0x00};
Uchar8 ParaScrTableA[10] = {0x00,0x00,0xF0,0x00,0x40,0xF0,0x00,0x80,0x00,0x00};

#define DispOn  0x59
#define DispOnP1 0x56	// 0x06
#define Ovlay  0x5B
#define OvlayP1  0x01//0x01    //原来是00,改成01,现为异或显示方式 ,又改为或了,00
#define HdotScr 0x5A
#define HdotScrP1 0x00   
#define CsrForm  0x5D 
#define CsrFormP1 0x07 
#define CsrFormP2  0x87
#define CgramAdr   0x5C 
#define CgramAdrP1 0x00 
#define CgramAdrP2 0x80 
#define CsrDirR  0x4C 
#define CsrW  0x46 
#define mWrite  0x42 
#define MREAD			0x43              //将光标地址所确定的单元内的数据送至数据输出缓冲器内供MPU读取


//function
void InputData (Uchar8 dat);
//void LCD_Clear(void);
void WriteCommand(Uchar8 CMD);
void WriteData(Uchar8 DATA);
void Delay1ms(Uint32 count);
//void LCD_Initial(void) ;
void LCD_Init(void);				   //LCD初始化
void LCD_Clear(void);                //清屏
void delay50ns(Uint32 count);        //延时程序count * 50ns
void  delay1us(Uint32 count);	  //延时count * 1us


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -