文档库 最新最全的文档下载
当前位置:文档库 › 用2片74LS00设计并实现一个2—4译码器,输入为格雷码,输出为4选一独0码

用2片74LS00设计并实现一个2—4译码器,输入为格雷码,输出为4选一独0码

用2片74LS00设计并实现一个2—4译码器,输入为格雷码,输出为4选一独0码
用2片74LS00设计并实现一个2—4译码器,输入为格雷码,输出为4选一独0码

用2片74LS00设计并实现一个2—4译码器,输入为格雷码,输出为4选一独0码

单片机原理及接口技术实验报告

单片机原理及接口技术 实验报告 任课教师 班级 姓名 日期

实验一构建单片机最小系统和实验环境熟悉 一、单片机最小系统的组成原理图 二、单片机的工作原理: 1.运算器 运算器包括算术逻辑运算单元ALU、累加器ACC、寄存器B、暂存器TMP、程序状态字寄存器PSW、十进制调整电路等。它能实现数据的算术逻辑运算、位变量处理和数据传送操作。 (1)算术逻辑单元ALU ALU在控制器根据指令发出的内部信号控制下,对8位二进制数据进行加、减、乘、除运算和逻辑与、或、非、异或、清零等运算。它具有很强的判跳、转移、丰富的数据传送、提供存放中间结果以及常用数据寄存器的功能。MCS-51中位处理具有位处理功能,特别适

用于实时逻辑控制。 (2)累加器ACC 累加器ACC是8位寄存器,是最常用的专用寄存器,它既可存放操作数,又可存放运算的中间结果。MCS—51系列单片机中许多指令的操作数来自累加器ACC。累加器非常繁忙,在与外部存储器或I/O接口进行数据传送时,都要经过A来完成。 (3)寄存器B 寄存器B是8位寄存器,主要用于乘、除运算。乘法运算时,B中存放乘数,乘法操作后,高8位结果存于B寄存器中。除法运算时,B中存放除数,除法操作后,余数存于寄存器B中。寄存器B也可作为一般的寄存器用。 (4)程序状态字PSW 程序状态字是8位寄存器,用于指示程序运行状态信息。其中有些位是根据程序执行结果由硬件自动设置的,而有些位可由用户通过指令方法设定。PSW中各标志位名称及定义如下: CY():进(借)位标志位,也是位处理器的位累加器C。在加减运算中,若操作结果的最高位有进位或有借位时,CY由硬件自动置1,否则清“0”。在位操作中,CY作为位累加器C 使用,参于进行位传送、位与、位或等位操作。另外某些控制转移类指令也会影响CY位状态(第三章讨论)。 AC():辅助进(借)位标志位。在加减运算中,当操作结果的低四位向高四位进位或借位时此标志位由硬件自动置1,否则清“0”。 F0():用户标志位,由用户通过软件设定,决定程序的执行方式。 RS1(),RS0():寄存器组选择位。用于设定当前通用寄存器组的组,其对应关系如下:

微机原理简单输入输出实验报告

东南大学 《微机实验及课程设计》 实验报告 实验四(1)简单输入输出 一. 实验目的与内容 (一)实验目的 1)进一步掌握TPC实验装置的基本原理和组成结构; 2)掌握利用I/O指令单步调试检查硬件接口功能,学会利用示波器检测I/O指令执行时总线情况; 3)掌握简单并行输入输出接口的工作原理及使用方法,进一步熟悉掌握输入输出单元的功能

和使用。 (二)实验内容及要求 1、输出接口输出,根据8个发光二极管发光的情况验证编程从键盘输入一个字符或数字,将其ASCII码通过正确性。(输出端口实验必做) 2、用逻辑电平开关预置某个字母的ASCII码,编程输入这个ASCII码,并将其对应字母在屏幕上显示出来。(输入端口实验必做) 3、利用基本实验(1)中的输出锁存电路,设计L0~L7为流水灯,流水间隔时间由软件产生。(输出端口实验) 4、利用基本实验(2)中的输入电路,监测逻辑电平开关K0~K7的变换,当开关状态为全开时,在屏幕上显示提示信息并结束程序。(输入端口实验) 要求: 1、输入输出端口应该可以响应外设的连续变化。 2、输出按ESC键退出;输入按任意键退出。 3、内容3、4比做一题,选做一题 二. 实验基本原理 (一)基本原理 简单并行输出实验:八D触发器74LS273的八个输入端接数据总线D0~D7,从键盘输入一个字符或数字,通过2A8H~输出接口输出该字符或者数字代表的ASCII码,再通过8个发光二极管发光显示二进制数码,从而验证编程以及电路的正确性。 简单并行输入实验:八缓冲器74LS244的八个输出端接数据总线D0~D7,8个输入端分别接逻辑电平开关K0~K7,在逻辑电平开关上预置任意字符的ASCII码,编程将此ASCII码通过2A0H~输入,ASCII码对应字符显示在屏幕上,从而验证编程及电路的正确性。 (二)实验接线图

