数字电路——2-4译码器设计

合集下载

数字电路应用之Verilog HDL语言常用经典程序例题(Quartus II软件)

数字电路应用之Verilog HDL语言常用经典程序例题(Quartus II软件)

数字电路应用之Verilog HDL语言程序经典例题(Quartus II软件编程)一:2线4线译码器:module tom(a,b,y);input a,b;output [3:0] y;wire na,nb;not (na,a);not (nb,b);and (y[0],na,nb);and (y[1],na,b);and (y[2],a,nb);and (y[3],a,b);endmodule二:三输入表决器:module add(a2,a1,a0,y);input a2,a1,a0;output y;assign y=((a1&a0)|(a2&a1)|(a2&a0));endmodule三:3线8线译码器:module fulladd(a2,a1,a0,y);input a2,a1,a0;output [7:0] y;assign y[0]= ~( ~a2 & ~a1 & ~a0); assign y[1]= ~( ~a2 & ~a1 & a0); assign y[2]= ~( ~a2 & a1 & ~a0); assign y[3]= ~( ~a2 & a1 & a0); assign y[4]= ~( a2 & ~a1 & ~a0); assign y[5]= ~( a2 & ~a1 & a0); assign y[6]= ~( a2 & a1 & ~a0); assign y[7]= ~( a2 & a1 & a0);endmodule四:BIN2BCD码制转换:module fulladd(y,d,e);input [6:0] y;output [3:0] d,e;assign d=y/10;assign e=y%10;endmodule五:4位比较器:module tom(y,x,d);input [3:0] y,x;output [2:0] d;assign d[2]=(x>y)?1:0;assign d[1]=(x==y)?1:0;assign d[0]=(x<y)?1:0;endmodule六:四位全加器:法一:(调用程序法)module fulladd4(sum,c_in,c_out,a,b); output [3:0] sum;output c_out;input [3:0] a,b;input c_in;wire c1,c2,c3;fulladd fa0(sum[0],c1,a[0],b[0],c_in); fulladd fa1(sum[1],c2,a[1],b[1],c1); fulladd fa2(sum[2],c3,a[2],b[2],c2); fulladd fa3(sum[3],c_out,a[3],b[3],c3); endmodule//程序调用module fulladd(sum, c_out, a, b, c_in); output sum, c_out;input a, b, c_in;wire s1, c1, c2;xor (s1, a, b);and (c1, a, b);xor (sum, s1, c_in);and (c2, s1, c_in);xor (c_out, c2, c1);endmodule法二:(通用法)module fulladd4(A,B,Cin,SUM,Cout); input [3:0] A,B;input Cin;output [3:0] SUM;output Cout;assign {Cout,SUM}=A+B+Cin; endmodule七:七段显示译码器:法一:module bbc(a,d,g);input [3:0] a;output [6:0] d;output [3:0] g;reg [6:0] d;assign g=4'b0001;always @(a)begincase(a)4'b0000 :d=7'b100_0000;4'b0001 :d=7'b111_1001;4'b0010 :d=7'b010_0100;4'b0011 :d=7'b011_0000;4'b0100 :d=7'b001_1001;4'b0101 :d=7'b001_0010;4'b0110 :d=7'b000_0010;4'b0111 :d=7'b111_1000;4'b1000 :d=7'b000_0000;4'b1001 :d=7'b001_0000;default :d=7'b000_0000;endcaseendendmodule法二:module bbc(a,d,g);input [3:0] a;output [6:0] d;output [3:0] g;reg [6:0] d;assign g=4'b0001;always @(a)beginif (a==4'b0000) d=7'b100_0000;else if (a==4'b0001) d=7'b111_1001;else if (a==4'b0010) d=7'b010_0100;else if (a==4'b0011) d=7'b011_0000;else if (a==4'b0100) d=7'b001_1001;else if (a==4'b0101) d=7'b001_0010;else if (a==4'b0110) d=7'b000_0010;else if (a==4'b0111) d=7'b111_1000;else if (a==4'b1000) d=7'b000_0000;else if (a==4'b1001) d=7'b001_0000;else d=7'b000_0000; endendmodule八:8—3优先编码器:法一:module qq (y,d,g);input [7:0] y;output [2:0] d;output [3:0] g;reg [2:0] d;assign g=4'b0001;always @ ybeginif (y[7]==1) d=3'b111;else if (y[6]==1) d=3'b110;else if (y[5]==1) d=3'b101;else if (y[4]==1) d=3'b100;else if (y[3]==1) d=3'b011;else if (y[2]==1) d=3'b010;else if (y[1]==1) d=3'b001;else if (y[0]==1) d=3'b000;endendmodule法二:module encoder(none_on,outcode,a, b, c, d, e, f, g, h); output[2:0] outcode;output none_on;input a, b, c, d, e, f, g, h;reg[3:0] outtemp;assign {none_on, outcode} = outtemp;always @(a or b or c or d or e or f or g or h)begincasex ({a, b, c, d, e, f, g, h})8'B????_???1 : outtemp=4'b0_111;8'B????_??10 : outtemp=4'b0_110;8'B????_?100 : outtemp=4'b0_101;8'B????_1000 : outtemp=4'b0_100;8'B???1_0000 : outtemp=4'b0_011;8'B??10_0000 : outtemp=4'b0_010;8'B?100_0000 : outtemp=4'b0_001;8'B1000_0000 : outtemp=4'b0_000;8'B0000_0000 : outtemp=4'b1_000;endcaseendendmodule九:计数器:module bbc(clk,set,reset,d,y);input set,reset,clk;input [3:0] d;output [7:0] y;reg [7:0] y;always@(posedge clk or negedge reset or posedge set) if(~reset) y<=8'b0;else if (set) y[3:0]<=d[3:0];else y<=y+1'b1;endmodule十:移位寄存器:module asd (clk,set,reset,d,y,cin);input clk,set,reset,cin;input [3:0] d;output [7:0] y;reg [7:0] y;always@(posedge clk)beginif(~reset) y=0;else if(set)beginy[7:4]=y[3:0] ;y[3:0]=d[3:0];endelsebeginy=y<<1;y[0]=cin;endendendmodule十一:4位乘法:法一:module bbc(y,a,b);input [3:0] a;input [3:0] b;output [7:0] y;reg [7:0] y;reg[7:0] temp_a;reg[3:0] temp_b;integer i;always @(a or b)beginy=0;temp_a=a;temp_b=b;beginfor(i=0;i<=3;i=i+1)beginif(temp_b[0]) y=y+temp_a;temp_a=temp_a<<1;temp_b=temp_b>>1;endendendendmodule法二:module qq(outcome,a,b);output [8:1] outcome;input [4:1] a,b;reg [8:1] outcome;integer i;always@(a or b)beginoutcome=0;for(i=1;i<=4;i=i+1)if (b[1]) outcome=outcome + (a<<(i-1)); endendmodule十二:数码管跑马灯:module asd(cr,clk,a,b,c,d,e,f,g);input cr,clk;output a,b,c,d,e,f,g;reg a,b,c,d,e,f,g;integer i=0;always @ (posedge clk or negedge cr)beginif(~cr)begin{a,b,c,d,e,f,g}=7'b111_1111;i=0;endelse if(clk)begini=i+1;if(i==1) {a,b,c,d,e,f,g}=7'b011_1111;if(i==2) {a,b,c,d,e,f,g}=7'b101_1111;if(i==3) {a,b,c,d,e,f,g}=7'b110_1111;if(i==4) {a,b,c,d,e,f,g}=7'b111_0111;if(i==5) {a,b,c,d,e,f,g}=7'b111_1011;if(i==6) {a,b,c,d,e,f,g}=7'b111_1101;if(i==7) {a,b,c,d,e,f,g}=7'b111_1110;if(i==8) {a,b,c,d,e,f,g}=7'b000_0000;if(i==9)begin{a,b,c,d,e,f,g}=7'b111_1111;i=0;endendendendmodule十三:LED跑马灯:module add(cr,clk,y);input cr,clk;output [7:0] y;reg [7:0] y;integer i;always@(posedge clk or negedge cr) beginif(~cr)beginy=0;i=-1;endelse if (clk)begini=i+1;y=0;y[i]=1;beginif(i==7)i=-1;endendendendmodule。

