ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:950.44KB ,
资源ID:7460358      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7460358.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SOPCEDA综合课程设计报告液晶显示屏LCD显示接口设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

SOPCEDA综合课程设计报告液晶显示屏LCD显示接口设计.docx

1、SOPCEDA综合课程设计报告液晶显示屏LCD显示接口设计江西理工大学应用科学学院SOPC/EDA综合课程设计报告设计题目:液晶显示屏LCD显示接口设计设计者: 学号: 班级: 指导老师: 时间: 设计报告综合测试总评格式(10)内容(40)图表(10)答辩(20)平时(20)目 录第1章 预习知识.1 1.1 液晶显示屏的基本原理与使用方法 11.1.1 点阵型LCD简介 11.1.2 点阵LCD的显示原理 11.1.3 液晶显示模块接口时序 11.2 课程设计题目:液晶显示屏LCD显示接口设计 21.2.1 课程设计目的及基本要求 21.3 设计要求 3第2章 设计内容提要及说明.4 2.

2、1 元件原理图 42.2 12864指令系统 7第3章 系统硬件设计.10 第4章 设计过程. 12第5章 实习总结 21致谢 22参考文献 23 第1章 预习知识1.1 液晶显示屏的基本原理与使用方法1.1.1 点阵型LCD简介LCD液晶显示器是Liquid Crystal Display的简称,LCD的构造是在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线,透过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面。比CRT要好的多,但是价钱较其它显示器贵。1.1.2 点阵LCD的显示原理在数字电路中,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据

3、操作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需要8位(一字节)即可。而对于中文,常用却有6000以上,于是我们的DOS前辈想了一个办法,就是将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。而剩下的低128位则留给英文字符使用,即英文的内码。那么,得到了汉字的内码后,还仅是一组数字,那又如何在屏幕上去显示呢?这就涉及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状。1.1.3 液晶显示模块接口时序模块有并行和串行两种连接方法(时序如下):1、8位并行连接时序图5 MPU写资

4、料到模块图6 MPU从模块读出资料2、串行连接时序图图7 串行连接时序图1.2 课程设计题目:液晶显示屏LCD显示接口设计1.2.1 课程设计目的及基本要求 液晶显示屏已广泛应用于人们的日常生活中,在各种领域中起到越来越重要的位置。因此,掌握和控制液晶显示屏是非常重要的技能。进行课程设计是加强实践,提高动手能力的重要环节,通过课程设计,同时在软件编程,排错调试,相关仪器设备的使用技术等方面得到全面的提高。掌握液晶显示屏实现的相关方法,为将来的实际工作打下一定的基础。本课程设计是以SED1520控制器为基础,基本要求是: 1、掌握SED1520控制器基本结构2、掌握液晶显示屏的工作原理及使用方法

5、3、掌握用VHDL语言编写程序 4、掌握Quartus II的使用方法 5、掌握GW48系列SOPC/EDA实验开发系统:a:闲置不用GW48系统时,必须关闭电源,拔下电源插头! b:在实验中,当选中某种模式后,要按一下右侧的复位键,以使系统进入该结构模式工作。c:换目标芯片时要特别注意,不要插反或插错,也不要带电插拔,确信插对后才能开电源。其它接口都可带电插拔。请特别注意,尽可能不要随意插拔适配板,及实验系统上的其他芯片。d:并行口工作模式设置在“EPP”模式!e: 跳线座“SPS”默认向下短路(PIO48);右侧开关默认拨向“TO MCU”。f: 对于GW48-PK2系统,左下角拨码开关除

6、第4档“DS8使能”向下拨(8数码管显示)外,其余皆默认向上1.3 课程设计题目内容要求使用FPGA设计一个液晶显示屏LCD显示的控制器,使其能够显示文字、数字或图形(根据需要选择LCD屏),至少需要显示“江西理工大学应用科学学院课程设计”字样,另外需要显示班级姓名和日期。其它功能可自行增加! 第2章 设计内容提要及说明2.1 元件原理图图1 下载/编程接口电路图图2 液晶显示屏2.1.1 模块引脚说明表1 模块引脚逻辑工作电压(VDD):3.35.5V电源地(GND):0V工作温度(Ta):0+50(常温)/ -2070(宽温)2.1.2 接口时序模块有并行和串行两种连接方法(时序如下):a

