当前位置:文档之家› 数据分配器和译码器设计

数据分配器和译码器设计

数据分配器和译码器设计
数据分配器和译码器设计

数据分配器(8位输入,4位输出):

library ieee;

use ieee.std_logic_1164.all;

entity xl_led is

port(xl_datain: in std_logic_vector(7 downto 0);

xl_sel,xl_en: in std_logic;

xl_dataout: out std_logic_vector(3 downto 0);

xl_ledh,xl_ledl:out std_logic);

end xl_led;

architecture behave of xl_led is

begin

process(xl_datain,xl_sel,xl_en)

begin

if(xl_en='0') then

xl_dataout<="0000";

xl_ledh<='0';

xl_ledl<='0';

elsif(xl_sel='1') then

xl_dataout<=xl_datain(7 downto 4);

xl_ledh<='1';

xl_ledl<='0';

else

xl_dataout<=xl_datain(3 downto 0);

xl_ledh<='0';

xl_ledl<='1';

end if;

end process;

end behave;

运行结果:

七段译码器:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity led is

port(xl_datain: in std_logic_vector(3 downto 0);

xl_en: in std_logic;

xl_dataout: out std_logic_vector(7 downto 0));

end led;

architecture behave of led is

begin

process(xl_datain,xl_en)

begin

if(xl_en='0') then xl_dataout<="00000000";

elsif(xl_datain="0001") then xl_dataout<="00000110";

elsif(xl_datain="0010") then xl_dataout<="01011011";

elsif(xl_datain="0011") then xl_dataout<="01001111";

elsif(xl_datain="0100") then xl_dataout<="01100110";

elsif(xl_datain="0101") then xl_dataout<="01101101";

elsif(xl_datain="0110") then xl_dataout<="01111101";

elsif(xl_datain="0111") then xl_dataout<="00000111";

elsif(xl_datain="1000") then xl_dataout<="01111111";

elsif(xl_datain="1001") then xl_dataout<="01101111";

elsif(xl_datain="1010") then xl_dataout<="01110111";

elsif(xl_datain="1011") then xl_dataout<="01111100";

elsif(xl_datain="1100") then xl_dataout<="00111001";

elsif(xl_datain="1101") then xl_dataout<="01011110";

elsif(xl_datain="1110") then xl_dataout<="01111001";

elsif(xl_datain="1111") then xl_dataout<="01110001";

else

xl_dataout<="00111111";

end if;

end process;

end behave;

运行结果:

顶层原理图:

运行结果:

编码器和译码器的应用

编码器、译码器及应用电路设计 一、实验目的: 1、掌握中规模集成编码器、译码器的逻辑功能测试和使用方法; 2、学会编码器、译码器应用电路设计的方法; 3、熟悉译码显示电路的工作原理。 二、实验原理: 1、什么是编码: 教材说:用文字、符号、或者数字表示特定对象的过程称为编码 具体说:编码的逻辑功能是把输入的每个高、低电平信号编成对应的二进制代码 2、编码器74LS147的特点及引脚排列图: 74LS147是优先编码器,当输入端有两个或两个以上为低电平,它将对优先级别相对较高的优先编码。其引脚排列图: 3、什么是译码:译码是编码的逆过程,把给定的代码进行“翻译”,变成相应的状态,使输出通道中相应的一路有信号输出,译码器广泛用于代码转换、终端的数字显示、数据分配、组合控制信号等。 译码器按照功能的不同,一般分为三类:二进制译码器、二—十进制译码器、显示译码器。 (1)变量译码器(用以表示输入变量的状态) 74LS138的特点及其引脚排列图:反码输出。 ABC是地址输入端,Y0—Y7是输出端,G1、G2A’、G2B’为 使能端,只有当G1=G2A’=G2B’=1时,译码器才工作。 (2)码制变换译码器:用于同一个数据的不同代码之间的相互转换,代表是4—10线译码器 译码器74LS42的特点及其引脚排列图: 译码器74LS42的功能是将8421BCD码译成10个对象 其原理与74LS138类同,只不过它有四个输入端, 十个输出端,4位输入代码0000—1111十六种状态组合

其中有1010—1111六个没有与其对应的输出端, 这六组代码叫做伪码,十个输出端均为无效状态。 (3)数码显示与七段译码驱动器:将数字、文字、符号的代码译成数字、文字、符号的电路 a、七段发光二极管数码显示管的特点:(共阴极) b、七段译码驱动器: 4、在本数字电路实验装置上已完成了译码器74LS48和数码管之间的连接图。 三四五脚接高电频,数码管的单独端接低电频。

步进电机环形分配器

步进电机环形分配器 (1)工作原理 步进电机控制主要有三个重要参数即转速、转过的角度和转向。由于步进电机的转动是由输入脉冲信号控制,所以转速是由输入脉冲信号的频率决定,而转过的角度由输入脉冲信号的脉冲个数决定。转向由环形分配器的输出通过步进电机A、B、C相绕组来控制,环形分配器通过控制各相绕组通电的相序来控制步电机转向。 如图1给出了一个双向三相六拍环形分配器的逻辑电路。电路的输出除决定于复位信号RESET外,还决定于输出端Q A、Q B、Q C的历史状态及控制信号-EN使能信号、CON正反转控制信号和输入脉冲信号。其真值表如表1所示。 图1 步进电机环形分配器 表1 真值表

