十六进制7段数码显示译码器设计
- 格式:doc
- 大小:40.00 KB
- 文档页数:3
实验二LED数码管驱动显示程序实验一、实验目的1、初步学习和了解VHDL语言编程方式2、学习和掌握七段数码显示译码器的设计方法3、学习和掌握VHDL的多层设计方法二、实验要求1、根据硬件设计的思维方式,编制LED七段码的显示程序2、要求是一位LED以定位方式显示3、完成LED七段码波形分析的显示功能4、在EDA实验箱上按要求显示三、实验设备1、计算机一台2、EDA——Ⅳ实验箱一台四、实验原理1、七段码是用一种纯组合的逻辑电路,通常是用小型专用的IC门电路组成,数字输入与输出表达均未16进制,处理一般较复杂,而用FPGA/CPLD来实现较为简单。
2、七段码输入与输出的原理与真值表关系。
(a)输入:七段码输入为四个输入信号,用来表示为“0000”到“1111”,即表示为十六进制的“0”到“F”。
(b)输出:七段码输出为七个输出信号,分别用“A、B、C、D、E、F、G”七个符号来表示。
一般规定,输出信号为“1”时,它所控制的发光二极管为点亮状态,输出信号为“0”时,它所控制的发光二极管为熄灭状。
本实验使用的七段数码管为共阴极组,其电路如图2.1所示。
图2.1 共阴极数码管及其电路(c)输入与输关系为四位二进制代码组成十六进制代码,将其代码显示,其对应关系如表2.1所示。
(d)显示方式是通过选位的方式进行,是将FPGA/CPLD的三位二进制的信号输出,通过外部三——八译码器硬件电路,选中一路LED信号为输出,故选择一位LED数码管显示,本实验是采取选相应的一个指定位置进行LED显示。
3、输入是通过外部的四个按键操作而组成一位十六进制。
其连接到FPGA/CPLD的对应的引脚上,需进行引脚分配。
4、编写译码程序,生成底层组件,组合成底层文件。
表2-1 七段字符显示真值表五、实验步骤1、 在D 盘建立自己的文件目录,D: \ EX \ Z04** \ you*\ex*;2、 在Max+Pluse Ⅱ的界面下,自己的文件目录下,建立项目文件 File \ Project \ 文件名A ;3、 在自己的文件目录下,建立文本文件 File \ New \ 文件名B.vhd ;4、 保存此文件并划归到项目文件内, File \ Project \ Set Project current File ,其中文本文件名B 必须和实体名一致;5、 输入程序,保存文件“文件名B.vhd ”,File \ Save As “文件名B.vhd ”(注意后缀,如保存默认文件名时,其后缀通常为“*.tdf ”文件,必须删除后缀为“*.tdf ”文件名;6、 单击编译器快捷方式按钮,对文本文件进行编译,观察是否有原则错误;7、 如有修改则修改程序中错误,若无错误则可做以下工作; 8、 建立底层器件的封装,File \ Create Default Symbol ;9、 建立图形文件,File \ New \ 文件名C.gdf 并化归到项目内。
数字逻辑知到章节测试答案智慧树2023年最新江西理工大学第一章测试1.四位二进制数的最大数是()。
参考答案:11112.将数1101.11B转换为十六进制数为()。
参考答案:D.CH3.十数制数2006.375转换为二进制数是()。
参考答案:11111010110.0114.将十进制数130转换为对应的八进制数()。
参考答案:2025.四位二进制数0111加上0011等于1010。
()参考答案:对6.16进制数2B等于10进制数()。
参考答案:437.16进制数3.2等于2进制数()。
参考答案:11.0018.十进制数9比十六进制数9小。
()参考答案:错9.与八进制数(47.3)8等值的数为()参考答案:(100111.011)2;(27.6)1610.有符号数10100101的补码是()。
参考答案:1101101111.[X]补+[Y]补=()。
参考答案:[X+Y]补12.十进制数7的余3码是()。
参考答案:101013.以下代码中为无权码的为()。
参考答案:余三码;格雷码14.格雷码具有任何相邻码只有一位码元不同的特性。
()参考答案:对第二章测试1.逻辑函数的表示方法中具有唯一性的是()。
参考答案:卡诺图;真值表2.在何种输入情况下,“与非”运算的结果是逻辑0。
()参考答案:全部输入是13.逻辑变量的取值1和0可以表示()。
参考答案:电位的高、低;真与假;开关的闭合、断开;电流的有、无4.A’+B’等于()。
参考答案:(AB)’5.以下表达式中符合逻辑运算法则的是()。
参考答案:A+1=16.逻辑函数两次求反则还原,逻辑函数的对偶式再作对偶变换也还原为它本身。
()参考答案:对7.求Y=A(B+C)+CD的对偶式是()。
参考答案:(A+BC)(C+D)8.已知逻辑函数Y的波形图如下图,该逻辑函数式是Y=()。
参考答案:A’BC+AB’C+ABC’9.任意函数的全体最大项之积为1。
()参考答案:错10.下列哪些项属于函数Y(A、B、C、D)=(A’B+C)’D+AB’C’的最小项()。
EDA实验报告班级:姓名:目录实验一:七段数码显示译码器设计 (1)摘要 (1)实验原理 (1)实验方案及仿真 (1)引脚下载 (2)实验结果与分析 (3)附录 (3)实验二:序列检测器设计 (6)摘要 (6)实验原理 (6)实现方案及仿真 (6)引脚下载 (7)实验结果与分析 (8)实验三:数控分频器的设计 (11)摘要 (11)实验原理 (11)方案的实现与仿真 (11)引脚下载 (12)实验结果及总结 (12)附录 (12)实验四:正弦信号发生器 (14)摘要 (14)实验原理 (14)实现方案与仿真 (14)嵌入式逻辑分析及管脚下载 (16)实验结果与分析 (17)附录 (18)实验一:七段数码显示译码器设计摘要:七段译码器是一种简单的组合电路,利用QuartusII的VHDL语言十分方便的设计出七段数码显示译码器。
将其生成原理图,再与四位二进制计数器组合而成的一个用数码管显示的十六位计数器。
整个设计过程完整的学习了QuartusII的整个设计流程。
实验原理:七段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用译码程序在FPGA\CPLD中来实现。
本实验作为7段译码器,输出信号LED7S的7位分别是g、f、e、d、c、b、a,高位在左,低位在右。
例如当LED7S 输出为“1101101”时,数码管的7个段g、f、e、d、c、b、a分别为1、1、0、1、1、1、0、1。
接有高电平段发亮,于是数码管显示“5”。
实验方案及仿真:I、七段数码显示管的设计实现利用VHDL描述语言进行FPGA上的编译实现七段数码显示译码器的设计。
运行QuartusII在G:\QuartusII\LED7S\下新建一个工程文件。
新建一个vhdl语言编译文件,编写七段数码显示管的程序见附录1-1。
十六进制7段数码显示译码器设计一、实验目的1.学习7段数码显示译码器的Verilog的设计,并掌握其原理方法2.学习使用QuartusⅡ软件3.学习设计仿真软件的正确使用方法二、实验原理7段显示译码器是纯组合电路。
通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码器,然而数字系统中的数据处理和运算都是二进制的,所以输出表达都是十进制的,所以输出表达都是十六进制的,为了满足十六进制数的译码显示,最方便的方法就是利用Verilog译码程序在FPGA/CPLD 来实现。
所以首先要设计一段程序(参考以下的真值表1)。
设输入的4位码为A[3:0],输出控制7段共阴数码管的7位数码管的7位数据为LED7S的7位分别接图的共阴数码管的7个段,高位在左,低位在右。
例如当LED7S输出为“1101101”时,数码管的7个段g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管显示“5”。
这里没有考虑或者表示小数点的发光管,如果要考虑,需要增加段h,然后将LED7S改为8位输出。
表1 7段译码器真值表输入码输出码代表数据0000 0111111 00001 0000110 10010 1011011 20011 1001111 30100 1100110 40101 1101101 50110 1111101 60111 0000111 71000 1111111 81001 1101111 91010 1110111 A1011 1111100 B1100 0111001 C1101 1011110 D1110 1111001 E1111 1110001 F三、实验任务将设计好的Verilog译码器程序在QuartusⅡ上进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。
四、实验步骤1.新建一个文件夹DECL_DEMO,然后选择File,点击new,再打开Verilog HDL File文件类型。
十六进制7段数码显示译码器设计实验报告实验报告:十六进制7段数码显示译码器设计一、实验目的本实验的主要目的是设计一种用于将十六进制数码转化为七段显示的译码器电路。
通过这个实验,我们可以学习和了解数字电路的工作原理、数码管的控制方式以及七段数码的译码方法。
二、实验原理本实验所用到的数码管为共阳数码管,它由7个发光二极管组成,其中的每一个发光二极管称为一个段。
这七个段依次为a、b、c、d、e、f和g,它们分别对应数码管上的abcdefg七个引脚。
当一些引脚输出高电平时,相应的段就会被点亮,从而显示出特定的字符。
为了实现将十六进制数码转化为七段显示的功能,我们需要设计一个译码器电路。
译码器电路的输入为十六进制数码,输出为七段信号,用于控制数码管的每个段的亮灭情况。
为了简化设计,我们可以采用CMOS数字集成电路74LS47来实现译码器电路。
该集成电路内部集成了BCD转七段译码器,可以将二进制代码转化为七段数码显示所需要的信号。
它的输入为四个二进制输入端口A、B、C和D,输出为七个段芯片(a、b、c、d、e、f和g)的控制信号。
三、实验步骤1.首先,根据74LS47的真值表,确定译码器的输入和输出。
2.根据真值表,画出逻辑图,确定硬件电路的连接方式。
3.按照逻辑图和电路连接方式,进行硬件电路的布线。
4.按照实验仪器的操作说明,对电路进行调试和测试。
5.将输入端口连接至外部的十六进制信号源,观察输出端口的数据是否正确。
6.验证电路的正确性和稳定性,如果出现问题,进行排除和修复。
四、实验结果经过实验,我们成功地设计并实现了一个十六进制7段数码显示译码器电路。
当输入端口接收到一个十六进制信号时,通过电路的处理和转换,将其转化为了相应的七段信号,用于控制数码管的每个段的亮灭情况。
通过实验观察,我们发现电路的输出结果与预期一致,且工作稳定。
五、实验总结通过这个实验,我们对于数字电路的工作原理和数码管的控制方式有了更深的了解。
7448数码管译码器逻辑符号7448数码管译码器是一种常用的数字逻辑集成电路,它能够将二进制代码转换为七段数码管上显示的相应数字和字母字符。
这种译码器具有广泛的应用,可以在计算机、通信、仪器仪表等领域中发挥重要作用。
7448数码管译码器的输入是一个4位的二进制代码,输出是对应的七段数码管上的显示字符。
它可以译码的输入范围是从0000到1111,对应的输出范围是从0到F(十六进制)。
下面我们来详细介绍7448数码管译码器的逻辑符号和工作原理。
7448数码管译码器的逻辑符号如下所示:```___D3 -| |- VccD2 -| |D1 -| |- aD0 -| |- bCPL -| |- cPL -| |- dGND -|___|- ef```其中,D0、D1、D2和D3是译码器的输入引脚,它们对应四位二进制代码的每一位。
a、b、c、d、e、f和g是译码器的输出引脚,它们对应七段数码管的每一段。
7448数码管译码器的工作原理如下:1. 根据输入的四位二进制代码,译码器将会识别出输入所对应的数字或字母字符。
2. 根据输入代码和译码表,译码器将会输出对应的七段数码管显示字符的控制信号。
3. 根据输出的控制信号,数码管将会点亮对应的段,从而显示出相应的数字或字母字符。
7448数码管译码器内部采用了译码表来实现将输入代码转换为显示字符的功能。
下面是一个简化的译码表示例:```________|__a___ |f| |b || g | ||_____|__||__g__| |e| |c || d | ||_____|__|```译码表中的每一行代表一个十六进制数字或字母字符。
每一列代表七段数码管的一个段,其中a、b、c、d、e、f和g对应译码器的输出引脚。
通过查表的方式,译码器可以准确选择正确的输出段,从而显示出正确的数字或字母字符。
7448数码管译码器的逻辑功能是通过门电路和触发器电路实现的。
它内部包含了多个与门、多个非门和多个触发器。
ck a b g f 译码器编码器及数码管显示实验一、实验目的(1)掌握组合逻辑电路的分析测试、设计方法和步骤;(2)掌握编码器、译码器等常用中规模集成电路的性能及使用方法; (3)掌握数码显示、译码器的应用。
二、实验仪器与元器件 (1)HBE 硬件基础电路实验箱; (2)元器件:74LS138、74LS148。
三、实验概述(1)编码编码是指赋予选定的一系列二进制代码以固定的含义。
74LS148(8-3编码器)为8-3线优先编码器,8个输入端为D 0-D 7,8种状态,与之对应的输出为A 0、A 1、A 2,共三位二进制数。
(2)译码译码是编码的逆过程,即将某二进制翻译成电路的某种状态。
在数字电路中译码器是一种应用广泛的多输入、多输出的组合逻辑电路。
它是把给定的代码进行“翻译”,变成相应的状态,使输出通道中相应的一路有信号输出。
通常译码器可分为通用译码器和显示译码器两大类。
前者又分为变量译码器和代码变换译码器。
(3)数码显示译码器LED 数码管是目前最常用的数字显示器,下图为共阴管和共阳管的电路及两种不同出现形式的引出脚功能图。
共阴数码管连接电路 共阳数码管连接电路a b e d c h cka b g f a b e d c hckck共阴极符号及引脚功能 共阳极符号及引脚功能四、实验内容1.测试变量译码器的逻辑功能(1)根据74LS138的逻辑,写出各输出端的逻辑表达式,列出真值表,根据真值表对逻辑电路进行测试,验证其功能。
由图2-6-3可知逻辑表达式:Y 0=ABC ,Y 1=ABC ,Y 2=ABC ,Y 3=ABC ,Y 4=ABC ,Y 5=ABC ,Y 6=ABC ,Y 7=ABC 。
真值表: A B C Y 0 Y 1 Y 2 Y 3 Y 4 Y 5 Y 6 Y 7 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 11111111a b gchdef a bgch def1 0 1 1 1 1 1 1 0 1 11 1 0 1 1 1 0 1 1 1 11 1 1 1 1 1 1 1 1 1 0分析:由于A、B、C之间是与、非的关系,对于不同的A、B、C的值,只会有一种情况是0。
实验目的与要求实验名称:十六进制7段数码显示译码器设计实验目的:学习7段数码显示译码器的V erilog硬件设计。
实验原理7段数码是纯组合电路。
设输入的4位码为A[3:0],输出控制7段共阴数码管的7位数据为LEDS[6:0]。
输出信号LEDS的7位分别接共阴数码管的7个段,高位在左,低位在右实验内容1、编辑和输入设计文件新建文件夹——输入源程序——文件存盘源程序:module LED(A,LED7S);input [3:0]A;output [6:0]LED7S;reg [6:0]LED7S;always @ (A)begin: LEDcase(A)4'b0000: LED7S<=7'b0111111;4'b0001: LED7S<=7'b0000110;4'b0010: LED7S<=7'b1011011;4'b0011: LED7S<=7'b1001111;4'b0100: LED7S<=7'b1100110;4'b0101: LED7S<=7'b1101101;4'b0110: LED7S<=7'b1111101;4'b0111: LED7S<=7'b0000111;4'b1000: LED7S<=7'b1111111;4'b1001: LED7S<=7'b1101111;4'b1010: LED7S<=7'b1110111;4'b1011: LED7S<=7'b1111100;4'b1100: LED7S<=7'b0111001;4'b1101: LED7S<=7'b1011110;4'b1110: LED7S<=7'b1111001;4'b1111: LED7S<=7'b1110001;default: LED7S<=7'b0111111;endcaseendendmodule2、创建工程打开并建立新工程管理窗口——将设计文件加入工程中——选择目标芯片——工具设置——结束设置3、全程编译前约束项目设置选择FPGA目标芯片——选择配置器件的工作方式——选择配置器件和编程方式——选择目标器件引脚端口状态——选择V erilog语言版本4、全程综合与编译Processing——Start Compilation启动全程编译5、仿真测试RTL图观察器应用总结与体会通过本次实验,对quartus有了进一步的学习和认识,对V erilog也有了深入了解。
1.一位十六进制数可以用 C 位二进制数来表示。
2.十进制数25用8421BCD 码表示为 B 。
3. 以下表达式中符合逻辑运算法则的是 D 。
A . 1B . 2C . 4D . 16 A .10 101 B .0010 0101 C .100101 D .10101 A .C ·C =C 2 B .1+1=10 C .0<1 D .A +1=14. 当逻辑函数有n 个变量时,共有 D 个变量取值组合? 5.A+BC= C 。
6.在何种输入情况下,“与非”运算的结果是逻辑0。
DA. nB. 2nC. n 2D. 2n A .A +B B.A +C C.(A +B )(A +C ) D.B +C A .全部输入是0 B.任一输入是0 C.仅一输入是0 D.全部输入是17. 以下电路中可以实现“线与”功能的有 C 。
8.以下电路中常用于总线应用的有 A 。
A .与非门B .三态输出门C .集电极开路门D . C M O S 与非门 A .T S L 门 B .O C 门 C . 漏极开路门D .C M O S 与非门9.若在编码器中有50个编码对象,则要求输出二进制代码位数为 B 位。
10.一个16选一的数据选择器,其地址输入(选择控制输入)端有 C 个。
A .5B .6C .10D .50 A .1 B .2 C .4 D .1611.四选一数据选择器的数据输出Y 与数据输入X i 和地址码A i 之间的逻辑表达式为Y = A 。
A .3X A A X A A X A A X A A 01201101001+++B .001X A AC .101X A AD .3X A A 0112.一个8选一数据选择器的数据输入端有 E 个。
A .1B .2C .3D .4E .813.在下列逻辑电路中,不是组合逻辑电路的有 D 。
A .译码器B .编码器C .全加器D .寄存器14.八路数据分配器,其地址输入端有 c 个。
FPGA设计与应用实验指导书实验一Quartus II开发软件入门一、实验目的1. 熟悉Quartus II 开发软件的基本使用方法2. 掌握用VHDL语言设计组合逻辑电路的方法二、实验内容1. 运用Quartus II 开发软件,完成工程创建、代码编写、程序调试、编译仿真等基本操作。
2. 用VHDL语言设计实现一个3-8译码器,并进行功能仿真验证。
三、实验步骤1.Quartus II 开发软件基本操作(1)创建工程在File菜单下选择New Project Wizard…如图1-1所示。
图1-1 创建工程示意图弹出创建工程选框,选择工程的工作路径,输入工程名称。
如图1-2所示。
注意工程名称的格式要求,同时工程名称默认和顶层实体名称相同,不允许修改。
图1-2 创建工程名称可选择添加已有的程序文件,如图1-3所示。
这里不添加,直接下一步。
图1-3 添加文件选框选择芯片系列和芯片型号,如图1-4所示。
实验中使用的是Altera公司的Cyclone II系列FPGA 芯片,型号为EP2C35F672C6。
如果不进行硬件下载,可直接下一步。
图1-4 芯片参数选框EDA外部工具选框如图1-5所示。
一般选择默认值,直接下一步。
图1-5 EDA外部工具选框完成工程设置后的工程信息如图1-6所示。
图1-6 工程信息选框至此完成工程的创建。
(2)新建VHDL文件在File菜单下选择New选项,如图7所示。
图1-7新建文件示意图点击新建菜单后给出新建文件选框如图1-8所示。
选择VHDL File项创建VHDL文件。
图1-8 新建VHDL文件选框确定后弹出新建VHDL文件编辑窗口如图1-9所示。
可在窗口中编写程序内容并保存,注意文件名称与工程实体名称必须一致。
图1-9 VHDL文件编辑窗口至此完成VHDL文件的创建和VHDL程序的编写。
(3) 程序编译程序编写完成后,选择Processing菜单下的编译工具(Compiler Tool)菜单,如图1-10所示,调出编译工具。
7段数码显示译码器设计1、实验目的熟悉ISE系列软件的设计流程和基本工具使用,学习7段数码显示译码器设计,学习VHDL的CASE语句应用。
2、实验内容7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是二进制的,所以输出表达都是十六进制的,为了满足十六进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中实现。
本实验中,7段译码器的数码管采用共阴数码管,而且不考虑小数点的发光管。
其输出信号LED7S的7位分别接数码管的7个段,高电平有效。
例如,当LED7S输出为“1101101”时,数码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管显示“5”。
3、实验器材Spartan 3E开发板。
4、实验说明实验中所需要的源文件在本报告附录中。
5、实验步骤步骤1:创建ISE工程(1)启动桌面上的ISE9.1图标,在Project Navigator中选择File→New Project。
(2)在弹出的对话框(见图1)中,设置工程名为ymq7s,工程存放路径为E:\work\,顶层模块类型选择HDL,并单击Next按钮。
图1 ISE工程属性对话框(3)出现图2所示对话框,目标器件选择spartan3E,具体设计如下图。
图2 ISE工程属性对话框(4)一直点击Next,直到出现图3(即是刚才所设定的),最后点击Finish。
图3 工程设计总表出现图4,这就是所建立的工程,现在我们需要在里面完成我们的设计。
图4 ISE工程属性对话框步骤2:创建新的VHDL设计文件(1)在ISE用户界面中,选择Project→New Source。
(2)在弹出的对话框(见图5)中,选择VHDL Module作为源程序类型,设置文件名为ymq7s,并单击“下一步”按钮。
图5 VHDL的New Source Wizard(3)点击Next,直到出现图6,直到Finish。
触发器有两个互补的输出,且输出不仅与输入有关,还和电路原状态:收藏A.无关B.无法确定C.有关回答错误!正确答案: C单稳态触发器可以用于:收藏A.定时B.编码C.译码回答错误!正确答案: A存储矩阵由许多存储单元组成。
每个存储单元可存放()位二进制数。
收藏A.1B.4C.2回答错误!正确答案: An个逻辑变量,共有()个最小项。
收藏A.2的n次方B.nC.2n回答错误!正确答案: A二进制计数器每经一级触发器,输出脉冲的频率:收藏A.降低一倍B.不会改变C.增大一倍回答错误!正确答案: A()电路,具有回差,抗干扰强。
收藏A.单稳态触发器B.多谐振荡器C.施密特触发器回答错误!正确答案:C()电路可用于幅度的鉴别。
收藏A.施密特触发器B.单稳态触发器C.多谐振荡器回答错误!正确答案: AD/A转换器是可以实现()转换的电路。
收藏A.数字信号向模拟信号B.模拟信号向数字信号C.数字信号向二进制信号回答错误!正确答案: ARS触发器的触发输入信号之间:收藏A.无约束B.有约束C.无法确定回答错误!正确答案:B当JK触发器的J=K=1时,所构成的触发器为:收藏A.置0型的触发器B.置1型的触发器C.翻转型的触发器回答错误!正确答案:C半导体存储器可以用来存放数据、资料等()信息。
收藏A.10进制B.12进制C.2进制回答错误!正确答案: C存储器的存储容量是指所包含的:收藏A.存储器字长B.所存放的字数C.总存储单元数回答错误!正确答案: C若要对100个信息进行编码,则在输出端至少需要()位二进制代码。
收藏A.4B.100C.7回答错误!正确答案: C 1kB的存储器存储容量=:收藏A.1024×1B.1024×8C.1024×2回答错误!正确答案: B 触发器具有:收藏A.没有记忆功能B.记忆功能,可存储一位二进指数C.记忆功能,可存储2位二进指数回答错误!正确答案: B最简与或式是指逻辑表达式中的:收藏A.乘积项(与项)最少,且每个乘积项中变量的个数最少。
科目:VHDL语言与数字系统EDA设计专业:微电子与固体电子学学生姓名:陈庆宇提交日期: 2011年5月26号目录实验一 (1)实验二 (5)实验三 (9)实验四 (11)实验五 (17)作业 (27)实验一1. 实验内容1. 用IF 语句设计一个四-十六译码器;2. 用CASE 语句设计一个四-十六译码器;3. 用GENERATE 语句构造一个串行的十六进制计数器。
2. 实验目的会用VHDL 语言实现一些简单的组合逻辑和时序逻辑,学会使用相关EDA 软件进行VHDL 代码的输入、仿真。
3. 实验方案本实验有三个小实验组成,先分别将方案分别列出:a :用IF 语句设计一个四-十六译码器接口信号的定义如图--1:g1,g2a ,g2b 为片选信号,sel 为输入 编码,y 为译码输出b :用CASE 语句设计一个四-十六译码器 接口定义同样的如图-1:g1,g2a ,g2b 为片选信号,sel 为输入编码,y 为译码输出c :用GENERATE 语句构造一个串行的十六进制计数器先用行为描述设计一个D 触发器,然后用结构描述的方法将四个D 触发器用特定的接法连接起来。
其中clk 、clr 为时钟和清零输入,q 为计数输出。
4.仿真结果(仿真软件:Quartus II 7.2 )a:用IF语句实现的四-十六译码器的仿真结果上图为:片选信号无效的时候的仿真波形,输出为高电平。
上图为:片选信号有效的时候的仿真波形。
b:用CASE语句实现的一个四-十六译码器的仿真结果(直接让片选有效)c:用GENERATE语句构造的串行的十六进制计数器的仿真波形注:当clr为0时对计数结果清零,时钟上升沿计数器加1.5.关键部分代码a:用IF语句设计一个四-十六译码器PROCESS(G1,g2a,g2b,sel)beginif(g1='1'and g2a='0'and g2b='0')thenif(sel="0000")then y<="1111111111111110";elsif(sel="0001")then y<="1111111111111101";elsif(sel="0010")then y<="1111111111111011";elsif(sel="0011")then y<="1111111111110111";elsif(sel="0100")then y<="1111111111101111";elsif(sel="0101")then y<="1111111111011111";elsif(sel="0110")then y<="1111111110111111";elsif(sel="0111")then y<="1111111101111111";elsif(sel="1000")then y<="1111111011111111";elsif(sel="1001")then y<="1111110111111111";elsif(sel="1010")then y<="1111101111111111";elsif(sel="1011")then y<="1111011111111111";elsif(sel="1100")then y<="1110111111111111";elsif(sel="1101")then y<="1101111111111111";elsif(sel="1110")then y<="1011111111111111";elsif(sel="1111")then y<="0111111111111111";else y<="XXXXXXXXXXXXXXXX";end if;else Y<="1111111111111111";end if;end process;b:用CASE语句设计一个四-十六译码器case sel iswhen "0000"=>y<="1111111111111110";when "0001"=>y<="1111111111111101";when "0010"=>y<="1111111111111011";when "0011"=>y<="1111111111110111";when "0100"=>y<="1111111111101111";when "0101"=>y<="1111111111011111";when "0110"=>y<="1111111110111111";when "0111"=>y<="1111111101111111";when "1000"=>y<="1111111011111111";when "1001"=>y<="1111110111111111";when "1010"=>y<="1111101111111111";when "1011"=>y<="1111011111111111";when "1100"=>y<="1110111111111111";when "1101"=>y<="1101111111111111";when "1110"=>y<="1011111111111111";when "1111"=>y<="0111111111111111";when others =>y<="XXXXXXXXXXXXXXXX";end case;c:用GENERATE语句构造一个串行的十六进制计数器architecture count16er of count16 iscomponent dfip isport(d:in std_logic;clr:in std_logic;ck:in std_logic;q:out std_logic;qb:out std_logic);end component;signal clk_in:std_logic_vector(4 downto 0);beginclk_in(0)<=clk;G1:for i in 0 to 3 generateU0:dfip port map(d=>clk_in(i+1),ck=>clk_in(i),clr=>clr,q=>q(i),qb=>clk_in(i+1));end generate;end count16er;实验二1. 实验内容1. 设计一个两位二进制的加法器2. 设计一个两位的BCD 计数器2. 实验目的会用VHDL 语言的多种描述方式实现典型的组合逻辑和时序逻辑,学会使用相关EDA 软件进行VHDL 代码的输入、仿真。
51单片机电机控制输入速度七段数码管
显示汇编程序
简介
本文档介绍了使用51单片机控制电机的方法,以及如何通过输入设置速度,并使用七段数码管显示相关信息的汇编程序。
电机控制
在使用51单片机控制电机之前,需要连接合适的电机驱动模块,并将其与单片机进行连接。
通过控制电机驱动模块的引脚,可以实现电机的正转、反转、停止等功能。
输入速度
可以通过外部的输入设备(如按键、旋钮等)来设置电机的速度。
通过读取输入设备的状态,可以在程序中动态地调整电机的速度。
七段数码管显示
可以通过七段数码管来显示相关信息,如电机的速度、转速等。
通过控制七段数码管的引脚,可以实现在数码管上显示相应的数字
或字符。
汇编程序
使用51汇编语言编写程序,通过设置相应的控制寄存器和引
脚状态,可以实现电机的控制和数码管的显示。
汇编程序需要包括
以下几个方面的功能:
- 初始化相关引脚和寄存器
- 读取输入设备的状态
- 根据输入设备的状态设置电机的速度
- 控制电机的正转、反转、停止等操作
- 更新七段数码管显示的内容
总结
本文档介绍了51单片机控制电机的方法,以及通过输入设备
设置速度和使用七段数码管显示信息的汇编程序。
通过合理地编写
汇编程序,可以实现电机的精确控制和相关信息的显示。
以上是本文档的大致内容,希望对您有所帮助。
电工课设交通信号灯————————————————————————————————作者:————————————————————————————————日期:《电工与电子技术基础》课程设计报告题目简易交通信号灯控制器学院(部)汽车学院专业能源与动力工程班级2013220501学生姓名孙玮佳学号 26 月29 日至7 月 3 日共1 周目录第一章前言1.1摘要 (2)1.2主要技术指标和要求 (2)1.3总体设计方案论证及选择 (2)1.4设计摘要 (4)第二章系统综述2.1设计方案原理框图 (4)2.2设计方案总体电路图 (5)第三章单元电路设计3.1秒脉冲发生器 (6)3.2 十六进制计数器电路 (8)3.3主控制器 (10)3.4倒计数器 (13)3.5显示管译码器 (14)第四章收获与体会 (15)附录 A.主要元器件清单 (15)B.参考文献 (15)第一章 前言1.1摘要在城市交通日益繁忙的今天,汽车进入百姓家庭。
因此,交通自动指挥系统越来越重要,为了确保行人和车辆的安全,实现红绿灯对十字路口的自动控制是城市管理自动化的重要课题。
交通信号控制系统是用来自动控制十字路口红黄绿三色灯的电子系统。
其中红灯亮,表示该条道路禁止通行;黄灯亮表示停车;绿灯亮表示允许通行。
为确保行人和各种车辆的安全,保证正常的交通秩序,我们小组拟进行简易交通信号灯控制器的设计,将所学知识运用在实际生活中,加深对中规模集成电路的理解以及熟练掌握数字电路与模拟电路的灵活运用。
1.2主要技术指标和要求(1)定周控制:主干道绿灯亮45秒,支干道绿灯亮25秒; (2)每次由绿灯变为红灯时,应有5秒黄灯亮作为过渡; (3)分别用红、黄、绿色发光二级管表示信号灯; (4)设计计时显示电路。
1.3 总体设计方案论证及选择 根据交通信号灯控制器的设计要求,最初我们有三套备选方案:方案一:通过分析设计要求,十字路口主干道的绿、黄、红灯所亮时间比例分别为9:1:6,支干道的绿、黄、红所亮时间比例分别为5:1:10,所以,可以选择计数器为5s 的脉冲。
实验名称:十六进制7 段数码显示译码器设计实验目的:1.设计七段显示译码器2.学习Verilog HDL文本文件进行逻辑设计输入;3.学习设计仿真工具的使用方法;工作原理:7 段数码是纯组合电路,通常的小规模专用IC ,如 74 或 4000 系列的器件只能作十进制 BCD码译码,然而数字系统中的数据处理和运算都是二进制的,所以输出表达都是十六进制的,为了满足十六进制数的译码显示,最方便的方法就是利用译码程序在 FPGA/CPLD中来实现。
例如 6-18 作为 7 段译码器,输出信号 LED7S 的 7 位分别接图 6-17 数码管的 7 个段,高位在左,低位在右。
例如当 LED7S输出为“ 1101101”时,数码管的 7 个段 g,f,e,d,c,b,a 分别接 1,1,0,1,1,0,1 ;接有高电平的段发亮,于是数码管显示“5”。
注意,这里没有考虑表示小数点的发光管,如果要考虑,需要增加段 h,例 6-18 中的LED7S:OUTSTD_LOGIC_VECTOR(6 DOWNTO 0)应改为 (7 DOWNTO 0)。
实验内容 1:将设计好的 VHDL译码器程序在 Quartus II上进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。
实验步骤:步骤 1:新建一个文件夹击打开vhdl 文件;步骤 2: 编写源程序并保存步骤 3:新建一个工程及进行工程设置步骤 4:调试程序至无误;步骤 5:接着新建一个VECTOR WAVEFOM文件及展出仿真波形设置步骤 6:输入数据并输出结果(时序仿真图)步骤 7:设置好这个模式步骤 8:生成 RTL原理图步骤 9:引脚锁定及源代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DECL7S ISPORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END;ARCHITECTURE one OF DECL7S ISBEGINPROCESS(A)BEGINCASE A ISWHEN"0000"=> LED7S<="0111111";WHEN"0001"=> LED7S<="0000110";WHEN"0010"=> LED7S<="1011011";WHEN"0011"=> LED7S<="1001111";WHEN"0100"=> LED7S<="1100110";WHEN"0101"=> LED7S<="1101101";WHEN"0110"=> LED7S<="1111101";WHEN"0111"=> LED7S<="0000111";WHEN"1000"=> LED7S<="1111111";WHEN"1001"=> LED7S<="1101111";WHEN"1010"=> LED7S<="1110111";WHEN"1011"=> LED7S<="1111100";WHEN"1100"=> LED7S<="0111001";WHEN"1101"=> LED7S<="1011110";WHEN"1110"=> LED7S<="1111001";WHEN"1111"=> LED7S<="1110001";WHEN OTHERS =>NULL;END CASE;END PROCESS;END;实验内容二:1、硬件测试。
实验一七段数码显示译码器设计一、实验目的:1.完成七段数码显示译码器的设计,学习组合电路设计;2.学习多层次设计方法。
3.锻炼使用Verilog HDL 语言编程的能力。
二、实验原理:1.七段译码电路时一宗纯组合的逻辑电路,通常是由小型专用的IC门电路组成。
2.七段码输入与输出的原理与真值表关系。
a)输入:七段码输入为四个输入信号,用来表示0000—1111,即表示为十六进制的“0”到“F”。
b)输出:七段码输出为七个输出信号,分别用a,b, c,d,e,f,g七个符号来表示。
一般规定,输出信号为“1”时,它所控制的发光二极管为点亮状态,输出信号为“0”时,它所控制的发光二极管为熄灭状态。
本实验使用的七段数码为共阴极,其电路图如图1所示。
图1 共阴数码管及其电路c)输入与输出关系用思维二进制代码组成十六进制代码,将其用代码显示,表2-1 七段字符显示真值表数码A3 A2 A1 A0 A B C D E F G 对应码(h)0 0 0 0 0 1 1 1 1 1 1 0 7E1 0 0 0 1 0 1 1 0 0 0 0 302 0 0 1 0 1 1 0 1 1 0 1 6D3 0 0 1 1 1 1 1 1 0 0 1 794 0 1 0 0 0 1 1 0 0 1 1 335 0 1 0 1 1 0 1 1 0 1 1 5B6 0 1 1 0 1 0 1 1 1 1 1 5F7 0 1 1 1 1 1 1 0 0 0 0 708 1 0 0 0 1 1 1 1 1 1 1 7F9 1 0 0 1 1 1 1 1 0 1 1 7BA 1 0 1 0 1 1 1 0 1 1 1 77上,需要进行引脚分配。
一、实验步骤:(1) 创建工程文件(2) 创建原理图设计文档(3) 利用ESC绘制电路图进行功能设计(4) 执行综合(5) 设计测试平台文件(6) 执行功能仿真(7) 执行实现、添加约束文件(8) 执行时序仿真(9) 生产位流文件,配置目标芯片Verilog HDL程序:`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company:// Engineer://// Create Date: 18:47:07 03/10/2013// Design Name:// Module Name: ssss// Project Name:// Target Devices:// Tool versions:// Description://// Dependencies://// Revision:// Revision 0.01 - File Created// Additional Comments:////////////////////////////////////////////////////////////////////////////////////module decode_7(a, b, c, d, en, sega, segb, segc, segd,sege,segf,segg );input a, b, c, d, en;output reg sega, segb, segc, segd,sege,segf,segg;reg [1:7] segs;always @(a or b or c or d or en) beginif (en)case ({d, c, b, a})0:segs = 7'b1111110; //01:segs = 7'b0110000;2:segs = 7'b1101101;3:segs = 7'b1111001;4:segs = 7'b0110011;5:segs = 7'b1011011;6:segs = 7'b0011111;7:segs = 7'b1110000;8:segs = 7'b1111111;9:segs = 7'b1110011; //910:segs = 7'b1110111;//1011:segs = 7'b0011111;12:segs = 7'b1001110;13:segs = 7'b0111101;4:segs = 7'b10011111;15:segs = 7'b1000111;15default segs = 7'bx;endcaseelsesegs = 7'b0;{sega, segb, segc, segd,sege,segf,segg} = segs; endEndmodule实验过程中得到的图片:实验体会:本次实验通过对FPGA实验平台的使用,Verilog HDL语言有了一定的理解与认识,但在很多地方没有很好的熟练度,在以后的学习中还要好好的熟悉之。
实验目的:学习7段数码显示译码器的Verilog硬件设计。
实验原理:7段数码是纯组合电路。
通常的小规模专用IC,如74或4000系列的器件只能做十进制BCD码译码,然而数字系统中的数据处理和运算都是二进制的,所以输出表达都是十六进制的。
为了满足十六进制数的译码显示,最方便的方法就是利用Verilog译码程序在FPGA/CPLD中来实现。
首先要设计一段程序。
该程序可按照例3-2的case语句表述方法,再根据表4-2的真值表写出程序。
设输入的4位码为A[3:0],输出控制7段共阴数码管的7位数据为LED7S[6:0]。
输出信号LED7S的7位分别接图4-47的共阴数码管的7个段,高位在左,低位在右。
例如当LED7S 输出为“1101101”时,数码管的7个段g , f , e , d , c , b , a 分别接在1,1,0,1,1,0,1;接有高电平的段发亮,于是数码管显示“5”。
这里没有考虑小数点的发光管,如果要考虑,需要增加段h,然后将LED7S改为8位输出。
实验过程:1:新建Verilog工程2:编程3:保存(与模块名一致) 4:新建波形图5:保存6:导入波形7:设置输入波形8:设置fuction 仿真9:生成网表10:仿真
程序代码:
module LED(A,LED7S);
input [3:0]A;
output [6:0]LED7S;
reg [6:0]LED7S;
always @ (A) begin: LED
case(A)
4'b0000: LED7S<=7'b0111111; 4'b0001: LED7S<=7'b0000110; 4'b0010: LED7S<=7'b1011011; 4'b0011: LED7S<=7'b1001111; 4'b0100: LED7S<=7'b1100110; 4'b0101: LED7S<=7'b1101101; 4'b0110: LED7S<=7'b1111101; 4'b0111: LED7S<=7'b0000111; 4'b1000: LED7S<=7'b1111111; 4'b1001: LED7S<=7'b1101111; 4'b1010: LED7S<=7'b1110111; 4'b1011: LED7S<=7'b1111100; 4'b1100: LED7S<=7'b0111001; 4'b1101: LED7S<=7'b1011110; 4'b1110: LED7S<=7'b1111001; 4'b1111: LED7S<=7'b1110001; default: LED7S<=7'b0111111;
endcase
end
endmodule
程序代码正确波形仿真:。