版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子系统综合设计报告基于FPGA的液晶显示设计电子系统综合设计第II页目录第1章课程设计内容和要求 21.1设计目的 21.2设计内容 21.3设计要求 2第2章液晶控制器设计方案 32.1设计思路 32.2工作原理及框图 3第3章液晶显示器接口底层电路设计 6 6 63.3底层电路程序 6第4章液晶控制器接口的顶层文件设计 11 11 11第5章液晶控制器接口设计的测试与运行 13 13 13结论 14参考文献 15第1章课程设计内容和要求1.1设计目的设计并实现一个128×32的汉字图形液晶显示器的控制器,要求:(1)能够显示几个液晶模块字库中的汉字和ASIC字符。(2)能够显示一个简单的图形。1.2设计内容(1)学习掌握液晶显示模块的工作原理及应用。(2)熟练掌握VHDL编程语言,编写液晶显示模块的控制逻辑。1.3设计要求(1)仿真所编写的程序,模拟验证所编写的模块功能。(2)下载程序到芯片中,硬件验证所设置的功能,能够实现汉字的显示。(3)整理设计内容,编写设计说明书。
第2章液晶控制器设计方案2.1设计思路根据指导教师布置的课题,通过参考书籍、查阅手册、图表和文献资料,网络等获取相关的知识后,了解到:液晶显示模块硬件接口协议为请求/应答(REQ/BUSY)握手方式。应答BUSY高电平(BUSY=1)表示OCMJ忙于内部处理,不能接收用户命令;BUSY低电平(BUSY=0)表示OCMJ空闲,等待接收用户命令。发送命令到OCMJ可在BUSY=0后的任意时刻开始,先把用户命令的当前字节放到数据线上,接着发高电平REQ信号(REQ=1)通知OCMJ请求处理当前数据线上的命令或数据。OCMJ模块在收到外部的REQ高电平信号后立即读取数据线上的命令或数据,同时将应答线BUSY变为高电平,表明模块已收到数据并正在忙于对此数据的内部处理,此时,用户对模块的写操作已经完成,用户可以撤消数据线上的信号并可作模块显示以外的其他工作,也可不断地查询应答线BUSY是否为低(BUSY=0?),如果BUSY=0,表明模块对用户的写操作已经执行完毕。可以再送下一个数据。2.2工作原理及框图2.2.1液晶LCD显示器的工作原理:液晶显示器是一种采用了液晶控制透光技术来实现色彩的显示器。从液晶显示器的结构来看,采用的LCD显示屏都是由不同部分组成的分层结构。LCD由两块玻璃板构成,厚约1mm,其间由包含有液晶材料的5um均匀间隔隔开。因为液晶材料本身并不发光,所以在显示屏两边都设有作为光源的灯管,而在液晶显示屏背面有一块背光板(或称匀光板)和反光膜,背光板是由荧光物质组成的可以发射光线,其作用主要是提供均匀的背景光源。背光板发出的光线在穿过第一层偏振过滤层之后进入包含成千上万液晶液滴的液晶层。液晶层中的液滴都被包含在细小的单元格结构中,一个或多个单元格构成屏幕上的一个像素。在玻璃板与液晶材料之间是透明的电极,电极分为行和列,在行与列的交叉点上,通过改变电压而改变液晶的旋光状态,液晶材料的作用类似于一个个小的光阀。液晶材料周边是控制电路部分。当LCD中的电极产生电场时,液晶分子就会产生扭曲,从而将穿越其中的光线进行有规则的折射,然后经过第二层过滤层在屏幕上显示出来。2.2.2设计原理图如下:图2-1液晶控制器接口设计原理图显示国标汉字:命令格式:F0XXYYQQWW。该命令为5字节命令(最大执行时间为1.2毫秒,Ts2=1.2mS),其中:XX:为以汉字为单位的屏幕行坐标值,取值范围00到07、02到09、00到09;YY:为以汉字为单位的屏幕列坐标值,取值范围00到01、00到03、00到04;QQWW:坐标位置上要显示的GB2312汉字区位码。2.2.3设计框图:下载编程下载编程时序仿真在线测试设计处理设计输入功能仿真图2-2液晶控制器设计框图2.3各模块功能描述液晶显示模块共有四个单元电路组成,分别是:时序发生器、地地址发生器、存储器、控制器。引脚功能图和内部结构框图分别如图3-3和图3-4所示。图2-3液晶控制器引脚功能图图2-4液晶控制器内部结构框图其中,时钟发生器共有三组时钟输出,分别送给:地址发生器,使其产生存储器读地址;存储器,作为输出数据的同步时钟;控制器,作为控制器的工作时钟及输出信号同步时钟。地址发生器在时钟信号与BUSY信号的共同作用下,产生存储器所需的地址信息。当BUSY信号有效时(BUSY=‘1’),停止输出地址信号;当液晶模块处于空闲状态(BUSY=‘0’)时,输出地址信号。控制器用来产生液晶模块所需的STOBE和存储器输出使能信号。当BUSY信号有效时(BUSY=‘1’),关闭存储器的输出;当液晶模块处于空闲状态(BUSY=‘0’)时,分别送出STOBE=‘1’和存储器输出使能信号,等待BUSY变为‘1’。当BUSY=‘1’时,使STOBE=‘0’,数据传送结束。存储器主要用来存储液晶模块的命令,在同步时钟的作用下,数据同步输出。该存储器可为ROM型,也可以为RAM型。当为ROM型是,其显示模式及显示数据不可变,即只能显示固定的信息;为RAM型时,其显示模块及数据可根据需要任意配置,即可显示出更为灵活及复杂的信息,如实时的波形显示器等。第3章液晶显示器接口底层电路设计该液晶控制器可显示模块字库中的汉字和ASSIC字符,又具有清零功能。因此。此程序共有两大大模块,汉字显示模块,清零模块。1.汉字显示模块是根据查表对照的方法显示出设计者想要表达的文字。液晶屏上显示的汉字是16*16的像素。2.ASIC字符显示相对汉字来说比较简单。只需要16*8个像素。3.清零功能是强制清除一切记录的功能。液晶屏幕上是如何显示一些汉字或者是图画,这是我们应该思考的一个问题。在数字电路中,所有数据都是由0、1保存的,同样LCD也是利用这种方法。在点阵LCD上显示的只有两种颜色,因此可用0和1来表示这两种颜色,假设空格是16*16个0组成的,在现实16*16的字体时,将其中某些点置为1便可在视觉上形成汉字,这些二进制数成为代码。与汉字不同的是一个字符只需要16*8的像素便可。3.3底层电路程序3.3.1清零模块清零模块的功能:实现将地址清零的功能。当clr为‘0’当clr为‘1’时,出现上升沿时,如果addr1为"00111100"清零模块的代码(VHDL)如下:LIBRARYieee;USEieee.std_logic_1164.ALL;USEieee.std_logic_unsigned.ALL;USEieee.std_logic_arith.all;USEwork.rom.all;ENTITYlcd1isPORT(clr,clk,BUSY:INstd_logic;STOBE:OUTstd_logic;dout:OUTstd_logic_vector(7DOWNTO0));--实体端口的设计ENDlcd1;ARCHITECTUREdoitOFlcd1ISsignalcounter,addr1:std_logic_vector(7downto0);--结构体的信号设计signaladdr:std_logic_vector(7DOWNTO0);BEGINP1:process(clr,busy)beginif(clr='0')thenaddr1<="00000000";--给地址清零elsif(busy'eventandbusy='1')thenif(addr1="00111100")thenaddr1<="00000001";--如果出现busy出现上升沿实现地址的赋值elseaddr1<=addr1+1;--实现地址的循环endif;endif;endprocessP1;P2:process(clr,busy)beginif(clr='0')thenaddr<="00000000";--地址清零elsif(busy'eventandbusy='0')thenaddr<=addr1;--当busy出现下降沿时地址的赋值endif;endprocessP2;由以上程序可发现:如果clr为‘1’,初始地址被赋值为"000000001",如果busy为1,则准备下一条地址。如果busy为0,则把地址数据传送给存储器,来进行数据的存储。如果clr为‘0’时,地址置"00000000"清零,则实现了清零的功能。3.3.2汉字显示模块汉字显示模块的原理是:将汉字内码gb2312码存入只读存储器rom中,用下面程序对汉字内码进行调用,则可以将所对应的汉字显示出来。例如汉字“东”的汉字内码为2211,用显示模块二进制将2211表示出来,则可以将汉字“东”显示出来。如此,则可以显示出所需要的汉字。此液晶显示器每行显示六个字,一共两行。另外,由于只读存储器的大小为256*8,所以,当所需要的汉字的内码设置完后,应当用"00000000"对rom进行填充,使其达到256*8的大小,以实现循环,避免产生乱码。汉字显示模块的代码(VHDL)如下:LIBRARYieee;USEieee.std_logic_1164.ALL;USEieee.std_logic_unsigned.ALL;USEieee.std_logic_arith.all;USEwork.rom.all;--调用存储器中的内容ENTITYlcd1isPORT(clr,clk,BUSY:INstd_logic;STOBE:OUTstd_logic;dout:OUTstd_logic_vector(7DOWNTO0));--实体端口的设计ENDlcd1;ARCHITECTUREdoitOFlcd1IS--结构体信号的设计signalcounter,addr1:std_logic_vector(7downto0);signaladdr:std_logic_vector(7DOWNTO0);BEGINP1:process(clr,busy)beginif(clr='0')then--清零功能的实现addr1<="00000000";elsif(busy'eventandbusy='1')then--busy出现上升沿地址的赋值if(addr1="00111100")thenaddr1<="00000001";elseaddr1<=addr1+1;endif;endif;endprocessP1;P2:process(clr,busy)beginif(clr='0')thenaddr<="00000000";--清零功能的实现elsif(busy'eventandbusy='0')then--busy出现下降沿地址的赋值addr<=addr1;endif;endprocessP2;P3:process(busy,clk)beginif(busy='1')thencounter<="00000000";--清零elsif(clk'eventandclk='1')then--clock出现上升沿时进行加法计数counter<=counter+1;endif;endprocessP3;dout<=rom(CONV_INTEGER(addr));stobe<='1’whencounter>="00000011"else'0';ENDdoit;LIBRARYieee;USEieee.std_logic_1164.ALL;PACKAGEromISCONSTANTrom_width:NATURAL:=8;--natural表示大于零的整数CONSTANTrom_length:NATURAL:=256;SUBTYPErom_wordISSTD_LOGIC_VECTOR(rom_width-1DOWNTO0);TYPErom_tableISARRAY(0Torom_length-1)ofrom_word;CONSTANTrom:rom_table:=rom_table'("11110000","00000001","00000000","00010110","00001011",--2211“黄”用来显示汉字的内码"11110000","00000010","00000000","00010001","00010001",--1717“河”"11110000","00000011","00000000","00101010","00001111",--4215“科”"11110000","00000100","00000000","00110011","00101101",--5145“技”"11110000","00000101","00000000","00010100","01010011",--2083“大”"11110000","00000110","00000000","00110001","00000111",--4907“学”……--所需要显示的汉字内码输入完整后,为了避免出现乱码,必须用"00000000"将256*8的只读存储器rom将存储器填满,以实现地址的循环,且不出现乱码。"00000000","00000000","00000000","00000000",……--如此填充,为保证rom总共的大小为256*8ENDrom;为节省空间,大小为256*8的内码只显示主要内容,用"00000000"填充的其它部分,不再作一一显示,用省略号表示。只需保证该只读存储器rom的真正大小为256*8即可。另外,根据汉字gb2312码更改只读存储器rom中的内容可以相应地更改显示汉字的字数和内容;利用点阵列,则可以显示字符;用英文码,则可以显示英文……其它显示命令格式如下(不做一一列举):(1)显示8X8ASCII字符命令格式:F1XXYYAS该命令为4字节命令(最大执行时间为0.8毫秒,Ts2=0.8mS),其中XX:为以ASCII码为单位的屏幕行坐标值,取值范围00到0F、04到13、00到13YY:为以ASCII码为单位的屏幕列坐标值,取值范围00到1F、00到3F、00到4FAS:坐标位置上要显示的ASCII字符码(2)显示位点阵命令格式:F2XXYY该命令为3字节命令(最大执行时间为0.1毫秒,Ts2=0.1mS),其中XX:为以1*1点阵为单位的屏幕行坐标值,取值范围00到7F、20到9F、00到9FYY:为以1*1点阵为单位的屏幕列坐标值,取值范围00到40、00到40、00到40。第4章液晶控制器接口的顶层文件设计所谓建立顶层文件就是将已经设计好的各个功能组件组合调用,连成一个整体,使整个系统按照设计要求在实际中工作起来。而此程序中的顶层文件即是将清零模块和汉字内码显示模块结合起来,使其实现清零和显示汉字的两大功能。具体操作:将汉字显示的内码存入到大小为256*8的只读存储器rom中,然后再在清零模块的程序中对该只读存储器rom进行调用。在一个工程中用两个.vhd文件分别存入顶层文件程序和只读存储器rom的程序即可。如此,便将清零模块和汉字显示模块连成了一个整体。在液晶显示器中便可实现清零和显示汉字的两个功能。代码如下:LIBRARYieee;USEieee.std_logic_1164.ALL;USEieee.std_logic_unsigned.ALL;USEieee.std_logic_arith.all;USEwork.rom.all;ENTITYlcd1is--实体端口的设计PORT(clr,clk,BUSY:INstd_logic;STOBE:OUTstd_logic;dout:OUTstd_logic_vector(7DOWNTO0));ENDlcd1;ARCHITECTUREdoitOFlcd1IS--结构体信号的设计signalcounter,addr1:std_logic_vector(7downto0);signaladdr:std_logic_vector(7DOWNTO0);BEGINP1:process(clr,busy)beginif(clr='0')then--清零功能的实现addr1<="00000000";elsif(busy'eventandbusy='1')then--busy出现上升沿地址的赋值if(addr1="00111100")thenaddr1<="00000001";elseaddr1<=addr1+1;endif;endif;endprocessP1;P2:process(clr,busy)beginif(clr='0')then--强制清零功能的实现addr<="00000000";elsif(busy'eventandbusy='0')then--busy出现下降沿地址的赋值addr<=addr1;endif;endprocessP2;P3:process(busy,clk)beginif(busy='1')then--清零功能的实现counter<="00000000";elsif(clk'eventandclk='1')then--clock出现上升沿时开始计数counter<=counter+1;endif;endprocessP3;dout<=rom(CONV_INTEGER(addr));stobe<='1'whencounter>="00000011"else'0';ENDdoit;最后创建一个工程,在里面新建两个.vhd文件,一个用于存储顶层文件程序,一个用于输入只读存储器rom中的内容。在顶层文件程序中调用只读存储器rom中的内容,便可实现液晶显示的清零功能和显示汉字的功能。第5章液晶控制器接口设计的测试与运行下图5-1是将上述程序在QuartusⅡ中进行仿真后实现的波形图:图5-1:液晶控制器设计仿真结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年安徽马钢技师学院单招综合素质考试必刷测试卷及答案1套
- 2026年浙江师范大学单招职业技能测试题库及答案1套
- 2026年临汾职业技术学院单招职业技能考试题库及答案1套
- 2026年浙江特殊教育职业学院单招职业技能测试题库必考题
- 2026年新星职业技术学院单招职业适应性考试题库必考题
- 2026年湘中幼儿师范高等专科学校单招职业倾向性测试题库及答案1套
- 2026年重庆理工职业学院单招职业倾向性考试题库附答案
- 2026年宿迁泽达职业技术学院单招职业倾向性考试题库附答案
- 2026年大理农林职业技术学院单招职业倾向性考试题库附答案
- 2026年昭通卫生职业学院单招职业技能测试题库必考题
- 围墙工程施工方案(完整版)
- 清理社区小广告课件
- 2025年搭建活动板房协议书
- 经济系毕业论文开题方向
- 沙包的来源课件
- 人工智能与核医学的深度融合与应用探索
- GB/T 27043-2025合格评定能力验证提供者能力的通用要求
- 2025年医疗器械质量管理体系内审员培训考试在线题库含答案
- GB/T 15704-2025道路车辆轻合金车轮冲击试验方法
- 关于面条的课件
- 下肢损伤健康宣教
评论
0/150
提交评论