实验三-数据选择器译码器全加器

实验三-数据选择器译码器全加器

实验三:数据选择器和译码器应用1. 能力培养目标● 理解数据选择器和译码器的逻辑功能● 运用数据选择器和译码器的逻辑关系设计实际应用2. 项目任务要求(1)测试4选1数据选择器的逻辑功能,通过示波器观测每种组合下数据选择器的输出波形(2)测试2-4线译码器的逻辑功能(3)将2-4线译码器扩展组成3-8线译码器,利用两个2-4线译码器扩展组成3-8线译码器(4)利用2-4线译码器设计并实现组合逻辑电路B A F ⊕=【选做】3. 项目分析(1) 数据选择器及主流芯片数据选择器是一种多输入、单输出的组合逻辑电路,其应用主要包括通过级联进行通道扩展数据输入端的个数;或者配合门电路实现逻辑函数,组成函数发生器。

数据选择器中常见的芯片有双4选1数据选择器74LS153芯片。

74LS153中的引脚G 用于控制输出。

当G 为高电平时,禁止输出,引脚Y 输出为低电平;当G 为低电平时,允许输出,由数据选择端B 、A 决定C 0、C 1、C 2、C 3中的哪个数据送往数据输出端Y 。

14131211109161234567双4选1数据选择器 74LS153Vcc2GA2C 32C 22C 12C 01Y1GB1C 31C 21C 11C 01582YGND图2-3-1 74LS153引脚结构图 表2-3-1 4选1数据选择器真值表选择输入 数据输入 选通 输出 B A C 0 C 1 C 2 C 3 G Y X X X X X X H L L L L X X X L L L L H X X X L H L H X L X X L L L H X H X X L H H L X X L X L L H L X X H X L H H H X X X L L L H HX X X HLH(2) 译码器及主流芯片译码器中常见的芯片有双2-4线译码器74LS139,其引脚结构图和真值表分别如下:14131211109161234567双2-4线译码器 74LS139Vcc2G2A2B2Y 02Y 12Y 21Y 31G1A1B1Y 01Y 11Y 21582Y 3GND图2-3-2 74LS139引脚结构图 表2-3-2 2-4线译码器真值表输入端输出端允许G选择B AY 0(____________________0BA G Y =) Y 1(_________________1B A G Y =) Y 2(_________________2B A G Y =)Y 3(______________3B A G Y =)H X X H H H H L L L L H H H L L H H L H H L H L H H L H LH HH H H L在74LS139中,引脚G 用于控制输出。