(2)程序设计 程序设计采用组合逻辑设计法,由真值表可知: 当CON=0时,输出Q A、Q B、Q C的逻辑关系为: 当CON=1时,输出Q A、Q B、Q C的逻辑关系为: 当CON=0,正转时步进机A、B、C相线圈的通电相序为: 当CON=1,反转时各相线圈通电相序为: Q A、Q B、Q C的状态转换条件为输入脉冲信号上升沿到来,状态由前一状态转为后一状态,所以在梯形图中引入了上升沿微分指令。 PLC输入/输出元件地址分配见表2。 表2 PLC输入/输出元件地址分配表 根据逻辑关系画出步进电机机环形分配器的PLC梯形图,如图2所示。 CON10 Z EN CLK A B C A B C 1ΦΦ100100 01↑101110 01↑001010 01↑011011 01↑010001 01↑110101 01↑100100 PLC IN代号PLC OUT代号 X0CLK Y0Q A X1EN Y1Q B X2RESET Y2Qc X3CON

实验4 组合逻辑电路设计(编码器和译码器)

实验四 组合逻辑电路设计(编码器和译码器) 一、【实验目的】 1、 验证编码器、译码器的逻辑功能。 2、 熟悉常用编码器、译码器的逻辑功能。 二、【实验原理】 1.编码器 编码器是组合电路的一部分,就是实现编码操作的电路,编码实际上是和译码相反的过程。按照被编码信号的不同特点和要求,编码也分成三类: (1)二进制编码器:如用门电路构成的4-2线,8-3线编码器等。 (2)二—十进制编码器:将十进制0~9编程BCD 码,如10线十进制-4线BCD 码编码器74LS147等。 (3)优先编码器:如8-3线优先编码器74LS148等。 2.译码器 译码器是组合电路的一部分。所谓译码,就是把代码的特定含义“翻译”出来的过程,而实现译码操作的电路称为译码器。译码器分成三类: (1)二进制译码器:如中规模2-4线译码器74LS139,3-8线译码器74LS138等。 (2)二—十进制译码器:实现各种代码之间的转换,如BCD 码——十进制译码器74LS145等。 (3)显示译码器:用来驱动各种数字显示器,如共阴数码管译码器驱动74LS48,共阳数码管译码驱动74LS47等。 三、【实验内容与步骤】 1.编码器实验 将10—4线(十进制—BCD 码)编码器74LS147集成片插入IC 空插座中,管脚排列如下图4-1所示。按下图4-2接线,其中输入端1~9通过开关接高低电平(开关开为“1”、开关关为“0”),输出Q D 、Q C 、Q B 、Q A 接LED 发光二极管。接通电源,按表输入各逻辑电平,观察输出结果并填入表4-1中。 45678QC QB Ucc NC QD 3 2 1 GND QA 图4-1 74LS147集成芯片管脚分布图

七段数码显示译码器设计

七段数码显示译码器设计 实验目的: 学习7段数码显示译码器设计,学习VHD啲多层次设计方法。 二、实验原理: 七段数码管由8个(a,b,c,d,e,f,g,dp )按照一定位置排列的发光二极管构成, 通常采取共阴极或者共阳极的设计,将8个二极管的同一极接在一起,通过分别控制另外的8个电极的电平,使二极管导通(发光)或截止(不发光)。 七段数码显示译码器的功能就是根据需要显示的字符,输出能够控制七段数 码管显示出该字符的编码。 三、实验内容: 1)用VHDL设计7段数码管显示译码电路,并在VHDL苗述的测试平台下对译码器进行功能仿真,给出仿真的波形。 CNT46 DECL7S A[.iu . 0] LED??[4B . ay rstG ObiitCl 程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY SMG IS PORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END; ARCHITECTURE ONE OF SMG IS BEGIN PROCESS(A) BEGIN

CASE A IS WHEN"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; 仿真波形:

硬件脉冲环形分配器的设计

数控 数显 硬件脉冲环形分配器的设计 河北省农业工程学校 孙继山 在对一台数控机床维修中,发现其步进电动机 的环形分配器损坏,在原配件买不到的情况下,我用 D触发器和与非门电路进行代换,取得了成功。下 面将电路设计过程作一介绍。 1.根据电机的相数,选择D触发器的数量。一 个触发器控制步进电动机的一相。我们所用的步进 电动机是三相电动机,需用三个D触发器,分别用 F A、F B、F C表示。其状态分别用Q A、Q B、Q C表示。 2.根据步进电动机的通电方式,列出带方向控 制的真值表。三相步进电动机的通电方式有三相单 三拍、三相双三拍和三相单双六拍。由原电路集成 块YB013的3、4接高电平说明其工作在单双六拍。 用D作为方向控制,D=1电机正转、D=0电机反 转。列出的真值表如表1。 表1 真值表 D Q A N Q B N Q C N Q A N+1Q B N+1Q C N+1 1100110 1110010 1010011 1011011 1001101 1101100 0100101 0101001 0001011 0011010 0010110 0110100 3.根据真值表,利用卡诺图得每个触发器的次 态方程。以F A为例,画出卡诺图,由真值表添入数 值后结果如图1。 D Q A n Q B n Q C n000111 10 00x0 01 0110x1 1111x0 10x100 图1 卡诺图 经化简得: Q A n+1=D Q C n+DQ B n=D Q C n D Q B n Q B n+1和Q C n+1可用同样方法得出。也可根据三相电路的对称性,由Q A n+1的表达式推出: Q B n+1=D Q C n D Q B n Q C n+1=D Q B n DQ A n 4.对照D触发器的特性方程:Q n+1=D,得到每个触发器的驱动方程: D A=D Q C n D Q B n D B=D Q A n D Q C n D C=D Q B n D Q A n 5.由驱动方程画出脉冲分配器电路如图2。 图2 脉冲分配器电路 图3 原电路接线图 6.应用:原电路接线如图3所示。图中8031单片机用P1口的三根口线P1 0、P1 1、P1 2实现对环分电路的控制,其中: P1 0:方向控制输出端,接至代换电路的D端。 P1 1:输出控制信号,可用其封锁代换电路的CP 脉冲。 P1 2:环分电路复位控制,接至代换电路的R。代换电路的CP脉冲直接接8155定时器的定时输出。 (收稿日期:2000-12-15) ! 11 ! 数控 数显 机床电器2001No.6

7段数码显示译码器设计

EDA 技术实验报告 实验项目名称:7段数码显示译码器设计 实验日期:2012年6月4日实验成绩: 实验评定标准: 一、实验目的 学习7段数码显示译码器设计;学习VHDL的CASE语句应用及多层次设计方法。 二、实验器材 电脑一台、GW48 EDA/SOPC试验箱。 三、实验内容(实验过程) 实验内容1:说明程序中各语句的含义,以及该程序的整体功能。在quartusII 上对该程序进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。步骤:1)打开软件,选择菜单file—>new,在弹出的new对话框中选择Device Design Files 的VHDL File项,按OK键后进入VHDL文本编辑方式。 根据给出的7段数码显示译码器的参考程序。 2)将其另存为与实体名一致的文件,以确保后续的编译能够正常进行。然后在将该文件置顶,并进行编译。 3)编译完成后,对其进行仿真,建立波形文件。再次进行编译(否则进行仿真的时候会报错),编译完成后即可进行仿真。分析得到的结果。

