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

📄 c_lcd19264_driver.c

📁 交流异步电机直接转矩控制程序
💻 C
📖 第 1 页 / 共 4 页
字号:
/****************************************************************************
* 文 件 名:c_lcd19264driver.c
* 版    本: V1.0
* 功    能:字符液晶模块驱动程序,采用模拟总线方式工作。
* 连    接:
*   D0      --      P0.8       // DB0
*   .       --      .
*   .       --      .
*   .       --      .
*   D7      --      P0.15       // DB7
*
*   R/S     --      P0.2        // RS
*	R/W     --      P0.3        // RW
*	E       --		P0.4        // E
*   CS1		--		P0.5		//CS1
* 	CS2		--		P0.6		//CS2
*  	CS3		--		P0.7		//CS3
*   R/W  为0进行写操作,为1时进行读操作
*   D/I  为1表示数据传送,为0表示命令传送
*   E    读写脉冲
*   
*   作者:黄振升
*   日期:2005/10/31
*---------------历史版本信息-------------------------------------------------
*  修 改 人: 黄振升
*  版    本: V1.1
*  日   期: 2007.1.20
*  描   述:
****************************************************************************/

#include "config.h"


#if LCD19264_INTERFACE_EN >0
/***********************************************************************************************
***					 					数字用字库
*********************************************************************************************/
uint8 const Number[] =
{/*0    */
0xF8,0x04,0x04,0x04,0xF8,0x00,0x01,0x02,
0x02,0x02,0x01,0x00,

/*1    */
0x00,0x08,0xFC,0x00,0x00,0x00,0x00,0x00,
0x03,0x00,0x00,0x00,

/*2    */
0x18,0x84,0x44,0x44,0x38,0x00,0x03,0x02,
0x02,0x02,0x02,0x00,

/*3    */
0x88,0x04,0x24,0x24,0xD8,0x00,0x01,0x02,
0x02,0x02,0x01,0x00,

/*4    */
0xC0,0xB0,0x88,0xFC,0x80,0x00,0x00,0x00,
0x00,0x03,0x00,0x00,

/*5    */
0x3C,0x14,0x14,0x14,0xE4,0x00,0x01,0x02,
0x02,0x02,0x01,0x00,

/*6    */
0xF0,0x28,0x24,0x24,0xC8,0x00,0x01,0x02,
0x02,0x02,0x01,0x00,

/*7    */
0x04,0x04,0x04,0xE4,0x1C,0x00,0x00,0x00,
0x03,0x00,0x00,0x00,

/*8    */
0xD8,0x24,0x24,0x24,0xD8,0x00,0x01,0x02,
0x02,0x02,0x01,0x00,

/*9    */
0x38,0x44,0x44,0x44,0xF8,0x00,0x01,0x02,
0x02,0x01,0x00,0x00

};


uint8 const dot[]=
{
/*.    */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00



};

uint8 const zero[]=
{/*.    */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00
};

unsigned char const V[12] = {
/*V    */
0x00,0x30,0xC0,0x00,0xC0,0x30,0x00,0x00,
0x01,0x02,0x01,0x00

};

uint8 const ynumber[] = {				//8*16数值库

/*0    */
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,
0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,

/*1    */
0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,
0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,

/*2    */
0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,
0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,

/*3    */
0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,
0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,

/*4    */
0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,
0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,

/*5    */
0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,
0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,

/*6    */
0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,
0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,

/*7    */
0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,
0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,

/*8    */
0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,
0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,

/*9    */
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,
0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,


/*X    */
0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,
0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,

/*.    */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,
0x00,0x00,0x00,0x00

};