数字电路实验二--译码器实验报告深圳大学--郭治民

数字电路实验二--译码器实验报告深圳大学--郭治民

深圳大学实验报告实验课程名称:数字电路与逻辑设计实验项目名称:译码器学院:计算机与软件学院专业:计算机科学与技术报告人:郭治民学号: 2011150117 班级: 3 同组人:姜峰指导教师:李琰实验时间: 2012-10-23实验报告提交时间: 2012-11-05教务处制实验报告包含内容一、实验目的与要求1.了解和正确使用MSI组合逻辑部件;2.掌握一般组合逻辑电路的特点及分析、设计方法;3. 学会对所设计的电路进行静态功能测试的方法;4. 观察组合逻辑电路的竞争冒险现象。

二、实验说明译码器是组合逻辑电路的一部分。

所谓译码就是不代码的特定含义“翻译”出来的过程,而实现译码操作的电路称为译码器。

译码器分成三类:1.二进制译码器:把二进制代码的各种状态,按照其原意翻译成对应输出信号的电路。

如中规模2线—4线译码器74LS139,3线—8线译码器74LS138等。

2.二—十进制译码器:把输入BCC码的十个代码译成十个高、低电平信号。

3.字符显示译码器:把数字、文字和符号的二进制编码翻译成人们习惯的形式并直观地显示出来的电路,如共阴极数码管译码驱动的74LS48(74LS248),共阳极数码管译码驱动的74LS49(74LS249)等。

