STM32f103系列诺基亚5110lcd液晶显示程序

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

主体的程序来源于OPENEDV论坛适用于STM32F103系列移植改端口只需在LCD5110.h中改管脚即可本程序包括汉字,英文字符,图片显示,画圆,矩形等子涵,具体参见LCD5110.C编译BY@kinsleyLCD5110.C#includestm32f10x.h#includeLCD5110.h#includedelay.h#includePixel_EN.h#includePixel_CH.h#includePicture.h#defineucharunsignedchar//-------------------------------------------------------------------//Nokia5510指令集//D7D6D5D4D3D2D1D0//00100PDVH//|||_______1-扩展指令集0-基本指令集//||___________1-垂直寻址0-水平寻址//|_______________1-低功耗模式0-正常模式//-------------------------------------------------------------------//显示模式//D7D6D5D4D3D2D1D0//00001D0E//||_______0011//|_______________0101//白屏正常全显反转//-------------------------------------------------------------------/********************************************************************************************************************************************@f_name:voidLCD5110_GPIOInit(void)@brief:初始化硬件端口配置@param:None@return:None*********************************************************************************************************************************************/u8Value_List[504];voidLCD5110_GPIOInit(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(LCDRCC_CLK,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(LCD_CTRL_PORT,&GPIO_InitStructure);LCD5110_Init();}/********************************************************************************************************************************************@f_name:voidLCD5110_Init(void)@brief:液晶初始化@param:None@return:None*********************************************************************************************************************************************/voidLCD5110_Init(void){//复位LCD_低电平脉冲LCD_RST_L;delay_ms(1);LCD_RST_H;//复位串行接口_高电平脉冲LCD_CE_H;delay_ms(1);LCD_CE_L;//设置LCDLCD5110_Send(0x21,DC_CMD);//使用扩展命令设置LCD模式LCD5110_Send(0xC8,DC_CMD);//设置偏置电压LCD5110_Send(0x06,DC_CMD);//温度校正LCD5110_Send(0x13,DC_CMD);//1:48LCD5110_Send(0x20,DC_CMD);//使用基本命令LCD5110_Send(0x0C,DC_CMD);//设定显示模式,正常显示LCD5110_SetContrast(65);//对比度为68}/********************************************************************************************************************************************@f_name:voidLCD5110_SetContrast(u8contrast)@brief:设置LCD对比度(对比度范围:0~127)@param:None@return:None*********************************************************************************************************************************************/voidLCD5110_SetContrast(u8contrast){LCD5110_Send(0x21,DC_CMD);LCD5110_Send(0x80|contrast,DC_CMD);LCD5110_Send(0x20,DC_CMD);}/********************************************************************************************************************************************@f_name:voidLCD5110_SetXY(u8X,u8Y)@brief:设置LCD当前坐标@param:X:0~83Y:0~5@return:None*********************************************************************************************************************************************/voidLCD5110_SetXY(u8X,u8Y){if(X83)X=83;if(Y5)Y=5;LCD5110_Send(0x40|Y,DC_CMD);//行LCD5110_Send(0x80|X,DC_CMD);//列}/********************************************************************************************************************************************@f_name:voidLCD5110Clear(void)@brief:LCD全部清屏@param:None@return:None*********************************************************************************************************************************************/voidLCD5110Clear(void){u16i;LCD5110_Send(0x0c,DC_CMD);LCD5110_Send(0x80,DC_CMD);for(i=0;i504;i++)LCD5110_Send(0,DC_DATA);}/********************************************************************************************************************************************@f_name:voidLCD5110ClearPart(u8X,u8Y,u8L,u8H)@brief:LCD部分清屏@param:u8X,u8Y,u8L,u8H@return:None*********************************************************************************************************************************************/voidLCD5110ClearPart(u8X,u8Y,u8L,u8H){u16i,j;LCD5110_Send(0x0c,DC_CMD);LCD5110_Send(0x80,DC_CMD);for(i=Y;iY+H+1;i++)for(j=X;jX+L+1;j++){LCD5110_SetXY(j,i);LCD5110_Send(0,DC_DATA);}}/********************************************************************************************************************************************@f_name:voidLCD5110_Send(u8data,DCTypedc)@brief:向LCD发送数据@param:u8data:数据DCTypedcDC_CMD=0,//写命令DC_DATA=1//写数据@return:None*********************************************************************************************************************************************///诺基亚5110液晶串行总线协议(传送1个字节)voidLCD5110_Send(u8data,DCTypedc){u8i=8;if(dc==DC_CMD)LCD_DC_CMD;//发送命令elseLCD_DC_DATA;//发送数据//LCD_CE_L;//EnableLCDwhile(i--){LCD_CLK_L;if(data&0x80)LCD_MOSI_H;/*MSBfirst*/elseLCD_MOSI_L;LCD_CLK_H;data=1;/*Datashift*/}//LCD_CE_H;//DisableLCD}/********************************************************************************************************************************************@f_name:voidLCD5110WriteChar(u8X,u8Y,u8ascii)@brief:向LCD写一个英文字符@param:u8X,u8Y,u8ascii:英文ASCII编码@return:None*********************

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功