7、) 8位并行连接时序图图3 MPU写资料到模块图4 MPU从模块读出资料a) 串行连接时序图图5 串行时序图表2 时钟周期表串行数据传送共分三个字节完成:第一字节:串口控制格式 11111ABC A为数据传送方向控制:H表示数据从LCD到MCU,L表示数据从MCU到LCD。 B为数据类型选择: H表示数据室显示数据,L表示数据室控制指令。C固定为0。第二字节:(并行)8位数据的高4位格式DDDD0000第三字节:(并行)8位数据的低4位格式DDDD0000串行接口时序参数:(测试条件: T=25 VDD=4.5V)2.2 12864指令系统2.2.1 用户指令集指令表1:(RE=0:基本指令集

8、)表3 基本指令表指令表2:(RE=1:扩充指令集)表4 扩充指令表2.2.2 FPGA与LCD连接方式FPGA与LCD连接方式:(仅PK2型含此)。由实验电路结构图COM可知,默认情况下,FPGA是通过89C51单片机控制LCD液晶显示的,但若FPGA中有Nios嵌入式系统,则能使FPGA直接控制LCD显示。方法是拔去此单片机(在右下侧),用连线将座JP22/JP21(LCD显示器引脚信号)各信号分别与座JP19/JP20(FPGA引脚信号)相连接即可。图6 实验电路结构图COM第3章 系统硬件设计本方案采用的FPGA为Alter公司的ACEX1K30芯片,它可提供系统的时钟及读写控制,AC

9、EX系列的FPGA由逻辑数组块LAB(Logic array block)、嵌入式数组块EAB(embedded arr ay block)、快速互联以及IO单元构成,每个逻辑数组块包含8个逻辑单元LE(logicelement)和一个局部互联1。每个逻辑单元则由一个4输入查找表(LUT)、一个可编程触发器、快速进位链、级连链组成,多个LAB和多个EAB则可通过快速通道互相连接。EAB是ACEX系列器件在结构设计上的一个重要部件,他是输入埠和输出埠都带有触发器的一种灵活的RAM块,其主要功能是实现一些规模不太大的FIFO、ROM、RAM和双埠RAM等。在本液晶显示接口电路中,EAB主要用宏功能

10、模块实现片上ROM。它通过调用FPGA上的EAB资源来实现汉字的显示和字符的存储,并根据控制信号产生的地址值从ROM中读取字符值,然后送LCD显示器进行显示。由于所用的图形点阵液晶块内置有SED1520控制器,所以,其电路特性实际上就是SED1520的电路特性。SED1520的主要特性如下: (1)具有液晶显示行驱动器,具有16路行驱动输出,并可级联实现32行驱动。(2)具有液晶显示列驱动器,共有61路列驱动输出。(3)内置时序发生器,其占空比可设置为1/16和1/32两种。(4)内藏显示内存,显示内存内的数据可直接显示,1为显示,0为不显示。(5)接口总线时序可适配8080系列或M6800系

11、列,并可直接与计算机接口。(6)操作简单,有13条控制指令。(7)采用CMOS工艺,可在电压低至2.4-7.0V时正常工作,功耗仅30W。本设计所用的字符液晶模块CM12232由两块SED1520级连驱动,其中一工作在主工作方式下,另一个工作在从方式下,主工作方式SED1520负责上半屏16行的驱动和左半屏的61列驱动,从工作方式的SED1520则负责下半屏16行的驱动和右半屏的61列驱动,使能信号E1、E2用来区分具体控制的是那一片SED1520,其系统的硬件连接图如图1所示。由图1可见,该系统的硬件部分连接十分简单,其中FPGA部分没画出,而液晶与FPGA的接口则可直接以网表的形式给出,将

