1、 电子课程设计 字符串发生器 学院:电子信息工程学院 专业班级: 姓名: 学号: 指导教师: 2012 年 12 月 25 日 字符串发生器 一设计任务与要求 1.设计任务:设计一个共阴 16*16 点阵控制接口,在时钟信号的控制下,试点阵 动态点亮,利用实验箱上的 16*16 点阵,设计字符发生器,可以循环显示预置字 符“我在雨后科大”这六个字。 2 设计要求: (1)利用 VHDL 语言编写字符扫描驱动电路; (2)设计一个可以自动循环显示六个字的字符电路; (3)编写预置字符的 ROM 程序生成模块接入电路。 二总体框图 1.原理框图 时钟 2.设计思路 该电路由六进制计数器,分频器,地
2、址内存器,ROM 内存,16*16 点阵显 示板五部分组成。 在时钟信号的作用下,地址计数器开始计数,再通过 ROM 内存相对应的代 码输出通过 address1 以驱动列选产生电路,地址计数器同时又为行选产生电路。 地址内存随着计数器数值的变化,发光二极管显示屏逐行扫描,显示出相应的字 符。 时钟脉冲源 行列选地址内存 分频器 16*16 点阵显示 板 地址计数器 ROM 内存 3.各模块的作用 1)ROM 是只读存储器存放字符的代码它是字符显示器的核心部件; 2)分频器将实验箱中的信号分频提供给 address1 和 ROM 内存; 3)Address1 在时钟信号作用下将 ROM 读入的
3、字符显示在 16*16 点阵上,reset 起复位作用,输出端 qout150对应点阵上的 L0 到 L15,addr30对应点阵上 的列,随着 addr30的增加,从左往右依次选中点阵的各列; 4)74161 的输出和地址内存的输出共同决定 ROM 的输入,进而决定 qout150 的输出,使得输出字符循环显示。74161 是一个异步清零,同步置数的十六进制 计数器; 5)发光二极管显示屏用来显示字符,它是由若干发光二极管组成的 16*16 点阵 式显示屏。 三选择器件 1. 1)配有 Quartus II6.0 软件的计算机一台。 2)下载接口是数字芯片的下载接口,主要用于 FPGA 芯片
4、的数据下载。 3)EDA 实验箱,其中配有 16*16 点阵的显示屏。 4)导线若干。 2.74161,三输入的与非门,非门三者构成六进制的计数器 74161 计数器 1)74161 器件图 74161是一个异步清零,同步置数的十六进制计数器。其中,A,B,C,D 为输入端, LAD 为同步置数端,ENT 与 ENP 为使能控制端,CLRN 为异步清零端,RCO 为进位输出端,QA,QB,QC,QD 为输出端,CLK 为脉冲信号输入端。 2)74161 的功能表 CLK CLRN LDN ENT ENP 工作状态 X 0 X X X 置零 1 0 X X 预置数 1 1 1 1 计数 X 1
5、1 0 0 保持 X 1 1 X X 保持 (3)74LS161 构成的六进制计数器: 六进制加法计时器原理图 功能仿真波形 分析:当脉冲来之前,输出为 0000,十进制为 0;第一个脉冲来后到第二个脉冲 来之前输出为0001, 十进制为1; 第二个脉冲后到第三个脉冲来之前输出为0010, 十进制为 2;以此类推,第五个脉冲后到第六个脉冲来之前输出为 0101,十进制 为 5;下一个脉冲来后又开始重复前面的过程。符合要求。 四 功能模块 1.address1 模块 1)address1.vhd 程序: library ieee; use ieee.std_logic_1164.all; use
6、 ieee.std_logic_unsigned.all; entity address1 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 address1; architecture a of address1 is begin process(clk,din,reset) variable q1:std_logic_vector(3 downto 0):=“0000“; begin if clkevent 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; 2)addr