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

发布者:CelestialSoul最新更新时间:2011-01-23 关键字:单片机 手机看文章 扫描二维码
随时随地手机看文章

0 引言

  51单片机作为一种常见的通用单片机, 虽然其内部资源, 处理速度等都无法与新型高速单片机相提并论, 但其低廉的价格, 极低的入门难度以及适用于简单场合应用等特点, 依然是开发者的常用选择之一。

  用51单片机驱动液晶模块通常都使用1602和12864等极为简单的液晶模块, 这里介绍用51单片机驱动QVGA分辨率的TFT液晶模块, 以实现彩色和更为复杂的内容显示的方法。同时, 本文还将使用DS1302芯片和DS18B20芯片来实现在液晶屏上显示实时时钟和温度。

  1 硬件设计

  本系统硬件电路的设计主要包括单片机最小系统电路, TFT液晶显示电路, 时钟电路, 设置电路以及温度采集电路。其系统工作原理框图如图1所示。


 

 图1 硬件系统原理框图

  1.1 单片机最小系统

  一个单片机的最小系统包括外部晶振、电源、复位电路等, 这是保证单片机正常工作的必要条件。通过单片机可控制整个系统, 包括读取DS18B20芯片的温度数据, 读取/写入DS1302芯片的日历时钟数据, 检测是否有按键按下并进行相应的操作, 最后还要向显示驱动芯片写入数据,以使得TFT液晶屏上能够显示所需的内容。

  1.2 液晶显示电路

  驱动TFT液晶面板的芯片有多种选择, 本文使用的是台湾奕力科技的ILI9325芯片。该芯片能够支持320×240 (QVGA) 分辨率, 同时内置173KB的RAM, 故其最高能显示26万色。ILI9325支持的接口方式有8/9/16/18位i80系统总线、SPI总线、RGB接口和VSYNC接口。它的总线式接口电路方式是把液晶显示器看作外部的数据存储器,它访问液晶显示器就像访问数据存储器的一个单元一样, 采用这种方式能充分发挥单片机的总线读写功能优势, 而且便于升级和扩展。由于本文采用的STC89C54RD+单片机并没有SPI总线, 因此, 为了节约IO的使用, 本文最终采用8位系统总线的方式来连接ILI9325芯片。其显示部分电路如图2所示。


 

图2 显示部分电路图

  图2中, 除P0口用作8位总线传输数据以外,还需要5个额外的IO口分别用作驱动芯片的片选(CS), 复位(RESET), 命令/数据选择位(RS), 写入位(WR) 和读取位(RD)。但实际上, 由于这里不需要从驱动芯片中读取数据, 因此, RD位在实际程序中并未使用。

  1.3 时钟电路

  时钟电路主要由DS1302芯片组成。DS1302是DALLAS公司推出的涓流充电时钟芯片。该芯片内含一个实时时钟/日历和31 字节的静态RAM,可与单片机通过简单的串行接口进行通信。该芯片可提供秒、分、时、日、日期、月、年等信息, 每月的天数和闰年的天数可自动补偿, 并能计算到2100年。DS1302与单片机之间能简单地采用同步串行方式进行通信, 而且仅需用到复位(RES)、I/O口、SCLK串行时钟三个口线。DS1302工作时的功耗很低, 其双电源管脚可用于主电源和备份电源供应, 并可为可编程涓流充电电源附加七个字节的存储器。因此, 该芯片可广泛应用于电话等便携式仪器以及电池供电的仪器仪表等产品。图3所示是DS1302的时钟电路连接图。 此外, 设计时需要为DS1302 提供外接的32.768 Hz晶振, 而不需要接电容或电阻。


 

图3 时钟电路连接图

  1.4 温度采集电路

  DS18B20数字温度计是DALLAS公司生产的单总线器件(1-Wire)。该芯片具有线路简单, 体积小的特点。因此, 用它组成的测温系统线路简单。它只用一根通信线就可以连接多个DS18B20数字温度计, 因此十分方便。此外, 该芯片还具有以下一些特点:

  ◇ 仅需一个端口即可完成数据的读取和写入;◇ 每个DS12B20芯片都有一个独一无二的序列号, 因此, 可以在一条数据线上挂载多个芯片;◇ 测量温度范围在-55℃到125℃之间;◇ 数字温度计的分辨率可以选择9到12位;◇ 可以设置告警温度的上下限。

  图4所示是该芯片与单片机的连接电路。表1所列是DS18B20三个引脚的定义。


 

