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

📄 lcd.h

📁 ucos_ii在mini2440上的移植KEIL编译环境
💻 H
字号:
#ifndef _LCD_H_
#define _LCD_H_

#include <S3C2440.H>
#include "../irq/irq.h"


//16位颜色值类型定义
typedef unsigned short RGB_COLOR;
//RGB5:6:5颜色定义宏
//#define RGB(r, g, b) ( ((r & 0x1f) << 11) |	((g & 0x3f) << 5) | ((b & 0x1f) << 0) )
#define RGB(r,g,b) ((r << 8) & 0xF800) |((g << 3) & 0x7E0)  |  ((b >> 3))   

//LCD的分辨率设为240*320
#define LCD_WIDTH 320
#define LCD_HEIGHT 240

#define LCD_XSIZE LCD_WIDTH
#define LCD_YSIZE LCD_HEIGHT
#define SCR_XSIZE LCD_WIDTH
#define SCR_YSIZE LCD_HEIGHT

#define LCD_BUFFER ((unsigned int)gsnLCD_BUFFER)


//对变量中的一个位清0
#define CLR_BIT(nVariant, nBit)	nVariant &= ~(1 << nBit)

//对变量中的一个位置1
#define SET_BIT(nVariant, nBit)	nVariant |= (1 << nBit)

//设置一个变量中从某位起两位的值,nValue取值0-3
#define SET_2_BIT(nVarient, nBit, nValue) nVarient = (nVarient & ~(3 << nBit)) | (nValue << nBit)

//LCDCON1配置
#define LCD_CLKVAL 7		//VCLK的速度
#define LCD_PNRMODE 0X03	//TFT型LCD显示
#define LCD_BPPMODE 0X0C	//TFT型16为/像素
#define LCD_ENVID 0			//禁止LCD信号输出
#define LCDCON1_VAL (LCD_CLKVAL << 8) | (LCD_PNRMODE << 5) | (LCD_BPPMODE << 1) | (LCD_ENVID << 0)

////一下参数来自LCD的数据手册,并通过实验做了一下调整
//#define LCD_RIGHT_MARGIN  	65 	  //HBPD  thb
//#define LCD_LEFT_MARGIN 	5	  //HFPD  thf
//#define LCD_HSYNC_LEN 		4	  //HSPW  thp  (左边边界)
//
//#define LCD_UPPER_MARGIN 	11	  //VBPD   tvb
//#define LCD_LOWER_MARGIN        4	  //VFPD   tvf
//#define LCD_VSYNC_LEN 		0		  //VSPW   tvp

//一下参数来自LCD的数据手册,并通过实验做了一下调整
#define LCD_RIGHT_MARGIN  	68 	  //HBPD  thb
#define LCD_LEFT_MARGIN 	13	  //HFPD  thf
#define LCD_HSYNC_LEN 		1	  //HSPW  thp  (左边边界)

#define LCD_UPPER_MARGIN 	4	  //VBPD   tvb
#define LCD_LOWER_MARGIN    4	  //VFPD   tvf
#define LCD_VSYNC_LEN 		9		  //VSPW   tvp
//LCDCON2配置
#define LCD_VBPD (LCD_UPPER_MARGIN)
#define	LCD_LINEVAL (LCD_HEIGHT - 1)
#define	LCD_VFPD (LCD_LOWER_MARGIN)
#define	LCD_VSPW (LCD_VSYNC_LEN)
#define LCDCON2_VAL (LCD_VBPD << 24) | (LCD_LINEVAL << 14) | (LCD_VFPD << 6) | (LCD_VSPW << 0)

//LCDCON3配置
#define LCD_HBPD (LCD_RIGHT_MARGIN)
#define LCD_HOZVAL (LCD_WIDTH - 1)
#define LCD_HFPD (LCD_LEFT_MARGIN)
#define LCDCON3_VAL (LCD_HBPD << 19) | (LCD_HOZVAL << 8) | (LCD_HFPD << 0)

//LCDCON4配置
#define LCD_HSPW (LCD_HSYNC_LEN)
#define LCDCON4_VAL (LCD_HSPW << 0)