实验内容2:引脚锁定及硬件测试。选用GW48 系统的实验电路模式6 用数码8 显示译码输出(P1046-PI040),键8、键7、键6 和键5 四位控制输入,硬件验证译码器的工作性能。 实验内容3:用元件例化语句,按下图的方式连接成顶层设计电路(用VHDL 表述),图中CNT4B 是一个4 为二进制加法器(也可利用实验五的加法计数器的程序,在实验中则利用后者),模块DECL7S 即该实验实体元件重复以上实验过程。图中temp 是4 位总线,led 是7 位总线。对于引脚和实验用模式6 用数码8 显示译码输出用键3 作为时钟输入或直接接时钟信号clock0。 四、实验程序 7端数码显示译码器的程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY DECL7S IS PORT ( A:IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED7S:OUT STD_LOGIC_VECTOR(6DOWNTO 0)); END DECL7S; ARCHITECTURE one OF DECL7S IS BEGIN PROCESS(A) BEGIN CASE A IS WHEN"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";

译码器和编码器实验

实验三译码器和编码器 一实验目的 1.掌握译码器、编码器的工作原理和特点。 2.熟悉常用译码器、编码器的逻辑功能和它们的典型应用。 二、实验原理和电路 按照逻辑功能的不同特点,常把数字电路分两大类:一类叫做组合逻辑电路,另一类称为时序逻辑电路。组合逻辑电路在任何时刻其输出的稳态值,仅决定于该时刻各个输入信号取值组合的电路。在这种电路中,输入信号作用以前电路所处的状态对输出信号无影响。通常,组合逻辑电路由门电路组成。 组合逻辑电路的分析方法:根据逻辑图进行二步工作: a.根据逻辑图,逐级写出函数表达式。 b.进行化简:用公式法、图形法或真值表进行化简、归纳。 组合逻辑电路的设计方法:就是从给定逻辑要求出发,求出逻辑图。一般分四步进行。 a.分析要求;将问题分析清楚,理清哪些是输入变量,哪些是输出函数。 b.列真值表。 c.进行化简:变量比较少时,用图形法。变量多时,可用公式化简。 d.画逻辑图:按函数要求画逻辑图。 进行前四步工作,设计已基本完成,但还需选择元件——集成电路,进行实验论证。 值得注意的是,这些步骤并不是固定不变的程序,实际设计时,应根据具体情况和问题难易程度进行取舍。 1.译码器 译码器是组合电路的一部分,所谓译码,就是把代码的特定含义“翻译”出来的过程,而实现译码操作的电路称为译码器。译码器分成三类: a.二进制译码器:如中规模2—4线译码器74LS139。,3—8线译码器74LS138等。 b.二—十进制译码器:实现各种代码之间的转换,如BCD码—十进制译码器74LS145等。 c.显示译码器:用来驱动各种数字显示器,如共阴数码管译码驱动74LS48,(74LS248),共阳数码管译码驱动74LS47(74LS247)等。 2.编码器 编码器也是组合电路的一部分。编码器就是实现编码操作的电路,编码实际上是译码相反的过程。按照被编码信号的不同特点和要求,编码器也分成三类: a.二进制编码器:如用门电路构成的4—2线,8—3线编码器等。 b.二—十进制编码器:将十进制的0~9编成BCD码,如:10线十进制—4线BCD码编码器74LS147等。 c.优先编码器:如8—3线优先编码器74LS148等。 三、实验内容及步骤 1.译码器实验 (1)将二进制2-4线译码器74LS139,及二进制3-8译码器74LS138分别插入实验系统IC 空插座中。 按图1.3.1接线,输入G、A、B信号(开关开为“1”、关为“0”),观察LED输出Yo、Y1、Y2、Y3的状态(亮为“1”,灭为“0”),并将结果填入表1.3.1中。

