新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于51单片机的TFT液晶显示设计

基于51单片机的TFT液晶显示设计

作者:时间:2010-12-30来源:网络收藏

  2.1 主程序设计

  主程序在完成对各器件的初始化后, 便开始执行键盘扫描, 以读取芯片数据及显示程序。其主程序流程图如图6所示。


图6 主程序流程图。

  2.2 显示程序设计

  显示程序的设计是本设计的难点, 究其原因, 第一, 是显示驱动芯片的寄存器配置比较复杂, ILI9325有超过40个寄存器, 这些寄存器大部分在显示初始化程序中即可配置完成, 而另外一些则可能会在其他程序中再次用到。例如在每次写入数据前首先要确定写入的范围, 而这个范围需要在寄存器中配置。

  第二, 是往显示屏上输出任何内容均需要手动编写方法。如果在1602液晶或12864液晶上写入英文字母、数字, 有的甚至可以是中文都可以直接使用现有指令写入。但ILI9325芯片没有字库, 因而会带来一些困难, 但同时也带来了灵活的选择, 因为这样, 字体和字号就不受限制了。

  本文在制作字库时, 使用的是常见的字模软件,该软件可以生成任意大小的字模, 还可以根据图片取模。因此, 利用该软件可获得所需的所有汉字和字母, 本文所取的汉字字模大小为40×46,数字为16×31。正是由于字模大小的不同, 本设计生成的两个头文件均使用结构体方式来定义了索引内码和点阵码数据两个属性。特别需要注意的是, 汉字内码为2byte, 而英文数字内码为1byte。因此, 在两个不同的索引程序的判断条件中必须将其区分开。本文还将需要使用的一些简单标志图形(如指示时钟修改位的标志) 也都合并到了英文字库中。

  解决了上述两个难点, 程序设计也就基本完成了。如果需要用到一些复杂的图形, 例如圆形、方形、三角形等, 也完全可以额外增加几个函数。还有一点要注意的是, 从温度采集芯片和时钟芯片获得的数据必须转换为ASCII码, 否则,索引程序就不能识别。本系统的显示程序流程图如图7所示。


图7 显示程序流程图2.3 DS1302子程序及按键处理子程序:

  DS1302时钟日期芯片子程序中定义了读取写入数据的函数。通过这两个函数可以确定读取芯片中时间和日期等数据的函数以及设置这些数据的函数。设置函数将被键盘扫描程序使用, 而读取函数则将在主函数中应用。

  按键处理子程序的主要目的就是轮询各按钮是否被按下, 只有当第一按键被按下时, 才会处理第二和第三按键。注意, 按下第一功能键时,必须关闭DS1302写保护功能, 而在退出设定状态时, 则需要打开写保护。为了在更改数据时实时显示出更改的数值, 在按键处理时, 也要用到显示函数。该流程较为简单, 本文不再赘述。

  2.4 DS18B20芯片子程序

  DS18B20是一种温度采集芯片。在进行温度采集前, 一般首先都需要初始化, 然后还需进行ROM操作, 待发出存储器操作指令后才能读取温度数据。本设计使用定时器0中断, 每隔1秒读取一次温度, 这一速度已经足够满足日常要求了。

  3 结束语

  本文使用51单片机配合QVGA液晶实现了时间、日期和温度的实时显示。事实上, 选用TFT液晶能够更加灵活、多彩的显示内容, 更符合未来的发展趋势。同时, 在处理简单的图像内容上, STC89C54RD+单片机已经足够满足要求, 其刷新速度在首次刷屏后几乎没有延迟, 故可取得很好的效果。同时其硬件电路上也相当简洁, 精度也很好, 因而具有不错的应用前景。

51单片机相关文章:51单片机教程


单片机相关文章:单片机教程


单片机相关文章:单片机视频教程


单片机相关文章:单片机工作原理


led显示器相关文章:led显示器原理



上一页 1 2 3 下一页

关键词: 收发器

评论


相关推荐

技术专区

关闭