基于T6963C的LCD与ARM7的接口设计

发布者:淡雅时光最新更新时间:2011-06-17 关键字:T6963C  LCD  ARM7 手机看文章 扫描二维码
随时随地手机看文章
0 引言
    液晶模块作为普遍采用的显示器件,具有功耗低、显示内容多、控制灵活等特点。在中规模图形液晶显示模块中,内置T6963C控制器的LCD模块是目前较为常用的内置控制器型图形液晶显示模块。该模块可由硬件电路完成初始化设置,故可节省软件开销。软件上,T6963C控制器也提供了丰富的指令集,且控制方式灵活多样。而以ARM为内核的32位微处理器,则具备高性能和低功耗的特点,在工业控制领域应用广泛。因此,对于不带液晶接口的中低端ARM7芯片,可由其通用输入输出(GPIO,general purpose input andoutput)引脚来实现与LCD的连接,并控制LCD实现其显示功能。


1 LCD硬件接口设计
    T6963C控制器可与液晶模块的行、列驱动器及显示缓冲区RAM连接,并可通过这种硬件连接方式设置好液晶屏结构(单、双屏)、显示窗口长度、宽度、字体等。内置T6963C的单屏结构点阵图形液晶显示模块的原理框图如图1所示。

    图1中,数据总线和控制总线都直接与CPU的IO口线相连。液晶可采用SMG240128A点阵图形液晶显示模块;而CPU则可选用基于ARM7TD-MI-S核的32位微处理器芯片LPC2134。该芯片是基于RISC的原理设计,指令和译码简单方便。它采用三级流水线技术,CPU操作频率最大可达60MHz,并具备47个通用I/O口,同时含有丰富的外设资源,十分适合于工业测量及控制领域使用。该液晶模块与LPC2134的接口电路如图2所示。
    图2中的液晶模块采用数据并行传输模式,通过两个驱动芯片74L3245和74HC14与LPC2134相连。其中74LS245是八位双向总线收发器,它可将液晶模块的数据总线与CPU的P0口的8条口线相连,负责控制数据的传输,并具备数据锁存和缓冲功能:74HC14为六输入反相驱动器,可驱动液晶模块的四条控制线。液晶模块的21脚为背光接地端,它由p0.23控制背光的开与关,通过电位器W2可调节背光亮度,用电位器W1则可控制调节液晶显示的对比度。FG引脚为边框地,须接地以防止静电和雷击。FS引脚接地,可将字体控制为8x8点阵。

2 显示功能的实现
    液晶显示功能可通过LPC2134对液晶控制器T6963C的控制来实现,T6963C控制器内置丰富的指令集,可通过指令来设置显示功能。指令可带一个或两个参数,也可无参数。每条指令的执行都是先送入参数,再送入指令代码。每次操作之前,还需要先进行状态字的检测。[page]

