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

📄 drv_lcm12864.c

📁 uCOS2 for 51系列
💻 C
📖 第 1 页 / 共 3 页
字号:
/*********************************************************************************************************
**				                         uC/OS 2 FOR TI TMS320240X
**                                   The Real-Time Kernel(For CCS2.2)
**
**                                  
**                                                V0.00.1
**
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: Drv_Lcm.C
**创   建   人: 龚树强
**版        本: V0.01.1
**最后修改日期: 2005年4月5日
**描        述: Lcm控制函数源文件
**
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 龚树强
** 版  本: V0.01.1
** 日 期: 2005年4月5日
** 描 述: 原始版本
**
**------------------------------------------------------------------------------------------------------
** 修改人: 
** 版  本: 
** 日 期: 
** 描 述: 
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

#include "..\source\includes.h" 

/*******************************************************************************
*********************			常	量	定	义			************************
********************************************************************************/

const 	INT8U	name_lcm[] = "lcm";



const 	INT8U 	ASCII_CODE[][6]	=	{
										0x00,0x00,0x00,0x00,0x00,0x00,      //空格
										0x00,0x00,0x00,0x4f,0x00,0x00,      //!
										0x00,0x00,0x07,0x00,0x07,0x00,      //"
										0x00,0x14,0x7f,0x14,0x7f,0x14,      //#
										0x00,0x24,0x2a,0x7f,0x2a,0x12,      //$
										0x00,0x23,0x13,0x08,0x64,0x62,      //%
										0x00,0x36,0x49,0x55,0x22,0x50,      //&
										0x00,0x00,0x05,0x03,0x00,0x00,      //'
										0x00,0x00,0x00,0x1c,0x22,0x41,      //(
										0x00,0x00,0x00,0x41,0x22,0x1c,      //)
										0x00,0x14,0x08,0x3e,0x08,0x14,      //*
										0x00,0x08,0x08,0x3e,0x08,0x08,      //+
										0x00,0x00,0x50,0x30,0x00,0x00,      //,
										0x00,0x08,0x08,0x08,0x08,0x08,      //-
										0x00,0x00,0x60,0x60,0x00,0x00,      //.
										0x00,0x20,0x10,0x08,0x04,0x02,      ///


										0x00,0x3e,0x51,0x49,0x45,0x3e,      //0     *16
										0x00,0x00,0x42,0x7f,0x40,0x00,      //1
										0x00,0x42,0x61,0x51,0x49,0x46,      //2
										0x00,0x21,0x41,0x45,0x4b,0x31,      //3
										0x00,0x18,0x14,0x12,0x7f,0x10,      //4
										0x00,0x27,0x45,0x45,0x45,0x39,      //5
										0x00,0x3c,0x4a,0x49,0x49,0x30,      //6
										0x00,0x01,0x71,0x09,0x05,0x03,      //7
										0x00,0x36,0x49,0x49,0x49,0x36,      //8
										0x00,0x06,0x49,0x49,0x29,0x1e,      //9
										0x00,0x00,0x36,0x36,0x00,0x00,      //:
										0x00,0x00,0x56,0x36,0x00,0x00,      //;
										0x00,0x08,0x14,0x22,0x41,0x00,      //<
										0x00,0x14,0x14,0x14,0x14,0x14,      //=
										0x00,0x41,0x22,0x14,0x08,0x00,      //>
										0x00,0x02,0x01,0x51,0x09,0x06,      //?
										0x00,0x32,0x49,0x79,0x41,0x3e,      //@
										0x00,0x7e,0x11,0x11,0x11,0x7e,      //A
										0x00,0x7f,0x49,0x49,0x49,0x36,      //B
										0x00,0x3e,0x41,0x41,0x41,0x22,      //C
										0x00,0x7f,0x41,0x41,0x22,0x1c,      //D
										0x00,0x7f,0x49,0x49,0x49,0x41,      //E
										0x00,0x7f,0x09,0x09,0x09,0x01,      //F
										0x00,0x3e,0x41,0x49,0x49,0x7a,      //G
										0x00,0x7f,0x08,0x08,0x08,0x7f,      //H
										0x00,0x00,0x41,0x7f,0x41,0x00,      //I
										0x00,0x20,0x40,0x41,0x3f,0x01,      //J
										0x00,0x7f,0x08,0x14,0x22,0x41,      //K
										0x00,0x7f,0x40,0x40,0x40,0x40,      //L
										0x00,0x7f,0x02,0x0c,0x02,0x7f,      //M
										0x00,0x7f,0x04,0x08,0x10,0x7f,      //N
										0x00,0x3e,0x41,0x41,0x41,0x3e,      //O
										0x00,0x7f,0x09,0x09,0x09,0x06,      //P
										0x00,0x3e,0x41,0x51,0x21,0x5e,      //Q
										0x00,0x7f,0x09,0x19,0x29,0x46,      //R
										0x00,0x46,0x49,0x49,0x49,0x31,      //S
										0x00,0x01,0x01,0x7f,0x01,0x01,      //T
										0x00,0x3f,0x40,0x40,0x40,0x3f,      //U
										0x00,0x1f,0x20,0x40,0x20,0x1f,      //V
										0x00,0x3f,0x40,0x38,0x40,0x3f,      //W
										0x00,0x63,0x14,0x08,0x14,0x63,      //X
										0x00,0x07,0x08,0x70,0x08,0x07,      //Y
										0x00,0x61,0x51,0x49,0x45,0x43,      //Z
										0x00,0x00,0x7f,0x41,0x41,0x00,      //[
										0x00,0x15,0x16,0x7c,0x16,0x15,      //
										0x00,0x00,0x41,0x41,0x7f,0x00,      //]
										0x00,0x04,0x02,0x01,0x02,0x04,      //^
										0x00,0x40,0x40,0x40,0x40,0x40,      //_
										0x00,0x00,0x01,0x02,0x04,0x00,      //'
										0x00,0x20,0x54,0x54,0x54,0x78,      //a
										0x00,0x7f,0x48,0x44,0x44,0x38,      //b
										0x00,0x38,0x44,0x44,0x44,0x20,      //c
										0x00,0x38,0x44,0x44,0x48,0x7f,      //d
										0x00,0x38,0x54,0x54,0x54,0x18,      //e
										0x00,0x08,0x7e,0x09,0x01,0x02,      //f
										0x00,0x0c,0x52,0x52,0x52,0x3e,      //g
										0x00,0x7f,0x08,0x04,0x04,0x78,      //h
										0x00,0x00,0x44,0x7d,0x40,0x00,      //i
										0x00,0x20,0x40,0x44,0x3d,0x00,      //j
										0x00,0x7f,0x10,0x28,0x44,0x00,      //k
										0x00,0x00,0x41,0x7f,0x40,0x00,      //l
										0x00,0x7c,0x04,0x18,0x04,0x7c,      //m
										0x00,0x7c,0x08,0x04,0x04,0x78,      //n
										0x00,0x38,0x44,0x44,0x44,0x38,      //o
										0x00,0x7c,0x14,0x14,0x14,0x08,      //p
										0x00,0x08,0x14,0x14,0x18,0x7c,      //q
										0x00,0x7c,0x08,0x04,0x04,0x08,      //r
										0x00,0x48,0x54,0x54,0x54,0x20,      //s
										0x00,0x04,0x3f,0x44,0x40,0x20,      //t
										0x00,0x3c,0x40,0x40,0x20,0x7c,      //u
										0x00,0x1c,0x20,0x40,0x20,0x1c,      //v
										0x00,0x3c,0x40,0x30,0x40,0x3c,      //w
										0x00,0x44,0x28,0x10,0x28,0x44,      //x
										0x00,0x0c,0x50,0x50,0x50,0x3c,      //y
										0x00,0x44,0x64,0x54,0x4c,0x44,      //z
										0x00,0x00,0x08,0x36,0x41,0x00,      //{
										0x00,0x00,0x00,0x7f,0x00,0x00,      //|
										0x00,0x00,0x41,0x36,0x08,0x00,      //}
										0x00,0x08,0x08,0x2a,0x1c,0x08,      //->
										0x00,0x08,0x1c,0x2a,0x08,0x08	     //<-
	               					};
	               					