5相环形分配器

步进电机论文:五相混合式步进电动机环形分配器的设计 2012年1月21日 五相混合式步进电机环形分配器的设计 徐殿国王宗培(哈尔滨工业大学) l引言 五相混合式步进电机具有许多优良的性能,因此在国内外都得到了较大发展,其驱动技术也取得了很大进步[1]。由于五相混合式步进电动机系统的研制和开发历史不长,电机驱动电源中的环形脉冲分配器专用芯片目前尚未见到,国内外厂家生产的五相混合式步进电动机驱动电源中的环形脉冲分配器大都是由数字逻辑集成电路或EPROM存贮器构成的[2.3]。由于电机的运行节拍和运行方式较多,采用这些方式设计的环形脉冲分配器结构复杂、功能较少、可靠性不高。近年来随着逻辑可编程器件的出现,为逻辑电路的设计提供了极大的灵活性,因此完全可以用逻辑可编程器件(例如PAL、GAL等)设计步进电动机的环形脉冲分配器。本文给出由两片GAL16V8构成的五相混合式步进电动机环形脉冲分配器的设计方法。 2五相混合式步进电机的励磁方式及环形脉冲分配逻辑 根据五相混合式步进电机韵工作原理,可以得到如表1所示的励磁方式。可见五相混合式步进电机的励磁方式很多,但是运行节拍只有两种即整步10拍和半步20拍。尽管该电机的励磁方式很多,但从电机运行的平稳陛和获得最大合成转矩的角庋出发,表1五相混合式步进电动

机的励磁方式常采用4-4相通电方式作为整步运行方式,4-5相通电方式作为半步运行方式。整步运行方式中的5-5相通电方式虽较4-4相通电方式的合成转矩大,但由于驱动电源中采用桥式电路时存在上下桥臂换向容易引起短路而较少采用。本文给出的是4-4相通电方式和5-5相通电方式的环形脉冲分配器设计方法。 根据五相混合式步进电机的合成转矩矢量图[4],可以得到4-5相励磁方式和4-4相励磁方式下的逻辑通电状态变化顺序,如表2所示。与之对应的功放电路形式如图1所示。表2中的“1”代表功率管导通,“0”代表功率管关断。其中正转的逻辑通电状态变化顺序 为。 表2中序号为奇数的逻辑通电状态即为4-4相励磁方式。

十六进制七段数码显示译码器

十六进制七段数码显示译码器

十六进制七段数码显示译码器 一、实验目的:学习7段数码显示器的Verilog硬件设计。 二、实验原理:7段数码显示器是纯组合电路。通常的小规模专用IC,如74 或4000系列的器件只能做十进制BCD码译码器(其真值表如图(1)所示),然而数字系统中的数据处理和运算都是二进制的,所以输出表达式都是十六进制的,为了满足十六进制的译码显示,最方便的方法就是利用Verilog译码程序在FPGA/CPLD中来实现。所以首先要设计一段程序。设输入的4位码为A[3:0],输出控制7段共阴数码管(如图(2)所示)的7位数据为LED7S[6:0]。输出信号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 0 1000 1111111 8 0001 0000110 1 1001 1101111 9 0010 1011011 2 1010 1110111 A 0011 1001111 3 1011 1111100 B 0100 1100110 4 1100 0111001 C 0101 1101101 5 1101 1011110 D 0110 1111101 6 1110 1111001 E 0111 0000111 7 1111 1110001 F 图(2)7段共阴数码管

步进电机驱动电路设计

步进电机驱动电路设计 摘要 随着数字化技术发展,数字控制技术得到了广泛而深入的应用。步进电机是一种将数字信号直接转换成角位移或线位移的控制驱动元件, 具有快速起动和停止的特点。因为步进电动机组成的控制系统结构简单,价格低廉,性能上能满足工业控制的基本要求,所以广泛地应用于手工业自动控制、数控机床、组合机床、机器人、计算机外围设备、照相机,投影仪、数码摄像机、大型望远镜、卫星天线定位系统、医疗器件以及各种可控机械工具等等。直流电机广泛应用于计算机外围设备( 如硬盘、软盘和光盘存储器) 、家电产品、医疗器械和电动车上, 无刷直流电机的转子都普遍使用永磁材料组成的磁钢, 并且在航空、航天、汽车、精密电子等行业也被广泛应用。在电工设备中的应用,除了直流电磁铁(直流继电器、直流接触器等)外,最重要的就是应用在直流旋转电机中。在发电厂里,同步发电机的励磁机、蓄电池的充电机等,都是直流发电机;锅炉给粉机的原动机是直流电动机。此外,在许多工业部门,例如大型轧钢设备、大型精密机床、矿井卷扬机、市内电车、电缆设备要求严格线速度一致的地方等,通常都采用直流电动机作为原动机来拖动工作机械的。直流发电机通常是作为直流电源,向负载输出电能;直流电动机则是作为原动机带动各种生产机械工作,向负载输出机械能。在控制系统中,直流电机还有其它的用途,例如测速电机、伺服电机等。他们都是利用电和磁的相互作用来实现向机械能能的转换。 介绍了步进电机和直流电机原理及其驱动程序控制控制模块,通过AT89S52单片机及脉冲分配器(又称逻辑转换器)L298完成步进电机和直流电机各种运行方式的控制。实现步进电机的正反转速度控制并且显示数据。整个系统采用模块化设计,结构简单、可

