液晶显示屏LCD显示接口设计 匡远熹 09080SOPCWord下载.docx

上传人:b****3 文档编号:15827484 上传时间:2022-11-16 格式:DOCX 页数:19 大小:524.98KB
下载 相关 举报
液晶显示屏LCD显示接口设计 匡远熹 09080SOPCWord下载.docx_第1页
第1页 / 共19页
液晶显示屏LCD显示接口设计 匡远熹 09080SOPCWord下载.docx_第2页
第2页 / 共19页
液晶显示屏LCD显示接口设计 匡远熹 09080SOPCWord下载.docx_第3页
第3页 / 共19页
液晶显示屏LCD显示接口设计 匡远熹 09080SOPCWord下载.docx_第4页
第4页 / 共19页
液晶显示屏LCD显示接口设计 匡远熹 09080SOPCWord下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

液晶显示屏LCD显示接口设计 匡远熹 09080SOPCWord下载.docx

《液晶显示屏LCD显示接口设计 匡远熹 09080SOPCWord下载.docx》由会员分享,可在线阅读,更多相关《液晶显示屏LCD显示接口设计 匡远熹 09080SOPCWord下载.docx(19页珍藏版)》请在冰豆网上搜索。

液晶显示屏LCD显示接口设计 匡远熹 09080SOPCWord下载.docx

0V

工作温度(Ta):

0~+50℃(常温)/-20~70℃(宽温)

三、接口时序

模块有并行和串行两种连接方法(时序如下):

a)8位并行连接时序图

图3MPU写资料到模块

图4MPU从模块读出资料

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)

四、FPGA与LCD连接方式

FPGA与LCD连接方式:

(仅PK2型含此)。

由实验电路结构图COM可知,默认情况下,

FPGA是通过89C51单片机控制LCD液晶显示的,但若FPGA中有Nios嵌入式系统,则能使

FPGA直接控制LCD显示。

方法是拔去此单片机(在右下侧),用连线将座JP22/JP21(LCD

显示器引脚信号)各信号分别与座JP19/JP20(FPGA引脚信号)相连接即可。

图6实验电路结构图COM

五、初始化部分的状态机设计

根据字符模块初始化的流程图:

图7LCD初始化流程图

六、时钟模块的设计

由于FPGA开发板上自带的晶振频率为50MHZ,而所需要的时钟频率则需要小于13.9K。

因此需要一个分频器对其进行分频。

这里采用简单的计数器对其进行分频,通过分频器将外部输入的32MHZ的信号分成频率为153600HZ的信号。

在分频之后由于时钟信号需要同时控制LCD模块以及FPGA的模块,因此需要编写一个程序,使得两者之间同步。

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYbaudIS

port(clk,resetb:

instd_logic;

bclk:

outstd_logic);

endbaud;

architectureBehavioralofbaudis

begin

process(clk,resetb)

variablecnt:

integer;

ifresetb='

1'

then

cnt:

=0;

bclk<

='

0'

;

elsifrising_edge(clk)then

ifcnt>

=208thencnt:

elsecnt:

=cnt+1;

endif;

endprocess;

endbehavioral;

图8时钟模块

图9系统的仿真图形

七、中文字符部分的数据模块

中文部分由于VHDL中无法识别中文,使用时需要参照中文字符表,将需要的字符所对应的数据输入RAM,然后通过和英文模块不重复的符号来实现对其的调用。

constantdata_buf:

data_buffer:

=(x"

bd"

x"

ad"

);

本程序驱动液晶显示“赣南师范学院课程设计”“班级”“姓名”

“日期”

LibraryIEEE;

UseIEEE.STD_LOGIC_1164.ALL;

UseIEEE.STD_LOGIC_ARITH.ALL;

UseIEEE.STD_LOGIC_UNSIGNED.ALL;

entityLCDis

generic(divide_to_100k:

integer:

=1000);

Port(clk,rst:

inSTD_LOGIC;

Rw,rs,e,lcd_rst:

outSTD_LOGIC;

Lcd_data:

outSTD_LOGIC_VECTOR(7downto0));

endLCD;

architectureBehavioralofLCDis

signalclk_100k:

std_logic;

typestateis(s0,s1,s2,s3,s4);

signalcurrent_s:

state;

typedata_bufferisarray(0to43)ofstd_logic_vector(7downto0);

ce"

f7"

x"

c0"

ed"

b9"

a4"

b4"

f3"

d1"

a7"

d3"

a6"

c3"

bf"

c6"

d4"

ba"

b3"

cc"

c9"

e8"

bc"

b0"

e0"

b6"

d0"

d5"

fb"

c8"

da"

process(clk)

integerrange0todivide_to_100k;

ifrising_edge(clk)thencnt:

ifcnt=divide_to_100kthencnt:

ifcnt<

divide_to_100k/2thenclk_100k<

='

elseclk_100k<

process(clk_100k)

variablecnt1:

integerrange0to500;

variablecnt1_1:

integerrange0to100;

variablecode_cnt:

integerrange0to13;

variabledata_cnt:

integerrange0to48;

ifrising_edge(clk_100k)then

ifrst='

thencurrent_s<

=s0;

cnt1:

=0;

cnt1_1:

=0;

code_cnt:

data_cnt:

lcd_rst<

elsecasecurrent_sis

whens0=>

rw<

rs<

e<

cnt1:

=cnt1+1;

ifcnt1<

250thenlcd_rst<

elsifcnt1<

500thenlcd_rst<

elsifcnt1=500then

lcd_rst<

cnt1:

current_s<

=s1;

whens1=>

cnt1_1:

=cnt1_1+1;

ifcnt1_1<

1*3thene<

rw<

elsifcnt1_1<

2*3thenlcd_data<

=x"

0c"

10*3thene<

elsifcnt1_1=10*3thencnt1_1:

current_s<

=s2;

whens2=>

ifcnt1_1<

1*3thene<

rs<

rw<

80"

=s3;

whens3=>

=data_buf(data_cnt);

elsifcnt1_1=2*3thendata_cnt:

=data_cnt+1;

100thene<

ifcnt1_1=100thencnt1_1:

ifdata_cnt=16thencurrent_s<

=s4;

data_cnt:

whenothers=>

=s0;

endcase;

endBehavioral;

图10显示文字的模块

图11系统的仿真图形

八、图形的数据模块

ENTITYlcdlinehoziIS

PORT(CLK,key3:

INSTD_LOGIC;

CK0,DISP,Hsync,Vsync:

OUTSTD_LOGIC;

rgb:

OUTSTD_LOGIC_VECTOR(0TO23)

);

END;

ARCHITECTUREWXOFlcdlinehoziIS

SIGNALCLK_TEMP1,CLK_TEMP2,CK:

STD_LOGIC;

SIGNALCNT1,CNT2:

STD_LOGIC_VECTOR(2DOWNTO0);

signalcnt:

std_logic_vector(1downto0);

SIGNALHS_CNT,VS_CNT:

INTEGERRANGE0TO525;

signalrgbx,rgby:

STD_LOGIC_VECTOR(0TO23);

CONSTANTTHp:

INTEGER:

=41;

CONSTANTTHb:

=2;

CONSTANTTHf:

CONSTANTTVp:

=10;

CONSTANTTVb:

CONSTANTTVF:

CONSTANTTHd:

=480;

CONSTANTTVd:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 农学

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

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