的报告论文:BCD 计数器 数字钟.docVIP

  • 2
  • 0
  • 约1.4万字
  • 约 25页
  • 2018-06-03 发布于福建
  • 举报
的报告论文:BCD 计数器 数字钟

报告论文:BCD 计数器 数字钟 实验一 组合逻辑电路设计 xmlnamespace prefix =o ns =urn:schemas-microsoft-com:office:office / ● 设计目的 熟悉MAX+plusII的VHDL文本设计流程全过程,学习简单组合逻辑电路的设计﹑多层次电路设计﹑仿真和测试。 ● 设计要求 译码器显示电路设计: 1.设计3-8译码器电路,输入用拔码开关,输出用发光二极管显示。 2.设计BCD-七段译码显示电路,输入用拔码开关,输出用数码管。 3.结合以上两个设计完成两位数码管的显示电路,要求显示00-99。 ● 设计方案与分析 要求一是要设计一个3-8译码器电路,根据数字逻辑课程中所学的知识我们很容易知道该电路的输入-输出关系,即输出要将输入的3位BCD码译成8位二进制码。这样的功能可以用很多串行语句在一个进程中实现,当然也可以用并行语句实现。我选择了在进程中用case语句实现。思想很简单,基本就是用枚举法将所有的输入-输出对应关系描述出来就可以了。题目二是要求设计一个BCD码数码管显示电路,思想同上,选用拨码开关控制输入。设计三要求用两个数码管动态显示“00”到“99”。难点在于如何动态显示。经过老师的指导,我知道动态显示的关键是要用一个人眼很难区分的时钟频率让两个数码管闪烁显示,人眼无法识别,看上去就像是两个数码管同时显示一样。具体设计方法是用8个拨码开关分别控制两个数码管的置数,用时钟的两个逻辑值——“0”和“1”控制片选端的选择信号的值达到动态显示的目的。 ● 硬件测试 任务一的电路在实验箱上有3个输入(SEL0~SEL2)和8个输出(Y7~Y0),定义引脚后下载到芯片。输入接2个拨码开关,以开关的高低控制输入电平的高低,也即是逻辑1和0。而输出则接8个发光二极管,当用开关控制高低电平的输入时,发光二极管就会依次译码显示,高电平对应的二极管亮,整个二极管即为译出的二进制码。任务二输入有4个,也是用拨码开关控制,译码结果则用数码管显示,这样的显示更直观,我们可以容易地看到0到9的显示。任务三的输入端有9个,8个拨码开关分别控制两个数码管的译码显示,另外一个输入是1024Hz的脉冲输入端,用于控制片选。观察的结果是两个数码管同时点亮,通过拨码开关可以控制两个数码管显示“00”到“99”。 ● 设计源代码 1. 3-8译码器VHDL设计源代码 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY DECODER IS PORT( A :IN STD_LOGIC_VECTOR(2 DOWNTO 0); Y :OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END DECODER; ARCHITECTURE A OF DECODER IS SIGNAL SEL:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN SEL(0)=A(0); SEL(1)=A(1); SEL(2)=A(2); PROCESS(SEL) BEGIN CASE A IS WHEN 000= Y WHEN 001= Y WHEN 010= Y WHEN 011= Y WHEN 100= Y WHEN 101= Y WHEN 110= Y WHEN 111= Y WHEN OTHERS=NULL; END CASE; END PROCESS; END A;   2. BCD-七段译码显示电路VHDL源代码 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DECODER47 IS PORT( D: IN STD_LOGIC_VECTOR(3 DOWNTO 0); SEG:OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ); END DECODER47; ARCHITECTURE STR OF DECODER47 IS BEGIN SEG=0111111 WHEN D=0 ELSE 0000110 WHEN D=1 ELSE 1011011 WHEN D=2 ELSE 1

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档