📄 lcd.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 + -