嵌入式 步进电机(环形分配器)

课程数控实验 题目基于LPC2114的直流电机控制系统学院信息工程学院 专业13计算机测控 学号3113002316、3113002317、 3113002318、3113002319 姓名谢志鹏、杨光、叶国康、曾晖

基于LPC2114的步进电机控制器 一.实验要求 1.用一片LPC2000处理器或单片机设计步进电机驱动器,实现脉冲环形分配器和放大驱动电路功能,驱动步进电机运行。 2.用另外一片LPC2000处理器设计数控系统,设置步进电机步进运动方向选择开关、电位器输入步进运动速度、键盘输入步进运动步数,设置运动脉冲和方向信号输出给步进电机驱动器,实现对步进电机的运动控制信号给定。 二.实验原理 1.LPC2103部分(步进电机驱动部分): (1)脉冲输入:利用LPC2103芯片的脉宽调制器(PWM)产生占空比为50%的方波信号。 (2)正反转:把L297的CW/CCW接到LPC2103的一个引脚,通过控制该引脚电平的高低即可实现控制电机正反转。 (3)步进步数控制:把步进电机控制器的定时器0设置成捕获计数模式,当捕获到一个脉冲时,TC 加1,直到TC等于给定步数时,停止方波输出。 2.LPC2114(信号输入部分) (1)步进运动速度输入:通过调节电位器,再经过LPC2114的AD转换,得到电位器触点的电压值。将电压值按照一定的比例换算成速度值,通过串口发送到LPC2103(步进电机控制器),以改变方波的频率。 (2)步进步数输入:通过键盘输入步进步数,将结果通过串口发送到LPC2103(步进电机控制器)。

三.硬件电路 图3.1 电路图 L297是步进电机控制器,适用于双极性两相步进电机或单极性四相步进电机的控制,可有半步、整步和波状三种驱动模式。片内斩波电路允许开关式控制绕组电流。该器件的一个显著特点是仅需时钟、方向和模式输入信号。步进电机所需相位由电路内部产生,大大减轻了的负担。 L297的引脚端功能如下: ◆引脚端10(使能端EN)为芯片的片选信号,高电平有效; ◆引脚端20(复位RST),低电平有效; ◆引脚端19(HALF/FULL)和引脚端17(CW/CCW)都通过上拉电阻链接到高电平; ◆引脚端18(时钟输入CLK)的最大输入时钟频率不能超过5KHz,控制时钟的频率,即可控制电机转 动速率; ◆引脚端19(HALF/FULL)决定电机的转动方式,HALF/FULL=0,电机按整步方式运转,HALF/FULL=1,

单片机处理的带延时的软件环形分配器程序

编制基于MCS51系列单片机汇编语言的能够实现3相6拍软件环形分配器正反转运行功能的程序。 正反转的识别由开关K7识别,设K7连接8031的P1.7,而三相电机的A、B、C通电状态由P1.0、P1.1、P1.2三条口线控制。 开关K7闭合,P1.7=1, 接正转,实现:A→AB→B→BC→C→CA→A 开关K7断开,P1.7=0, 接反转,实现:A→AC→C→CB→B→BA→A 硬件电路如图: ORG 0000H SJMP START ORG 0030H TABLE: DB 01H DB 03H DB 02H DB 06H DB 04H DB 05H ORG 0040H START:MOV SP, #60H SETB P1.7 JB P1.7, ZZH SJMP FZH ZZH: MOV DPTR, #TABLE

MOV R0, #0H LOOP1: MOV A, R0 MOVC A, @A+DPTR ORL P1, A ACALL DELAY CJNE R0, #05H, NEXT1 MOV R0, #0H SJMP LOOP1 NEXT1: INC R0 SJMP LOOP1 FZH: MOV DPTR, #TABLE MOV R0, #0H LOOP2: MOV A, R0 MOVC A, @A+DPTR ORL P1, A ACALL DELAY CJNE R0, #0H, NEXT2 MOV R0, #05H SJMP LOOP2 NEXT2: DEC R0 SJMP LOOP2 DELAY: MOV R7, #10H

DELAY1: MOV R6, #0FFH DELAY2: MOV R5, #0FFH DELAY3: DJNZ R5, DELAY3 DJNZ R6, DELAY2 DJNZ R7, DELAY1 RET END

编码器、译码器及应用电路设计