//LCDCON5配置
#define LCD_BPP24BL (0)
#define LCD_FRM565 (1)
#define	LCD_INVVCLK (1)
#define	LCD_INVVLINE (1)
#define	LCD_INVVFREAM (1)
#define	LCD_INVVD (0)
#define	LCD_INVVDEN (1)
#define LCD_INVPWREN (0)
#define LCD_INVLEND (0)
#define	LCD_PWREN (1)
#define	LCD_ENLEND (0)
#define	LCD_BSWP (0)
#define	LCD_HWSWP (1)
#define LCDCON5_VAL ( (LCD_BPP24BL << 12) | ((LCD_FRM565 << 11)) | ((LCD_INVVCLK << 10)) \
					| (LCD_INVVLINE << 9) | (LCD_INVVFREAM << 8) | (LCD_INVVD << 7) \
					| (LCD_INVVDEN << 6) | (LCD_INVPWREN << 5) | (LCD_INVLEND << 4) \
					| (LCD_PWREN << 3) | (LCD_ENLEND << 2) | (LCD_BSWP << 1) \
					| (LCD_HWSWP << 0) )

//#define LCDCON5_VAL ((1<<11) | (1<<8) | (1<<9) | (1<<0) ) 
//LCD显示缓冲区的地址配置,LCDSADDR1、LCDSADDR2、LCDSADDR3
#define LCD_LCDBANK ( (LCD_BUFFER >> 22) << 21 )
#define LCD_LCDBASEU ( ((LCD_BUFFER & 0X1FFFFF)) >> 1 )
#define LCD_LCDBASEL ( ((LCD_BUFFER + LCD_WIDTH * LCD_HEIGHT * 2) & 0X1FFFFF) >> 1 ) 
#define LCD_OFFSIZE (0)
#define LCD_PAGEWIDTH (LCD_WIDTH)

//LCD中断配置参数LCDINTMSK
#define LCD_FIWSEL (0)
#define	LCD_INT_FrSyn (0)
#define	LCD_INT_FiCnt (0)

//字库点阵存储的起始位置
#define	HZK16_BASE (0X00150000)	//16*16汉字字库
#define ASC16_BASE (0X001A0000)	//8*16 ANSI字库
#define TEST_BMP_BASE (0X001D0000)	


/********************************************************************** 

  *  函数名称: LCD_SetPixel 
  
	*  功能描述: 
	*		设置LCD上指定像素的颜色
	*  参数说明
	*		y,x 	坐标		  
	*		usColor	颜色值
	*  返回值 
	*     待定	  
******************************************************************/
int LCD_SetPixel(unsigned int x, unsigned int y, unsigned short usColor);

/********************************************************************** 

  *  函数名称: LCD_SetPixel 
  
	*  功能描述: 
	*		获取LCD上指定像素的颜色
	*  参数说明
	*		y,x 	 坐标		  
	*		rgbColor 颜色值指针
	*  返回值 
	*     待定	  
******************************************************************/
void LCD_GetPixel(int y, int x, unsigned short *);



/********************************************************************** 

  *  函数名称: LCD_VideoON 
  
	*  功能描述: 
	*		打开LCD视频和控制信号输出
	*  参数说明
	*	  无
	*  返回值 
	*     无	  
******************************************************************/
void LCD_VideoON(void);


/********************************************************************** 

  *  函数名称: LCD_VideoOFF 
  
	*  功能描述: 
	*		停止LCD视频和控制信号输出
	*  参数说明
	*	  无
	*  返回值 
	*     无	  
******************************************************************/
void LCD_VideoOFF(void);


/********************************************************************** 

  *  函数名称: LCD_PowerON 
  
	*  功能描述: 
	*		打开LCD电源
	*  参数说明
	*	  无
	*  返回值 
	*     无	  
******************************************************************/
void LCD_PowerON(void);


/********************************************************************** 

  *  函数名称: LCD_PowerOFF 
  
	*  功能描述: 
	*		关闭LCD电源
	*  参数说明
	*	  无
	*  返回值 
	*     无	  
******************************************************************/
void LCD_PowerOFF(void);


/********************************************************************** 

  *  函数名称: LCD_Init 
  
	*  功能描述: 
	*		LCD初始化
	*  参数说明
	*	  无
	*  返回值 
	*     无	  
******************************************************************/
void LCD_Init(void);