BCD-七段译码器设计

###课程设计 摘要 人类社会已进入到高度发达的信息化社会,信息社会的发展离不开电子产品的进步。现代电子产品在性能提高、复杂度增大的同时,价格却一直呈下降趋势,而且产品更新换代的步伐也越来越快,实现这种进步的主要原因就是生产制造技术和电子设计技术的发展。前者以微细加工技术为代表,目前已进展到深亚微米阶段,可以在几平方厘米的芯片上集成数千万个晶体管;后者的核心就是EDA技术。EDA是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包,主要能辅助进行三方面的设计工作:IC设计,电子电路设计以及PCB设计。没有EDA技术的支持,想要完成上述超大规模集成电路的设计制造是不可想象的,反过来,生产制造技术的不断进步又必将对EDA技术提出新的要求。此设计是设计一个BCD-七段译码器,通过4个输入7个输出来显示0~9这10个数字。应用MAX+PLUSII软件,应用VHDL语言编程,实现上述功能。 关键字:EDA技术,电子设计自动化, MAX+PLUSII, VHDL语言

BCD-七段译码器 Abstract The human society entered to the highly developed informationization society, information society's development cannot leave the electronic products the progress. The modern electronic products while the performance enhances which, the order of complexity increases, the price has actually assumed the declining trend, moreover the product renewal's step is also getting quicker and quicker, realizes this kind of progressive primary cause is the manufacturing technology and the electron design technique development. The former take the tiny process technology as representative, at present progressed to the deep submicron stage, may integrate the many transistors on several square centimeters chips; The latter's core is EDA the technology. EDA is refers to take the computer as the working platform, fused the electronic CAD general software package which using the electronic technology, the computer technology, the intellectualized technology newest achievement develops, mainly can assist carries on three aspects the project works: IC design, electronic circuit design as well as PCB design. Does not have the EDA technology support, the wish to complete the above ultra large scale integrated circuit's design manufacture is cannot imagine, in turn, the manufacturing technology will progress unceasingly will certainly to set the new request to the EDA technology. This design is designs BCD- the decoder, inputs 7 through 4 to lose demonstrates 0~9 these 10 digit. Using the MAX+PLUSII software, applies the VHDL language programming, realizes the above function. key words: EDA technology,Electronic design automation, MAX+PLUSII, VHDL language

七段数码显示译码器电路的设计

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; 在完成源程序的编辑后,执行”Processing”菜单下的“Start Compilation”命令,对DECL7s.vhd进行编译。在完成对源文件的编译后,执行“File”菜单的“New”命令,或者直接按主窗口上的“创建新的文本文件”按钮,在弹出的新文件类型选择对话框中,选择“Vector Waveform File”生成仿真文件。 对引脚进行锁定。执行”Assignments”菜单下的“Pins”命令,根据下图进行引脚设置。 用电缆连接电脑与设备箱,执行”Tools”菜单下的“Programmer”命令,在弹出的对话框中,单击“Hardware Setup”并在新弹出的对话框中选择驱动,然后退出至上一层对话框,单击“Start”进行下载烧录。 【实验数据整理与归纳】

DECL7s11.vhd 实际效果图 DECL7s11.vwf 【实验结果与分析】 计数译码系统电路的仿真波形如图DECL7s.vwf所示,键值为"0000"时,数码管显示数值应为"0";键值为"0001"时,数码管显示数值应为"1",依此类推。仿真结果验证了设计的正确性。而实际情况与仿真结果相吻合。 【实验中遇到的问题及解决方案】 1.驱动安装失败。 解决方案:根据老师发的教程,更换别的方法进行安装。 2.虽然数码管显示数值正确,但对应按键与想象的有出入。 解决方案:经排查发现是管脚分配时颠倒了顺序导致的,按键时亦随之颠倒顺序即可。

四人表决器课程设计

电子课程设计报告 题目:设计四人表决器 课程:电子技术课程设计 学生姓名: 学生学号: 1414020221 年级: 2014级 专业:电子信息工程 班级: 2班 指导教师:赵旺 电子工程学院制 2016年5月

设计四人表决器 学生:任春晖 指导教师:赵旺 电子工程学院电子信息工程 1设计的任务与要求 1.1课程设计的任务 1.综合应用数字电路知识设计一个四电路表决器。了解各种元器件的原理及其应用。 2.深入了解表决器的工作原理。 3.掌握multisim软件的操作并对设计进行仿真。 4.锻炼自己的动手能力和实际解决问题的能力。 5.通过本设计熟悉中规模集成电路进行时序电路和组合电路设计的方法,掌握四人表决器的设计方法。 1.2课程设计的要求 当输入端有三个或三个以上的高电平,出入端才为高电平(即灯亮,表决通过)。否则灯不亮(表决不通过)。 2四人表决器方案制定 2.1表决电路设计的原理 使用中、小规模集成电路来设计组合电路是最常见的逻辑电路设计方法。设计组合电路的一般步骤如图一所示。 图一组合逻辑电路设计流程图

根据设计任务的要求建立输入、输出变量,并列出真值表。然后用逻辑代数或卡诺图化简法求出简化的逻辑表达式。并按实际选用逻辑门的类型修改逻辑表达式。根据简化后的逻辑表达式,画出逻辑图,用标准器件构成逻辑电路。最后,用实验来验证设计的正确性。 2.2表决电路的设计方案 设计中我们设A、B、C、D为表决人,若它们中有三个或三个以上同意(即为高电平1),则表决结果通过(即表决结果F为高电平1),否则表决不通过(即F为低电平0)。 ①根据步骤一中所述作出真值表: 表1 真值表

计算机组成原理实验报告

《计算机组成原理》 实验报告 实验室名称:S402 任课教师:邹洋 小组成员:王娜任芬 学号:2010212121 2010212119

实验一_HAMMING码 (2) 实验二_乘法器 (7) 实验三_时序部件 (16) 实验四_CPU__算术逻辑单元实验 (24) 实验五_CPU__指令译码器实验 (32) 实验六_CPU_微程序控制器实验1 (43) 实验七_八_CPU实验 (59)

1 编码实验:Hamming码 1.1、实验目的 1、对容错技术有初步了解,理解掌握海明码的原理 2、掌握海明码的编码以及校验方法 1.2、实验原理 海明码是由Richard Hamming于1950年提出的,目前是被广泛采用的很有效的校验编码。它的特点是只要增加少数几个校验位,就能检测出多位出错,并能自动纠错。 Hamming码的实现原理是在数据中加入几个校验位,将数据代码的码距比较均匀的拉大,并把数据的每一个二进制位分配在几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化。这不但可以发现出错,还能指出是哪一位出错,为进一步自动纠错提供了依据。 假设校验位的个数为r,则它能表示2r个信息,用其中的一个信息指出“没有错误”,其余的2r-1个信息指出错误发生在哪一位。然而错误也可能发生在校验位,因此只有k=2r-1-r个信息能用于纠正被传送数据的位数,也就是说要满足关系: 2r≥k+r+1 若要能检测与自动校正一位错,并能发现两位错,此时校验位的位数r和数据位的位数k应满足下述关系:2r-1≥k+r 按上述不等式,可计算出数据位k与校验位r的对应关系,如表1.1所示: 表1.1 数据位k与校验位r的对应关系 k值最小的r值 1~3 4 4~10 5 11~25 6 26~56 7 57~119 8 若海明码的最高位号为m,最低位号为1,即H m H m-1…H2H1,则此海明码的编码规律通常是 1)校验位与数据位之和为m,每个校验位P i在海明码中被分在位号为2i-1的位置上,其余各位为数据位,并按从低向高逐位依次排列的关系分配各数据位。 2)海明码的每一位码H i(包括数据位和校验位本身)由多个校验位校验,其关系是被校验的每一位位号等于校验它的各校验位的位号之和。 3)在增大合法码的码距时,所有码的码距应尽量均匀增大,以保证对所有码的检错能力平衡提高。 下面具体看一下对一个字节进行海明编码的实现过程。 只实现一位纠错两位检错,由前面的表可以看出,8位数据位需要5位校验位,可表示为H13H12…H2H1。 五个校验位P5~P1对应的海明码位号分别为H13、H8、H4、H2和H1。P5只能放在H13位

VHDL语言设计七段示波译码器

课程: 数字逻辑与数字系统BCD-七段译码示波器实验报告 系:电子信息与计算机科学系 专业:自动化 班级:文自112—2班 姓名:桑*超 学号: 2011905192** 指导教师:徐红霞 学年学期:2012-2013学年(第一学期) 2012年12月19日

姓名: 桑*超班级: 文自112-2班学号: 2011905192** 试验: VHDL语言设计日期:2012.12.19 指导老师: 徐洪霞 一、实验报告的名称: VHDL语言设计BCD-七段译码示波器 二、本次实验的目的: 1.掌握VHDL 语言的设计技巧 2.用VHDL语言设计BCD-七段译码示波器 三、设计过程: 1.工程编译源:用VHDL语言编程。 2.功能仿真:将功能编译后的结果进行仿真。 3.引脚锁定:将个信号按要求分配到相应引脚. 4.物理实现:将结果下载到所悬着的器件中 四、写出源程序,画出防真波形图. 例化后: 显示器: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity v_deco74 is port( num : in std_logic_vector(3 downto 0); b : out std_logic_vector(6 downto 0)); end v_deco74; architecture one of v_deco74 is begin process(num)

begin case a is when "0000"=>b<="1111110"; when "0001"=>b<="0110000"; when "0010"=>b<="1101101"; when "0011"=>b<="1111001"; when "0100"=>b<="0110011"; when "0101"=>b<="1011011"; when "0110"=>b<="1011111"; when "0111"=>b<="1110000"; when "1000"=>b<="1111111"; when "1001"=>b<="1111011"; when others =>b<="XXXXXXX"; end case; end process; end one; 五、实验总结,主要包括实验中所犯错误,怎样改正等 1.在文件名必须与VHDL文件中的设计实体名保持一致。 2.要记住七段示波译码器是共阴极的. 3.要知道七段示波译码器的a、b、c、d、e、f段分别所对应的位置

计算机组成原理实验报告 指令译码器

河北大学计算机组成原理实验报告 实验项目指令译码器成绩 一、实验目的: (1)理解指令译码器的作用和重要性。 (2)学习设计指令译码器。 二、实验原理: 指令译码器是计算机控制器中最重要的部分。所谓组合逻辑控制器就是指指令译码电路是由组合逻辑实现的。 组合逻辑控制器又称硬连线控制器,是设计计算机的一种方法。这种控制器中的控制信号直接由各种类型的逻辑门和触发器等构成。这样,一旦控制部件构成后,除非重新设计和物理上对它重新连线,否则要想增加新的功能是不可能的。结构上这种缺陷使得硬连线控制器的设计和调试变得非常复杂而且代价很大。所以,硬连线控制器曾一度被微程序控制器所取代。但是随着新一代及其及VLSI技术的发展,这种控制器又得到了广泛重视,如RISC机广泛使用这种控制器。 图6-42是组合逻辑控制器的方框图。逻辑网络的输入信号来源有3个:①指令操作码译 码器的输出I n ;②来自时序发生器的节拍电位信号T k ;③来自执行部件的反馈信号B j 。逻辑网 络的输出信号就是微操作控制信号,用来对执行部件进行控制。

图6-42 组合逻辑控制器的结构方框图 组合逻辑控制器的基本原理可描述位:某一微操作控制信号C m 是指令操作码译码器的输出I n 、时序信号(节拍电位信号T k )和状态条件信号B j 的逻辑函数。即 C m =f(I n ,T k ,B j ) 用这种方法设计控制器,需要根据每条指令的要求,让节拍电位和时序脉冲有步骤地去控制机器的各有关部分,一步一步地执行指令所规定的微操作,从而在一个指令周期内完成一条指令所规定的全部操作。 三、实验步骤: (1)将试验台设置成FPGA-CPU 独立调试模式,REGSEL=0、CLKSEL=1、FDSEL=0。使用试验台上的单脉冲,即STEP_CLK 短路子短接,短路子RUN_CLK 断开。 (2)将设计在QuartusII 下输入,变异后下载到TEC-CA 上的FPGA 中。 (3)拨动试验台上的开关SD 5~SD 0,改变IR[15..12]、进位标志C 和结果为0标志Z ,观察指示灯R 10~R 0显示的控制信号,并填写表6-28。 四、实验现象及分析:

BCD七段显示译码器的设计报告

实验二、BCD七段显示译码器的设计 一、实验目的 学习利用VHDL语言设计BCD七段显示译码器的方法,掌握BCD七段显示译码器的设计思路:掌握软件工具的使用方法。 二、实验原理 三、实验内容 1.用VHDL语言设计BCD七段显示译码器,进行编译、波形仿真及器件编程。(代码一详见附录)产生仿真波形如下:

BCD七段显示译码器仿真1 分析: 问:给定的代码驱动的是共阴极还是共阳极的七段数码管显示器? 由BCD七段显示译码器真值表可知是共阴极七段数码管显示器。 2.用VHDL语言设计3-8译码器,进行编译、波形仿真及器件编程。(代码二详 见附录)产生仿真波形如下:

3-8译码器仿真1 四、实验心得 在实验中,通过BCD七段显示译码器真值表真值表得到BCD七段显示译码器case 代码。同理通过8-3译码器真值表修改BCD七段显示译码器case代码得到8-3译码器case代码。 附录 代码一(BCD七段显示译码器代码): library ieee; use ieee.std_logic_1164.all; entity bcdym is port (a:in std_logic_vector(3 downto 0); y:out std_logic_vector(6 downto 0)); end bcdym; architecture zhang of bcdym is begin process(a) begin case a is when"0000"=>y<="0111111"; when"0001"=>y<="0000110";

when"0010"=>y<="1011011"; when"0011"=>y<="1001111"; when"0100"=>y<="1100110"; when"0101"=>y<="1101101"; when"0110"=>y<="1111101"; when"0111"=>y<="0100111"; when"1000"=>y<="1111111"; when"1001"=>y<="1101111"; when"1010"=>y<="1110111"; when"1011"=>y<="1111100"; when"1100"=>y<="0111001"; when"1101"=>y<="1011110"; when"1110"=>y<="1111001"; when others=>y<="1110001"; end case; end process; end zhang; 代码二(8-3译码器代码):library ieee; use ieee.std_logic_1164.all; entity bm3_8 is port(a:in std_logic_vector(0 to 2); b:out std_logic_vector(0 to 7)); end bm3_8; architecture zhang of bm3_8 is begin process(a) begin case a is when"000"=>b<="00000001"; when"001"=>b<="00000010"; when"010"=>b<="00000100"; when"011"=>b<="00001000"; when"100"=>b<="00010000"; when"101"=>b<="00100000"; when"110"=>b<="01000000"; when others =>b<="10000000"; end case; end process; end zhang;

74LS181实验报告

学生实验报告 实验名称用Verilog HDL语句实现74LS181的功能 实验日期2013 年10月19号 学号 姓名 班级计算机科学与技术一班 一、实验目的与要求 1、了解运算器的组成结构; 2、掌握算术逻辑运算器的工作原理; 3、掌握简单运算器的数据传送通道 4、掌握用Verilog HDL实现简单运算器的设计 二、实验原理 74LS181的逻辑功能表 图中,S0到S3是四个控制端,用于选择进行何种运算。M用于控制ALU进行算术

运算还是逻辑运算。 当M=0时,M 对进位信号没有任何影响,Fi 值与操作数Ai ,Bi 以及地位向本位进位Cn+1有关,所以M=0时进行算术运算。操作数用补码表示,“加”只算术加,运算时考虑进位;“+”指逻辑加,不考虑进位;减法运算时,减法取反码运算后用加法器实现,结果输出为A 减B 减1在最末位产生一个强迫进位(加1),以得到A 减B 的结果。 当M=1时,封锁了各位的进位输出Cn+i=0,因此各位的运算结果Fi 仅与操作数Ai ,Bi 有关,此时进行逻辑运算。 三、实验内容与步骤 1.根据书85面的逻辑功能表编写Verilog HDL 语句,编译,仿真等步骤。 2.按照模式一电路图结构图设置对应的引脚参数。确认无误后,配置文件下载。 CLOCK9CLOCK5CLOCK2 CLOCK0 SPEAKER 扬声器 NO.1 PIO11-PIO8PIO15-PIO12PIO48 PIO49D15 D16HEX HEX PIO32 PIO33 PIO34 PIO35 PIO36 PIO37 PIO38 PIO39 D1D2D3D4D5D6D7D8实验电路结构图 译码器 译码器 译码器 译码器 FPGA/CPLD 目标芯片1 2 3 4 5 6 7 8 PIO3-PIO0 PIO7-PIO4HEX HEX 键1 键2 键3 键4 键5 键6 键7 键8 PIO39-PIO32PIO31-PIO28 PIO27-PIO24PIO23-PIO20PIO19-PIO16 3.连接试验箱,开通电源,进行验证。 五、实验环境与设备 实验软件:Quartus ii 软件 实验设备:实验室试验箱 六、实验代码设计(含符号说明) module NS74181(A,B,F,S,CN,CO,M); //端口名 input[3:0] A,B; input[3:0] S; input M,CN; output CO; output[3:0] F; reg[3:0] F; reg[3:0] ta,tb; //用ta,tb 代替~A 和~B reg CO; //进位 always @(S) begin ta=~A; tb=~B; case(S) 'b0000: begin

七段数码显示译码器设计

七段数码显示译码器设计 实验目的: 学习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; 仿真波形:

PL 0 语言编译器分析实验报告

PL/0 语言编译器分析实验 一、实验目的 通过阅读与解析一个实际编译器(PL/0语言编译器)的源代码,加深对编译阶段(包括词法分析、语法分析、语义分析、中间代码生成等)和编译系统软件结构的理解,并达到提高学生学习兴趣的目的。 二、实验要求 (1)要求掌握基本的程序设计技巧(C语言)和阅读较大规模程序源代码的能力; (2)理解并掌握编译过程的逻辑阶段及各逻辑阶段的功能; (3)要求能把握整个系统(PL/0语言编译器)的体系结构,各功能模块的功能,各模块之间的接口; (4)要求能总结出实现编译过程各逻辑阶段功能采用的具体算法与技 三、实验报告 pl/0语言是pascal语言的一个子集,我们这里分析的pl/0的编译程序包括了对pl/0语言源程序进行分析处理、编译生成类pcode代码,并在虚拟机上解释运行生成的类pcode代码的功能。 pl/0语言编译程序采用以语法分析为核心、一遍扫描的编译方法。词法分析和代码生成作为独立的子程序供语法分析程序调用。语法分析的同时,提供了出错报告和出错恢复的功能。在源程序没有错误编译通过的情况下,调用类pcode 解释程序解释执行生成的类pcode代码。 词法分析子程序分析: 词法分析子程序名为getsym,功能是从源程序中读出一个单词符号(token),把它的信息放入全局变量sym、id和num中,语法分析器需要单词时,直接从这三个变量中获得。(注意!语法分析器每次用完这三个变量的值就立即调用getsym 子程序获取新的单词供下一次使用。而不是在需要新单词时才调用getsym过程。)getsym过程通过反复调用getch子过程从源程序过获取字符,并把它们拼成单词。getch过程中使用了行缓冲区技术以提高程序运行效率。 词法分析器的分析过程: 调用getsym时,它通过getch过程从源程序中获得一个字符。如果这个字符是字母,则继续获取字符或数字,最终可以拼成一个单词,查保留字表,如果查到为保留字,则把sym变量赋成相应的保留字类型值;如果没有查到,则这个单词应是一个用户自定义的标识符(可能是变量名、常量名或是过程的名字),把sym 置为ident,把这个单词存入id变量。查保留字表时使用了二分法查找以提高效率。如果getch获得的字符是数字,则继续用getch获取数字,并把它们拼成一个整数,然后把sym置为number,并把拼成的数值放入num变量。如果识别出其它合

三人表决器实验

三人表决器实验 我们实验采取3种输入方式:原理图方式,VHDL方式,VerilogHDL.你可以只看一种.下面我分别一一介绍 三人表决器的功能描述 三个人分别用手指拨动开关SW1、SW2、SW3来表示自己的意愿,如果对某决议同意,各人就把自己的指拨开关拨到高电平(上方),不同意就把自己的指拨开关拨到低电平(下方)。表决结果用LED(高电平亮)显示,如果决议通过那么实验板上L2(黄灯)亮;如果不通过那么实验板上L1(红灯)亮;如果对某个决议有任意二到三人同意,那么此决议通过,L2亮;如果对某个决议只有一个人或没人同意,那么此决议不通过,L1亮。 采用原理图设计三人表决器 我们根据三人表决器的直值表,可以通过卡诺图化简可以得到: L2=SW1SW2+SW1SW3+SW2SW3 L1=_L2 那么我们可以在MAX+plusII中用原理图实现上面的三人表决器 ~ 下面仅把和VHDL不同的详细写下,相同或基本相同的就一带而过: (1)打开MAX+plusII (2)新建一个图形文件:File菜单>new 新建文件时选择Graphic Editor file

点OK (3)输入设计文件 我们现在在图形文件中输入电路,我们这个电路需要AND2、OR3、NOT三个逻辑门电路和输入输出端,你可以 Symbol ->Enter Symbol(或者双击空白处) 弹出窗口: %

在Symbol Name中输入and2,点OK 同样可以加入or3、input、output、not 对input、output,鼠标左键双击PIN_NAME,那么PIN_NAME被选中,并且变黑,然后输入你要改的名字,如SW1 把元件拖动到合适位置,将光标放到元件的引线出,可以发现光标变为十字星,此时摁住左键就可以进行连线。

cpu实验报告

简易计算机系统综合设计设计报告 班级姓名学号 一、设计目的 连贯运用《数字逻辑》所学到的知识,熟练掌握EDA工具的使用方法,为学习好后续《计算机原理》课程做铺垫。 二、设计内容 ①按给定的数据格式和指令系统,使用EDA工具设计一台用硬连线逻辑控制的简易计算机系统; ②要求灵活运用各方面知识,使得所设计的计算机系统具有较佳的性能; ③对所做设计的性能指标进行分析,整理出设计报告。 三、详细设计 3.1设计的整体架构 控制信号

3.2各模块的具体实现 1.指令计数器(zhiling_PC) 元件: 输入端口:CLK,RESET,EN; 输出端口:PC[3..0]; CLK:时钟信号; RESET:复位信号; EN:计数器控制信号,为1的时候加一; PC[3..0]:地址输出信号; 代码:

波形图: 总共有九条指令,指令计数器从0000到1000;功能: 实现指令地址的输出; 2.存储器(RAM) 元件: 输入端口:PC[3..0],CLK; 输出端口:zhiling[7..0]; CLK:时钟信号; PC[3..0]:指令地址信号; zhiling[7..0]:指令输出信号; 代码:

波形图: 功能: 根据输入的地址输出相应的指令; 3.指令译码器(zlymq) 元件: 输入端口:zhiling[7..0]; 输出端口:R1[1..0],R2[1..0],M[3..0];zhiling[7..0]:指令信号; R1:目标寄存器地址; R2:源寄存器地址; M[3..0]:指令所代表的操作编号; 代码:

波形图:

功能: 实现指令的操作译码,同时提取出目标寄存器和源寄存器的地址; 4.算术逻辑运算器(ALU) 元件: 输入端口:EN_ALU,a[7..0],b[7..0],M[3..0]; 输出端口:c[7..0],z; EN_ALU:运算器的使能端; a[7..0]:目标寄存器R1的值; b[7..0]:源寄存器R2的值; M[3..0]:指令所代表的操作编号; c[7..0]:运算结果; z:运算完成的信号; 代码:

BCD七段显示译码器

BCD七段显示译码器 1.什么是BCD码? 2.理解二进制?十进制?十六进制? BCD码(Binary-Coded Decimal?)也称二进码十进数或二-十进制代码。用4位二进制数来表示1位十进制数中的0~9这10个数码。是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免却使电脑作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。 发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。分段式显示器(LED数码管)由7条线段围成0-9字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光,有红、黄、绿等色。只要按规律控制各发光段的亮、灭,就可以显示各种字形或符号。 LED数码管有共阳、共阴之分。图 (a)是共阴式LED数码管的原理图,图 (b)是其表示符号。使用时,公共阴极接地,7个阳极a~g由相应的BCD七段译码器来驱动(控制),如图 (c)所示。 数字显示译码器

BCD七段译码器的输入是一位BCD码(以D、C、B、A表示),输出是数码管各段的驱动信号(以Fa~Fg表示),也称4—7译码器。若用它驱动共阴LED数码管,则输出应为高有效,即输出为高(1)时,相应显示段发光。例如,当输入8421码DCBA=0100时,应显示,即要求同时点亮b、c、f、g段,熄灭a、d、e 段,故译码器的输出应为Fa~Fg=0110011,这也是一组代码,常称为段码。同理,根据组成0~9这10个字形的要求可以列出8421BCD七段译码器的真值表,见表4 - 12(未用码组省略)。 BCD七段译码器就是根据上述原理组成的,只是为了使用方便,增加了一些辅助控制电路。这类集成译码器产品很多,类型各异,它们的输出结构也各不相同,因而使用时要予以注意。图(c)是BCD七段译码器驱动LED数码管(共阴)的接法。

实验一 IO地址译码 实验报告

信息学院 《汇编语言与接口技术》上机实验报告 学号:104100197 姓名:王飞班级:计科10C 课程名称:汇编语言与接口技术上机内容I/O地址译码 实验性质:□综合性实验□设计性实验■验证实验 实验时间: 2012年 5 月11 日实验地点:睿智4号102室实验设备TPC—2003A微机实验箱 实验报告:(包括目的、方法、原理、结果或实验小节等)。 一、实验目的 掌握I/O地址译码电路的工作原理。 二、实验原理和内容 实验电路如下图所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D 触发器,74LS138为地址译码器。译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每 个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,……当CPU执行I/ O指令且地 址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。 利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。 三、实验中使用的程序 stack1 segment stack 'stack' dw 32 dup(0) stack1 ends data segment baseport equ 0ec00h-280h;实际基址 port1 equ baseport+2a0h;基址+偏移地址 port2 equ baseport+2a8h;基址+偏移地址 data ends code segment

assume ss:stack1,ds:data,cs:code start: mov ax,data mov ds,ax again: mov dx, port1 in al, dx call delay ;调用延时程序 mov dx, port2 in al, dx call delay jmp again delay proc push bx push cx mov bx, 5000 wait2: mov cx,0 wait1: loop wait1 dec bx jnz wait2 pop cx pop bx ret delay endp;延时程序 mov ah, 4ch int 21h code ends end start 四、实验小结 通过本次实验,基本掌握I/O地址译码电路的工作原理。会写延时程序。在实验中达到了预期灯泡一亮一灭的效果。自己可以控制灯泡亮灭的速度。 任课教师评语: 教师签字:年月日注:每学期至少有一次设计性实验。每学期结束请任课教师按时按量统一交到教学秘书处。

七段显示译码器电路设计

题目:七段显示译码器电路设计专业:生产过程自动化专业 班级:生产过程0901 姓名: 学号: 指导老师:杨旭

目录 第一节绪论…………………………………………………………………………….. 1.1本设计的任务和主要内容……………………………………………………………….. 1.2基本工作原理及原理框图………………………………………………………………...第二节硬件电路的设计………………………………………………………………… 2.1BCD译码器选择与设计……………………………………………………………………. 2.2LED显示器的设计…………………………………………………………………………… 2.3总的设计……………………………………………………………………………………第四节设计总结………………………………………………………………………… 第一节绪论 本课程设计的七段译码器主要以BCD译码器或LED显示器为主要部件,应用集成门电路组成的一个具有译码和显示的装置。其中BCD 译码器采用8421BCD译码器,即----七段显示译码器(74LS48)型。LED显示器是由发光二极管组成的,LED显示器分共阴极和共阳极两种型号,共阴极LED显示器的发光二级管阴极接地,共阳极LED显示器的发光二极管阳极并联。最后把BCD译码器或LED显示器组成了的

装置就具有了显示和译码的功能。此七段译码器也就成功了。 1.1设计的任务和本主要内容 1)运用LED显示器或BCD译码器实现一定的功能 2)写出详细的实验报告 1.2基本工作原理及原理框图 基本工作原理及原理框图如下: 第二节硬件的设计 BCD译码器选择与设计 发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。分段式显示器(LED数码管)由7条线段围成字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光,有红、黄、绿等色。只要按规律控制各发光段的亮、灭,就可以显示各种字形或符号。 LED数码管有共阳、共阴之分。图4 - 17(a)是共阴式LED数码管的原理图,图4-17(b)是其表示符号。使用时,公共阴极接地,7个阳极a~g由相应的BCD七段译码器来驱动(控

相关文档