12、它们直接与FPGA的普通I/O引脚相连即可。系统的软件接口实现具体实现的重点是如何从存放有字符的ROM块中读出数据,并按照液晶的时序正确的写入,在介绍具体实现方法前,首先要熟悉SED1520的指令。SED1520的控制指令表第四章 设计过程4.1 初始化部分的状态机设计根据字符模块初始化的流程图:图1 LCD初始化流程图4.2 时钟模块的设计由于FPGA开发板上自带的晶振频率为50MHZ,而所需要的时钟频率则需要小于13.9K。因此需要一个分频器对其进行分频。这里采用简单的计数器对其进行分频,通过分频器将外部输入的32MHZ的信号分成频率为153600HZ的信号。在分频之后由于时钟信号需要同时

13、控制LCD模块以及FPGA的模块,因此需要编写一个程序,使得两者之间同步。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY baud IS port(clk,resetb:in std_logic; bclk:out std_logic);end baud;architecture behavioral of baud isbeginprocess(clk,resetb)variable cnt:integer;beginif

14、resetb=1 thencnt:=0;bclk=208 then cnt:=0;bclk=1;else cnt:=cnt+1;bclk=0;end if;end if;end process;end behavioral;图2 时钟模块图3 系统的仿真图形4.3 中文字符部分的数据模块中文部分由于VHDL中无法识别中文,使用时需要参照中文字符表,将需要的字符所对应的数据输入RAM,然后通过和英文模块不重复的符号来实现对其的调用。如“江”这个中文字符,所对应国标码”bdad”,因此在函数部分应为:constant data_buf : data_buffer := (xbd,xad);本程序驱

