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

📄 am12864.c

📁 arm7 lpc2132+vs1003+sdcard制作MP3 此程序在 KEIL3下编译
💻 C
📖 第 1 页 / 共 5 页
字号:
	/*--  文字:  1	--*/
	/*--  宋体24;  此字体下对应的点阵为:宽x高=17x32   --*/
	0x00,0x00,0x00,0x80,0x80,0x80,0x80,0xC0,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x02,0x02,0x02,0x03,0x03,0x03,0x03,0x03,0x02,0x02,0x02,0x00,0x00,
	
	/*--  文字:  2	--*/
	/*--  宋体24;  此字体下对应的点阵为:宽x高=17x32   --*/
	0x00,0x00,0x00,0x80,0xC0,0x60,0x20,0x20,0x20,0x20,0x60,0xE0,0xC0,0xC0,0x00,0x00,
	0x00,0x00,0x0F,0x0F,0x0C,0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0x7F,0x3F,0x1F,0x00,
	0x00,0x00,0x80,0xC0,0x60,0x30,0x18,0x0C,0x06,0x03,0x01,0x00,0x80,0xF0,0xF0,0x00,
	0x00,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,
	
	/*--  文字:  3	--*/
	/*--  宋体24;  此字体下对应的点阵为:宽x高=17x32   --*/
	0x00,0x00,0x80,0xC0,0xC0,0x60,0x20,0x20,0x20,0x60,0xE0,0xC0,0xC0,0x00,0x00,0x00,
	0x00,0x00,0x07,0x07,0x07,0x00,0x40,0x40,0x40,0xE0,0xF0,0xBF,0x9F,0x0F,0x00,0x00,
	0x00,0x00,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x81,0xFF,0xFF,0x3C,0x00,
	0x00,0x00,0x00,0x01,0x01,0x03,0x02,0x02,0x02,0x02,0x03,0x01,0x01,0x00,0x00,0x00,
	
	/*--  文字:  4	--*/
	/*--  宋体24;  此字体下对应的点阵为:宽x高=17x32   --*/
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xE0,0xE0,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0xC0,0xF0,0x38,0x1E,0x07,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,
	0x00,0x08,0x0E,0x0F,0x09,0x08,0x08,0x08,0x08,0xFF,0xFF,0xFF,0xFF,0x08,0x08,0x08,
	0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x07,0x07,0x07,0x07,0x04,0x04,0x04,
	
	/*--  文字:  5	--*/
	/*--  宋体24;  此字体下对应的点阵为:宽x高=17x32   --*/
	0x00,0x00,0x00,0x00,0xE0,0xE0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x00,
	0x00,0x00,0x00,0xFC,0xFF,0x63,0x30,0x10,0x10,0x10,0x30,0x70,0xE0,0xC0,0x00,0x00,
	0x00,0x00,0xF0,0xF0,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x3F,0x00,
	0x00,0x00,0x00,0x01,0x03,0x02,0x02,0x02,0x02,0x02,0x03,0x01,0x01,0x00,0x00,0x00,
	
	/*--  文字:  6	--*/
	/*--  宋体24;  此字体下对应的点阵为:宽x高=17x32   --*/
	0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x60,0x60,0x20,0x20,0x20,0xE0,0xC0,0x80,0x00,
	0x00,0x00,0xF0,0xFE,0xFF,0xC7,0xC0,0x60,0x20,0x20,0x20,0x60,0xE1,0xC1,0x81,0x00,
	0x00,0x00,0x1F,0x7F,0xFF,0xE1,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,0x3F,
	0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x03,0x02,0x02,0x02,0x03,0x01,0x01,0x00,0x00,
	
	/*--  文字:  7	--*/
	/*--  宋体24;  此字体下对应的点阵为:宽x高=17x32   --*/
	0x00,0x00,0x80,0xE0,0xE0,0xE0,0x60,0x60,0x60,0x60,0x60,0x60,0xE0,0xE0,0x60,0x00,
	0x00,0x00,0x07,0x07,0x01,0x00,0x00,0x00,0xC0,0xF0,0x3C,0x0F,0x03,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFE,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	
	/*--  文字:  8	--*/
	/*--  宋体24;  此字体下对应的点阵为:宽x高=17x32   --*/
	0x00,0x00,0x00,0x80,0xC0,0xE0,0x60,0x20,0x20,0x20,0x60,0xE0,0xC0,0x80,0x00,0x00,
	0x00,0x00,0x0F,0x1F,0xBF,0xF8,0xF0,0xE0,0xC0,0xC0,0xC0,0xF0,0x3F,0x1F,0x0F,0x00,
	0x00,0x7C,0xFE,0xFF,0x83,0x01,0x00,0x00,0x00,0x01,0x03,0x87,0xFF,0xFE,0x7C,0x00,
	0x00,0x00,0x00,0x01,0x01,0x03,0x02,0x02,0x02,0x02,0x03,0x01,0x01,0x00,0x00,0x00,
	
	/*--  文字:  9	--*/
	/*--  宋体24;  此字体下对应的点阵为:宽x高=17x32   --*/
	0x00,0x00,0x80,0xC0,0xC0,0x60,0x20,0x20,0x20,0x20,0x60,0xC0,0x80,0x00,0x00,0x00,
	0x00,0x7E,0xFF,0xFF,0x81,0x00,0x00,0x00,0x00,0x00,0x80,0xC1,0xFF,0xFF,0xFC,0x00,
	0x00,0x00,0xC0,0xC1,0xC3,0x03,0x02,0x02,0x02,0x83,0xC1,0xF9,0x7F,0x3F,0x07,0x00,
	0x00,0x00,0x01,0x01,0x03,0x02,0x02,0x02,0x03,0x03,0x01,0x00,0x00,0x00,0x00,0x00,
	
	/*--  文字:  .	--*/
	/*--  宋体24;  此字体下对应的点阵为:宽x高=17x32   --*/
	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,0x80,0xC0,0xC0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x01,0x03,0x03,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
