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

📄 lcd.c

📁 TI TMS320F2812的LCD源代码。
💻 C
字号:

#include "DSP28_Device.h"
#include "LCD.h"

#ifndef bool
#define bool unsigned short
#define FALSE 0
#define TRUE  1
#endif

/***************************************************************************
*	函数:	void wr_data(unsigned int data)
*	目的:	写LCD数据参数,判断0和1位
*	输入:	dat1 参数单元
*	输出:	无
*	参数:	status局部变量,用来存储LCD的状态量
***************************************************************************/

void wr_data(unsigned int dat1)
{
	unsigned int status;
	do
	{	
		status = *c_addr & 0x03;		/* 屏蔽status的2~15位为0 */
	}while(status != 0x03);
	*d_addr = dat1;
}

/***************************************************************************
*	函数:	void wr_data1(unsigned int dat1)
*	目的:	写LCD数据参数,判断3位
*	输入:	dat1 参数单元
*	输出:	无
*	参数:	status局部变量,用来存储LCD的状态量
***************************************************************************/

void wr_data1(unsigned int dat1)
{
	unsigned int status;
	do
	{
		status = *c_addr & 0x08;		/* 屏蔽status的0~2和3~15位为0 */
	}while(status != 0x08);
	*d_addr = dat1;
}

/***************************************************************************
*	函数:	void wr_com(WORD com)
*	目的:	写LCD指令参数
*	输入:	com 指令单元
*	输出:	无
*	参数:	status局部变量,用来存储LCD的状态量
***************************************************************************/

void wr_com(unsigned int com)
{
	unsigned int status;
	do
	{	
		status = *c_addr & 0x03;
	}while(status != 0x03);
	*c_addr = com;
}

/***************************************************************************
*	函数:	extern void GUILCD_init(void)

*	目的:	初始化LCD显示,设置显示方式为图形方式,开显示

*	输入:	无

*	输出:	无
****************************************************************************/

extern void GUILCD_init(void)
{
	wr_data(0x00);		/*设置文本显示区域首地址*/	
	wr_data(0x40);		
	wr_com(0x40);       
	
	wr_data(0x20);		/*设置文本显示区域宽度*/
	wr_data(0x00);		
	wr_com(0x41);       

	
	wr_data(0x00);		/*设置图形显示区域首地址*/	
	wr_data(0x00);		
	wr_com(0x42);       
	
	wr_data(0x20);		/*设置图形显示区域宽度*/
	wr_data(0x00);		
	wr_com(0x43);	
	
	wr_com(0xa0);		/*光标形状设置*/
	
	wr_com(0x80);		/*显示方式设置,逻辑或合成*/
	
	wr_com(0x9c);       //wr_com(0x9b);	/*显示开关设置,开文本和图形显示*/
	
}

/***************************************************************************
*	函数:	extern void GUILCD_clear(void)

*	目的:	清LCD屏,用自动方式,将LCD屏清为白屏

*	输入:	无

*	输出:	无

	参数:	page0局部变量
***************************************************************************/

extern void GUILCD_clear(void)
{
	int page0;

	wr_data(0x00);		/*设置显示RAM首地址*/	
	wr_data(0x00);
	wr_com(0x24);
	
	wr_com(0xb0);		/*设置自动写方式*/
	
	for(page0 = 0x2000; page0 >= 0; page0--)
	{
		wr_data1(0x00);		/* 清0 */
	}
	
	wr_com(0xb2);		/* 自动写结束 */
	
	wr_data(0x00);		/*设置显示RAM首地址*/	
	wr_data(0x40);
	wr_com(0x24);
	
	wr_com(0xb0);		/*设置自动写方式*/
	
	for(page0 = 0x2000; page0 >= 0; page0--)
	{
		wr_data1(0x00);		/* 清0 */
	}
	
	wr_com(0xb2);		/* 自动写结束 */	
	
	
	
}

/***************************************************************************
*	函数:	extern void GUILCD_writeASCIICode(unsigned int Code,unsigned int Row_Y, unsigned int Column_X, unsigned short FanXian )
*	目的:	写ASC码字符串,8*8点阵格式,将字符串string中的ASC码在LCD屏的
		ROW和COLUMN坐标处显示

⌨️ 快捷键说明

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