图4 温度采集电路图

表1 DS18B20的引脚定义


 

  1.5 设置电路

  设置电路的主要功能是将时间和日期设置到当前时间和日期。本设计仅需使用3个按键即可完成该功能。第一个按键用于选择更改的内容,即第一次按下该按键时, 时钟停止并且出现一指示符, 该指示符指向秒所在位置, 以后每按下该按键, 系统将依次轮询分、时、日、月、年、星期, 这样用户便可修改系统时间和日期, 当选完星期之后, 再次按下第一个按键, 则时钟又从设定的时间继续运行并且指示符消失。另外两个按键起“+”, “-” 的作用, 可供用户调节时间和日期时使用。需要注意的是, 只有在调节状态时按下“+”, “-” 按钮才能起作用。

  在按键去抖方面, 本设计使用的是软件去抖, 但在实际中, 有时也应该加入电容或双稳态触发器以实现硬件去抖。当然, 在本文的实验中, 仅使用软件去抖也能很好的工作。其设置电路原理图如图5所示。


 

图5 设置电路原理图。

  2 软件系统设计

  软件部分的设计主要包括显示子程序、DS1302芯片子程序、DS18B20芯片子程序、按键处理子程序以及主程序。主程序部分主要用于进行各个设备的初始化, 接着进行键盘扫描, 同时读取时间、温度, 最后调用显示子程序。DS1302芯片子程序主要负责读取内部存储器中的时间、日期, 并在有相应键盘响应时将时间、日期数据存入存储器。DS18B20芯片子程序的作用相对比较简单, 只需按一定间隔读取温度数据即可。按键子程序的目的是不停的轮询按键, 一旦有按键被按下, 程序将立即执行相应的处理。而显示部分子程序是该项目中难度最大同时也是代码最多的子程序, 它包含显示驱动芯片的初始化函数,同时也定义了如何向液晶屏发送指定内容的函数, 例如文字、字母、图形等。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单片机的TFT液晶显示设计

上一篇:AT89C51与nRF401芯片在RFID系统中的应用
下一篇:320×240图形点阵液晶与51单片机的接口设计

推荐阅读最新更新时间:2024-03-16 12:31