3、实验设备1. RXB-1B数字电路实验箱2.器件74LS00 四2输入与非门74LS20 双4输入与非门74LS138 3线—8线译码器四、任务与步骤任务一:测试3线—8线译码器74LS138逻辑功能将一片3线—8线译码器74LS138插入RXB-1B数字电路实验箱的IC空插座中,按图3-15接线。

A0、A1、A2、STA、STB、STC端是输入端,分别接至数字电路实验箱的任意6个电平开关。

Y7、Y6、Y5、Y4、Y3、Y2、Y1、Y0输出端,分别接至数字电路实验箱的电平显示器的任意8个发光二极管的插孔8号引脚地接至RXB—IB型数字电路实验箱的电源“”,16号引脚+5V接至RXB-1B数字电路实验箱的电源“+5V”。

数字电路__2_4译码器的设计

数字电路__2_4译码器的设计

目录1 绪论 (1)1.1设计背景 (1)2 电路分析 (2)2.1 2-4功能分析 (2)2.2 2-4译码器逻辑图 (3)3 系统建模与仿真 (4)3.1 建模 (4)3.2 仿真波形 (5)4 仿真结果分析 (7)5 小结与体会 (8)参考文献 (9)1 绪论1.1设计背景在数字系统中,经常需要将一中代码转换为另一种代码,以满足特定的需求,完成这种功能的电路称为码转化电路。

译码器就属于其中一种。

而译码就是编码的逆过程,它的功能是将具有特定含义的二进制码转换成对应的有效输出信号,具有译码功能的的逻辑电路称为译码器。

而2-4译码器是唯一地址译码器,是将一系列的代码转换成与之一一对应有效的信号。

常用于计算机中对存储单元地址的译码,因此,设计2-4译码器具有很强的现实意义。

1.2 matlab简介MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。

它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

它主要由MATLAB和Simulin k两大部分组成。

本设计主要采用simulink进行设计与仿真。

Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。

在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。

Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。

同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。

数字电路——2-4译码器设计

数字电路——2-4译码器设计

目录1 绪论 (1)1.1设计背景 (1)2 电路分析 (2)2.1 2-4功能分析 (2)2.2 2-4译码器逻辑图 (3)3 系统建模与仿真 (4)3.1 建模 (4)3.2 仿真波形 (5)4 仿真结果分析 (7)5 小结与体会 (8)参考文献 (9)1 绪论1.1设计背景在数字系统中,经常需要将一中代码转换为另一种代码,以满足特定的需求,完成这种功能的电路称为码转化电路。

译码器就属于其中一种。

而译码就是编码的逆过程,它的功能是将具有特定含义的二进制码转换成对应的有效输出信号,具有译码功能的的逻辑电路称为译码器。

而2-4译码器是唯一地址译码器,是将一系列的代码转换成与之一一对应有效的信号。

常用于计算机中对存储单元地址的译码,因此,设计2-4译码器具有很强的现实意义。

1.2 matlab简介MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。

它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

它主要由MATLAB和Simulink两大部分组成。

本设计主要采用simulink进行设计与仿真。

Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。

在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。

Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。

同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。

数字电路实验三 编码器与译码器