uint8 const ynumber16b[] = {	
/*0    */
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,
0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,
/*1   CHAR_31 */
0x00,0x00,0x10,0xF8,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x1F,0x10,0x00,0x00,0x00,

/*2   CHAR_32 */
0x00,0x30,0x08,0x08,0x08,0xF8,0x00,0x00,
0x00,0x00,0x18,0x14,0x13,0x10,0x08,0x00,

/*3   CHAR_33 */
0x00,0x00,0x10,0x08,0x88,0x78,0x00,0x00,
0x00,0x00,0x10,0x20,0x20,0x11,0x0E,0x00,

/*4   CHAR_34 */
0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,
0x00,0x03,0x02,0x02,0x02,0x1F,0x02,0x00,

/*5   CHAR_35 */
0x00,0x00,0x70,0x48,0xC8,0x88,0x00,0x00,
0x00,0x10,0x10,0x20,0x10,0x0F,0x00,0x00,

/*6   CHAR_36 */
0x00,0x00,0xE0,0x90,0x88,0x80,0x00,0x00,
0x00,0x07,0x18,0x20,0x20,0x19,0x06,0x00,

/*7   CHAR_37 */
0x00,0x10,0x08,0x08,0x88,0x78,0x00,0x00,
0x00,0x00,0x00,0x18,0x07,0x00,0x00,0x00,

/*8   CHAR_38 */
0x00,0x00,0x78,0x88,0x88,0x78,0x00,0x00,
0x00,0x0C,0x12,0x21,0x21,0x1E,0x00,0x00,

/*9   CHAR_39 */
0x00,0x60,0x98,0x08,0x08,0xF8,0xC0,0x00,
0x00,0x00,0x21,0x12,0x09,0x07,0x00,0x00,

/*A   CHAR_41 */
0x00,0x00,0xC0,0x28,0xF0,0x00,0x00,0x00,
0x00,0x1C,0x03,0x02,0x03,0x1F,0x10,0x00,

/*B   CHAR_42 */
0x00,0x00,0xF8,0x08,0x88,0x88,0x70,0x00,
0x00,0x00,0x1F,0x11,0x10,0x11,0x1E,0x00,

/*C   CHAR_43 */
0x00,0xE0,0x18,0x08,0x08,0x08,0x38,0x00,
0x00,0x0F,0x18,0x20,0x20,0x10,0x08,0x00,

/*D   CHAR_44 */
0x00,0xF8,0x08,0x08,0x08,0x18,0xF0,0x00,
0x00,0x1F,0x10,0x10,0x10,0x18,0x0F,0x00,

/*E   CHAR_45 */
0x00,0x00,0xF8,0x88,0x88,0xD8,0x00,0x00,
0x00,0x00,0x1F,0x10,0x10,0x11,0x18,0x00,

/*F   CHAR_46 */
0x00,0x00,0xF8,0x88,0x88,0x88,0x08,0x00,
0x00,0x00,0x1F,0x00,0x00,0x01,0x00,0x00

};
			//16进制字库


uint8 const NONE[] = {						//10权开方表
/*.    */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
};

uint32 const SQURE10[] = {						//10权开方表
1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000
};
/***********************************************************************************************
***					 					外围接口,定义
*********************************************************************************************/

#define DISPON	0X3f	//显示ON
#define DISPOFF  0X3e	//显示0FF
#define DISPFIRST 0Xc0	//显示起始行定义
#define	SETX	0X40	//x定位指令(页)
#define SETY	0XB8	//x定位指令(页)
#define	Lcdbusy	0x80  	//LCM忙判断标志

/***********************************************************************************************
***					 					显示边界位置
*********************************************************************************************/

#define MODL	0X00 	//左区		     40.
#define MODM	0X40 	//左区和中区边界
#define MODR	0X80 	//中区和右区边界
#define LCMLIMIT	0XC0 	//显示右区边界

/***********************************************************************************************
***					 				定义全局变量
*********************************************************************************************/

uint8 X,Y,WR_Data; 	//列,行,输出数据

uint8 xy;						//画线标志

uint32 LCDreset_flage;			//长时间液晶没有启动,液晶复位
uint32 test;
	


