查看: 2241|回复: 6

[原创] 基于LPC824的OLED双色屏显示

[复制链接]
  • TA的每日心情
    奋斗
    2023-2-15 00:12
  • 签到天数: 969 天

    [LV.10]以坛为家III

    175

    主题

    2843

    帖子

    34

    金牌会员

    Rank: 6Rank: 6

    积分
    7095
    最后登录
    2023-4-20
    发表于 2016-10-21 16:49:07 | 显示全部楼层 |阅读模式
    在各种应用中,人机交互都是不可缺少的,要用好LPC824自然也不例外。由于LPC824开发板所提供的扩展资源并不很多,所以为它配置显示器件时,就应格外地减少对GPIO资源的占用。这里选用的是只有4个引脚的,以IIC接口工作的双色OLED屏,除去2个电源引脚,只需使用2GPIO口。
    为使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的初始化函数如下:
    1. void OLED_Init(void)
    2. {        
    3.     GPIOSetDir(LPC_GPIO_PORT->PIN0, 1, 1);
    4.         GPIOSetDir(LPC_GPIO_PORT->PIN0, 6, 1);
    5.     OLED_SCLK_Set();
    6.     OLED_SDIN_Set();       
    7.     Delay_1ms(800);               //delay_ms(800);
    8.     OLED_WR_Byte(0xAE,OLED_CMD);//--display off
    9.         OLED_WR_Byte(0x00,OLED_CMD);//---set low column address
    10.         OLED_WR_Byte(0x10,OLED_CMD);//---set high column address
    11.         OLED_WR_Byte(0x40,OLED_CMD);//--set start line address  
    12.         OLED_WR_Byte(0xB0,OLED_CMD);//--set page address
    13.         OLED_WR_Byte(0x81,OLED_CMD); // contract control
    14.         OLED_WR_Byte(0xFF,OLED_CMD);//--128   
    15.         OLED_WR_Byte(0xA1,OLED_CMD);//set segment remap
    16.         OLED_WR_Byte(0xA6,OLED_CMD);//--normal / reverse
    17.         OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)
    18.         OLED_WR_Byte(0x3F,OLED_CMD);//--1/32 duty
    19.         OLED_WR_Byte(0xC8,OLED_CMD);//Com scan direction
    20.         OLED_WR_Byte(0xD3,OLED_CMD);//-set display offset
    21.         OLED_WR_Byte(0x00,OLED_CMD);//
    22.         OLED_WR_Byte(0xD5,OLED_CMD);//set osc division
    23.         OLED_WR_Byte(0x80,OLED_CMD);//
    24.         OLED_WR_Byte(0xD8,OLED_CMD);//set area color mode off
    25.         OLED_WR_Byte(0x05,OLED_CMD);//
    26.         OLED_WR_Byte(0xD9,OLED_CMD);//Set Pre-Charge Period
    27.         OLED_WR_Byte(0xF1,OLED_CMD);//
    28.         OLED_WR_Byte(0xDA,OLED_CMD);//set com pin configuartion
    29.         OLED_WR_Byte(0x12,OLED_CMD);//
    30.         OLED_WR_Byte(0xDB,OLED_CMD);//set Vcomh
    31.         OLED_WR_Byte(0x30,OLED_CMD);//
    32.         OLED_WR_Byte(0x8D,OLED_CMD);//set charge pump enable
    33.         OLED_WR_Byte(0x14,OLED_CMD);//
    34.         OLED_WR_Byte(0xAF,OLED_CMD);//--turn on oled panel
    35. }
    复制代码
    为了实现汉字的显示,可使用PCtoLCD2002字模提取软件来获取字模,其提取字模界面如图1所示。
    图片1.png
    1 字模提取

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

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-12-27 18:19
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    5

    主题

    141

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    422
    最后登录
    2019-7-18
    发表于 2016-10-21 17:42:44 | 显示全部楼层
    很是不错的东西,赞
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-7-13 18:31
  • 签到天数: 127 天

    [LV.7]常住居民III

    19

    主题

    1229

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    6118
    最后登录
    2021-7-13
    发表于 2016-10-21 20:23:26 | 显示全部楼层
    用的GPIO还是总线?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-2-15 00:12
  • 签到天数: 969 天

    [LV.10]以坛为家III

    175

    主题

    2843

    帖子

    34

    金牌会员

    Rank: 6Rank: 6

    积分
    7095
    最后登录
    2023-4-20
     楼主| 发表于 2016-10-22 09:01:23 | 显示全部楼层
    wweeww 发表于 2016-10-21 20:23
    用的GPIO还是总线?

    用的GPIO模拟IIC接口
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-1-24 08:47
  • 签到天数: 49 天

    [LV.5]常住居民I

    0

    主题

    524

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1267
    最后登录
    2017-4-19
    发表于 2016-11-1 13:58:44 | 显示全部楼层
    高手啊                          
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-2-15 00:12
  • 签到天数: 969 天

    [LV.10]以坛为家III

    175

    主题

    2843

    帖子

    34

    金牌会员

    Rank: 6Rank: 6

    积分
    7095
    最后登录
    2023-4-20
     楼主| 发表于 2016-11-1 14:31:29 | 显示全部楼层

    过奖了!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-9 14:16
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    25

    主题

    1785

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2245
    最后登录
    2024-4-12
    发表于 2016-11-1 16:51:16 | 显示全部楼层
    谢谢分享
    nxp.png
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-5-14 10:35 , Processed in 0.118352 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表