数字电路实验三 编码器与译码器
要求:同时实现Z、F1、F2的输出。
13
任务四: 任务四:数据分配器
图3-2是一个1—8线数据分配器,输入的数 字信号接使能端G2,另一使能端G1接高 电 平,则输入的数字信号便可由译码器分配到 不同的输出端去,地址选择端C、B、A接逻 辑电平开关,数据输入用低频连续脉冲,输 出接指示灯,改变选择端数值,观察现象并 将结果填入表3-3中
2、掌握编码器和译码器的工作原理和设 计方法。
2
二 实验器件
(前面实验已经介绍过的器件 前面实验已经介绍过的器件) 前面实验已经介绍过的器件 74LS20 双4输入与非门 74LS04 六反相器 74LS32 四2输入或门
3
新器件介绍 :
74LS138 3—8线译码器
其中: Y0—Y7 为译码输出,A、B、C 为地址选择器, 使能端 G1高电平有效,G2A、 G2B低电平有效
14数据分配器图32是一个18线数据分配器输入的数字信号接使能端g2另一使能端g1接高电平则输入的数字信号便可由译码器分配到不同的输出端去地址选择端cba接逻辑电平开关数据输入用低频连续脉冲输出接指示灯改变选择端数值观察现象并将结果填入表33中1516
实验三 编码器与译码器
1
一、实验目的
1、学习中规模集成编码器和译码器的工作 能表:
5
三、实验原理与任务
编码器、译码器的定义: (1) 编码器 用文字、符号或数码表示特定对象的 过程称为编码。在数字电路中用二进制代码 表示有关的信号称为二进制编码。实现编码 实现编码 操作的电路就是编码器。 操作的电路就是编码器。
6
(2)译码器 译码是编码的逆过程,它将代码的原 意 “译成” 相应的状态信息。实现译码功 实现译码功 能的电路称为译码器。 能的电路称为译码器。

实验四编码器,译码器,数码管(定稿)

实验四编码器,译码器,数码管(定稿)

实验四编码器、译码器、数码管一、实验目的1.掌握编码器、译码器和七段数码管的工作原理和特点。

2.熟悉常用编码器、译码器、七段数码管的逻辑功能和他们的典型应用。

3. 熟悉“数字拨码器”(即“拨码开关”)的使用。

二、实验器材1. 数字实验箱 1台2. 集成电路:74LS139、 74LS248、 74LS145、 74LS147、 74LS148 各1片74LS138 2片3. 电阻: 200Ω 14个4. 七段显示数码管:LTS—547RF 1个三、预习要求1.复习编码器、译码器和七段数码管的工作原理和设计方法。

2. 熟悉实验中所用编码器、译码器、七段数码管集成电路的管脚排列和逻辑功能。

3. 画好实验用逻辑表。

四、实验原理和电路按照逻辑功能的不同特点,常把数字电路分成两大类:一类叫做组合逻辑电路,另一类叫做时序逻辑电路。

组合逻辑电路在任何时刻其输出信号的稳态值,仅决定于该时刻各个输人端信号的取值组合。

在这种电路中,输入信号作用以前电路的状态对输出信号无影响。

通常,组合逻辑电路由门电路组成。

(一)组合逻辑电路的分析方法:a.根据逻辑图,逐级写出函数表达式。

b.进行化简:用公式法或图形法进行化简、归纳。

必要时,画出真值表分析逻辑功能。

(二)组合逻辑电路的设计方法:从给定逻辑要求出发,求出逻辑图。

一般分以下四步进行。

a.分析要求:将问题分析清楚,理清哪些是输入变量,哪些是输出函数。

进行逻辑变量定义(即定义字母A、B、C、D ……所代表的具体事物)。

b. 根据要求的输入、输出关系,列出真值表。

c. 进行化简:变量比较少时,用图形法;变量多时,可用公式法化简。

化简后,得出逻辑式。

d. 画逻辑图:按逻辑式画出逻辑图。

进行上述四步工作,设计已基本完成,但还需选择元件——数字集成电路,进行实验论证。

值得注意的是,这些步骤的顺序并不是固定不变的,实际设计时,应根据具体情况和问题难易程度进行取舍。

(三)常用组合逻辑电路:1.编码器编码器是一种常用的组合逻辑电路,用于实现编码操作。

数字电路——2-4译码器设计

数字电路——2-4译码器设计

-------------------------------------------------------------------------------目录1 绪论 (1)1.1设计背景 (1)2 电路分析 (2)2.1 2-4功能分析 (2)2.2 2-4译码器逻辑图 (3)3 系统建模与仿真 (4)3.1 建模 (4)3.2 仿真波形 (5)4 仿真结果分析 (8)5 小结与体会 (9)参考文献 (10)1 绪论1.1设计背景在数字系统中,经常需要将一中代码转换为另一种代码,以满足特定的需求,完成这种功能的电路称为码转化电路。