实验六编码器、译码器及应用电路设计 一、实验目的: 1、掌握中规模集成编码器、译码器的逻辑功能测试和使用方法; 1、学会编码器、译码器应用电路设计的方法; 3、熟悉译码显示电路的工作原理。 二、实验原理: 编码是用文字、符号或者数字表示特定对象的过程,在数字电路中是用二进制数进行编码的,相应的二进制数叫二进制代码。编码器就是实现编码操作的电路。本实验使用的是优先编码器74LS147,当输入端有两个或两个以上为低电平时,将对输入信号级别相对高的优先编码,其引脚排列如图6—1所示。 图6—1 74LS147引脚排列图图6—2 74LS138引脚排列图译码是编码的逆过程,是把给定的代码进行“翻译”,变成相应的状态,使输出通道中相应的一路有信号输出。译码器在数字系统有广泛的用途,不仅用于代码的转换、终端的数字显示,还用于数据分配和组合控制信号等。不同的功能可选用不同种类的译码器。 译码器按照功能的不同,一般分为三类: 1、变量译码器(二进制译码器):用以表示输入变量的状态,如2—4线、3—8线、4—16线译码器。以3—8线译码器74LS138为例介绍: 图6—2为74LS138的引脚图,其中,A2A1A0为地址输入端,为译码器输出端,为使能端(只有当时,才能进行译码)。 图6—3 74LS42引脚排列图图6—5为CC4511引脚排列图 2、码制变换译码器:用于同一个数据的不同代码之间的相互变换。这种译码器的代表是4—10线译码器,它的功能是将8421BCD码译为十个对象,如74LS42等。它的原理与 74LS138译码器类同,只不过它有四个输入端,十个输出端。4位输入代码共有0000—1111

环形脉冲分配器教案精选文档

环形脉冲分配器教案精 选文档 TTMS system office room 【TTMS16H-TTMS2A-TTMS8Q8-

A、导入新课 实物演示:演示环形脉冲分配器的电路功能,提出本次学习的任务,激发学生的兴趣。 B、新授课 7、1 环形脉冲分配器 基础知识 一、概述 按照逻辑功能和电路组成的不同,数字电子电路分成组合逻辑电路和时序逻辑电路两大类。本任务将介绍时序逻辑电路。 时序逻辑电路是由组合逻辑电路和存储电路两部分组成,其方框图如图7-1所示。 图7-1 时序逻辑电路组成 时序逻辑电路的特点是:电路在任一时刻的输出状态不仅与该时刻输入信号状态有关,而且还与电路原有的状态有关。(如:指纹开门) 时序逻辑电路按状态转换情况可分为同步时序逻辑电路和异步时序逻辑电路两大类。 同步时序逻辑电路是指在同一时钟脉冲CP的控制下,电路中所有触发器Q的状态都在同一时刻发生改变。而异步时序逻辑电路是在时钟脉冲CP 的控制下,各触发器Q的状态改变不在同一时刻发生。 最常用的时序逻辑电路是各种类型的寄存器和计数器。 寄存器 (一)概述 寄存器是常用于接收、暂存、传递数码及指令等信息的数字逻辑部件。 寄存器存放数码及指令等信息的方式有并行输入和串行输入两种: ⑴并行输入——数码及指令等信息从各对应位置的输入端同时输入到寄存器中。 ⑵串行输入——数码及指令等信息从一个输入端逐位输入到寄存器中。 寄存器传递数码及指令等信息的方式也有并行输出和串行输出两种: ⑴并行输出——数码及指令等信息同时出现在各对应位置的寄存器的输出端。 ⑵串行输出——数码及指令等信息在一个寄存器的输出端逐位出现。 寄存器分为数码寄存器和移位寄存器: ⑴数码寄存器——用于暂时存放数码的逻辑记忆电路。 ⑵移位寄存器——除具有存放数码的记忆功能外,还具有移位功能。(二)、数码寄存器演示法(结合演示讲解)举例法图片解释(结合演示讲解)连接线路 功能测试(结合演示讲解)连接与调试

译码器与编码器的设计与仿真

译码器与编码器的设计与仿真 1.实验目的 a.参照芯片74LS138的电路结构,用逻辑图和VHDL语言设计3-8译码器。 b.参照芯片74LS148的电路结构,用逻辑图和VHDL语言设计8-3优先编码器。 2.实验内容的详细说明 2.1 74148:8-3优先编码器(8 to 3 Priority Encoder) 2.1.1 设计思想 先定义八个输入四个输出的实体,然后定义结构体,再定义一个进程利用利用if的嵌套来体现使能端与输入信号的优先级,再利用if和else if的结构来选择不同输入时输出信号的不同。 2.1.2 实验原理 1)优先编码器逻辑图 优先编码器逻辑图 2)优先编码器真值表

2.1.3 VHDL程序(详见附录1) 2.1.4 仿真结果 优先编码器画图-功能仿真波形图 优先编码器VHDL-功能仿真波形图2.2 74138:3-8译码器(3 to 8 Demultiplexer)2.2.1 设计思想

先定义六个输入八个输出的实体,再定义结构体和一个用来先存储输出信号组合新的信号,用with..when来将不同输入组合时将不同的输出信号赋给存储信号,当使能端输入组合为100时,将存储信号赋给输出,否则将“1111111”赋给输出信号组合。 2.2.2 实验原理 1)74138(3-8译码器)逻辑图 74138逻辑图 2)74138逻辑功能真值表 2.2.3 VHDL程序(详见附录2) 2.2.4 仿真结果