/********************************************************************** 

  *  函数名称: LCD_PutPixel 
  
	*  功能描述: 
	*		在LCD上输出一个像素
	*  参数说明
	*	  y、x像素的纵、横坐标 
	*     rgbColor 像素颜色  
	*  返回值 
	*     无	  
******************************************************************/
void LCD_PutPixel(unsigned int y, unsigned int x, RGB_COLOR rgbColor);


/********************************************************************** 

  *  函数名称: LCD_ClearScreen 
  
	*  功能描述: 
	*		将屏幕填充成一种颜色rgbColor
	*  参数说明: 
	*     rgbColor 填充颜色  
	*  返回值 
	*     无	  
******************************************************************/
void LCD_ClearScreen(RGB_COLOR rgbColor);
/********************************************************************** 

  *  函数名称: LCD_switch_Screen 
  
	*  功能描述: 
	*		指定屏幕位置填充成一种颜色rgbColor
	*  参数说明: 
	*     rgbColor 填充颜色  
	*  返回值 
	*     无	  
******************************************************************/
void LCD_switch_Screen(int x,int y,int ilong,int iwide,RGB_COLOR rgbColor);
/********************************************************************** 

  *  函数名称: LCD_DrawLine 
  
	*  功能描述: 
	*		 两点之间画线
	*  参数说明: 
	*     y1、 x1第一点的纵、横坐标   
	*	  y2、 x2第一点的纵、横坐标
	*	  rgbColor 线条的颜色
	*  返回值 
	*     无	  
******************************************************************/
void LCD_DrawLine(
		unsigned int y1, unsigned int x1,
		unsigned int y2, unsigned int x2,
		RGB_COLOR rgbColor);

/********************************************************************** 

  *  函数名称: LCD_DispCN 
  
	*  功能描述: 
	*		  在LCD上显汉字
	*  参数说明: 
	*     nX 			汉字要在LCD上像素的起始横座标
	*	  nY 			汉字要在LCD上像素的起始纵座标
	*	  pcHZ 			显示汉字的起始地址
	*	  frontColor    前景色
	*	  backColor	    背景色
	*  返回值 
	*     无	  
******************************************************************/
void LCD_DispEN(char cASC, int nY, int nX, RGB_COLOR backColor, RGB_COLOR frontColor);


/********************************************************************** 

  *  函数名称: LCD_DispEN 
  
	*  功能描述: 
	*		  在LCD上显字符
	*  参数说明: 
	*     nX 			汉字要在LCD上像素的起始横座标
	*	  nY 			汉字要在LCD上像素的起始纵座标
	*	  cASC 			显示字符
	*	  frontColor    前景色
	*	  backColor	    背景色
	*  返回值 
	*     无	  
******************************************************************/
void LCD_DispCN(char *pcHZ, int nY, int nX, RGB_COLOR backColor, RGB_COLOR frontColor);

/********************************************************************** 

  *  函数名称: LCD_DrawText 
  
	*  功能描述: 
	*		  在LCD上显示文本
	*  参数说明: 
	*     x			 汉字要在LCD上像素的起始横座标
	*	  y			 汉字要在LCD上像素的起始纵座标
	*	  pcText 	 显示文本内容
	*	  nTxtLen 	 显示的文本长度
	*	  frontColor 前景色
	*	  backColor	 背景色
	*  返回值 
	*     无	  
******************************************************************/
void LCD_DrawText(int y, int x, char * pcText, int nTxtLen,	RGB_COLOR backColor, RGB_COLOR frontColor);

void LCD_draw(unsigned int y_pos, unsigned int x_pos, unsigned int h, unsigned int l, const unsigned char *bmp);
void LCD_ShowCircle(unsigned x,unsigned y,unsigned r,RGB_COLOR color,unsigned Mode);
void LCD_DispCN_DIY(int Area,int Index, int nY, int nX, RGB_COLOR backColor, RGB_COLOR frontColor);
#define     PAINT_SOLID     1
#define     PAINT_HOLLOW    0
void LCD_Line(short x1, short y1, short x2, short y2, RGB_COLOR color);
void LCD_ShowRectangle(int x1,int y1,int x2,int y2,int color);
#endif

⌨️ 快捷键说明

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