译码器就属于其中一种。

而译码就是编码的逆过程,它的功能是将具有特定含义的二进制码转换成对应的有效输出信号,具有译码功能的的逻辑电路称为译码器。

而2-4译码器是唯一地址译码器,是将一系列的代码转换成与之一一对应有效的信号。

常用于计算机中对存储单元地址的译码,因此,设计2-4译码器具有很强的现实意义。

1.2 matlab简介MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。

它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

它主要由MATLAB和Simulin k两大部分组成。

本设计主要采用simulink进行设计与仿真。

Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。

在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。

Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录
1 绪论 (1)
1.1设计背景 (1)
2 电路分析 (2)
2.1 2-4功能分析 (2)
2.2 2-4译码器逻辑图 (3)
3 系统建模与仿真 (4)
3.1 建模 (4)
3.2 仿真波形 (5)
4 仿真结果分析 (8)
5 小结与体会 (9)
参考文献 (10)
1 绪论
1.1设计背景
在数字系统中,经常需要将一中代码转换为另一种代码,以满足特定的需求,完成这
种功能的电路称为码转化电路。

译码器就属于其中一种。

而译码就是编码的逆过程,它的功能是将具有特定含义的二进制码转换成对应的有效输出信号,具有译码功能的的逻辑电路称为译码器。

而2-4译码器是唯一地址译码器,是将一系列的代码转换成与之一一对应有效的信号。

常用于计算机中对存储单元地址的译码,因此,设计2-4译码器具有很强的现实意义。

1.2 matlab简介
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。

它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学
计算软件的先进水平。

它主要由
MATLAB和Simulin k两大部分组成。

本设计主要采用simulink进行设计与仿真。

Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。

在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。

Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。

同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。

掌握这个软件的应用具有十分重要的意义。

2 电路分析
2.1 2-4译码器功能分析
2-4译码器有2个输入端,4个输出端和一个使能端。

在使能端为有效电平时,对应每一组输入代码,只有其中一个输出端为有效电平,其余输出端则为相反电平。

输出信号可以是高电平有效,也可以是低电平有效。

具体来说,2输入变量,A1 ,A0共有4种不同状态组合,因而译码器有4个输出信号Y̅0~Y̅̅̅3
并且输出为低电平有效,其真值表如表1所示
表1 2-4译码器真值表
另外设置了使能控制器E̅̅̅,当其为1时,无论A1,A0为何种状态输出全为1,译码器处于非工作状态。

而当E̅为0时,对应的A1,A0的某种状态组合,其中只有一个输出为0,其余各输出量均为1.例如,A1 A0=00,输出Y̅0为0,Y̅0~Y̅̅̅3均为1.由此可见,2-4译码器是通过输出端的逻辑电平以识别不同的代码。

而根据此,可写出其各输出端的逻辑表达式
̅̅̅̅̅̅̅̅(1)
Y̅0=E̿A1A0
̅̅̅̅̅̅̅̅(2)
Y̅̅̅1=E̿A1A0
̅̅̅̅̅̅̅̅̅̅(3)
Y̅2= E̿A1 A0
̅̅̅̅̅̅̅̅(4)
Y̅3=E̿A1A0
2.2 2-4译码器逻辑图
由上面的分析可得2-4译码器的逻辑图
图2 2-4译码器逻辑图
3 系统建模与仿真
3.1建模
在了解2-4译码器逻辑图与表达式后,可在simulink中建立模型并仿真。

首先对应电路的原理框图,利用框图在simulink的mdl文件里画出原理图,调整原理图里的每个模型的参数,使之符合所需的要求。

再进行连线,开始仿真,在scope和fft scope里面看波形是否符合预想标准。

2-4译码器的仿真模型如图3所示。

图3 2-4译码器仿真模型
如图3所示,constant表示E̅的值,为了使译码器能正常工作,将constant值设为1。

Pulse generator 1与2是2输入端,表示A1,A0的电平显示,通过它们可以显示连续的脉冲,观察输出的波形。

通过设定00,01,10,11这四种情况,观察模型是否能正常工作。