/***********************************************************************
* 名    称:LCd19264_DispIni()
* 功    能:LCd19264显示初始化
* 入口参数:无
* 出口参数:无
* 说明    :占用
*   R/S     --      P0.3        // RS
*	R/W     --      P0.4        // RW
*	E       --		P0.5        // E
*   CS1		--		P0.6		//CS1
* 	CS2		--		P0.7		//CS2
*  	CS3		--		P0.8		//CS3
*   D0      --      P0.9       // DB0
*   .       --      .
*   .       --      .
*   .       --      .
*   D7      --      P0.16       // DB7
***********************************************************************/
void LCD19264_Init(void)
{ 
    PINSEL0 &= 0x003FFFFF;//根据需要修改
    
    PINSEL1 &= 0xFFFF0000;

    //IO0DIR =IO0DIR  &0xff << LCD19264_BusLSB  |1 << LCD19264_E  |1 << LCD19264_RS |  1 << LCD19264_DI;
	IO0DIR =IO0DIR  |(0xFF << LCD19264_BusLSB)  |(1 << LCD19264_E ) |(1 << LCD19264_DI)|(1 << LCD19264_RW) |(  1 << LCD19264_CS1)|(  1 << LCD19264_CS2)|(  1 << LCD19264_CS3);
	
	
	LCD19264_BusData(0XFF);
	LCD19264_BusData(0XF0);
	
	LCD19264_SCS1();
	LCD19264_SCS2();
	LCD19264_SCS3();
	LCD19264_SDI();
	LCD19264_SRW();
	LCD19264_SE();
	
	
	 
	//LCD19264_Writecommand_L(DISPOFF);//关闭显示
	//LCD19264_Writecommand_M(DISPOFF);
	//LCD19264_Writecommand_R(DISPOFF);
	
	

	LCD19264_Writecommand_L(DISPON);//打开显示
	LCD19264_Writecommand_M(DISPON);
	LCD19264_Writecommand_R(DISPON);
	


	


	LCD19264_Writecommand_L(DISPFIRST);//定义显示起始行为零
	LCD19264_Writecommand_M(DISPFIRST);//定义显示起始行为零
	LCD19264_Writecommand_R(DISPFIRST);//定义显示起始行为零

	LCD19264_Cls();				//清屏
			//清屏
	X = 0;
	Y = 0;
	LCD19264_Fix_point();				//定位,坐标00
}






/***********************************************************************
* 名    称:LCd19264_Busy()
* 功    能:LCd19264左中右读忙子程序群,兼作选择HD61202用
* 入口参数:无
* 出口参数:无
* 说明    :占用
*   R/S     --      P0.3        // RS
*	R/W     --      P0.4        // RW
*	E       --		P0.5        // E
*   CS1		--		P0.6		//CS1
* 	CS2		--		P0.7		//CS2
*  	CS3		--		P0.8		//CS3
*   D0      --      P0.9       // DB0
*   .       --      .
*   .       --      .
*   .       --      .
*   D7      --      P0.16       // DB7
***********************************************************************/

void Lcd19264_Busy(void)
{	
	uint32 i,reset_flage;
	IO0DIR =IO0DIR  & ~(0xFF << LCD19264_BusLSB) ; //设成输入方式

	DelayNS(1);

	LCD19264_CE();	//拉低电平
	LCD19264_CDI(); //命令
	LCD19264_SRW(); //读
	

	LCD19264_SE();	//使能
	

	test = LCD19264_BusData_Read();
	for(i=0;i<108000;i++)
	{	
		reset_flage = 1;
		if (  (LCD19264_BusData_Read() & Lcdbusy)==0) 
		{
			reset_flage = 0;
			break;//等待忙完
		}
	}
	if(reset_flage == 1) LCDreset_flage = 1;		//重新初始化液晶
	IO0DIR =IO0DIR  | (0xFF << LCD19264_BusLSB) ; //重新设成输出方式
	//DelayNS(1);
	LCD19264_CE();	//禁能

	

}

void lcd19264busy_L(void)
{	
	LCD19264_CCS1() ;LCD19264_SCS2();LCD19264_SCS3();//清零选择左区

	//DelayNS(1);

	Lcd19264_Busy();
}


void lcd19264busy_M(void)
{
	LCD19264_SCS1() ;LCD19264_CCS2();LCD19264_SCS3();//清零选择中区

	//DelayNS(4);
	
	Lcd19264_Busy();
}


void lcd19264busy_R(void)
{
	LCD19264_SCS1()  ;LCD19264_SCS2();LCD19264_CCS3();//清零选择右区

	//DelayNS(4);

	Lcd19264_Busy();

⌨️ 快捷键说明

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