74138画图-逻辑功能仿真波形图 74138VHDL-逻辑功能仿真波形图 3.实验总结: 通过本次实验,我对优先编码器和译码器的逻辑功能有进一步的了解,了解到译码器与编码器的功能正好相反,编码器是将各种输入信号转换成一组二进制代码,而译码器则是用一组二进制代码来产生各种独立的输出信号。 4.附录(VHDL程序) 4.1 附录1 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY V74148 IS PORT( EIN : IN STD_LOGIC; D:IN STD_LOGIC_VECTOR(0 TO 7); A:OUT STD_LOGIC_VECTOR(0 TO 2) ); END V74148; ARCHITECTURE V74184_A OF V74148 IS

段数码显示译码器设计说明

附表1: 大学学生实验报告 开课学院及实验室:物理与电子工程学院-电子楼317室2016年 4 月 28 日 学院物电年级、专 业、班 Jason.P 学号 实验课程名称EDA技术实验成绩 实验项目名称7段数码显示译码器设计指导教师 一、实验目的: 学习7段数码显示译码器设计;学习VerilogHDL的多层次设计方法。 二、实验容: 1、实验原理: 7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中来实现。 2、实验步骤:

表4-1 7段译码器真值表图4-1 共阴数码管及其电路 (1)首先按7段译码器真值表,完成7段BCD码译码器的设计。作为7段BCD码译码器,输出信号LED7S的7位分别接如图4-1数码管的7个段,高位在左,低位在右。例如当LED7S输出为“1101101”时,数码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管显示“5”。 (2)设计该译码器,在QuartusII上对其进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形(提示:用输入总线的方式给出输入信号仿真数据)。引脚锁定及硬件测试。建议选实验电路模式6,用数码8显示译码输出,键8/7/6/5四位控制输入,硬件验证译码器的工作性能。 图4-2 7段译码器仿真波形 (3)将设计加入4位二进制计数器,经上面设计的16进制7段译码器显示。

步进电机三相六拍环形分配器

10.2 步进电动机位置控制系统 10.2.2 步进电动机的脉冲分配电路 1. 硬件脉冲分配器电路 步进电动机的脉冲分配可以由硬件和软件两种方法来实现。硬件环形分配器需要根据步进电动机的相数和要求的通电方式而设计专门的电路,图10.6所示为一个三相六拍的环形分配器。 分配器的主体是三个J-K触发器。三个J-K触发器的Q输出端分别经各自的功放线路与步进电动机A、B、C三相绕组连接。当QA=1时,A相绕组通电;QB=1时,B 相绕组通电;QC=1时,C相绕组通电。DR+和DR-是步进电动机的正反转控制信号。 正转时,各相通电顺序:A-AB-B-BC-C-CA 反转时,各相通电顺序:A-AC-C-CB-B-BA 图10.6 三相六拍环形分配器 图10.6所示为的三相六拍环形分配器逻辑真值表如表10.1所示。

表10.1 三相六拍环形分配器逻辑真值表 2. 软件脉冲分配 对于不同的计算机和接口器件,软件环分有不同的形式,现以AT89C51单片机配置的系统为例加以说明。 (1)由P1口作为驱动电路的接口 控制脉冲经AT89C51的并行I/O接口P1口输出到步进电动机各相的功率放大器输入,设P1口的P1.0输出至A相,P1.1输出至B相,P1.2输出至C相。 (2)建立环形分配表 为了使电动机按照如前所述顺序通电,首先必须在存储器中建立一个环形分配表,存储器各单元中存放对应绕组通电的顺序数值,如表10.2所示。当运行时,依次将环形分配表中的数据,也就是对应存储器单元的内容送到P1口,使P1.0、P1.1、P1.2依次送出有关信号,从而使电动机轮流通电。 表10.2 三相六拍软件环形分配数据表

编码器和译码器的设计

目录 1设计目的与要求 (1) 1.1 设计的目的 (1) 1.2 设计要求 (1) 2 VHDL的简单介绍 (2) 2.1 VHDL的简介 (2) 2.2 VHDL的特点 (2) 2.3 VHDL的优势 (3) 2.4 VHDL的设计步骤 (4) 3 EDA的简单介绍 (5) 3.1 EDA的简介 (5) 3.2 EDA设计方法与技巧 (5) 4 设计过程 (7) 4.1编码器的原理 (7) 4.2译码器的原理 (7) 4.3课程设计中各部分的设计 (7) 5 仿真 (10) 5.1八-三优先编码器仿真及分析 (10) 5.2三-八译码器仿真及分析 (11) 5.3二-四译码器仿真及分析 (14) 心得体会 (13) 参考文献 (16) 附录 (17)

摘要 随着社会的发展,科学技术也在不断的进步。计算机从先前的采用半导体技术实现的计算器到现在广泛应用的采用高集成度芯片实现的多功能计算器。计算机电路是计算机的重要组成部分,了解计算机电路的知识是促进计算机的发展的先决条件。而编码器和译码器是计算机电路中的基本器件,对它们的了解可以为以后的进一步深化研究打下一个良好的基础。本设计主要介绍的是一个基于超高速硬件描述语言VHDL对计算机电路中编码器和译码器进行编程实现。 关键字:计算机编码器译码器

