《电子课程设计-字符发生器.doc》由会员分享,可在线阅读,更多相关《电子课程设计-字符发生器.doc(16页珍藏版)》请在三一文库上搜索。
1、电子课程设计 字符发生器字符发生器一、 设计任务与要求1. 设计任务:利用实验箱上16X16点阵,设计字符发生器,可以循环显 示预置字符:走好中国特色的社会主义道路2. 设计要求:(1)利用VHDL编写字符扫描驱动电路; (2)编写预置字符的rom程序生成模块接入电路; (3)设计一个可以自动循环显示十三个字符的电路.二、总体框图 行选线产生信号列选线产生电路时钟脉冲源ROM存储器地址计数器发光二极管显示 图1设计思路:ROM存储器是一个用来存储数据的具有读写功能的的存储器,在此电路中的作用是存储“走好中国特色的社会主义道路”十三个字。在时钟脉冲的作用下,地址计数器计数, ROM相对应的地址单
2、元中的代码输出,以驱动列选通线产生电路。地址计数器同时又为行选通线产生电路。地址随着地址计数器计数值的变化,发光二极管显示屏逐行扫描,显示屏上显示出字符或图案。三、选择器件与功能模块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 预置数
3、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为时钟输
4、入端口; 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_vecto
5、r(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 clkevent and clk=1 then if reset=0or(Q1=1111)then Q1:=0000; else Q1:=Q1+1; end if; qout=din; end if; ad=999 then cnt:=0; tmp:=not tmp; else cnt:=cnt+1; end if;
6、 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
7、16的点阵上列循环扫描,而addr0则决定着输出在1616的点阵上的行扫描. 总体上说来就是计数器提供部分地址,而ROM是一个字符的存储库,address则是决定着要输出的字符如何在1616的点阵上扫描输出。2)模块间的连接关系:计数器的输出连接在 ROM25916的地址输入端,ROM25616的输出qout15.0连接在 address的din15.0端。address的输出addr3.0又回到了ROM25616的地址输入端。2.时序仿真结果:图16仿真分析:RESET接低电平;CLK1为CLK的10倍,当CLK1第一个上升沿未到来时,列选信号输出端为0000,即点阵第一列选通,此时LED低
8、八位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输入端相连。连接好后打开开
9、关,接上连接线进行下载。 (2)字符显示16*16点阵显示屏将会显示字符。字符显示如下: 六、心得体会通过本次课程设计我感触很深,这是我做的第一次课程设计,从开始到结束到是在匆匆忙忙的生活中度过的,在这些日子里,可以说是苦多于甜,但是可以学的到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。在编辑模块过程中我遇到很多问题,所以慢慢的很少讨论问题的我跟同学对设计的交流成了家常便饭,在整个过程中虽然付出了很多的努力,当看到显示频上不断跳出自己设计的字符时我心里的成就感油然而生。通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。总的来说,这次设计的字符发生器还是比较成功的,虽然遇到了一些困难,但是在老师和同学的帮助下我成功完成了设计。在这过程中我不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。
链接地址:https://www.31doc.com/p-5026148.html