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

📄 lcd.h

📁 2005年全国大学生电子设计竞赛论文集
💻 H
字号:
#ifndef	__LCD_H__
#define	__LCD_H__
//	write your header here

/********************************显示缓冲区定义********************************/
unsigned char LCD_Buffer[ 33 ] ;

/**********************************指令字定义**********************************/
#define		LCD_Clear	0x0001			//清屏
#define		LCD_Reset	0x0002			//光标复位
#define		LCD_Mode	0x0004			//模式设置
	#define	LCD_AC_Dec	0x0000			//AC为减1计数器,光标左移
							//一个字符位
	#define	LCD_AC_Inc	0x0002			//AC为加1计数器,光标右移
							//一个字符位
	#define	LCD_NoRoll	0x0000			//写入字符时,禁止滚动
	#define	LCD_Roll	0x0001			//写入字符时,允许滚动
#define		LCD_OnOff	0x0008			//显示开关控制
	#define	LCD_ScrOn	0x0004			//开画面显示
	#define	LCD_ScrOff	0x0000			//关画面显示
	#define	LCD_CurOn	0x0002			//开光标显示
	#define	LCD_CurOff	0x0000			//关光标显示
	#define	LCD_FlashOn	0x0001			//开闪烁
	#define	LCD_FlashOff	0x0000			//关闪烁
#define		LCD_Shift	0x0010			//光标或屏移动
	#define	LCD_ShiftScr	0x0008			//画面移动
	#define	LCD_ShiftCur	0x0000			//光标移动
	#define	LCD_ShiftRight	0x0004			//向右移动
	#define	LCD_ShiftLeft	0x0000			//向左移动
#define		LCD_Func	0x0020			//系统功能设置
	#define	LCD_FuncBit8	0x0010			//8位数据长度
	#define	LCD_FuncBit4	0x0000			//4位数据长度
	#define	LCD_FuncDual	0x0008			//双行显示
	#define	LCD_FuncSingle	0x0000			//单行显示
	#define	LCD_Func0510	0x0004			//5*10点阵
	#define	LCD_Func0508	0x0000			//5*8点阵
#define		LCD_AddrCGRAM	0x0040			//字符发生器CGRAM地址
							//设置
#define		LCD_AddrDDRAM	0x0080			//显示地址DDRAM设置
#define		LCD_Busy	0x0080			//忙标记

/*******************************控制线操作宏定义*******************************/
//8位数据接口
#define		LCD_SetRS	*P_IOB_Buffer = *P_IOB_Buffer | 0x2000
#define		LCD_ClrRS	*P_IOB_Buffer = *P_IOB_Buffer & 0xdfff
#define		LCD_SetRW	*P_IOB_Buffer = *P_IOB_Buffer | 0x4000
#define		LCD_ClrRW	*P_IOB_Buffer = *P_IOB_Buffer & 0xbfff
#define		LCD_SetEN	*P_IOB_Buffer = *P_IOB_Buffer | 0x8000
#define		LCD_ClrEN	*P_IOB_Buffer = *P_IOB_Buffer & 0x7fff
#define		LCD_NegEdgeEN	LCD_SetEN ; LCD_ClrEN 
#define		LCD_SetLT	*P_IOB_Buffer = *P_IOB_Buffer | 0x1000
#define		LCD_ClrLT	*P_IOB_Buffer = *P_IOB_Buffer & 0xefff

/*******************************************************************************
函数原型:	void LCD_Init( void ) ;
参数:		void
返回值:	void
使用方法:	LCD_Init( );
说明:		LCD初始化
*******************************************************************************/
void LCD_Init( void ) ;

/*******************************************************************************
函数原型:	void LCD_Lamp( unsigned int on_off ) ;
参数:		unsigned int on_off	:on_off=0,背光灯灭;on_off=1,背光灯亮
返回值:	void
使用方法:	LCD_Lamp( on_off );
说明:		控制LCD背光灯的亮灭
*******************************************************************************/
void LCD_Lamp( unsigned int on_off ) ;

/*******************************************************************************
函数原型:	void LCD_WirteCmd( unsigned int cmd ) ;
参数:		unsigned int cmd	:要写入的命令
返回值:	void
使用方法:	LCD_WriteCmd( cmd );
说明:		写入命令
*******************************************************************************/
void LCD_WriteCmd( unsigned int cmd ) ;

/*******************************************************************************
函数原型:	unsigned int LCD_ReadStat( void ) ;
参数:		void
返回值:	unsigned int		:读出的状态
使用方法:	stat = LCD_ReadStat( );
说明:		读出状态
*******************************************************************************/
unsigned int LCD_ReadStat( void ) ;

/*******************************************************************************
函数原型:	void LCD_WriteDat( unsigned int dat ) ;
参数:		unsigned int dat	:要写入的数据
返回值:	void
使用方法:	LCD_WriteDat( dat );
说明:		写入数据
*******************************************************************************/
void LCD_WriteDat( unsigned int dat ) ;

/*******************************************************************************
函数原型:	unsigned int LCD_ReadDat( void ) ;
参数:		void
返回值:	unsigned int		:读出的数据
使用方法:	dat = LCD_ReadDat( );
说明:		读出数据
*******************************************************************************/
unsigned int LCD_ReadDat( void ) ;

/*******************************************************************************
函数原型:	unsigned int LCD_isBusy( void ) ;
参数:		void
返回值:	unsigned int		: 1,表示LCD忙;0表示LCD空闲
使用方法:	busy = LCD_isBusy( );
		while( LCD_isBusy( ) ) ;	//LCD忙时等待
说明:		判断LCD忙闲状态
*******************************************************************************/
unsigned int LCD_isBusy( void ) ;

/*******************************************************************************
函数原型:	void LCD_Display( unsigned int pos ,unsigned char chara ) ;
参数:		unsigned int pos	:指定显示位置
		unsigned char chara	:指定要显示的字符
返回值:	void
使用方法:	LCD_Display( pos , chara ) ;
说明:		在指定位置显示指定字符
*******************************************************************************/
void LCD_Display( unsigned int pos ,unsigned char chara ) ;

/*******************************************************************************
函数原型:	void LCD_Load( unsigned char *src ) ;
参数:		unsigned char *src	:源字符串指针
返回值:	void
使用方法:	LCD_Load( src ) ;
说明:		将src所指的字符串加载到LCD_Buffer中
*******************************************************************************/
void LCD_Load( unsigned char *src ) ;

/*******************************************************************************
函数原型:	void LCD_Update( void ) ;
参数:		void
返回值:	void
使用方法:	LCD_Update( void ) ;
说明:		按LCD_Buffer中的内容更新显示
*******************************************************************************/
void LCD_Update( void ) ;

/*******************************************************************************
函数原型:	void LCD_Cur( unsigned int on_off ) ;
参数:		unsigned int on_off	:on_off=1,显示光标;on_off=0,不显示光标
返回值:	void
使用方法:	LCD_Cur( on_off ) ;
说明:		显示或消隐光标
*******************************************************************************/
void LCD_CurShow( unsigned int on_off ) ;

#endif

⌨️ 快捷键说明

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