编码器和译码器的设计 1 设计目的与要求 随着社会的进一步发展,我们的生活各个地方都需要计算机的参与,有了计算机,我们的生活有了很大的便利,很多事情都不需要我们人为的参与了,只需要通过计算机就可以实现自动控制。由此,计算机对我们的社会对我们每个人都是很重要的。所以我们要了解计算机得组成,内部各种硬件,只有了解了计算机基本器件已经相应的软件,才能促进社会的发展。编码器和译码器的设计是计算机的一些很基础的知识,通过本次对于编码器和译码器的设计,可以让我知道究竟这种设计是如何实现的,这种设计对我们的生活有什么帮助,这种设计可以用到我们生活的哪些方面,对我们的各种生活有什么重大的意义。 1.1 设计的目的 本次设计的目的是通过简单的编码器和译码器的设计掌握基本的计算机的一些有关的知识,通过查资料已经自己的动手设计去掌握EDA技术的基本原理已经设计方法,并掌握VHDL硬件描述语言的设计方法和思想。以计算机组成原理为指导,通过将理论知识,各种原理方法与实际结合起来,切实的亲手设计,才能掌握这些非常有用的知识。通过对编码器和译码器的设计,巩固和综合运用所学知识,提高IC设计能力,提高分析、解决计算机技术实际问题的独立工作能力。也能通过这种自主设计,增强自己的动手能力,将理论知识切实应用的能力,这对我们将来的发展是很有帮助的。 1.2 设计要求 根据计算机组成原理中组合逻辑电路设计的原理,利用VHDL设计计算机电路中编码器和译码器的各个模块,并使用EDA 工具对各模块进行仿真验证和分析。编码器由八-三优先编码器作为实例代表,而译码器则包含三-八译码器和二-四译码器两个实例

实验二编码器和译码器的应用

实验二编码器和译码器的应用 一.实验目的: 1.学会正确使用中规模集成组合逻辑电路。掌握编码器、译码器、BCD七段 译码器、数码显示器的工作原理和使用方法。 2.掌握译码器及其应用, 学会测试其逻辑功能。 二.实验仪器及器件: 1. TPE—D6Ⅲ型数字电路实验箱 1台 2.数字万用表 1块 3.器件:74LS20 二4输入与非门 1片 74LS04 六反相器 1片 74LS147 10线—4线优先编码器 1片 74LS138 3线—8线译码器 1片 74LS139 双2线—4线译码器 1片 74LS47 七段显示译码器 1片 三.实验预习: 1.复习编码器、译码器、BCD七段译码器、数码显示器的工作原理。 2.熟悉编码器74LS147及译码器74LS138、74LS139各引脚功能和使用方法, 列出74LS138、74LS139的真值表,画出所要求的具体实验线路图。四.实验原理: 在数字系统中,常常需要将某一信息变换为特定的代码,有时又需要在一定的条件下将代码翻译出来作为控制信号,这分别由编码器和译码器来实现。 1.编码:用一定位数的二进制数来表示十进制数码、字母、符号等信息的过 程。编码器:实现编码功能的电路。 编码器功能:从m个输入中选中一个,编成一组n位二进制代码并行输出。 编码器特点:(1)多输入、多输出组合逻辑电路。 (2)在任何时候m个输入中只有一个输入端有效(高电平或 低电平)对应有一组二进制代码输出。 编码器分类:二进制、二─十进制、优先编码器。2.译码:是编码的反过程,是将给定的二进制代码翻译成编码时赋予的原意。 译码器:实现译码功能的电路。译码器特点:(1)多输入、多输出组合逻辑电路。 (2)输入是以n位二进制代码形式出现,输出是与之对应的 电位信息。

(3) 实验 计数译码显示电路(设计)

实验3 计数译码显示电路(设计) 一、实验目的 1、掌握2—10进制译码器和数码管的功能和使用。 2、熟悉集成计数器74LS90的功能。 3、学会用74LS90设计任意进制计数器。 二、实验仪器及器材 1、数字电路实验箱 2.双踪示波器 2、器件:74LS90(集成计数器)、74LS00、74LS47(BCD--七段译码器)、数码管 三、实验原理(含器件介绍) 1.集成计数器 计数器是计算机和数字逻辑系统的基本部件之一,它不仅能计脉冲数,还能用作数字系统的分频器、定时器和运算器等。 根据计数器中数值增减的不同,计数器可以分为加法计数器、减法计数器以及两者兼有的可逆计数器;根据进位制不同,可分为二进制计数器、十进制计数器、八进制计数器等多种;根据计数器中各触发器状态的更新所受时钟脉冲控制的相同与否,可分为同步计数器和异步计数器。 本实验中采用的74LS90计数器是由二进制及五进制电路构成的中规模集成电路,引脚图如图3.1所示。 图3.1 74LS90引脚图 0CP : Clock (Active LOW going edge) Input to ÷2 Section 1CP : Clock (Active LOW going edge) Input to ÷5 Section (LS90) 1MR ,2MR : Master Reset (Clear) Inputs 1MS ,2MS : Master Set (Preset-9, LS90) Inputs 0Q : Output from ÷2 Section 1Q ,2Q ,3Q : Outputs from ÷5 (LS90) Sections

十六进制7段数码显示译码器设计

实验目的:学习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

相关主题
文本预览
相关文档 最新文档