15、动液晶显示“江西理工大学应用科学学院课程设计”“班级”“姓名”“日期”library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity lcd isgeneric(divide_to_100k :integer:=1000);port(clk, rst:in std_logic;rw, rs, e, lcd_rst :out std_logic;lcd_data:out std_logic_vector(7 downto 0); end lcd

16、; architecture behavioral of lcd issignal clk_100k:std_logic;type state is(s0,s1,s2,s3,s4);signal current_s: state ;type data_buffer is array (0 to 65) of std_logic_vector ( 7 downto 0 ) ;constant data_buf : data_buffer := (xBD,xAD,xCE,xF7, xC0,xED,xB9,xA4, xB4,xF3,xD1,xA7, xD3,xA6,xD3,xC3, xBF,xC6,

17、xD1,xA7, xD1,xA7,xD4,xBA, xBF,xCE,xB3,xCC, xC9,xE8,xBC,xC6, xD7,xD4,xB6,xAF,xBB ,xAF , xA3,xB1,xA3,xB0, xA3 ,xB2, xD7,xA4,xD0, xA1,xC1, xFA, xA3,xB2,xA3,xB0,xA3,xB1,xA3,xB3,xA3,xAE, xA3,xB1,xA3,xAE,xA3,xB3);beginprocess(clk)variable cnt:integer range 0 to divide_to_100k;beginif rising_edge(clk)then

18、cnt:=cnt+1;if cnt=divide_to_100k then cnt:=0;end if;if cntdivide_to_100k/2 then clk_100k= 0;else clk_100k = 1;end if;end if;end process;process(clk_100k)variable cnt1:integer range 0 to 500;variable cnt1_1:integer range 0 to 100;variable code_cnt:integer range 0 to 13;variable data_cnt:integer range

19、 0 to 48; beginif rising_edge(clk_100k)thenif rst = 1 then current_s = s0 ; cnt1 := 0 ;cnt1_1 := 0;code_cnt := 0 ; data_cnt := 0 ; lcd_rst rw= 1;rs = 1;e = 1;cnt1:=cnt1+1;if cnt1 250 then lcd_rst = 0;elsif cnt1 500 then lcd_rst = 1;elsif cnt1=500 then lcd_rst = 1;cnt1 := 0;current_s cnt1_1:=cnt1_1+1

20、; if cnt1_1 1*3 then e = 1;rs = 0;rw = 0;elsif cnt1_12*3 then lcd_data=x0c;elsif cnt1_110*3 then e=0;elsif cnt1_1=10*3 then cnt1_1:=0;current_scnt1_1:=cnt1_1+1; if cnt1_11*3 then e=1;rs=0;rw=0;elsif cnt1_12*3 then lcd_data=x80;elsif cnt1_110*3 then e=0;elsif cnt1_1=10*3 then cnt1_1:=0;current_s if c

21、nt1_11*3 then e=1;rs=1;rw=0;elsif cnt1_12*3 then lcd_data=data_buf(data_cnt);elsif cnt1_1=2*3 then data_cnt:= data_cnt+1;elsif cnt1_1100 then e=0;end if;cnt1_1:=cnt1+1;if cnt1_1=100 then cnt1_1:=0;if data_cnt=16 then current_scurrent_s=s0;end case;end if;end if;end process;end Behavioral;图4 显示文字的模块图

22、5 系统的仿真图形4.4 图形的数据模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY lcdlinehozi IS PORT( CLK,key3: IN STD_LOGIC; CK0,DISP,Hsync,Vsync:OUT STD_LOGIC; rgb:OUT STD_LOGIC_VECTOR(0 TO 23) ); END;ARCHITECTURE WX OF lcdlinehozi ISSIGNAL CLK_TEMP1,CLK_TEMP2,CK :STD_LOGIC ;SIG

23、NAL CNT1,CNT2:STD_LOGIC_VECTOR(2 DOWNTO 0);signal cnt:std_logic_vector(1 downto 0);SIGNAL HS_CNT,VS_CNT:INTEGER RANGE 0 TO 525;signal rgbx,rgby: STD_LOGIC_VECTOR(0 TO 23);CONSTANT THp:INTEGER :=41;CONSTANT THb:INTEGER :=2;CONSTANT THf:INTEGER :=2;CONSTANT TVp:INTEGER :=10;CONSTANT TVb:INTEGER :=2;CO

24、NSTANT TVF:INTEGER :=2;CONSTANT THd:INTEGER :=480;CONSTANT TVd:INTEGER :=272;BEGINPROCESS(key3) BEGIN if key3event and key3=1 then if cnt=10 then cnt=00; else cnt=cnt+1; end if; end if; end process; process(cnt) begin if cnt=00 then rgb=111111111111111111111111; elsif cnt=01then rgb=rgbx; elsif cnt=

25、10then rgb=rgby; else rgb=000000000000000000000000; end if;end process; process(hs_cnt,vs_cnt) begin if hs_cnt102 then rgbx=000000000000000000000000; elsif hs_cnt162 then rgbx=000000000000000011111111; elsif hs_cnt222 then rgbx=111111110000000000000000; elsif hs_cnt282 then rgbx=00000000111111111111

26、1111; elsif hs_cnt342 then rgbx=000000001111111100000000; elsif hs_cnt402 then rgbx=111111110000000011111111; elsif hs_cnt462 then rgbx=111111111111111100000000; elsif hs_cnt522 then rgbx=111111111111111111111111; else rgbx=101010101010101010101010; end if; if vs_cnt43 then rgby=00000000000000000000

27、0000; elsif vs_cnt75 then rgby=000000000000000011111111; elsif vs_cnt107 then rgby=111111110000000000000000; elsif vs_cnt139 then rgby=000000001111111111111111; elsif vs_cnt171 then rgby=000000001111111100000000; elsif vs_cnt203 then rgby=111111110000000011111111; elsif vs_cnt235 then rgby=111111111

28、111111100000000; elsif vs_cnt267 then rgby=111111111111111111111111; else rgby=101010101010101010101010; end if; end process; CLOCK:PROCESS(CLK) BEGIN IF CLKEVENT AND CLK=1THEN IF CNT1=2 THEN CNT1=000; ELSE CNT1=CNT1+1;END IF; END IF; END PROCESS; PROCESS (CLK) BEGIN IF CLKEVENT AND CLK=0 THEN IF CNT2=2 THEN CNT2=000; ELSE C

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1