//const	OCB_DISP_OP	DispFunction = 	{
//											Lcm_Init,			/*	void 	(*init)(void);									*/
//											LcmClr,				/*	void 	(*clr)(INT8U,INT8U,INT8U,INT8U,INT8U);			*/
//											LcmDispChar,		/*	void 	(*disp_char)(INT8U,INT8U, INT8U*,INT8U);		*/
//											LcmDispHEX,			/*	void 	(*disp_hex)(INT8U, INT8U, INT8U,INT8U);			*/
//											LcmDispInt,			/*	void 	(*disp_int)(INT8U,INT8U, INT16S,INT8U);			*/
//											LcmDispFixP,		/*	void	(*disp_float)(INT8U,INT8U,INT16S,INT8U,INT8U);	*/
//											LcmDispChnChar		/*	void	(*disp_chn_char)(INT8U,INT8U,INT8U*,INT8U);		*/
//									};
										

/*******************************************************************************
*********************			变	量	定	义			************************
********************************************************************************/  
INT8U		LCM_BL_state;			

INT8U		flag_anti_disp;		//反白显示标志

OS_EVENT*	DispSem;

/*******************************************************************************
*********************		功	能	函	数	定	义		************************
********************************************************************************/  


/*********************************************************************************************************
** 函数名称: LCM_SET_X0(),LCM_SET_X1()
** 功能描述: 设置x坐标
**
** 输 入: x :指定的列
** 输 出: 无
** 全局变量: 无
** 调用模块: LcmSendCmd0,LcmSendCmd1
**
** 作 者: 龚树强
** 日 期: 2005年4月5日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

#define LCM_SET_X0(x)     		LcmSendCmd0(x|0x40)	 
#define LCM_SET_X1(x)       	LcmSendCmd1(x|0x40)

/*********************************************************************************************************
** 函数名称: LCM_SET_Y0(),LCM_SET_Y1()
** 功能描述: 设置y坐标
**
** 输 入: y :指定的行
** 输 出: 无
** 全局变量: 无
** 调用模块: LcmSendCmd0,LcmSendCmd1
**
** 作 者: 龚树强
** 日 期: 2005年4月5日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

#define LCM_SET_Y0(y)		LcmSendCmd0(y|0xB8)	      
#define LCM_SET_Y1(y)		LcmSendCmd1(y|0xB8)


/*********************************************************************************************************
** 函数名称: LCM_SET_P0(),LCM_SET_P1()
** 功能描述: 设置页面
**
** 输 入: z :指定的页
** 输 出: 无
** 全局变量: 无
** 调用模块: LcmSendCmd0,LcmSendCmd1
**
** 作 者: 龚树强
** 日 期: 2005年4月5日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

#define LCM_SET_Z0(z)   		LcmSendCmd0(z|0xC0)
#define LCM_SET_Z1(z)       	LcmSendCmd1(z|0xC0)
/*********************************************************************************************************
** 函数名称: LcmDelay
** 功能描述: 等待LCM操作完毕
**
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 龚树强
** 日 期: 2005年4月5日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        void  LcmDelay(void)		reentrant
{
    	INT8U i;
	for(i = LCM_DELAY_TIMER; i--;);
}

/*********************************************************************************************************
** 函数名称: LcmSendCmd()
** 功能描述: 向LCM模块发送命令
**
** 输 入: command: 给LCM模块发送的命令
** 输 出: 无
** 全局变量: 无
** 调用模块: LcmDelay()
**
** 作 者: 龚树强
** 日 期: 2005年4月5日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
		void LcmSendCmd0(INT8U command)  	reentrant               
{												  
//    LcmDelay();                                
	OUTPUT(LCM_CMD_0,command);
}                                                 

		void LcmSendCmd1(INT8U command)  	reentrant               
{												  
//    LcmDelay();                                
	OUTPUT(LCM_CMD_1,command);
}                                                 

		void LcmSendCmd2(INT8U command)  	reentrant               
{												  
//    LcmDelay();                                
	OUTPUT(LCM_CMD_2,command);
}                                                 

		void LcmSendCmd3(INT8U command)  	reentrant               
{												  
 //   LcmDelay();                                
	OUTPUT(LCM_CMD_3,command);
}                                                 



/*********************************************************************************************************
** 函数名称: LcmSendData()
** 功能描述: 向LCM模块发送1字节数据
**
** 输 入: ddata: 给LCM模块发送的命令
** 输 出: 无
** 全局变量: 无
** 调用模块: LcmDelay()
**
** 作 者: 龚树强
** 日 期: 2005年4月5日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
		void LcmSendData0(INT8U Data)  	reentrant               
{												  
//    LcmDelay();                                
	if(flag_anti_disp == LCM_ANTI_DISP)
		Data = ~Data;                                
	OUTPUT(LCM_DATA_0,Data);
}                                                 

		void LcmSendData1(INT8U Data)  	reentrant               
{												  
//    LcmDelay();                                
	if(flag_anti_disp == LCM_ANTI_DISP)
		Data = ~Data;                                
	OUTPUT(LCM_DATA_1,Data);
}                                                 

		void LcmSendData2(INT8U Data)  	reentrant               
{												  
//    LcmDelay();                                
	if(flag_anti_disp == LCM_ANTI_DISP)
		Data = ~Data;                                
	OUTPUT(LCM_DATA_2,Data);
}                                                 

		void LcmSendData3(INT8U Data)  	reentrant               
{												  
//    LcmDelay();                                
	if(flag_anti_disp == LCM_ANTI_DISP)
		Data = ~Data;                                
	OUTPUT(LCM_DATA_3,Data);
}                                                 

/*********************************************************************************************************
** 函数名称: LcmReadData()
** 功能描述: 向LCM模块发送1字节数据
**
** 输 入: ddata: 给LCM模块发送的命令
** 输 出: 无
** 全局变量: 无
** 调用模块: LcmDelay()
**
** 作 者: 龚树强
** 日 期: 2005年4月5日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
		INT8U LcmReadData0(void)  	reentrant               
{												  
	idata INT8U	buf;											  
//    LcmDelay();                                
	INPUT(LCM_DATA_0,buf);
}                                                 

		INT8U LcmReadData1(void)  	reentrant               
{												  
	idata INT8U	buf;											  
//    LcmDelay();                                
	INPUT(LCM_DATA_1,buf);
}                                                 

		INT8U LcmReadData2(void)  	reentrant               
{	
	idata INT8U	buf;											  
//    LcmDelay();                                
	INPUT(LCM_DATA_2,buf);
}                                                 

⌨️ 快捷键说明

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