欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

    电子课程设计-字符发生器.doc

    • 资源ID:5026148       资源大小:325KB        全文页数:16页
    • 资源格式: DOC        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    电子课程设计-字符发生器.doc

    电子课程设计 字符发生器字符发生器一、 设计任务与要求1. 设计任务:利用实验箱上16X16点阵,设计字符发生器,可以循环显 示预置字符:走好中国特色的社会主义道路2. 设计要求:(1)利用VHDL编写字符扫描驱动电路; (2)编写预置字符的rom程序生成模块接入电路; (3)设计一个可以自动循环显示十三个字符的电路.二、总体框图 行选线产生信号列选线产生电路时钟脉冲源ROM存储器地址计数器发光二极管显示 图1设计思路:ROM存储器是一个用来存储数据的具有读写功能的的存储器,在此电路中的作用是存储“走好中国特色的社会主义道路”十三个字。在时钟脉冲的作用下,地址计数器计数, ROM相对应的地址单元中的代码输出,以驱动列选通线产生电路。地址计数器同时又为行选通线产生电路。地址随着地址计数器计数值的变化,发光二极管显示屏逐行扫描,显示屏上显示出字符或图案。三、选择器件与功能模块1. 用来构成输出十三进制的74161十六进制计数器(1)74161器件图 图2A.B.C.D 为输入端; LDN为置数端;ENT与ENP为使能控制端;CLRN为清零端;RCO为进位输出端; QA.QB.QC.QD为输出端;CLK为脉冲信号输入端。(2)74161内部结构图图3(3)74161功能表 CP CLRN(RD非) LDN(LD非) EP ET 工作状态 X 0 X X X 清零 1 0 X X 预置数 X 1 1 0 1 保持 X 1 1 X 0 保持 1 1 1 1 计数 图4 (4)十三进制计数器真值表CPQ0Q1Q2Q300000100012001030011401005010160110701118100091001101010111011121100131101141110151111 图5(5)用74161构成的十三进制计数器原理图图6(6)十三进制时序仿真图图7仿真分析:由仿真图分析可知,输出QA,QB,QC,QD将从"0000"一直变化到"1101",即一个脉冲周期结束返回,由此可证明此接法正确为十三进制计数器。2address模块设计文件address.vhd说明: clk为时钟输入端口; reset为置零端; din15.0为接受ROM数据信号端口; ad3.0为片选地址输出; qout15.0为十六位驱动.address设计程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity address is port(clk,reset:in std_logic; din :in std_logic_vector(15 downto 0); ad :out std_logic_vector(3 downto 0); qout :out std_logic_vector(15 downto 0);end address;architecture a of address isbegin process(clk,din,reset) variable Q1:std_logic_vector(3 downto 0):="0000" begin if clk'event and clk='1' then if reset='0'or(Q1="1111")then Q1:="0000" else Q1:=Q1+1; end if; qout<=din; end if; ad<=Q1; end process;end a; 由VHDL编译生成的address模块 图8模块功能:地址选择器包含行选线产生电路和列选线产生电路,从ROM中选择相应的地址输出。Clk为扫描时钟脉冲,控制扫描速度的快慢;RESET为复位端,只有在RESET为高电平的情况下,在脉冲上升沿到来时,ad计数,其中ad3.0输出扫描驱动信号,接入扫描片选端,依次选中LED点阵的各列,din输入字符存储器中每个存储单元的数据,qout15.0控制LED点阵,din中存储器中调用的数据模块由qout15.0输出,在LED点阵中经扫描显示字符。仿真波形: 图93.用来存储字符的ROM256*13存储器(1) ROM的说明 在设计ROM时,根据ROM的大小,我们可以采用不同的设计方法进行设计,比如4x8,8x8或256x8的ROM可以采用数组描述或WHEN-ELSE.然而数组描述ROM在面积上是最有效的,在用数组描述时,常把数组常量的ROM放在一个程序包中,这种方法可以提供ROM的重用,在程序包中应当用常量定义ROM的大小.而用WHEN-ELSE描述一个ROM,它确实是最直观的,它是类似查表的方法来设计的,本次设计就是一个用WHEN-ELSE设计的256x16的ROM。(2)存入ROM中的数据(文本格式.mif)width=16;depth=256;address_radix=hex;data_radix=hex;content begin0100010001013FFE01000104FFFE0100走0900091009F809000900150023FE4000100011FC10041008FC102420242427FE好24204420282010202820442084A000400100010001047FFE4104410441044104中7FFC410401000100010001000100010000047FFE400440245FF4410441044FE4国4104414441245FF4400440047FFC400410401040504853FC7C40504497FE1810特3010D7FE1110109010901010105010200400040007F0082008481FFC28884888色08880FF8080808000802080207FE00001040104020447E7E4284428443044244的7E2442244204420442047E04422800102040104010400040FC480BFC10403840社5440944010401040104417FE100010000100010002800440082010102FEEC004会00103FF802000200044008201FF008100200010001087FFC0100010001000110主3FF801000100010001000104FFFE000000000108210821101010102008200840义044002800100028004600818100EC00420804110302017FC00800100F3F81201道13F8120813F8120813F82A08440003FE000000407C4044FC448445487C505420路105851865CFC5084508450845CFCF084(3) VHDL编译生成的ROM256X16存储器图图1016×16扫描LED点阵的工作原理同8位扫描数码管类似。它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯。所以其扫描译码地址需4位信号线。2864E2PROM存贮器是电可擦除/编程的只读存贮器,容量为8k×8bit ,有13位并行地址线和8位并行数据线,而一个完整的字符所需的存贮容间为32字节即32×8 bit,也就是说2864最多可连续存256个16×16点阵字形。ROM仿真图图11仿真分析:从仿真结果可得:0000.0100.0101.3ffe.0100.0104.fffe.0100与ROM的程序中的地址和信息是对应的,由此可知此模块是正确的,可以使用。4分频器div(1)分频器说明 对实验箱50MHZ的固定晶振进行分频(2)生成div的源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity div is port(clk:In std_logic; clkout:out std_logic);end div;architecture one of div isbegin process(clk)variable cnt: integer range 0 to 1000;variable tmp: std_logic;begin if clk'event and clk='1' then if cnt>=999 then cnt:=0; tmp:=not tmp; else cnt:=cnt+1; end if; end if; clkout<=tmp;end process;end one;(3)由VHDL语言编译生成的div分频器图 图12(4)Div仿真波形:图13四.16*16点阵模块 图14五.总体设计电路图1.总体电路图:图151)工作情况:将74LS161十六进制计数器变为了十三进制的计数器。在输入clk1的作用下在输出端输出0000-1101的地址数据。十六进制输出的地址数据与address的输出addr3.0共同作为了存储器ROM的地址输入。此输入地址选定了存储器中在该地址上存储的数据。然后将数据在存储器的输出端q15.0输出。存储器的输出作用下输出的addr3.0决定了输出结果在16×16的点阵上列循环扫描,而addr0则决定着输出在16×16的点阵上的行扫描. 总体上说来就是计数器提供部分地址,而ROM是一个字符的存储库,address则是决定着要输出的字符如何在16×16的点阵上扫描输出。2)模块间的连接关系:计数器的输出连接在 ROM259×16的地址输入端,ROM256×16的输出qout15.0连接在 address的din15.0端。address的输出addr3.0又回到了ROM256×16的地址输入端。2.时序仿真结果:图16仿真分析:RESET接低电平;CLK1为CLK的10倍,当CLK1第一个上升沿未到来时,列选信号输出端为"0000",即点阵第一列选通,此时LED低八位L7L4为"1110"十六进制为'E',L3L0为"0000"十六进制为'0',LED高八位L15L12为"0000"十六进制为'0',L11L8为"0000"十六进制为'0'。由此可推断模拟结果符合设计要求。3.管脚分配图图173实验连线clk驱动器ADDRESS1时钟信号输入端,频率F=500HZClk1计数器74160时钟信号输入端.频率F=5KHZreset驱动器address置零端,低电平有效Addr3.0点阵列选地址控制端Qout15.0点阵输入端图184.硬件验证(1)硬件连接将CLK1端接时钟输出, addr3.0接显示模块的SEL1,SEL2,SEL3;Qout15.0与LED输入端相连。连接好后打开开关,接上连接线进行下载。 (2)字符显示16*16点阵显示屏将会显示字符。字符显示如下: 六、心得体会通过本次课程设计我感触很深,这是我做的第一次课程设计,从开始到结束到是在匆匆忙忙的生活中度过的,在这些日子里,可以说是苦多于甜,但是可以学的到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。在编辑模块过程中我遇到很多问题,所以慢慢的很少讨论问题的我跟同学对设计的交流成了家常便饭,在整个过程中虽然付出了很多的努力,当看到显示频上不断跳出自己设计的字符时我心里的成就感油然而生。通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。总的来说,这次设计的字符发生器还是比较成功的,虽然遇到了一些困难,但是在老师和同学的帮助下我成功完成了设计。在这过程中我不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。

    注意事项

    本文(电子课程设计-字符发生器.doc)为本站会员(西安人)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开