FPGA的LCD液晶显示器设计
由LCD液晶显示器制作的显示面板广泛应用于军用设备中,本设计采用Spartan-3E FPGA为硬件,该2×16字符型LCD内嵌一个Sitronix ST7066U图形控制器,实现了LCD显示器的字符或者汉字的满屏显示、满屏移动显示以及单个字符在屏幕上的移动显示,所有功能用VHDL语言实现,符合LCD显示器要求,达到各种显示效果。
由于LCD 液晶显示器体积小、重量轻、功耗低,应用非常广泛,如作为飞机、坦克和船上的显示面板,可缩小原CRT显示器的所占空间,减轻设备重量,增强机动性。
本设计采用Spartan-3E开发板上的一个内嵌Si.tronix ST7066U图形控制器的字符型LCD,实现了:(1) 单个字符在任意位置的显示以及字符的满屏显示及满屏移动显示;(2) 自定义字符(汉字)的显示以及单个字符的满屏移动显示。其中,图形控制器[1]负责接收控制指令及数据并将其发送给LCD显示器。
1 Sitronix ST7066U 图形控制器
该控制器有三个内部存储空间,DD RAM、CGROM、CG RAM,送数据之前应先初始化。
(1)DD RAM(显示数据RAM)
存储字符编码,从物理上讲DD RAM共有80个字符位置,每行有40个字符,但只有16个可被显示,剩余的24个不被显示。在读或写之前,需初始化地址计数器,地址计数器在读或写之后可保持常数或者自动增1或减1。
(2)CG ROM(字符产生器ROM)
包含每个事先定好的字符的字体位图。
(3)CG RAM(字符产生器RAM)
包含8位的自定义字符位图,每个自定义字符位由8行位图的5个点组成,具体用法与DD RAM相同。
1.1 与FPGA 的接口信号
LCD与FPGA的接口信号[2]有:(1)使能信号LCD_E;(2)寄存器选择信号LCD_RS;(3)读/写控制信号LCD_RW;(4)4根LCD数据线与StrataFlash数据线SF_D《11:8》复用。
1.2 时序分析
SF_D《11:8》的数据值,LCD_RS、LCD_RW必须建立并在LCD_E 转向高电平之前至少稳定40 ns,LCD_E 保留高电平时间至少230 ns。在许多应用中,LCD_RW恒置低,因为一般不会从显示屏读取数据。
如图1所示,数据以8位形式传送,分为高4位和低4位,先传高4位再传低4位,其间隔时间至少1us。一个8位的写操作在下个通信之前间隔时间至少为40 us,而在清屏命令之后该延时需增至1.64 ms。
图1 字符型LCD 接口时序图
2 数据显示设计
2.1 流程图
如图2所示,LCD数据显示包括上电初始化、配置显示屏、写数据给显示屏,在写数据之前应先设定初始地址。
图2 LCD 显示流程图
本开发板晶振为50 MHz。
具体实现步骤如下:
1. 上电初始化
上电后显示屏需建立通信协议即初始化,目的在于建立FPGA与LCD的4位数据接口,具体如下:
(1)等待至少15 ms,即750000个时钟周期。
(2)写SF_D《11:8》=0x3,LCD_E保持高电平12个时钟周期。
(3)等待至少4.1 ms,即205000个时钟周期。
(4)写SF_D《11:8》=0x3,LCD_E保持高电平12个时钟周期。
(5)等待至少100 us,即5000个时钟周期。
(6)写SF_D《11:8》=0x3,LCD_E保持高电平12个时钟周期。
(7)等待至少40 us,即2000个时钟周期。
(8)写SF_D《11:8》=0x2,LCD_E保持高电平12个时钟周期。
(9)等待至少40 us,即2000个时钟周期。
2. 显示屏配置
根据字符型LCD的命令设置而确定发送数据。
(1)发功能设置命令0x28,配置显示屏。
(2)发进入模式命令0X06,显示屏设置为自动增地址指针,设置指针移动方向为向左且规定不移动显示。
(3)发显示开/断命令0x0c,将显示字符的地址存储在DD RAM中。
(4)最后发清屏命令,此后等待时间至少为1.64 ms。
3. 写数据给显示屏
具体步骤如下:
(1)先指定初始地址即发送一个设置DD RAM地址命令给DD RAM中指定的初始7位地址。
(2)再发送一个或多个数据值即使用DD RAM命令写数据给显示屏。8位数据值通过查表地址送给CG RAM,CG RAM中存储的位图驱动5×8点阵给相应的字符。
如果地址计数器配置为自动增1,则可依次写多个字符编码,每个字符自动存储并显示在下个位置,继续写字符直至在第一行的最后停止,而剩余的数据不会自动在第二行显示,因为DD RAM的映射从第一行到第二行不连续。
2.2 程序设计实现
按照上面的步骤,先对LCD上电初始化,再进行配置,配置不同显示效果也不同。
1. 单个字符的显示
先设定一个DD RAM地址命令为初始地址,根据给定的命令知首地址为"10000000", 紧接着往CG RAM中写数据,通过严格控制时序关系达到单个字符的显示。默认地址设置为
- 一种液晶显示器的LED背光驱动控制设计方案(12-09)
- 一种新型的点阵液晶显示器双总线控制系统的研究(02-17)
- 如何执行高分辨率液晶显示器的电源管理电路设计(02-17)
- 四大主流面板正面对决:谁的显示效果最好?(02-25)
- LED很伤眼?液晶显示器LED背光进化大揭秘(06-23)
- 低成本单片机系统的液晶显示器显示技术研究(04-07)
- 妤傛ḿ楠囩亸鍕暥瀹搞儳鈻肩敮鍫濆悋閹存劕鐓跨拋顓熸殌缁嬪顨滅憗锟�
閸忋劍鏌熸担宥咁劅娑旂姴鐨犳0鎴滅瑩娑撴氨鐓$拠鍡礉閹绘劕宕岄惍鏂垮絺瀹搞儰缍旈懗钘夊閿涘苯濮幃銊ユ彥闁喐鍨氶梹澶歌礋娴兼ḿ顫呴惃鍕殸妫版垵浼愮粙瀣瑎...
- 娑擃厾楠囩亸鍕暥瀹搞儳鈻肩敮鍫濆悋閹存劕鐓跨拋顓熸殌缁嬪顨滅憗锟�
缁箖鈧拷30婢舵岸妫亸鍕暥閸╃顔勭拠鍓р柤閿涘奔绗撶€硅埖宸跨拠鎾呯礉閸斺晛顒熼崨妯烘彥闁喕鎻崚棰佺娑擃亜鎮庨弽鐓庣殸妫版垵浼愮粙瀣瑎閻ㄥ嫯顩﹀Ч锟�...
- Agilent ADS 閺佹瑥顒熼崺纭咁唲鐠囧墽鈻兼總妤勵棅
娑撴挸顔嶉幒鍫n嚦閿涘苯鍙忛棃銏n唹鐟欘枃DS閸氬嫮顫掗崝鐔诲厴閸滃苯浼愮粙瀣安閻㈩煉绱遍崝鈺傚亶閻€劍娓堕惌顓犳畱閺冨爼妫跨€涳缚绱癆DS...
- HFSS鐎涳缚绡勯崺纭咁唲鐠囧墽鈻兼總妤勵棅
鐠у嫭绻佹稉鎾愁啀閹哄牐顕抽敍灞藉弿闂堛垼顔夐幒鍦欶SS閻ㄥ嫬濮涢懗钘夋嫲鎼存梻鏁ら敍灞藉簻閸斺晜鍋嶉崗銊╂桨缁崵绮洪崷鏉款劅娑旂姵甯夐幓顡嶧SS...
- CST瀵邦喗灏濆銉ょ稊鐎广倕鐓跨拋顓熸殌缁嬪顨滅憗锟�
閺夊孩妲戝ú瀣╁瘜鐠佽绱濋崗銊╂桨鐠佸弶宸緾ST閸氬嫰銆嶉崝鐔诲厴閸滃苯浼愮粙瀣安閻㈩煉绱濋崝鈺傚亶韫囶偊鈧喕鍤滅€涳附甯夐幓顡塖T鐠佹崘顓告惔鏃傛暏...
- 鐏忓嫰顣堕崺铏诡攨閸╃顔勭拠鍓р柤
娑撳洣绗€妤傛ɑ銈奸獮鍐叉勾鐠у嚖绱濇潻娆庣昂鐠囧墽鈻兼稉杞扮稑閸︺劌鐨犳0鎴炲Η閺堫垶顣崺鐔枫亣鐏炴洘瀚甸懘姘剧礉閹垫挷绗呴崸姘杽閻ㄥ嫪绗撴稉姘唨绾偓...
- 瀵邦喗灏濈亸鍕暥濞村鍣洪幙宥勭稊閸╃顔勭拠鍓р柤閸氬牓娉�
鐠愵厺鎷遍崥鍫ユ肠閺囨潙鐤勯幆鐙呯礉缂冩垵鍨庨妴渚€顣剁拫鍙樺崕閵嗕胶銇氬▔銏犳珤閵嗕椒淇婇崣閿嬬爱閿涘本鍨滅憰浣圭壉閺嶉绨块柅锟�...