再连线3个2输入与非门与4个三输入与非门。

最后的输出接scope,观察显示的波形。

3.2 仿真波形
当使能端E̅为1时,仿真波形如图4所示
图4 使能端E̅为高电平波形图
对应的输出波形如图5所示
图5对应使能端为高电平时输出波形
而当设定使能端为低电平,设定其2输入端的输入波形如下,含有11,01,10,00四种情况,如图6所示
图6 输入端的输入波形
由Y0,Y1,Y2,Y3观察到的波形如图7所示
图7 输出端的输出波形
4 仿真结果分析
通过建立的模型,通过输入的波形可以检查模型是否符合预订设计要求,可以通过改变pulse generator的周期来实现不同的波形输入。

当使能端E̅=1时,如图4所示,由逻辑表达式分析可知,无论输入如何,对应的各输出Y0,Y1,Y2,Y3均为1。

对应的输出波形如图5所示,可以看出,对应的4个输出均为1,符合预期的要求。

当使能端E̅=0时,通过改变2个pulse generator的周期来控制A1 ,A0不同情况下的输入,如图6所示,周期性的输入为00,01,10,11,从而观察对应的输出波形。

由2-4译码器的逻辑表达式可求的在上述Y0,Y1,Y2,Y3输出情况下的输出顺序应为1110,1101,1011,0111,并作周期性变化。

与对应的输出波形图7相比较,完全符合上述要求,与预期结果相符的,模型完全正确,达到预期效果。

5 小结与体会
MATLAB软件功能强大,本设计是运用MATLAB来设计2-4译码器电路,这只是它的一个简单的应用,MATLAB还在多方面有应用,如数学和计算算术发展模型;模拟仿真和原型;数据分析,开发和可视化;科学和工程图形;应用发展包括图形用户界面设计等方面。

由于时间问题,不能一一举例,只有自己在以后的学习中慢慢学习,自己探索,更好的掌握这款软件。

MATLAB语言是一种简单,高效,功能极强的高级语言,且具有强大的矩阵运算能力和极高的编程效率,这一方面使得MATLAB程序可以被高度向量化,另一方面使得程序易读易写。

MATLAB已变得非常普及。

通过这几天对MATLAB的学习,对其有了一个大致的认识并能简单的应用,解决一些简单的线性代数及电路问题,当然在今后的学习中,还会加强自己对这款软件的学习,应为这款软件应用太广,且自己对C语言会,而且有线性代数的基础,个人认为掌握MATLAB 这款软件不是问题。

通过对MATLAB这款软件在以后的专业课学习中的应用很广泛,掌握好MATLAB,为以后的专业课学习将有很大的帮助。

通过基本设计电路介绍了如何应用MATLAB语言编程的方法来对电路进行分析和设计与仿真。

该方法不仅可以节约计算时间、方便地调试电路参数,而且还可以非常直观地观察和测量电路中的电压、电流和功率等物理量。

结论表明,MATLAB提供了高效简洁的编程方法, 其强大而简易的绘图功能、矩阵和数组运算能力以及很强的扩充性,能充分满足基本电路分析、计算的需要,从而可以大大地提高计算精度和工作效率,在电路理论学科研究与工程实践中具有很好的应用价值。

武汉理工大学《基础技能强化训练》课程设计说明书
参考文献
[1]张志勇,精通MATLAB6.5版。

北京北京航空航天大学出版社,2003
[2]蒲俊,MATLAB6.0教学手册。

上海:浦东电子出版社,2002
[3]刘志俭, MATLAB应用程序接口用户指南。

北京:科学出版社,2000
[4]飞思科技产品研发中心。

MATLAB7辅助控制系统设计与仿真。

北京:电子工业出版社,2005
[5]李国勇。

智能控制及其MATLAB实现。

北京:电子工业出版社,2005
[6]陈洪亮,王蔼. 基本电路理论 .上海科学技术文献出版社 . 2002
[7]The MathWorks. Parallel Computing Toolbox 4.2, Perform Parallel Computations on Multicore Computers and Computer Clusters[DB/OL]. 2006
10。

相关文档
最新文档