2.1 底层子函数设计
    在程序层面,不管是状态字的检测,还是参数和指令代码的传送,都涉及到对液晶控制器的读写操作。根据T6963C说明书中提供的读写时序,并结合本系统的硬件设计方案,可得到如图3所示的读写时序图。

    在设计程序时。可根据LPC2134的GPIO引脚模拟控制读写时序图来实现数据的传输。针对数据和读写类型,可设计四个底层子函数,以完成传输功能,其功能说明如表1所列。

    其中写命令字子函数及读数据子函数的源代码如下:
    事先在头文件中定义如下常量:
    #define WR 1<<25//p0.25写控制位
    #define CD 1<<17//p1.17数据指令选择控制位
    #define RD 1<<26//p0.26读控制位
    #define CE 1<<27 //p0.27 LCD片选
    #define DIR 1<<22 //p1.22 74LS245数据传送方向控制位
    #define DPT0xOff<<16//数据口
    //写命令字子函数完整源代码
    void LCD_WriteCommand(uint8 command)
    {
    uint32 com=0;//定义临时存储单元
    com=command;
    IOODIR=IOODIR | DPT;//设置输出数据
    IOOSET=IOOSET | CD;//命令属性
    IOOSET=IOOSET | WR:
    IOOSET=IOOSET | RD;
    IO1CLR=I01CLR | DIR;
                        //数据传输方向设定
    IOOSET=(IOOSET&(~DPT))|(com<<16);
                       //数据写入口线
    IOOCLR=(IOOCLR&(-DPT)|(((-com)&(0xOff)<<16);
    IOOCLR=IOOCLR | CE;//选中LCD
    IOOCLR=IOOCLR | WR;//写有效
    IOOSET=IOOSET | WR;//写入完毕,写置低
    IOOSET=IOOSET | CE;
    }[page]

    //读数据子函数完整源代码
    uint8 LCD_ReadData 0
    {
    uint8 data;
    IO0DIR=IOODIR&(~DPT);//输入数据
    I01CLR=I01CLR | CD;//数据属性
    IO0SET=IO0SET | WR;
    IO0SET=IO0SET | RD;
    IO1SET=IO1SET | DIR;
                       //数据传输方向设定
    IO0CLR=IO0CLR | CE;
    IO0CLR=IO0CLR | RD;//读有效
    data=(IO0PIN&DPT)>>16;
                       //由引脚状态寄存器读出数据
    IOOSET=IOOSET | RD;//读无效
    IO0SET=IO0SET | CE;
    return (data);//返回值为读取的数据
    }
    至于读状态和写数据子函数的编写,设计时可参照该子函数来完成。


2.2 驱动层实现
    接下来需要利用T6963C的指令来完成驱动层显示功能的设置。其中部分基本指令的定义如表2所列。事实上,驱动层子函数的编写都可通过调用写命令、写数据、读状态子函数来实现。

    其液晶的初始化设置函数源代码如下:
void LCD_Initialize(void)
{
    LCD_WriteTCommand3(LCD_TXT_STP,0x00,0x00);//文本模式RAM起始地址
    LCD_WriteTCommand3(LCD_TXT_WID, 30,0x00);//设置文本模式的宽度,宽度为N/6或N/8,N为宽度点数,如240
    LCD_WriteTCommand3(LCD_GRH_STP,0x00,0x00);//图形方式RAM起始地址
    LCD_WriteTCommand3(LCD_GRH_WID,30,0x00);//设置图形模式的宽度,宽度为N/6或N/8,N为宽度点数,如240
    LCD_WriteTCommand 1(LCD_MOD_OR);//设置显示方式为”或”
    LCD_WriteTCommandl(LCD_DIS_SW |0x08);//设置纯图形显示模式
}
2.3 汉字读写程序设计
    初始化液晶后,就可设置显示区域、显示方式和显示状态。接下来应将待显示字符的字模数据写入显示缓冲区,以便实现显示功能。对于文本方式,可先将字模数据写入显示缓冲区并建立CGRAM,再由数据存储位置确定字符代码,然后通过写人对应代码即可显示字符;对于图形显示方式,则需将字模数据逐个字节的写入图形显示缓冲区来实现显示功能。二者相比各有特点,其中文本模式显示速度快。且内置CGROM中含128个ASCII字符,可直接调用,但需先建立CGRAM,而且容量有限,只能管理2K字节的数据,比较适合于显示字符不多的场合;而图形模式显示速度相对较慢,但无需建立CGRAM,用户只需将字模数据以字节为单位写入图形显示区即可,适用于所需显示内容较多的场合。在一般的工程应用中,汉字的显示是比较重要的内容,因此,本文主要介绍汉字显示的程序设计。[page]

    由液晶初始化程序,本系统采用图形模式作为显示方式。汉字的字体一般为16x16点阵,占32个字节,也可采用32x32点阵的字体,西文字符为16x8。由此编写的子函数程序如下:


    本液晶屏上的横坐标x范围为0~29,纵坐标y范围为0~127。字模数据由造字模软件提供,写入字模数据的顺序应与其所代表的字符的结构位置相对应。读写显示数据时,要注意地址指针每读写一次会自动增一。修改其值时,必须先结束当前读写操作,然后再修改地址,这样才有效。其它子函数的编写与汉字显示子函数相同,不同字体的字符只是字模数据量不同,连续写可多次调用单独写函数实现,也可每行写入所有字符的对应字节数据。至于反白功能的实现,可先读出对应字符的数据字节,取反后再重新写入。


3 结束语
    本文通过ARM7微处理器芯片LPC2134的GPIO实现了与内藏T6963C的液晶显示模块的接口设计,并在软件上实现了其基本显示功能,从而在满足了工程设计的要求。本文比较系统的阐述了液晶显示程序的设计过程,并对设计中的难点给出了源程序代码,以供参考。该程序的可移植性好,可适用LPC213x系列芯片、其它ARM7芯片以及内置T6963C的不同型号液晶显示模块。

 

关键字:T6963C  LCD  ARM7 引用地址:基于T6963C的LCD与ARM7的接口设计

上一篇:基于LabVIEW和ARM嵌入式数据采集与远程传输控制系统
下一篇:基于ARM的脉象仪系统设计与实现

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

晶联光电G10.5 TFT-LCD用ITO靶材交付
隆华科技官方消息显示,5月18日,晶联光电国产首套G10.5 TFT-LCD用ITO靶材从洛阳生产基地顺利装车交付。 据悉,G10.5 TFT-LCD用ITO靶材主要应用于电致变色功能膜、平板显示器、红外遥感探测器、太阳能电池等领域。同时,这也是晶联光电继G8.5显示面板产线实现稳定供货后的又一重大突破,打破了国外垄断局面,填补国内空白。 晶联光电官微显示,晶联光电是隆华科技旗下子公司,其ITO靶材广泛应用于TN、STN、TP、TFT、OLED等领域。是通过国内旗舰TFT企业认证并批量供货的国产化靶材企业。 2017年2月,晶联光电新建200吨/年ITO靶材扩产项目(其中ITO管靶生产能力规划60吨/年)在洛阳隆华节能厂区内动
[手机便携]
基于S3C2410的TFT-LCD驱动电路设计
引言 随着电子技术的迅猛发展,具有耗电少、亮度高、体积小等特点的液晶显示器被广泛应用于嵌入式系统中。S3C2410是三星公司开发的一款以ARM920T为核心的16/32位嵌入式处理器。它主要面向手持设备以及高性价比、低功耗的应用。LTS350Q1-PE1是三星电子公司生产的一款非晶硅有源矩阵TFT-LCD,它具有功耗低、亮度高和体积小等特点,目前在嵌入式设备中应用非常广泛。 基于S3C2410,采用LTS350Q1-PE1作为显示设备可以构成一个基于嵌入式平台的液晶显示系统,如图1所示,该系统可以满足大多数嵌入式手持设备的功能要求。但是,要想S3C2410的LCD控制器可以正确有效地控制TFT-LCD,需要设计两者之间
[电源管理]
河南投资40亿元5代TFT-LCD面板线开工
河南省重点项目华锐光电第五代薄膜晶体管液晶显示器项目在郑州航空港实验区举行开工仪式。 图片来源:华锐光电 河南省华锐光电产业有限公司是由河南省现代服务业产业投资基金、郑州国控产业发展投资有限公司,河南兴港融创创业投资发展基金联合郑州百立丰科技有限公司及四川省华景光电科技有限公司于2017年10月共同投资设立的一家TFT液晶显示面板企业,是河南省首家液晶显示面板生产制造企业。 华锐光电第五代薄膜晶体管液晶显示器项目总投资40亿元,2019年度投资目标为36亿元,一期将建设第5代TFT液晶显示面板生产线。该项目设计产能120万片/年(玻璃基板尺寸为1000mm X 1200mm),产品定位于中低尺寸的智能终端、智能家居、
[手机便携]
河南投资40亿元5代TFT-<font color='red'>LCD</font>面板线开工
温度测量DSB1820 lcd1602液晶显示
程序中要用到LCD1602display.h头文件 可以在我的另一篇文章中取得: http://www.51hei.com/mcu/3292.html 为同一个文件 #include reg52.h #include intrins.h #include LCD1602display.h sbit DQ=P2^0; //ds18b20 uint wendu=0; uchar num,num1; uint temperature=0; uchar code range = ===TEMPERTURE=== ; uchar code ASCII = 0123456789. ; uchar code table0 = ROME TE
[单片机]
嵌入式Linux之我行——S3C2440上LCD驱动(FrameBuffer)实例开发讲解
③、帧缓冲设备驱动对底层硬件操作的函数接口实现(即:my2440fb_ops的实现): static struct fb_ops my2440fb_ops = { .owner = THIS_MODULE, .fb_check_var = my2440fb_check_var, .fb_set_par = my2440fb_set_par, .fb_blank = my2440fb_blank, .fb_setcolreg = my2440fb_setcolreg, .fb_fillrect
[单片机]
TinyOS在MSP430F2618上移植(三)之LCD
本节记录串口TFT LCD在TinyOS上的移植。1.8寸LCD显示屏采用ST7735控制器,使用SPI接口实现控制、显示数据的传输。 总体架构:分为3层结构,最底层位于相应的platforms中chips目录下,实现在特定平台上控制引脚连接,SPI接口连接,以及SPI配置。中间层实现了LCD基本操作,LCD初始化,提供给上层模块连接的接口,以及资源管理。最上层提供应用层模块连接的接口。 在本架构中,中间层和最高层提供相同的接口LCD16,该接口提供的实现方法有english_string,clear,single_color等,以及写完成事件writeDone。不同的是在最高层提供的接口LCD16中,并没有真正实现接口的
[单片机]
一种应用于ARM7的CMOS图像采集系统
Samsung公司的S3C4510B是基于以太网系统高性价比的16/32位RISC微控制器,内含一个由ARM公司设计的16/32位 ARM7TDMI RISC处理器核,ARM7TDMI为低功耗、高性能的16/32核,它具有0.9MIPS/MHz的三级流水线结构,支持32位ARM指令集和16位 Thumb指令集,有着功能丰富的片内外围功能模块,可挂载大容量的存储器,最适合用于对价格及功耗敏感的应用场合。 CMOS(Complementary Metal Oxide Semiconfuctor),即“互补金属氧化物半导体”。它是计算机系统内一种重要的芯片,将它加工也可以作为图像采集系统中的感光传感器。随着 CMOS技术的发展及市场需求
[单片机]
一种应用于<font color='red'>ARM7</font>的CMOS图像采集系统
基于SOPC的MPEG-4视频播放器
引言   多媒体技术实用化的关键技术之一,就是解决视频、音频数字化以后数据量大,与数字存储媒体、通信网容量小的矛盾,其解决途径就是压缩。   为了支持低比特率视频传输业务,MPEG(Moving Picture Experts Group)推出了MPEG-4标准。于1999年正式成为国际标准的MPEG4是一个适合于低传输率的视频、音频解决方案,更注重于多媒体系统的交互性和灵活性。MPEG-4视频压缩标准提供了一种高度灵活、基于“内容”的编码方法,解码端可以“按需解码”,还可以添加对象和信息。这种灵活性使得MPEG-4具有高效的编码效率、基于内容的可扩展性以及在易受干扰环境下的鲁棒性。   MPEG-4的这些特性使得它十分适合
[手机便携]
热门资源推荐
热门放大器推荐
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

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