华南理工大学数字系统设计实验3报告资料
- 格式:pdf
- 大小:4.44 MB
- 文档页数:20
华南理工大学-数学实验报告三《数学实验》报告1.问题描述1)某城市发展经济,主要依靠它的农业、工业及服务业,现经过调查统计,知道该市的“投入”系数如表1所示:表1.某市的投入系数表现该市预算明年在农业上可有10亿元盈余,工业有5亿元盈余,服务业有6亿元盈余,要达到这项预算,问该市明年农业、工业和服务业的生产总值分别是多少?2)假设某地区只有A,B,C三个经济部门,它的投入产出如表2所示,在此表基础上,若计划有了改变,即A部门要进口30t产品;C 部门产品要出口36t,问总产品与各部门之间的投入将发生什么变化?表2.投入产出表2.问题分析与实验过程1)题目给出了投入产出系数的矩阵和各行业的盈余,由x=(I?A)?1y就可以得出生产总值。
程序:function question1A = [0.2 0.3 0.2;0.4 0.1 0.2;0.1 0.3 0.2];Y = [10;5;6];n = size(Y,1);W = eye(n)-A;X = W\Yend运行结果:X =24.843820.677118.3594所以,由运行结果可列表如下:表3.某市的投入产出表2)A部门要进口30t产品,等同于最终产品少生产30t,即120t;C部门产品要出口36t,说明C部门的最终产品要多生产36t,总共达到100t。
解题关键是投入产出系数不改变,所以利用这点,根据公式就可以算出各部门新的投入与新的总产品的值。
程序:function question2X = [30 20 50;20 30 35;16 18 2];X_colsum = [250 200 100];X_rep = repmat(X_colsum,3,1);%将向量X_colsum,复制三份,扩展为三阶矩阵A = X./X_rep%投入产出系数矩阵y = [120;115;100];n = size(y,1);W = eye(n) - A;X1_colsum = W\yX1_rep = repmat(X1_colsum',3,1);X1 = A.* X1_repend运行结果:A =0.1200 0.1000 0.50000.0800 0.1500 0.35000.0640 0.0900 0.0200X1_colsum =238.7349214.3038137.3126X1 =28.6482 21.4304 68.656319.0988 32.1456 48.059415.2790 19.2873 2.7463由运行结果可列表如下:表4.新的投入产出表3.实验总结和实验感悟这次的实验主要的难点就是对那个投入产出表的理解,看完了PDF文件的详细分析后,结合对主要知识点的理解和对实验问题的分析后,很快就能得出问题的解决方法。
实验报告课程名称微型计算机原理及其应用实验项目分支和循环设计实验学生姓名朱轲信学生学号201530281598专业/班级信息工程冯秉铨实验班实验成绩电子与信息学院实验中心制二〇一七年版预习报告一、实验目的1.掌握分支程序的结构。
2掌握分支程序的设计、调试方法。
3加深对循环结构的理解。
4掌握循环结构程序设计的方法。
5熟练掌握调试循环程序的方法。
二、实验设备微机一台、TDS-MD微机一台三、实验内容及步骤1.设计一数据块间的搬移程序设计思想:程序要求把内存中一数据区(称为源数据块)传送到另一存贮区(称为目的数据块)。
源数据块和目的数据块在存贮中可能有三种情况。
对于两个数据块分离的情况,数据的传送从数据块的首址开始,或者从数据块的末址开始均可,但对于有部分重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭破坏。
可以得出以下结论:当源数据块首址〉目的块首址时,从数据块首址开始传送数据。
当源数据块首址〈目的块首址时,从数据块末地址开始传送数据。
代码:STACK SEGMENT STACK'STACK'DB 50 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKSTART:MOV CX,0AHMOV BX,3500HMOV SI,[BX]MOV DI,[BX+2]CMP SI,DIJA A1MOV AX,SIADD AX,CXMOV SI,AXMOV AX,DIADD AX,CXMOV DI,AXDEC SIDEC DISTDREP MOVSBJMP EXITA1: CLDREP MOVSBEXIT:MOV AX,4C00HINT 21HCODE ENDSEND START流程图:结果:在源数据块中存入6个数,分别使SI大于、等于、小于DI均发觉数据正确传送。
可见程序正确。
2. (1)编制程序使S=1+2*3+3*4+4*5+……N(N+1),直到N(N+1)项大于200为止。
华南理工大学实验报告课程名称数字电子技术实验电信学院系信息工程专业(04)3 班姓名吴炽羽实验名称发电机控制电路的设计实验日期4月19日指导教师马楚仪(报告内容:目的、仪器装置、简单原理、数据记录及结果分析等)一、实验目的1.学会对具体事件进行归纳和抽象分析,了解逻辑器件功能表及其使用方法。
2.掌握一般组合逻辑电路的特点及分析、设计方法。
3.学会对所设计的电路进行静态、动态功能测试。
4.掌握用双踪数字示波器测量系统多路信号波形的方法。
二、实验器材1.TDS-2002数字双踪示波器。
2.DLBS-1型数字逻辑箱3.VC9807A数字万用表4.四2输入与非门74LS00,四2输入异或门74LS86,四位同步计数器74LS161。
三、实验内容1.设计任务某工厂有三个车间A、B、C和一个自备电站,站内有两台发电机X和Y。
Y的发电能力是X的两倍。
如果一个车间开工,启动X就能满足要求;如果两个车间开工,启动Y就能满足;如果三个车间同时开工,则X和Y都应全部启动。
请用两个异或门和三个与非门设计控制发电机X和Y启动的控制电路。
2.简要提示设三个车间A、B、C开工时为逻辑1,停工时为逻辑0;发电机X、Y启动时为逻辑1,停止时为逻辑0。
按题意列出A、B、C与X、Y的逻辑真值表,经过化简求出X和Y的逻辑表达式,画出实验原理图。
A、B、C与化简求出X和Y的逻辑表达式X=C B A +C B A +C B A +ABC=(A ⊕B)⊕CY=ABA C AB ABC C B A BC A C B )(⊕=+++实验原理图四、实验内容1.对控制电路的静态测试将 A 、B 、C 端分别接到三个电平开关,将输出端 X 和 Y 分别接两只指示灯。
操纵三个电平开关(代表车间开工情况),观察并记录两只指示灯的发光情况,检验是否符合设计要求:2.对控制电路的动态测试检查计数器是否正常工作,用四位二进制计数器74LSl61 接线,并在第2脚输入脉冲,QC 、QB 、QA 端,依次自左至右接三只指示灯,在秒脉冲作用下,三只灯应按三位二进制的规律发光。
华工数字逻辑实验3实验目的本实验旨在通过数字逻辑器件的应用,让学生对数字逻辑电路的设计和实现有更深入的理解。
通过完成本实验,学生可以进一步掌握计数器的原理和设计方法,掌握计数器的工作原理和应用。
实验内容本实验要求设计和实现一个4位二进制计数器,能够实现从0到15之间的循环计数。
计数器的工作方式为正向计数,即从0开始逐渐增加,当计数器达到15时,重新从0开始。
计数器的计数速度可通过外部时钟频率控制。
实验步骤步骤一:电路设计1.确定所需的元件类型和数量。
根据实验要求,我们需要使用4个D触发器和适当数量的逻辑门来设计计数器电路。
2.根据计数器的工作原理,设计电路的逻辑功能。
考虑计数器的逻辑功能,我们可以将每个D触发器的输出分别连接到下一个D触发器的时钟输入端。
3.将D触发器的时钟输入端和适当的逻辑门连接,以实现计数器的工作原理。
步骤二:电路实现1.根据设计的电路图,将所需的元件连接起来,以实现计数器的功能。
2.完成电路的布线和连接,注意检查连接的正确性。
3.确保电路输入和输出的可靠连接,以便外部信号能够正确传递到计数器。
步骤三:电路测试1.在实验台上接通电源,确保电路的正常供电。
2.使用示波器测量和观察计数器的输出波形,验证计数器的正常工作。
3.使用示波器观察和测量时钟信号的频率,确保计数器的计数速度符合要求。
实验结果经过实验验证,所设计的4位二进制计数器能够正常工作,并根据外部时钟信号实现从0到15的循环计数。
通过示波器观察和测量计数器的输出波形,可以清楚地看到计数器的工作状态,实现了预期的功能。
实验总结通过本实验,我深入学习了数字逻辑电路的设计和实现方法。
通过实际动手设计和搭建电路,我对计数器的工作原理和应用有了更深入的理解。
在实验过程中,我发现了一些问题和挑战。
例如,电路连接错误会导致计数器不能正常工作,需要仔细检查和排除问题。
另外,时钟信号的频率控制也是一个关键的问题,需要确保时钟频率满足实验要求。
一、实验目的1. 理解数字系统设计的基本概念和流程。
2. 掌握数字电路的基本设计方法和技巧。
3. 熟悉常用数字集成电路的使用方法。
4. 培养实际动手能力和团队协作精神。
二、实验内容本次实验主要围绕数字系统设计展开,包括以下几个方面:1. 数字电路原理图绘制与仿真2. 数字系统硬件描述语言(HDL)编程3. 顶层模块设计4. 系统仿真与调试三、实验步骤1. 数字电路原理图绘制与仿真(1)根据实验要求,设计数字电路原理图,如数字时钟、移位寄存器等。
(2)使用Multisim等仿真软件对原理图进行仿真,验证电路功能。
2. 数字系统硬件描述语言(HDL)编程(1)根据原理图,使用Verilog或VHDL等HDL语言编写代码。
(2)对代码进行语法检查,确保代码正确。
3. 顶层模块设计(1)根据实验要求,设计顶层模块,如数字时钟控制器、移位寄存器控制器等。
(2)将底层模块(如计数器、触发器等)集成到顶层模块中。
4. 系统仿真与调试(1)使用仿真软件对顶层模块进行仿真,验证系统功能。
(2)根据仿真结果,对代码进行修改和优化,直至系统功能满足要求。
四、实验结果与分析1. 数字电路原理图绘制与仿真(1)原理图设计:根据实验要求,设计了一个数字时钟电路原理图,包括分频器、计数器、触发器等模块。
(2)仿真结果:通过仿真软件对原理图进行仿真,验证了电路功能。
2. 数字系统硬件描述语言(HDL)编程(1)代码编写:使用Verilog语言编写了数字时钟电路的代码,包括分频器、计数器、触发器等模块。
(2)代码验证:通过语法检查,确保代码正确。
3. 顶层模块设计(1)顶层模块设计:根据实验要求,设计了一个数字时钟控制器顶层模块,将底层模块集成到顶层模块中。
(2)系统仿真:通过仿真软件对顶层模块进行仿真,验证了系统功能。
4. 系统仿真与调试(1)系统仿真:通过仿真软件对顶层模块进行仿真,验证了系统功能。
(2)调试:根据仿真结果,对代码进行修改和优化,直至系统功能满足要求。
华工数字逻辑实验3实验目的本实验旨在通过实践学习数字逻辑电路中的组合逻辑电路设计和实现。
实验要求学生能够掌握组合逻辑电路的基本原理和设计方法,并能够熟练地使用逻辑门和信号发生器进行电路搭建和测试。
实验原理在数字逻辑电路中,组合逻辑电路是由逻辑门和逻辑门之间的连线组成的。
逻辑门是实现逻辑函数的基本元件,其输入输出关系可以用真值表来表示。
通过组合逻辑电路的设计和搭建,可以实现各种逻辑功能。
本实验中,我们将学习并实践以下几个实验题目: 1. 实现一个4位二进制加法器电路 2. 实现一个4位比较器电路 3. 实现一个4位移位寄存器电路实验设备和材料1.数字电路实验箱2.逻辑门芯片:AND、OR、XOR、ADD、SHIFT3.4位数码管实验步骤实验题目1:4位二进制加法器电路步骤1:设计电路的逻辑功能4位二进制加法器电路的逻辑功能是将两个4位二进制数相加,并输出相加结果。
步骤2:搭建电路根据逻辑功能设计,搭建4位二进制加法器电路。
使用AND、OR、XOR芯片搭建逻辑门,使用ADD芯片实现加法器功能。
步骤3:测试电路连接信号发生器和电路输入,设置合适的输入信号,观察电路输出结果。
实验题目2:4位比较器电路步骤1:设计电路的逻辑功能4位比较器电路的逻辑功能是比较两个4位二进制数的大小,并输出比较结果。
步骤2:搭建电路根据逻辑功能设计,搭建4位比较器电路。
使用AND、OR、XOR芯片搭建逻辑门。
步骤3:测试电路连接信号发生器和电路输入,设置合适的输入信号,观察电路输出结果。
实验题目3:4位移位寄存器电路步骤1:设计电路的逻辑功能4位移位寄存器电路的逻辑功能是将输入的4位二进制数向左/右移位,并输出结果。
步骤2:搭建电路根据逻辑功能设计,搭建4位移位寄存器电路。
使用AND、OR、XOR芯片搭建逻辑门,使用SHIFT芯片实现移位功能。
步骤3:测试电路连接信号发生器和电路输入,设置合适的输入信号,观察电路输出结果。
实验结果分析与结论实验题目1:4位二进制加法器电路通过测试电路,我们可以得到4位二进制加法器电路的正确输出结果。
数字系统设计综合实验报告实验名称:1、加法器设计2、编码器设计3、译码器设计4、数据选择器设计5、计数器设计6、累加器设计7、交通灯控制器设计班级:姓名:学号:指导老师:实验1 加法器设计1)实验目的(1)复习加法器的分类及工作原理。
(2)掌握用图形法设计半加器的方法。
(3)掌握用元件例化法设计全加器的方法。
(4)掌握用元件例化法设计多位加法器的方法。
(5)掌握用Verilog HDL语言设计多位加法器的方法。
(6)学习运用波形仿真验证程序的正确性。
(7)学习定时分析工具的使用方法。
2)实验原理加法器是能够实现二进制加法运算的电路,是构成计算机中算术运算电路的基本单元。
目前,在数字计算机中,无论加、减、乘、除法运算,都是化为若干步加法运算来完成的。
加法器可分为1位加法器和多位加法器两大类。
1位加法器有可分为半加器和全加器两种,多位加法器可分为串行进位加法器和超前进位加法器两种。
(1)半加器如果不考虑来自低位的进位而将两个1位二进制数相加,称半加。
实现半加运算的电路则称为半加器。
若设A和B是两个1位的加数,S 是两者相加的和,C是向高位的进位。
则由二进制加法运算规则可以得到。
(2)全加器在将两个1位二进制数相加时,除了最低位以外,每一位都应该考虑来自低位的进位,即将两个对应位的加数和来自低位的进位三个数相加,这种运算称全加。
实现全加运算的电路则称为全加器。
若设A、B、CI分别是两个1位的加数、来自低位的进位,S是相加的和,C是向高位的进位。
则由二进制加法运算规则可以得到:3)实验内容及步骤(1)用图形法设计半加器,仿真设计结果。
(2)用原件例化的方法设计全加器,仿真设计结果(3)用原件例化的方法设计一个4为二进制加法器,仿真设计结果,进行定时分析。
(4)用Verilog HDL语言设计一个4为二进制加法器,仿真设计结果,进行定时分析。
(5)分别下载用上述两种方法设计4为加法器,并进行在线测试。
4)设计1)用图形法设计的半加器,如下图1所示,由其生成的符号如图2所示。
数字系统的设计与实验学院:专业:班级:学号:姓名指导老师2013 年12月 10 日实验一原码反码发生器一实验目的:1、掌握组合逻辑电路的基本设计方法。
2、学习波形仿真的方法。
3、加深对最简单的二进制原码、反码的理解,灵活运用基本的逻辑门。
二实验内容1、设计的电路应具备以下功能:A.包含如下端口:一个选择信号端口,一个8位二进制输入端口,一个原码/反码输出端口。
B. 选择信号的逻辑状态为0时输出原码;逻辑状态为1时输出反码。
2、完成电路设计。
3、对设计的正确性进行验证。
三实验要求1、列出所要实现的功能的真值表。
2、画出电路的逻辑图。
3、编写用VHDL语言描述的源程序。
library ieee;use ieee.std_logic_1164.all;entity shiyan1 isport (cin : in std_logic_vector(7 downto 0);fin : in std_logic;cout: out std_logic_vector(7 downto 0));end shiyan1;architecture behave of shiyan1 isbeginprocess(fin)begincase fin iswhen '1' => cout <= not cin;when '0' => cout <= cin;when others => null;end case;end process;end behave;4、在MAX 软件平台上完成编译和功能仿真。
一、信号端口为0时二、信号端口为1总结:经过上个实验后,对maxplu件有了一定了解,对于 VHDL也更加熟悉,首先构造真值表,画出逻辑电路图,然后编写程序生成仿真波形图。
在编写程序的时候也出现了一些错误,比如是将单个字符用双引号,结果编译通不过。
老是报错。
微机原理实验报告实验三班级:2012级信息工程(7)班姓名:学号:序号:评阅分数:一、实验目的1、自学TPC-ZK通用32位微机接口实验系统的组成。
2、掌握实验系统中接口地址译码电路的工作原理及计算方法。
3、掌握简单I/O端口的读写操作。
4、掌握8255的工作原理及编程方法。
二、实验题目通过并行接口8255实现十字路口交通灯的模拟控制,如图29,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。
编程使六个灯按交通灯变化规律亮灭。
十字路口交通灯的变化规律要求:(1)南北路口的绿灯、东西路口的红灯同时亮一定时间。
(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。
(3)南北路口的红灯、东西路口的绿灯同时亮一定时间。
(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。
(5)转(1)重复。
附加功能:1)PC3键作为右侧那组信号等的优先控制信号,如果PC3键为高,右侧信号灯立即转换成绿灯亮(PC0=1),左侧信号灯红灯亮(PC7=1),其它信号灯为0 2)PC4键作为左侧那组信号等的优先控制信号,如果PC4键为高,左侧信号灯立即转换成绿灯亮(PC5=1),右侧信号灯红灯亮(PC2=1),其它信号灯为0 3)PC3=0,PC4=0,依照正常信号灯控制方式。
三、程序流程图四、源程序清单DA TAS SEGMENTio8255a equ 288hio8255b equ 289hio8255c equ 28ahio8255d equ 28bhportcl db 24h,44h,04h,44h,04h,44h,04h ;六个灯可能db 81h,82h,80h,82h,80h,82h,80h ;的状态数据db 0ffh;结束标志DA TAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DA TASSTART:MOV AX,DATASMOV DS,AXre_on:mov bx,0on1: mov dx,io8255d ;检查是否关闭紧急开关mov al,89h ;设c口为输入out dx,almov dx,io8255cin al,dxtest al,10h ;检测Pc4=1?jnz green_left ;亮左边灯test al,8h ;检测pc3=1?jnz green_right ;亮右边灯mov dx,io8255dmov al,90hout dx,al ;设置8255为C口输出mov dx,io8255con:mov al,portcl[bx]cmp al,0ffhjz re_onout dx,al ;点亮相应的灯inc bxmov cx,200 ;参数赋初值test al,21h ;是否有绿灯亮jz de1 ;没有,短延时mov cx,2000 ;有,长延时de1:mov di,9000 ;di赋初值9000de0:dec dijnz de0 ;di不为零loop de1push dxmov dl,0ffh ;检测是否有键盘输入?mov ah,06hint 21hpop dx ;弹出dx值jz on1 ;无按键,跳回on1 exit: MOV AH,4CH ;结束INT 21Hgreen_left: ;左边开关闭合程序mov dx,io8255dmov al,90h ;设为c口输出out dx,almov dx,io8255cmov al,24h ;左边绿灯右边红灯out dx,aljmp on1green_right: ;右边开关闭合程序mov dx,io8255dmov al,90h ;设为c口输出out dx,almov dx,io8255cmov al,81h ;左边红灯右边绿灯out dx,aljmp on1CODES ENDSEND START。
一、实验目的1. 熟悉数字系统设计的基本流程和方法;2. 掌握数字系统硬件描述语言(如Verilog)的基本语法和设计方法;3. 培养动手实践能力,提高数字系统设计水平;4. 了解数字系统设计中常用模块的功能和实现方法。
二、实验内容1. 数字系统硬件描述语言(Verilog)编程2. 数字系统模块设计3. 数字系统仿真与调试三、实验步骤1. 设计数字系统模块(1)分析数字系统功能需求,确定模块功能;(2)根据模块功能,设计模块的输入输出端口和内部结构;(3)使用Verilog语言编写模块代码。
2. 编写顶层模块(1)根据数字系统功能需求,设计顶层模块的输入输出端口和内部结构;(2)将已设计的模块实例化,连接各模块端口;(3)编写顶层模块代码。
3. 仿真与调试(1)使用仿真工具(如ModelSim)对顶层模块进行仿真;(2)观察仿真波形,分析模块功能是否满足设计要求;(3)根据仿真结果,对模块代码进行修改和优化;(4)重复步骤(2)和(3),直至模块功能满足设计要求。
四、实验结果与分析1. 数字系统模块设计(1)设计了一个4位加法器模块,包括两个4位输入端口、一个4位输出端口和两个进位输出端口;(2)设计了一个2位乘法器模块,包括两个2位输入端口和一个4位输出端口;(3)设计了一个8位存储器模块,包括一个8位输入端口、一个8位输出端口和一个地址输入端口。
2. 顶层模块设计(1)根据功能需求,设计了一个包含加法器、乘法器和存储器的数字系统顶层模块;(2)将已设计的模块实例化,连接各模块端口;(3)编写顶层模块代码。
3. 仿真与调试(1)使用ModelSim对顶层模块进行仿真;(2)观察仿真波形,发现加法器和乘法器功能正常,但存储器模块存在错误;(3)分析存储器模块代码,发现地址输入端口的逻辑关系错误;(4)修改存储器模块代码,重新进行仿真,验证模块功能正确。
五、实验总结1. 通过本次实验,掌握了数字系统设计的基本流程和方法;2. 学会了使用Verilog语言进行数字系统模块设计;3. 培养了动手实践能力,提高了数字系统设计水平;4. 了解数字系统设计中常用模块的功能和实现方法。
数字系统设计及实验实验报告一、实验目的数字系统设计及实验课程旨在让我们深入理解数字逻辑的基本概念和原理,掌握数字系统的设计方法和实现技术。
通过实验,我们能够将理论知识应用于实际,提高解决问题的能力和实践动手能力。
本次实验的具体目的包括:1、熟悉数字电路的基本逻辑门、组合逻辑电路和时序逻辑电路的设计方法。
2、掌握使用硬件描述语言(如 Verilog 或 VHDL)进行数字系统建模和设计。
3、学会使用相关的电子设计自动化(EDA)工具进行电路的仿真、综合和实现。
4、培养团队合作精神和工程实践能力,提高解决实际问题的综合素质。
二、实验设备和工具1、计算机:用于编写代码、进行仿真和综合。
2、 EDA 软件:如 Quartus II、ModelSim 等。
3、实验开发板:提供硬件平台进行电路的下载和测试。
4、数字万用表、示波器等测量仪器:用于检测电路的性能和信号。
三、实验内容1、基本逻辑门电路的设计与实现设计并实现与门、或门、非门、与非门、或非门和异或门等基本逻辑门电路。
使用 EDA 工具进行仿真,验证逻辑功能的正确性。
在实验开发板上下载并测试实际电路。
2、组合逻辑电路的设计与实现设计一个 4 位加法器,实现两个 4 位二进制数的相加。
设计一个编码器和译码器,实现数字信号的编码和解码。
设计一个数据选择器,根据控制信号选择不同的输入数据。
3、时序逻辑电路的设计与实现设计一个同步计数器,实现模 10 计数功能。
设计一个移位寄存器,实现数据的移位存储功能。
设计一个有限状态机(FSM),实现简单的状态转换和控制逻辑。
四、实验步骤1、设计方案的确定根据实验要求,分析问题,确定电路的功能和性能指标。
选择合适的逻辑器件和设计方法,制定详细的设计方案。
2、代码编写使用硬件描述语言(如 Verilog 或 VHDL)编写电路的代码。
遵循代码规范,注重代码的可读性和可维护性。
3、仿真验证在 EDA 工具中对编写的代码进行仿真,输入不同的测试向量,观察输出结果是否符合预期。
微机原理实验报告实验三班级:2012级信息工程(7)班姓名:学号:序号:评阅分数:一、实验目的1、自学TPC-ZK通用32位微机接口实验系统的组成。
2、掌握实验系统中接口地址译码电路的工作原理及计算方法。
3、掌握简单I/O端口的读写操作。
4、掌握8255的工作原理及编程方法。
二、实验题目通过并行接口8255实现十字路口交通灯的模拟控制,如图29,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。
编程使六个灯按交通灯变化规律亮灭。
十字路口交通灯的变化规律要求:(1)南北路口的绿灯、东西路口的红灯同时亮一定时间。
(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。
(3)南北路口的红灯、东西路口的绿灯同时亮一定时间。
(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。
(5)转(1)重复。
附加功能:1)PC3键作为右侧那组信号等的优先控制信号,如果PC3键为高,右侧信号灯立即转换成绿灯亮(PC0=1),左侧信号灯红灯亮(PC7=1),其它信号灯为0 2)PC4键作为左侧那组信号等的优先控制信号,如果PC4键为高,左侧信号灯立即转换成绿灯亮(PC5=1),右侧信号灯红灯亮(PC2=1),其它信号灯为0 3)PC3=0,PC4=0,依照正常信号灯控制方式。
三、程序流程图四、源程序清单DA TAS SEGMENTio8255a equ 288hio8255b equ 289hio8255c equ 28ahio8255d equ 28bhportcl db 24h,44h,04h,44h,04h,44h,04h ;六个灯可能db 81h,82h,80h,82h,80h,82h,80h ;的状态数据db 0ffh;结束标志DA TAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DA TASSTART:MOV AX,DATASMOV DS,AXre_on:mov bx,0on1: mov dx,io8255d ;检查是否关闭紧急开关mov al,89h ;设c口为输入out dx,almov dx,io8255cin al,dxtest al,10h ;检测Pc4=1?jnz green_left ;亮左边灯test al,8h ;检测pc3=1?jnz green_right ;亮右边灯mov dx,io8255dmov al,90hout dx,al ;设置8255为C口输出mov dx,io8255con:mov al,portcl[bx]cmp al,0ffhjz re_onout dx,al ;点亮相应的灯inc bxmov cx,200 ;参数赋初值test al,21h ;是否有绿灯亮jz de1 ;没有,短延时mov cx,2000 ;有,长延时de1:mov di,9000 ;di赋初值9000de0:dec dijnz de0 ;di不为零loop de1push dxmov dl,0ffh ;检测是否有键盘输入?mov ah,06hint 21hpop dx ;弹出dx值jz on1 ;无按键,跳回on1 exit: MOV AH,4CH ;结束INT 21Hgreen_left: ;左边开关闭合程序mov dx,io8255dmov al,90h ;设为c口输出out dx,almov dx,io8255cmov al,24h ;左边绿灯右边红灯out dx,aljmp on1green_right: ;右边开关闭合程序mov dx,io8255dmov al,90h ;设为c口输出out dx,almov dx,io8255cmov al,81h ;左边红灯右边绿灯out dx,aljmp on1CODES ENDSEND START。
实验三组合逻辑的设计一.实验目的掌握一个简单组合逻辑电路的设计过程。
二.实验所用器件和设备1.二输入四与非门74LS00 1片2.二输入四或门74LS32 1片3. 二输入四与门74LS08 1片4.非门74LS04 1 片三.实验内容设计一个电话机信号控制电路。
电路有I0(火警)、I1(盗警)和I2(日常业务)三种输入信号,通过排队电路分别从L0、L1、L2输出,在同一时间只能有一个信号通过。
如果同时有两个以上信号出现时,应首先接通火警信号,其次为盗警信号,最后是日常业务信号。
试按照上述轻重缓急设计该信号控制电路。
要求用提供的器件来实现此功能。
其中,逻辑电平开关作为输入信号,电平指示灯作为输出信号。
四.实验步骤和实验提示1.根据题意,列出真值表,写出逻辑表达式并化简。
输入输出I0I1I2L0L1L20 0 0 0 0 01 X X 1 0 00 1 X 0 1 00 0 1 0 0 100L1=I0’I1L2=I0’I1’I2化成全与非门的逻辑表达式:(采用基本门和转换为全与非门两种形式。
)2.画出逻辑设计图。
基本门电路图与非门电路图3.利用所提供的器件,实现此功能电路。
五.实验报告要求:1.详细书写整个实验设计过程。
并分析输出的结果。
2.评价比较两种方案的优劣。
采用基本门设计:输入:K1:I0,K1:I1,K2:I2输出:L0:L0,L4:L1,L8:L2优点:电路功能简洁易懂;缺点:不同器件的时延不同;有时候可能不同类型的芯片;按如图所示电路链接采用全与非门设计:输入:K1:I0,K1:I1,K2:I2输出:L0:L0,L1:L1,L2:L2优点:可以同种器件可能芯片数目;有相同的时延;缺点:电路设计比较麻烦,不够简单明了;按如图所示电路链接。
实验三 AMI、HDB3编译码综合实验一、实验目的了解由二进制单极性码变换为AMI码HDB3码的编码译码规则,掌握它的工作原理和实验方法。
二、实验内容1.伪随机码基带信号实验2.AMI码实验① AMI码编码实验② AMI码译码实验③ AMI码位同步提取实验3.HDB3编码实验4.HDB3译码实验5.HDB3位同步提取实验6.AMI和HDB3位同步提取比较实验7.HDB3码频谱测量实验8.书本上的HDB3码变化和示波器观察的HDB3码变化差异实验三、基本原理:PCM信号基带传输线路码型PCM信号在电缆信道中传输时一般采用基带传输方式,尽管是采用基带传输方式,但也不是将PCM编码器输出的单极性码序列直接送入信道传输,因为单极性脉冲序列的功率谱中含有丰富的直流分量和较多的低频分量,不适于直接送人用变压器耦合的电缆信道传输,为了获得优质的传输特性,一般是将单数性脉冲序列进行码型变换,以适应传输信道的特性。
(一)传输码型的选择在选择传输码型时,要考虑信号的传输信道的特性以及对定时提取的要求等。
归结起来,传输码型的选择,要考虑以下几个原则:1.传输信道低频截止特性的影响在电缆信道传输时,要求传输码型的频谱中不应含有直流分量,同时低频分量要尽量少。
原因是PCM端机,再生中继器与电缆线路相连接时,需要安装变压器,以便实现远端供电(因设置无人站)以及平衡电路与不平衡电路的连接。
图3一1是表示具有远端供电时变压器隔离电源的作用,以保护局内设备。
由于变压器的接入,使信道具有低频截止特性,如果信码流中存在直流和低频成分,则无法通过变压器,否则将引起波形失真。
2.码型频谱中高频分量的影响一条电缆中包含有许多线对,线对间由于电磁辐射而引起的串话是随着频率的升高而加剧,因此要求频谱中高频分量尽量少,否则因串话会限制信号的传输距离或传播容量。
3.定时时钟的提取码型频谱中应含有定时时钟信息,以便再生中继器接收端提取必需的时钟信息。
一、实验目的加深对LTI 系统的理解以及分析。
二、实验原理系统输入、输出关系可用以下差分方程描述:∑∑==-=-Mk k Nk kk n x p k n y d][][系统响应为如下的卷积计算式:∑∞-∞=-=*=m m n h m x n h n x n y ][][][][][当Nk d k ,...2,1,0==时,h[n]是有限长度的(n :[0,M]),称系统为FIR 系统;反之,称系统为IIR 系统。
系统的转移函数为 NN M M z d z d d z p z p p z D z p z H ----++++++==......)()()(110110三、实验内容1、用函数y=filter(p,d,x)实现差分方程的仿真,也可以用函数 y=conv(x,h)计算卷积,用y=impz(p,d,N)求系统的冲激响应,再用卷积来计算任意信号作用于系统的响应。
求两个系统]1[][]2[125.0]1[75.0][--=-+-+n x n x n y n y n y]}4[]3[]2[]1[{25.0][-+-+-+-=n x n x n x n x n y 各自的冲激响应,并且比较filter和conv 函数的区别实验代码如下:clear%离散时间序列x[n] n = 0:9; x = 5*exp(-n); subplot(4,2,1); stem(n,x)title('离散时间序列x[n]');%用filter函数滤波a1 = [1 , 0.75 , 0.125];b1 = [1 , -1];y1 = filter(b1,a1,x);subplot(4,2,3);stem(n,y1)title('filter滤波1');a2 = [1];b2 = [0 , 0.25 , 0.25 , 0.25 , 0.25];y2 = filter(b2,a2,x);subplot(4,2,4);stem(n,y2)title('filter滤波2');%求系统的冲激响应h1 = impz(b1,a1,10);subplot(4,2,5);stem(n,h1)title('冲激响应1');h2 = impz(b2,a2,10);subplot(4,2,6);stem(n,h2)title('冲激响应2');%用conv函数计算卷积y3 = conv(x,h1);subplot(4,2,7);stem(y3)title('卷积1');y4 = conv(x,h2);subplot(4,2,8);stem(y4)title('卷积2');实验结果如下:离散时间序列x[n]filter 滤波2冲激响应1冲激响应22468101214161820卷积22、用函数[z ,p ,K]=tf2zp (num ,den )求得有理分式形式的系统转移函数的零、极点,用函数zplane (z ,p )绘出零、极点分布图;也可以用函数zplane (num ,den )直接绘出有理分式形式的系统转移函数的零、极点分布图。
实验三基于状态机的交通灯控制地点:31号楼312房;实验台号:12实验日期与时间:2017年12月08日评分:预习检查纪录:批改教师:报告内容:一、实验要求1、开发板上三个led等分别代表公路上红黄绿三种颜色交通灯。
2、交通灯状态机初始状态为红灯,交通灯工作过程依次是红→绿→黄→红。
3、为了方便观察,本次实验要求红灯的显示时间为9s,绿灯显示时间为6s,黄灯显示时间为3s,时间需要倒计时,在数码管上显示。
编程之前要求同学们先画好ASM图。
4、1Hz分频模块请采用第二次实验中的内容,7段码显示模块请参考书本相关内容。
5、第三次实验课用到EP2C8Q208C8通过74HC595驱动数码管,有两种方法写该模块代码:方法1,用VHDL语言写,(自己写VHDL代码有加实验分)。
方法2,可调用verilog数码管驱动模块,该模块在附件“seg.zip”中。
和其它VHDL编写的模块可以混搭在一个电路图中使用。
EP2C8Q208C8的SCTP,SHCP,SER_DATA数码管信号线通过两块74HC595集成块,再驱动数码管。
6、芯片型号:cyclone:EP2C8Q208C8,开发板所有资料都在“新板”附件中,其中管脚配置在实验要求中是不对的,以“新板”附件中为准。
二、实验内容1设计要求开发板上三个led等分别代表公路上红黄绿三种颜色交通灯。
交通灯状态机初始状态为红灯,交通灯工作过程依次是红→绿→黄→红。
本次实验要求红灯的显示时间为9s,绿灯显示时间为6s,黄灯显示时间为3s,时间需要倒计时,在数码管上显示。
2设计思路(1)数码管驱动第三次实验课用到EP2C8Q208C8通过74HC595驱动数码管,有两种方法写该模块代码:方法1,用VHDL语言写,(自己写VHDL代码有加实验分)。
方法2,可调用verilog数码管驱动模块,该模块在附件“seg.zip”中。
和其它VHDL 编写的模块可以混搭在一个电路图中使用。
EP2C8Q208C8的SCTP,SHCP,SER_DATA 数码管信号线通过两块74HC595集成块,再驱动数码管。
(2)交通灯流程设计我根据实验要求,将实验设计分为6部分:分频器模块、复位部分、红灯部分、黄灯(红转黄时)部分、绿灯部分、扩位模块。
其中复位部分包括1个状态:reset0,红灯部分包括9个状态:r1到r9,绿灯部分包括6个状态:r1到r6,黄灯部分包括3个状态:y1到y3。
其中,对脉冲信号进行2的n次方分之一的分频,实现分频器分频。
扩位模块采用补0操作实现将4位二进制数转为16位二进制数。
3ASM 图设计17个状态,包括1个复位状态,9个红灯状态,6个绿灯状态,交通灯控制的ASM 图如图1所示。
图1交通灯控制的ASM 图4VHDL 描述(1)分频器描述-----------------------------------------------------------VHDL experience2--FENPINQI--DIV 50MHz into 1Hz reset0g1r1y1r9r8r7r6r5r4r3r2g2g3g4g6g5y3y2红灯红灯绿灯--Quartus II version:Quartus II9.0--Chen Yirong--2017.11.24-----------------------------------------------------------include libraryLIBRARY IEEE;--IEEE Library--include packageUSE IEEE.std_logic_1164.ALL;--use packageUSE IEEE.std_logic_unsigned.all;-----------------------------------------------------------introduce entityENTITY clkdiv_15dianzhuo_12is--shiti--change n to change frequenceGENERIC(n:integer:=50000000);--leishucanshuPORT(clk:IN std_logic;Y:OUT std_logic);END ENTITY;-----------------------------------------------------------describe architectureARCHITECTURE behav OF clkdiv_15dianzhuo_12IS--structure SIGNAL count:integer RANGE n-1DOWNTO0:=n-1;--COUNTER BEGINPROCESS(clk)BEGINIF(rising_edge(clk))thencount<=count-1;--dijianif(count>=n/2)thenY<='0';--fenpinelseY<='1';end if;if(count<=0)thencount<=n-1;end if;END IF;END PROCESS;END behav;---------------------------------------------------------(2)交通灯控制描述-----------------------------------------------------------VHDL experience3--traffic_light_machinestate--san jin cheng zhuang tai ji--Quartus II version:Quartus II9.0--Chen Yirong--2017.12.08-----------------------------------------------------------include libraryLIBRARY IEEE;--IEEE Library --include packageUSE IEEE.std_logic_1164.ALL;--use package USE IEEE.std_logic_unsigned.all;-----------------------------------------------------------introduce entityENTITY traffic_light_machinestate is--shiti PORT(clk:IN std_logic;--clockrst_n:IN std_logic;--reset,lowlevel validred_light:OUT std_logic;--low level validgreen_light:OUT std_logic;--low level validyellow_light:OUT std_logic;--low level validholdtime:OUT integer range0TO9);--show timeEND ENTITY;-----------------------------------------------------------describe architectureARCHITECTURE Behav OF traffic_light_machinestate IS--jiegouti--describe all stateTYPE state_type IS(reset0,r1,r2,r3,r4,r5,r6,r7,r8,r9,g1,g2,g3,g4,g5,g6,y1,y2,y3); SIGNAL present_state,next_state:state_type;--shuang jin cheng zhuang tai jiBEGIN-----------------------------------------------------------seq process:create stateseq:PROCESS(clk,rst_n)BEGINIF(rst_n='0')THEN--fu wei shi hong deng liangpresent_state<=reset0;ELSIF(rising_edge(clk))THENpresent_state<=next_state;END IF;END PROCESS;-----------------------------------------------------------com process:create next state and output logiccom:PROCESS(next_state)BEGINred_light<='0';green_light<='1';yellow_light<='1';holdtime<=0;CASE present_state ISWHEN reset0=>--fu wei stategreen_light<='1';yellow_light<='1';holdtime<=0;next_state<=r1;WHEN r1=>--red light rest time=9 red_light<='0';green_light<='1';yellow_light<='1';holdtime<=9;next_state<=r2;WHEN r2=>--red light rest time=8 red_light<='0';green_light<='1';yellow_light<='1';holdtime<=8;next_state<=r3;WHEN r3=>--red light rest time=7 red_light<='0';green_light<='1';yellow_light<='1';holdtime<=7;next_state<=r4;WHEN r4=>--red light rest time=6 red_light<='0';green_light<='1';yellow_light<='1';holdtime<=6;next_state<=r5;WHEN r5=>--red light rest time=5green_light<='1';yellow_light<='1';holdtime<=5;next_state<=r6;WHEN r6=>--red light rest time=4 red_light<='0';green_light<='1';yellow_light<='1';holdtime<=4;next_state<=r7;WHEN r7=>--red light rest time=3 red_light<='0';green_light<='1';yellow_light<='1';holdtime<=3;next_state<=r8;WHEN r8=>--red light rest time=2 red_light<='0';green_light<='1';yellow_light<='1';holdtime<=2;next_state<=r9;WHEN r9=>--red light rest time=1 red_light<='0';green_light<='1';yellow_light<='1';holdtime<=1;next_state<=g1;WHEN g1=>--green light rest time=6green_light<='0';yellow_light<='1';holdtime<=6;next_state<=g2;WHEN g2=>--green light rest time=5 red_light<='1';green_light<='0';yellow_light<='1';holdtime<=5;next_state<=g3;WHEN g3=>--green light rest time=4 red_light<='1';green_light<='0';yellow_light<='1';holdtime<=4;next_state<=g4;WHEN g4=>--green light rest time=3 red_light<='1';green_light<='0';yellow_light<='1';holdtime<=3;next_state<=g5;WHEN g5=>--green light rest time=2 red_light<='1';green_light<='0';yellow_light<='1';holdtime<=2;next_state<=g6;WHEN g6=>--green light rest time=1green_light<='0';yellow_light<='1';holdtime<=1;next_state<=y1;WHEN y1=>--yellow light rest time=3red_light<='1';green_light<='1';yellow_light<='0';holdtime<=3;next_state<=y2;WHEN y2=>--yellow light rest time=2red_light<='1';green_light<='1';yellow_light<='0';holdtime<=2;next_state<=y3;WHEN y3=>--yellow light rest time=1red_light<='1';green_light<='1';yellow_light<='0';holdtime<=1;next_state<=r1;END CASE;END PROCESS;END Behav;--------------------------------------------------------------(3)将四位二进制数转为16位二进制数描述-----------------------------------------------------------VHDL experience3--add_bit--san jin cheng zhuang tai ji--Quartus II version:Quartus II9.0--Chen Yirong--2017.12.08-----------------------------------------------------------include libraryLIBRARY IEEE;--IEEE Library--include packageUSE IEEE.std_logic_1164.ALL;--use packageUSE IEEE.std_logic_unsigned.all;-----------------------------------------------------------introduce entityENTITY add_bit is--shitiPORT(clk:IN std_logic;input4bit:IN std_logic_vector(3DOWNTO0);output16bit:OUT std_logic_vector(15DOWNTO0));END ENTITY;-----------------------------------------------------------describe architectureARCHITECTURE behav OF add_bit ISBEGIN---------------------------------------------------------output16bit<="ZZZZZZZZZZZZZZZZ";PROCESS(clk,input4bit)BEGINIF(rising_edge(clk))THENoutput16bit<="000000000000"&input4bit;END IF;END PROCESS;END behav;---------------------------------------------------------三、实验过程记录(流程图或者实验逻辑思路过程)1仿真实验整体电路图如图2所示。