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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

FPGA课程设计报告Word文件下载.docx

1、数据/命令选择端WL)12D5Data 1/O5R/W读/写选择端(H/L)13066E便能佶号14D77DO15BLA背光源正檢80116BLK背光源负根(2)基本操作时序:A. 读状态:输入:RS=L RW=H,E=H,输出:DB0-DB7= 犬态字B. 写指令:RS=L RW=L,E下降沿脉冲,DBO-DB7指令码,输出:无C. 读数据:RS=H RW=H,E=H俞出: DB0-DB7教据D. 写数据:RS=H RW=L,E下降沿脉冲,DBO-DB7数据,输出:(3)指令集及其设置说明:A.清屏指令:担令功能梧令编码/nsDB7DB6DB5DB11 清屏Qa1 .64功能:清除液晶显示器

2、即将DDRAM勺内容全部填入空白的ASCII码20H; 光标归位,即将光标撤回液晶显示屏的左上方;3 将地址计数器(AC)的值设为0。B.进入设置模式指令:指令功能扌旨令编码DB1IDB3DB2DB0迸入模式设置DI/OS40设定每次定入1位数据后光标的移位方向,并且设定每次写入的一个 字符是否移动。参数设定的情况如下所示:位名设置I/D 0= 写入新数据后光标左移 1= 写入新数据后光标右移S 0= 写入新数据后显示屏不移 1=写入新数据后显示屏整体右移1字符C.显示开关控制指令:D 0= 显示功能关 1=显示功能开C 0= 无光标 1= 有光标B 0= 光标闪烁 1= 光标不闪烁D.设定显

3、示屏或光标移动方向指令:指令编码/U5D81DBSS/CR/LK4D使光标移位或使整个显示屏幕移位。参数设定的情况如下:S/C R/L设定情况光标左移1格,且AC值减1光标右移1格,且AC值加1显示器上字付全部左移一格,但光标不动显示器上字符全部右移一格,E.功能设定指令:扌旨令功能挹令编码/USR/UDB4D82DBB功能设定DLFXU0设定数据总线位数、显示的行数及字型。 位名设置DL 0=数据总线为4位 1= 数据总线为8位N 0= 显示1行 1= 显示2行F 0=5 X 7点阵/每字符 仁5 X 10点阵/每字符F.设定CGRA地址指令:指令编码 执行7us085DB3 DB2设定CG

4、RRM 體止Bg弱朋11的地址位J设定下一个要存入数据的CGRA的地址。DB5DB4DB3 为字符号,也就是你将来要显示该字符时要用到的字符地址。(000111)(能定义八个字符)DB2DB1DB0 为行号。(000111)(八行)G.设定DDRAM地址指令;拒令功能/usDS7D86DBO设定BDRAM 地址CGRflW的地址IT位)48设定下一个要存入数据的 DDRA的地址H.数据写入DDRA或 CGRAI指令:I 指令编码DBAD眄DBAi0B3DBD数据写入到 DDRAM或CGRflll昊写入的数据4Q将字符码写入DDRAM以使液晶显示屏显示出相对应的字符; 将使用者自己设计的图形存入

5、CGRA。DB7DB6DB5 可为任何数据,一般取“ 000”DB4DB3DB2DB1DB0对应于每行5点的字模数据。2.设计流程:弄懂1602中各种管脚及其控制方法以及各种指令的指令码后,就可以进行程序的编写了,首先整理一下编写流程::初始化3.设计源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; en tity lcd_1602 isPort ( clk : in std_logic;-读或写指令|数据控制端-读|写控制端使能

6、端reset:i n std_logic; lcdrs : out std_logic; lcdrw : lcde n : buffer std_logic;-data : out stdo gic_vector(7 dow nto 0);key1:- 拨码开关控制移动与不动;key2: in stdo gic);end lcd_1602;Architecture Behavioral of lcd_1602 isType state is(set_ qingpin g,set_ no busy,set_cursor,set_switch,set_ddram,write_data,s et_d

7、dram1,write_data1,set_ddram2,write_data2,set_ddram3,write_data3,s et_ddram4,write_data4,set_ddram5,write_data5, set_ddram6,write_data6, set_ddram7,write_data7,set_ddram8,write_data8,set_ddram9,write_data9, set_ddram10,write_data10,set_ddram11,write_data11,set_ddram12,write_d ata12,set_ddram13,write_

8、data13,set_ddram14,write_data14,set_ddram15,w rite_data15,set_ddram17,write_data17,set_ddram16,write_data16,set_ddr am18, write_data18,set_ddram19,write_data19,set_ddram20,write_data20, set_ddram21,write_data21,set_ddram22,write_data22,set_ddram23,write_d ata23,set_cgram,write_cgram,set_ddram24,writ

9、e_data24,set_ddram25,writ e_data25,shift_cur,shift_display);- 定义各种状态type ram2 is array(0 to 7) of std_logic_vector(7 dow nto 0);con sta nt cgram:ram2:=(00011111),(00000100),();-把“王”字字模写入数组;sig nal curre nt_state:state;sig nal clkc nt: std_logic_vector(18 dow nto 0);Con sta nt divcnt:std_logic_vector

