用Arduino来点亮彩色LCD显示屏

用Arduino来点亮彩色LCD显示屏

  • 话前
    • 为什么是Arduino
    • 含有的功能
  • 点亮你的LCD吧
    • 一些必备的工具
    • 需要安装的开发环境
    • 编译程序
    • 烧录程序
    • 实验成果
  • 下载
  • 说明
    • 显示速度
    • 图片显示
  • 参考资料

话前

为什么是Arduino

Arduino是一个编码很简单的单片机,这已经足够了。虽然我使用了Arduino,但没有用Arduino IDE——它的效率太慢了,一个屏幕有160*128=20480个点,每个点需要传输16位数据,则刷新一次屏幕需要传输327680位数据,如果使用纯纯的Arduino,那么刷新一个页面要到后面马月啊!?不过不急,我用可以用到Arduino的祖先,也就是Avr单片机,进行开发。

Avr单片机是从51发展而来,而演变成一个新的分支,比起51,它少了ACC累加器,却多了很多个寄存器与ALU相连,并且采用了精简指令集,使它的数据表不能放在ROM中。

虽然本例程是基于AVR单片机写的,因为用了C语言,修改、移植却非常方便,不信的话可以试试。

含有的功能

  • lcd初始化
  • 填充颜色
  • 画点
  • 画线
  • 画矩形
  • 显示字符(大/小)
  • 显示字符串
  • RGB颜色

点亮你的LCD吧

一些必备的工具

在本次实验开始前,你需要备有以下的一些模块,这些在淘宝很容易买到。

  1. 一块Arduino UNO
  2. 一块1.8寸、128*160的LCD显示屏
  3. 一根下载线

需要安装的开发环境

  • Arduino IDE
  • Microchip Studio 7

编译程序

将程序导入到Microchip Studio后,点击编译,可以产生hex文件,记住hex文件地址,在烧录程序的时候需要使用。

烧录程序

与STC不同,AVR上传确实有点麻烦。不过我们用的是Arduino单片机,可以有更简单的办法。
首先将单片机插入USB口,选好端口,在能上传程序的情况下,点击“文件”-“首选项”,然后在显示详细输出那里给“上传”打上勾。
用Arduino来点亮彩色LCD显示屏_第1张图片
然后回到主页面上传程序,点击上传按钮能,能看到下面出现了一条指令,将这条指令复制下来,在最后面填hex文件地址的位置换成我们编译产生的hex文件地址,然后在cmd窗口输入这条指令,按下回车即可完成上传。
Arduino输出

实验成果

在本驱动库中,我写了几个例程,分别是显示时钟,测试颜色以及测试字符等,大家可以按需使用。

修改其中的代码还可以实现自己想要的效果,就靠大家自己摸索啦。
用Arduino来点亮彩色LCD显示屏_第2张图片

下载

如果大家需要的话可以到gitee中下载,如果不会用的话也可以在本站下载。

说明

显示速度

我对其中的一些显示函数进行了改进,并写了一些自己的显示函数。相同条件下,Arduino IDE编译出来的程序刷新需要6秒,而AVR只需要一秒,足足快了5倍。

图片显示

由于AVR单片机不允许将图片保存到ROM中,必须载入到RAM中,会导致空间极大地浪费,所以本程序实际上是存在显示图片的函数,但被我注释掉了。刚兴趣的同学可以试着优化图片数组的存储空间,或者将其移植到C51上。

参考资料

lcdwiki

你可能感兴趣的:(AVR,单片机,51单片机,嵌入式硬件,avr)