• 正文
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

基于LPC824的OLED双色屏显示

2024/12/24
1184
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

在各种应用中,人机交互都是不可缺少的,要用好LPC824自然也不例外。由于LPC824开发板所提供的扩展资源并不很多,所以为它配置显示器件时,就应格外地减少对GPIO资源的占用。这里选用的是只有4个引脚的,以IIC接口工作的双色OLED屏,除去2个电源引脚,只需使用2个GPIO口。

为使OLED工作,其时钟引脚SCL是与P1相连,数据引脚DIN则与P6相连。相应的高低电平输出语句则定义为:
#define OLED_SCLK_Clr() GPIOSetBitValue(LPC_GPIO_PORT->PIN0, 1, 0 ); //10 SCL
#define OLED_SCLK_Set() GPIOSetBitValue(LPC_GPIO_PORT->PIN0, 1, 1 );
#define OLED_SDIN_Clr() GPIOSetBitValue(LPC_GPIO_PORT->PIN0,6 , 0 ); //11 SDA
#define OLED_SDIN_Set() GPIOSetBitValue(LPC_GPIO_PORT->PIN0,6, 1 );
使OLED工作的其它参数则定义为:
#define OLED_MODE 0
#define SIZE 8
#define XLevelL 0x00
#define XLevelH 0x10
#define Max_Column 128
#define Max_Row 64
#define Brightness 0xFF
#define X_WIDTH 128
#define Y_WIDTH 64
#define OLED_CMD 0
#define OLED_DATA 1
OLED的初始化函数如下:

void OLED_Init(void)
{
GPIOSetDir(LPC_GPIO_PORT->PIN0, 1, 1);
GPIOSetDir(LPC_GPIO_PORT->PIN0, 6, 1);
OLED_SCLK_Set();
OLED_SDIN_Set();
Delay_1ms(800); //delay_ms(800);
OLED_WR_Byte(0xAE,OLED_CMD);//--display off
OLED_WR_Byte(0x00,OLED_CMD);//---set low column address
OLED_WR_Byte(0x10,OLED_CMD);//---set high column address
OLED_WR_Byte(0x40,OLED_CMD);//--set start line address
OLED_WR_Byte(0xB0,OLED_CMD);//--set page address
OLED_WR_Byte(0x81,OLED_CMD); // contract control
OLED_WR_Byte(0xFF,OLED_CMD);//--128
OLED_WR_Byte(0xA1,OLED_CMD);//set segment remap
OLED_WR_Byte(0xA6,OLED_CMD);//--normal / reverse
OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)
OLED_WR_Byte(0x3F,OLED_CMD);//--1/32 duty
OLED_WR_Byte(0xC8,OLED_CMD);//Com scan direction
OLED_WR_Byte(0xD3,OLED_CMD);//-set display offset
OLED_WR_Byte(0x00,OLED_CMD);//
OLED_WR_Byte(0xD5,OLED_CMD);//set osc division
OLED_WR_Byte(0x80,OLED_CMD);//
OLED_WR_Byte(0xD8,OLED_CMD);//set area color mode off
OLED_WR_Byte(0x05,OLED_CMD);//
OLED_WR_Byte(0xD9,OLED_CMD);//Set Pre-Charge Period
OLED_WR_Byte(0xF1,OLED_CMD);//
OLED_WR_Byte(0xDA,OLED_CMD);//set com pin configuartion
OLED_WR_Byte(0x12,OLED_CMD);//
OLED_WR_Byte(0xDB,OLED_CMD);//set Vcomh
OLED_WR_Byte(0x30,OLED_CMD);//
OLED_WR_Byte(0x8D,OLED_CMD);//set charge pump enable
OLED_WR_Byte(0x14,OLED_CMD);//
OLED_WR_Byte(0xAF,OLED_CMD);//--turn on oled panel
}

为了实现汉字的显示,可使用PCtoLCD2002字模提取软件来获取字模,其提取字模界面如图1所示。

图1 字模提取

在初始化函数的基础上,利用商家所提供的OLED显示程序就可实现相应的显示功能。本人为激光标线器所制作的界面如图2所示。

图2 激光标线器显示界面

点赞
收藏
评论
分享
加入交流群
举报

相关推荐

电子产业图谱