10、(18 dow nto 0):=1111001110001000000;sig nal clkdiv: std_logic;sig nal tc_clkc nt:sig nal clk_int:sig nal clkdiv2:sig nal clkdiv3:sig nal clkdiv6: std_logic ;beg inledrw = O- 读写控制端设为写有效process(clk,reset)Beg inif(reset=)the nclkcntOOOOOOOOOOOOOOOOOOOelsif(clkeve nt and clk=1if(clkc nt=divc nt)the nels

11、e=clkc nt+1;- 对系统时钟进行分频使其工作周期为 12.5msend if;end process ;tc_clkcnt= whe n clkc nt=divcnt else -tc_clkcnt 为 12.5msprocess(tc_clkc nt,reset)begi nclkdivelsif(tc_clkc nteve nt and tc_clkcnt=not clkdiv;- 进一步分频使 clkdiv=2*12.5ms;end process;process(clkdiv,reset)clk_i ntelsif(clkdiveve nt and clkdiv=clk_in

12、t= not clk_int;- 再进一步分频使 clk_int=4*12.5msprocess(clk_i nt,reset)clkdiv20- 再进一步分频使 clkdiv2=8*12.5mselsif(clk_i nteve nt and clk_i nt= not clkdiv2;process(clkdiv2,reset)the n clkdiv3- 再进一步分频使 clkdiv3=16*12.5mselsif(clkdiv2eve nt and clkdiv2=clkdiv3= no t clkdiv3;process(clkdiv3,reset)the n clkdiv6- 还是

13、进一步分频使 clkdiv6=32*12.5ms elsif(clkdiv3eve nt and clkdiv3=clkdiv6= n ot clkdiv6;lcde nelsif(clkdiv3= not lcde n;- 设置使能信号频率附注:进行多次分频的目地是为了使字符显示速度及移动速度等合适, 便于观察。con trol:process(clk,reset,curre nt_state)variable cn t1: stdo gic_vector(3 dow nto 0);- 控制各种状态及其转换if reset=the ncurre nt_state );lcdrselsif r

14、isin g_edge(clkdiv6)the n-使用clkdiv6是为了和lcden吻合,达到使能目地curre nt_state = curre nt_state ;lcdrs -测试空闲状态data00111000-38H curre nt_state00000110- 进入模式设置状态写入新数据后光标右移=set_switch;whe n set_switch= data00000001- 清屏指令=set_ddram;whe n set_ddram=10000000- 设置要显示数据的位置:第 1行第1列80H=write_data;whe n write_data=0011000

15、1- 设置要显示的数据 1 curre nt_state lcdrs - 设置要显示的数据200110010=set_ddram2;whe n set_ddram2=第1行第3列82H10000010-82H=write_data2;whe n write_data2=- 设置要显示的数据8=set_ddram3;whe n set_ddram3=第 2行第4列83H10000011=write_data3;whe n write_data3=set_ddram4;whe n set_ddram4=第 110000100-82H curre nt_state - 设置要显示的数据4001101

16、00=set_ddram5;whe n set_ddram5=10000101第=write_data5;whe n write_data5=00110000- 设置要显示的数据 0=set_ddram6;whe n set_ddram6=10000110=write_data6;whe n write_data6=- 设置要显示的数据1=set_ddram7;whe n set_ddram7=10000111=write_data7;whe n write_data7=- 设置要显示的数据 500110101=set_ddram8;whe n set_ddram8=10001000行第5列8

17、4H1行第6 列 85H1行第7列86H1行第8列87H1行第9列88H=write_data8;whe n write_data8=00101101- 设置要显示的数据-=set_ddram9;whe n set_ddram9=10001001=write_data9;whe n write_data9=01011010- 设置要显示的数据 Z=set_ddram10;whe n set_ddram10=10001010=write_data10;whe n write_data10=01000111- 设置要显示的数据 G=set_ddram11;whe n set_ddram11=100

18、01011=write_data11;whe n write_data11=01001100- 设置要显示的数据 L=set_ddram12;whe n set_ddram12=11000000- 设置要显示数据的位置:1行第10列89H第1行第11列90H第1行第12列91H第2行第1列C0H=write_data12;2行第2 列 C1H=write_data13;whe n write_data13=- 设置要显示的数据 2=set_ddram14;whe n set_ddram14=11000010=write_data14;whe n write_data14=set_ddram15;2行第3 列 C2Hwhe n set_ddram15=11000011=write_data15;whe n write_data15=- 设置要显示的数据 8=set_ddram16;2行第4 列 C3Hwhe n set_ddram16=11000100curre nt_state

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

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