编写STC单片机的ISP协议的方法介绍
STC单片机包含两个Flash块,在一块Flash中运行的程序可对另一块Flash进行擦除和重新编程.一般都将ISP程序存放在容量较小的一块Flash中(Block1),而将用户代码存放在容量较大的一块Flash中(Block0).Block1中的ISP程序对Block0中的用户代码进行擦除和重新编程. 在做STC单片机解密或是使用的朋友都知道,在STC单片机的程序存储区后,还有一段大约3K的代码,这段代码就是STC单片机的ISP程序,在STC单片机的数据手册里有关于对于ISP的生机资料,既然这段代码是可以升级的,那么我们就可以肯定这个区域是可以改写的,呵呵,这些涉及到了对STC单片机软解密的技术,我不多提了,大家可以动用自己
[单片机]
编写STC<font color='red'>单片机</font>的ISP协议的方法介绍
单片机的FLASH引导装载系统设计
前言 DSP系统的引导装载是指在系统加电时,由DSP将一段存储在外部非易失性存储器中的代码移植到内部高速存储器单元并执行的过程。这种方式即可利用外部存储单元扩展DSP本身有限的ROM资源,又能充分发挥DSP内部资源的高速效能。因此,引导装载系统的性能直接关系到整个DSP系统的可靠性和处理速度,是DSP系统设计中必不可少的重要环节。在装载系统中,外部非易失性存储器和DSP的性能尤为重要。FLASH是一种高密度、非易失性的电可擦写存储器,而且单位存储比特的价格比传统EPROM要低。为此,本文介绍了TMS320C6713浮点DSP芯片和SST公司提供的SST39VF400A FLASH存储器的基本特点,给出了使用该FLASH存储器设计
[应用]
STM32单片机(13) I2C读写AT24Cxx存储器实验
本程序主要利用I2C串行总线,实现AT24Cxx系列EEPROM存储器(此处是AT24C02)的读写,将数据写入,再读出发送至串口 可利用EEPROM存储器数据断电不消失性质存储一些配置数据等。 主程序 /******************************************************************************* * * 软件功能: I2C读写AT24Cxx系列EEPROM存储器 * *******************************************************************************/ #include stm3
[单片机]
学好单片机必须要了解的8个电路设计
单片机上拉电阻的选择 大家可以看到复位电路中电阻R1=10k时RST是高电平 ,而当R1=50时RST为低电平,很明显R1=10k时是错误的,单片机一直处在复位状态时根本无法工作。出现这样的原因是由于RST引脚内含三极管,即便在截止状态时也会有少量截止电流,当R取的非常大时,微弱的截止电流通过就产生了高电平。 LED串联电阻的计算问题 通常红色贴片LED:电压1.6V-2.4V,电流2-20mA,在2-5mA亮度有所变化,5mA以上亮度基本无变化。 端口出现不够用的情况 这时可以借助扩展芯片来实现,比如三八译码器74HC138来拓展。
[单片机]
学好<font color='red'>单片机</font>必须要了解的8个电路设计
高速单片机硬件关键参数设计概述
摘要:随着目前新技术、新工艺的不断出现,高速单片机的应用越来越广,对硬件的可靠性问题便提出更高的要求。本文将从硬件的可靠性角度描述高速单片机设计的关键点。 关键词:高速单片机 可靠性 特性阻抗 SI PI EMC 热设计 引 言 随着单片机的频率和集成度、单位面积的功率及数字信号速度的不断提高,而信号的幅度却不断降低,原先设计好的、使用很稳定的单片机系统, 现在可能出现莫名其妙的错误,分析原因,又找不出问题所在。另外,由于市场的需求,产品需要采用高速单片机来实现,设计人员如何快速掌握高速设计呢? 硬件设计包括逻辑设计和可靠性的设计。逻辑设计实现功能。硬件设计工程师可以直接通过验证功能是否实现,来判定是否满足需求。
[单片机]
51单片机低功耗工作模式
低功耗操作方式 在以电池供电的系统中有时为了降低电池的功耗在程序不运行时就要采用低功耗方式低功耗方式有两种—待机方式和掉电方式 低功耗方式是由电源控制寄存器PCON上一课我们提到过的来控制的电源控制寄存器是一个逐位定义的8位寄存器其格式如下   PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,单元地址是87H,其结构格式如下:    PCON电源管理寄存器结构 PCON D7 D6 D5 D4 D3 D2 D1 D0 位符号 SMOD - - - GF1 GF0 PD IDL PCON标志位说明: 在CHMOS型单片机中,除SMOD位外,其他位均为虚设的,SMOD是串行口波特率倍增位,当
[单片机]
基于串口的温度检测数据单片机仿真
  0 引言   本文研究的是一种基于串口的温度检测数据收发模块。利用DS18B20 温度传感器设计温度监测模块,精确到0.1℃,用液晶显示当前温度,然后通过串口调试助手向单片机发送指令。当单片机收到十六进制指令01时,将当前温度值以1s 为间隔传回PC 机显示,同时PC 机显示Turn on temp;当单片机收到十六进制指令02 时,停止温度值的回传,PC 机显示Turn off temp;当单片机收到其它指令时,PC 机显示Error。   1 总体设计   本系统功能由硬件和软件两大部份协调完成,硬件部分主要完成信息的显示;软件主要完成信号的处理及控制功能等。   本系统的硬件采用模块化设计,以AT89C52 单片
[单片机]
基于串口的温度检测数据<font color='red'>单片机</font>仿真
基于GSM模块Q2403A和8051单片机实现短消息收发系统的应用方案
基于GSM短消息的业务不需要建立拨号连接,只需把待发的消息加上目的地址发送至短消息中心,再由短消息中心转发到最终目标。GSM 短消息业务以其连接简单、费用低廉、覆盖范围广、实现方便等优点得到了广泛的应用。运用 GSM 短消息实现远程测控的可靠性较高、信号传播距离远、覆盖面积广,并且可以节省建网初期的巨额投资。 本文对基于GSM短消息收发系统的设计与实现作了具体描述,给出了系统的软硬件设计方案,对主要硬件,即GSM模块Q2403A 和8051单片机作了重点介绍。给出了系统的软件设计,包括PC与单片机通信部分和短消息收发部分。最后实现系统监控功能。 系统硬件实现 总体系统结构 该系统硬件主要由8051单片机扩展电路、Q2403
[单片机]
基于GSM模块Q2403A和80<font color='red'>51</font><font color='red'>单片机</font>实现短消息收发系统的应用方案
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved