lcd12864菜单

最近一段时间学习了一下lcd12864屏幕的驱动(本人使用的是带字库的st7920驱动芯片)

  1.该屏幕可以是串行驱动,或者并行驱动。

  2.该屏幕的显示分为2部分,文字显示区DDRAM,图像显示区GDRAM。

  3.该屏幕主要使用用途: ①制作LCD菜单   ②自己DIY制作贪吃蛇,俄罗斯方块等

【注意】.

  1.st7920驱动的lcd12864如果使用串行通信的话,读出来的数据都是0,也就是不可以描点作图了。

  2.我手中的这块屏幕使用并行口通信的话读忙标志也经常出错,可以改用读忙时不操作屏幕,延时100us时间。

描点(比较费时间,感觉项目上使用客户接受不了):

  描点作图需要的话 lcd坐标系理解:以左上角为0点;长边向右方向为x轴;短边向下方向为y轴;将下边两行移动到上边两行的右边,形成 (256行*32列)的坐标。

  由于该屏是按字节x轴方向写入的,一次写8位,所以形成了(256/16 * 32)16行 * 32列 的坐标系。

  x轴方向坐标每写一次可以自动增长一位;y轴方向坐标不自动增长;x轴和y轴的起始坐标偏移都是0x80,所有最后的坐标需要加上0x80。

【步奏】

  1.按照时序图写好读数据,写数据,写命令等指令

  2.按照坐标系描一个点,秒点是需要读出该字节的原本值

  3.按照一定算法实现线(这里我使用的是Bresenham画线算法)

  4.按照一定算法实现各种图形界面。

  5.按照一定算法将图形界面改成自己喜欢的游戏。

制作菜单:

1.lcd菜单制作主要分为3种方式

  方式一:定义一个结构体,结构体成员包括:所有的键值对应操作,函数指针。

  该方法主要是通过返回不同的键值,来执行不同的函数。

  方式二:定义一个结构体,结构体成员包括:所有的键值对应操作,函数指针,双向链表。

  该方法主要是通过返回不同的键值,来执行不同的函数,该方法比上一个方法在逻辑思维了更加具体。

  方式三:采用真正意义上的状态机思想,实现菜单。

2.方法优劣

  方式一和方式二:优点修改方便  缺点占用内存大

  方式三:优点占用内存小  缺点优点修改麻烦

以一个RTU界面来说:该界面大概有100个参数,这方式和方式二至少需要100*5个字节的内容

 

 

posted @ 2019-11-08 06:33  大黄蜂_001  阅读(1017)  评论(0编辑  收藏  举报