void AM12864_Delay_Nmicrosecond(uint32 t)
{
	uint32 i;
	for(i=0;i<=t;i++);
}
/**************************************************************************************************
**Name:	  	
**Function:	
**Input:	
**Output:	
**************************************************************************************************/
void AM12864_Bl(uint8 state)
{		
	switch(state)
	{	
		case (ON):								// 开AM12864 EL 背光(AM12864_BL = Low)并延时等待上电稳定
			AM12864_BL_SET() ; 	
			break;
		
		case (OFF):								// 关AM12864 EL 背光(AM12864_BL = High)
			AM12864_BL_CLR() ; 		
			break;
	}
}
/**************************************************************************************************
**Name:	  	
**Function:	
**Input:	
**Output:	
**************************************************************************************************/
void AM12864_SendByte(uint8 Dat)
{
	uint8 SPIBitNum = 8;						//置数据发送循环变量 初值
	
	while (SPIBitNum--)
	{
		AM12864_SCK_CLR();						//SCK = LOW
		
		switch (Dat & 0x80)						//读取待发送位
		{
			case (0x80):						// Bit7 = 1
				AM12864_DI_SET();				//DI  H
				break;
				
			case (0x00):						// Bit7 = 0
				AM12864_DI_CLR();				//DI  L
				break;
		}
		Dat<<=1;
		AM12864_SCK_SET();						//SCK = HIGH
	}
}
/**************************************************************************************************
**Name:	  	
**Function:	
**Input:	
**Output:	
**************************************************************************************************/
void AM12864_Reset(void)
{
	AM12864_CS_SET();							// CS = High
	
	AM12864_RST_SET();							// Rst = High
	AM12864_Delay_Nmicrosecond(1000);
	AM12864_RST_CLR();							// Rst = Low > 900nS
	AM12864_Delay_Nmicrosecond(1000);
	AM12864_RST_SET();							// Rst = High
}
/**************************************************************************************************
**Name:	  	
**Function:	
**Input:	
**Output:	
**************************************************************************************************/
void AM12864_SendData(uint8 Dat, uint8 OrderMode, uint8 DisplayMode)
{
	AM12864_CS_SET();						  		 // CS = High, 关片选
	AM12864_SCK_SET();					   	 		 // SCK = High
	AM12864_CS_CLR();			  		  	  		 // CS = Low, 开片选
	
	switch(OrderMode)
	{
		case (AM12864_Dat):				
			AM12864_RS_SET();						//Write display data(RS = High)
			switch (DisplayMode)					// 发送显示命令或显示数据到AM12864
			{
				case (AM12864_Block):					// 反白显示数据取反输出
					AM12864_SendByte(~Dat);
					break;
					
				case (AM12864_Natural):					// 正常显示数据直接输出
					AM12864_SendByte(Dat);
					break;
			}
			break;
		
		case (AM12864_Cmd):
			AM12864_RS_CLR();						//Write display order(RS = Low)
			AM12864_SendByte(Dat);
			break;
	}
	AM12864_CS_SET();								// CS = High
} 
/**************************************************************************************************
**Name:	  	
**Function:	
**Input:	
**Output:	
**************************************************************************************************/
void AM12864_Clear(void)
{
	uint8 ucLoop1;
	uint8 ucLoop2;

	for (ucLoop1 = 0; ucLoop1 < 8; ucLoop1++)
	{
		AM12864_SendData((0xB0 | ucLoop1), AM12864_Cmd, AM12864_Natural);   // WRITE PAGE ADDRESS	
		AM12864_SendData(0x00, AM12864_Cmd, AM12864_Natural);	   // WRITE LOW ADDRESS
		AM12864_SendData(0x10, AM12864_Cmd, AM12864_Natural);	   // WRITE HIGE ADDRESS	

		for (ucLoop2 = 0; ucLoop2 < 132; ucLoop2++)
		{	
			AM12864_SendData(0, AM12864_Dat,0); 			// 清空显示缓冲区
		}
	}
}
/******************************************************************************************
* 函数名称    :  
* 功能描述    :
* 参数名称 :
* 
* 返回值      :
* 作者        :qsw
* 创建日期    :
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史-------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void AM12864_Init(void)
{		
	AM12864_PO_GPIO();		
	AM12864_PO_OUT();
	AM12864_PO_SET();
				
	AM12864_CS_GPIO();			
	AM12864_CS_OUT();					
	
	AM12864_RST_GPIO();	
	AM12864_RST_OUT();		  
			
	AM12864_RS_GPIO();		
	AM12864_RS_OUT();		
	
	AM12864_DI_GPIO();		
	AM12864_DI_OUT();	
	
	AM12864_SCK_GPIO();	
	AM12864_SCK_OUT();		

	AM12864_BL_GPIO();		
	AM12864_BL_OUT();	

	AM12864_Reset();
	
	AM12864_SendData(0xA0, AM12864_Cmd, AM12864_Natural);			// ADC Select				// 液晶显示方向定义

	AM12864_SendData(0xC0, AM12864_Cmd, AM12864_Natural);			// SHL Select				// SHL 设置

	AM12864_SendData(0xA2, AM12864_Cmd, AM12864_Natural);			// Select AM12864 Bias			//液晶显示屏偏压设置(1/9)

	AM12864_SendData(0xA6, AM12864_Cmd, AM12864_Natural);			// Reverse Display On/Off 	//液晶正/反显示模式开关
	
	AM12864_SendData(0xA4, AM12864_Cmd, AM12864_Natural);			// Entire Display On/Off 	//液晶完整显示模式开关

	AM12864_SendData(0xE2, AM12864_Cmd, AM12864_Natural);			// Reset					//内部软件复位操作
	
	AM12864_SendData(0x2F, AM12864_Cmd, AM12864_Natural);			//Power Control				// 设置供电控制	
	AM12864_SendData(0x25, AM12864_Cmd, AM12864_Natural);

	AM12864_SendData(0x81, AM12864_Cmd, AM12864_Natural);			// Reference Voltage Select	// 设置电源参考电压选择(此值可调整屏幕对比度)
	AM12864_SendData(0x25, AM12864_Cmd, AM12864_Natural);

	AM12864_SendData(0x40, AM12864_Cmd, AM12864_Natural);			// Initial Display Line		// 初始化显示屏幕起始行为第"0" 行

	AM12864_SendData(0xAF, AM12864_Cmd, AM12864_Natural);			// Display On/Off		//打开液晶显示屏幕开关
	
	AM12864_Clear();											    // 清空当前系统显示
}
/******************************************************************************************
* 函数名称    :  
* 功能描述    :
* 参数名称 :

⌨️ 快捷键说明

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