当前位置:文档之家› 微机原理与应用第一次实验报告

微机原理与应用第一次实验报告

微机原理与应用第一次实验报告
微机原理与应用第一次实验报告

微机原理与应用实验一、实验二实验报告

电92 雷云泽2009010941 实验一简单计算机系统基本模块设计1

一、实验目的

1.掌握简单计算机系统的指令系统

2.掌握简单计算机基本模块的设计方法

3.巩固EDA电路仿真和调试的方法

二、实验任务

包括练习指令编码设计寄存器组模块、设计RAM模块、设计I/O端口及其映射模块、设计和检测ROM模块

1.练习指令编码

阅读项目任务书的简单计算机指令系统,理解其中的7条R型指令AND、OR、ADD、SUB、ADDC、SUBC、SLT,和2条I型指令的LW、SW。写出表1-1指令的编码和功能说明。

表1-1 指令编码练习

2.设计寄存器组模块

(1)任务要求

在R类型指令中有3个操作数,其中2个操作数来自寄存器组,作为算术逻辑模块ALU的输入,另1个操作数是ALU 的输出,需写回寄存器组中。所以,寄存器组模块需要1个写通道、2个读通道。

在寄存器组读操作时,需给出要读寄存器的寄存器号,寄存器组将该寄存器号对应的内容从输出端口输出;在寄存器组写操作中,需给出要写入寄存器的寄存器号和要写入的数据,寄存器组模块将在控制信号的作用下把数据写到指定的寄存器中。

寄存器组模块的封装图见1-1,包含2个异步读通道、1个同步写通道,内部包含4个8位寄存器(分别称为R0、R1、R2、R3,对应的二进制编号分别为00、01、10、11),1个2-4译码器和2个8位4选1多路选择器,其中每个寄存器都是带时钟使能和异步复位端口的8位D 触发器。可利用QuartusII的MegaWizard下LMP_FF、LMP_DECODE、LPM_MUX进行设计。

寄存器组模块信号说明:

输入信号:

N1[1..0]:读通道1的寄存器号

N2[1..0]:读通道2的寄存器号

ND[1..0]:写通道的寄存器号

DI[7..0]:写通道的输入数据

CLK:时钟脉冲信号,上升沿有效

REG_WE:写允许,为1时,在CLK上升沿,将数据DI写入ND指定的寄存器;

为“0”时,禁止对寄存器阵列进行写操作。

RST:异步复位信号,清空所有寄存器的内容

输出信号:

Q1[7..0]:输出N1[1..0]指定寄存器的内容

Q2[7..0]:输出N2[1..0]指定寄存器的内容

(2)任务实现

首先使用MegaWizard创建LPM_FF型8位D触发器,并加上使能端和异步清零端,如图所示

创建了基本八位寄存器后,再用这些模块和译码器、多路开关等模块组装成完整的寄存器组模块,拥有任务要求的功能,原理图如下:

四个寄存器的输出端分别接在两个八位四选一数据选择器上,两个异步读取端分别接在两个数据选择器的选通端。这样,根据N1和N2给出的读取地址,就会在输出端得到相应寄存器的内容,而且是异步的,不需要时钟信号触发。而ND 则接在一个2-4译码器上,译码器的四个输出端分别接在四个寄存器模块的使能端,并且跟写允许信号相与,这样当写允许信号为1时,根据ND 端的地址,可以确定要往哪个寄存器写入数据。数据输入端DI 跟四个寄存器的数据输入端都相连即可。 (3)仿真波形

如图,仿真验证寄存器组模块的功能,先后给数据输入端送入00101010和10010101两个八位二进制数,并指定写入地址分别为01和10,再加上写允许信号,注意输入数据和写入地址均应早于写允许信号来到,并晚于写允许信号消失。两个读取地址端分别设为01和10.

由仿真结果可见,在写允许信号来到后,经过一个时钟上升沿,数据就被写入寄存器,同时输出端马上得到刚写入的数据,与上升沿的来到是同步的,这就说明数据的读取不需要时钟信号的参与,是异步的,而写入则是同步的,需要时钟信号上升沿。 3.设计RAM 数据存储系统模块 (1)任务要求

RAM 数据存储系统容量为256×8,即有256个存储单元,编号顺序为0x00~0xFF, 每个单元可存放8位二进制信息。RAM 主要用来存放用户程序运行时的中间结果。RAM 模块封装结构图见图1-2。可利用QuartusII 的Tools/MegaWizard Plug-in Manager/create a new custom megafunction Variation/storage/LPM_RAM_DP 进行设计。

VCC

REG_WE

INPUT VCC

DI[7..0]

INPUT VCC

CLK

INPUT VCC

RST

INPUT Q2[7..0]

OUTPUT

REG_WE DI[7..0]

clock

RST

图1-2 RAM 数据存储系统模块封装结构图

RAM 数据存储系统模块信号说明如下:

输入信号:

address[7..0]:需要进行读/写操作RAM 单元的地址

data[7..0]:待写入RAM 中的数据

wren:写允许信号,为1 时写;为0 则读

clock:时钟脉冲信号,上升沿将数据写入或读出

aclr:异步复位信号,对q[7..0]进行清0

输出信号:

q[7..0]:输出address [7..0]指定的RAM 单元的内容

(2)任务实现

根据任务要求,使用MegaWizard创建RAM模块,选择所需字长,存储容量,并且加上异步清零端。如下图所示。

(3)仿真波形

仿真观察RAM模块的读写功能,波形如下

如图,地址输入端先后给出00000000,00000001,00000000,00000001四个地址,写允许信号按如图所示给出,数据输入端先后给出00110101和01001001两个八位二进制数。由仿真波形可见,在data出现00110101后两个时钟周期,输出端q也出现了相应的值,这说明在数据写入时,写入地址同时也作为读取地址,写入的数据会在输出端显示出来,另外从数据到达输入端到数据出现在输出端需要两个时钟周期,这是因为输出端q也接在了一个触发器上,因此延迟了一个时钟周期,如果去掉RAM模块的异步清零功能,那么q可以不用再额外与一个触发器相连,这时输出端将延迟一个时钟周期出现写入的数据。如图所示,在地址切换到00000001后,同样也延迟了两个时钟周期输出才变为0,随后写允许信号到来,延迟两个周期输出端变成相应的输入数据。然后写允许信号消失,地址又变成00000000,随后变成00000001,都验证了输出端数据延迟两个周期到来。

4.设计I/O端口及其映射模块

(1)任务要求

I/O 端口,也称I/O 寄存器,通常是输入/输出接口电路中用来存放输入输出设备的数据缓冲器(或锁存器),比如从4×4 矩阵键盘输入的数据srcL[7..0]、srcH[7..0]、dstL[7..]、dstH[7..]、ALUOP[7..0]、送给数码管显示模块用的数据datainL[7..0] 、datainH[7..0]等都存放在输入/输出接口模块的缓冲器中。计算机系统通过读写这些I/O 端口的数据,实现与外部设备的数据传输。一个双向I/O 端口,即可以实现数据的输入,也可以实现数据的输出,其结构图见1-3,由2 个三态门组成,通过控制三态门实现对双向I/O 端口读、写数据的功能。从双向I/O 端口读入的数据通过数据信号Dout_n传出, 向双向端口I/O 写入的数据由数据信号Din_n写入,控制信号控制2 个三态门的工作状态。

当有多个双向I/O端口时,双向I/O端口的Din_n可连在一起,命名为Din;各Dout_n连至一个多路选择器上,多路选择器的输出连到公共输出数据信号Dout上。多路选择器的控制信号和双向I/O端口中2个三态门的控制信号,可由双向I/O端口的读写控制信号和I/O端口地址信号提供。

在设计的简单计算机系统中,要求设计8个双向I/O 端口,用来与4×4矩阵键盘和数码管输入输出接口电路的连接,实现与输入设备和输出设备的数据传递。由于指令系统中没有单独对I/O端口操作的指令,对I/O端口的读写是由对存储器的读/写指令完成, 也就利用执行存储器读/写指令送出的地址、数据和控制信号实现对I/O端口的读/写操作。故需设计一个I/O端

口映射模块,实现将对RAM存储单元0x00~0x07的读/写转换为对地址0x00~0x07的I/O端口的读/写。

故I/O端口映射模块实现输入/输出接口与存储器单元统一编址的功能。该模块内部有8个双

向的I/O端口(可由Symbol/primitives/pin/bidir生成),8个I/O端口的地址分别为0x00~0x07,其中0x00、0x01号I/O端口可以与数码管(输出设备)接口模块的datainL[7..0]、datainH[7..0]相连,控制数码管显示的内容;0x02~0x06号I/O端口存放键盘输入的2个操作数和1个运算符,其中0x02~0x05号I/O端口分别与4x4矩阵键盘(输入设备)接口模块的srcL[7..0]、srcH[7..0]、dstL[7..0]、dstH[7..0]相连,0x06号I/O端口与4x4矩阵键盘(输入设备)接口模块的ALUOP[7..0]相连。I/O端口及其映射模块封装图见图1-4。

图1-4 I/O端口及其映射模块封装结构图

I/O端口及其映射模块信号说明:

输入信号:

addr[7..0]:地址输入信号

Din[7..0]:写入I/O端口中的数据信号

RE: 读控制信号, 高电平有效

WE:写控制信号,高电平有效

输出信号Dout[7..0]:读I/O端口时输出的数据信号

io_read:I/O端口读控制信号,高电平有效,读0x00~0x07存储单元时有效

io_write:I/O端口写控制信号,高电平有效,写0x00~0x07存储单元时有效

输入/输出信号

IO0[7..0]:双向I/O端口0的数据信号

IO1[7..0]:双向I/O端口1的数据信号

IO2[7..0]:双向I/O端口2的数据信号

IO3[7..0]:双向I/O端口3的数据信号

IO4[7..0]:双向I/O端口4的数据信号

IO5[7..0]:双向I/O端口5的数据信号

IO6[7..0]:双向I/O端口6的数据信号

IO7[7..0]:双向I/O端口7的数据信号

(2)任务实现

电路原理图:

如图,首先创建了八个由一对三态门组成的双向I/O端口,并且为它们连接上双向端口。然后将数据输入端Din[7..0]直接连接在八个双向端口的对外口,然后将地址输入端addr[7..0]的低三位接在3-8译码器的输入端,并将写允许信号WE接在译码器的使能端,将译码器的八个输出端分别接在对外三态门的控制端。这样,当写允许信号为1时,译码器将地址信号译成八个输出端信号,其中有一个为1,使得八个对外三态门中有一个开放,数据便从这个三态门输出到双向I/O端口。

与此同时,读允许信号RE接在每一个对内三态门的控制端,当读允许信号为1时,所有对内三态门都开放,数据都送到八位八选一数据选择器的输出端,地址输入端的低三位输送到数据选择器的选通端,从八个输入信号中选出一个输出到输出端Dout[7..0]。这样,就实现了数据的双向选通与传输。

(3)仿真波形

仿真观察IO模块的功能,由于这个模块兼有输入和输出的功能,因此分别就输入与输出情况进行仿真。

如图,在数据输入情况下,分别在输入端给出两个八位二进制数10110101和10101101,分别给出地址00000001和00000010,并相应给出写允许信号WE。8个输出端的情况如下图

可见,输入信号准确出现在IO1和IO2端口,随着写允许信号的出现而出现,随着写允许信号的消失而消失。在写允许信号为0的时间内,所有输出端的输出都是高阻态。这符合功能设计。因为IO模块是一个组合电路,没有储存数据的功能,因此它没有也不需要时钟信号的触发,而且会随着写允许信号的出现和消失而立刻发生变化。

在数据输出情况下的仿真波形如下:

如图,在八个IO端分别给出八个八位二进制数11010110,00011011,10111011,

01101101,11011010,00101101,01010101,00101100,然后分别从00000000到00000111给出八个地址,于是在输出端Dout就依次得到了八个数,正是八个IO端输入的数据。从图中可见,由于模块是组合电路,地址的改变和输出端数据的改变是完全同步的,在读允许信号消失后,输出端变为不确定状态。

5.设计和检测ROM程序存储模块

(1)任务要求

ROM程序存储系统容量为256×16,共有256个存储单元,地址为0x00~0xFF, 每个单元可存放16位二进制信息。ROM主要用来存放用户编写的程序。ROM模块封装结构图见图1-5。可利用QuartusII的Tools/MegaWizard …/LPM_ROM进行设计。

图1-5 ROM程序存储系统模块封装结构图

ROM数据存储系统模块信号说明如下:

输入信号:

address[7..0]:ROM单元的地址

clock:时钟脉冲信号,在时钟的上升沿,将选中的ROM单元内容输出

输出信号:

q[15..0]:输出address [7..0]指定的ROM单元的内容

在设计ROM模块过程中(Tools/MegaWizard …/LPM_ROM之步骤3),会提示是否要指定ROM模块的初始化内容,选择“是”,并且指定一个.hex格式文件(用于存放程序)。.hex文件建立可以采用下述方式:打开File菜单中的New窗口,在Memory Files中选择Hexadecimal (Intel-Fomat)File选项,然后点击OK按钮。将字长设置为16 bit,在该ROM

中起始单元依次输入任务1中的6条指令的16进制数编码。

ROM模块的检测,可将8个拨码开关接address,按键rst接clock,q[15~8]送到数码管显示,q[7..0]接到8个LED灯上。通过拨码开关设置ROM单元地址,操作1次rst,显示1个ROM单元内容。通过数码管上的显示检测写在ROM 中的6条指令编码是否正确存放。

注意:建立完成.hex文件后,应将其加入到项目文件中。

(2)任务实现

按照任务要求中的提示,使用MegaWizard创建ROM模块,如图所示

选择需要的字长和字数,在最后选择使用.hex文件对ROM进行初始化,.hex文件编写如下:

其中包含六个16位二进制数。

(3)仿真波形

对ROM模块功能进行仿真验证

先后给出从00000000到00000101六个地址,以便将初始化文件中的六个数据依次读出。从波形中可以看到,输出端q一次出现了六个数据,注意到数据出现的时刻总是晚于地址出现的时刻两个时钟信号上升沿,说明要将ROM中的数据读出需要两个上升沿,从创建模块时的对话框时的也可以发现这一点,注意到地址输入端和数据输出端都和一个触发器相连,每个触发器都与时钟信号相连,说明地址读入需要一个时钟上升沿,而数据输出又需要一个上升沿,

事实上,可以将输出端q与触发器解除连接,这样数据的读出就只需要一个时钟信号上升沿了。

实验二简单计算机系统基本模块设计2

一、实验目的

1. 掌握执行R型、I型、J型指令的数据通道

2. 掌握ALU运算单元模块的设计方法

3. 掌握简单控制单元模块的设计方法

二、实验任务

包括练习指令编码、学习指令执行数据通道、设计控制器模块、设计PC程序指针计数器模块

1.指令编码练习

阅读项目任务书中的简单计算机指令系统,理解其中5条I型指令的ANDI、ORI、ADDI、BEQ、BNE和1条I型指令JMP。写出表2-1指令的编码和功能说明。

表2-1 指令编码练习

根据计算机的工作原理,其组成包括ROM、寄存器组、ALU、RAM、控制单元、I/O 端口及其映射、输入/输出设备、输入/输出接口等模块。在从ROM中取指令时需要一个程序指针寄存器(指令地址生成模块)提供出要读取的ROM单元地址。指令系统分为R型、I型和J型3种指令,不同的指令类型需要通过控制器单元进行译码,然后送出相应的控制信号。

执行不同的指令有不同的数据通路。在设计PC程序指针计数器模块和控制单元模块前,需要了解R型、I型和J型指令的数据通路。

(1)R型指令数据通路

R 型指令包括与(AND)、或(OR)、不带进位加(ADD)、不带借位减(SUB)、带进位加(ADDC)、带借位减(SUBC)和比较(SLT)等,指令执行时的数据通路见图2-1。

图中,PC 为程序指针生成单元,ROM 为程序存储器,Reg为寄存器组。根据PC 程序指针内容,从ROM 中取出相应指令,将指令中相应位分别送至控制单元和寄存器组的相应通道。其中,指令中的高4 位即操作码OP 送给控制单元,决定执行何种操作,并分别产生对寄存器组和ALU 的控制信号WriteReg和ALUOP[2..0];指令中第1 和第2 个操作数rs,rt分别送到寄存器组的N1、N2 端,寄存器组将相应寄存器的内容通过Q1、Q2 端送给ALU;ALU 输出的运算结果送回寄存器组的数据输入端DI,并写入由rd所指定的寄存器单元中。

简而言之,R 型指令将rs、rt指定的寄存器内容送入ALU,并根据OP 控制运算类型,随后将运算结果送至寄存器组数据输入端,写入rd寄存器。

(2)I型指令执行流程

I 型指令根据其执行流程不同,又可分为3 类。第1 类是寄存器操作指令,包括ADDI,ANDI,ORI。第2 类为存储器读写指令,包括SW,LW。第3 类为条件跳转指令,包括BNE,BEQ。

①寄存器操作指令

如图2-2 所示,I 型指令中ANDI,ORI,ADDI 将rs指定的寄存器内容和imm送入ALU,根据OP 内容进行相应运算,并将结果送至寄存器组的数据输入端DI,写入rt指定的寄存器中,过程与R 型指令相似。

②存储器操作指令

如图2-3 所示,存储器读指令LW 中的4 位OP 送给控制单元,分别产生控制信号MemTOReg,将rs指定的寄存器和imm送入ALU 进行加法运算,将结果作为地址送至RAM 的address 端,取得相应RAM 单元内容后,由MemROReg控制数据选择器,送至寄存器组数据输入端DI,写至rt指定的寄存器。

如图2-4 所示,将存储器写指令SW 中的OP 送给控制单元,产生控制信号WRITEMEM 和ALUOP,将rs指定的寄存器内容和imm送至ALU,进行加法后得到RAM 地址,随后将rt指定寄存器的内容写入相应RAM 存储单元中。

③条件跳转指令

如图2-5 所示,BEQ/BNE 指令首先将rs、rt指定寄存器的内容送至ALU 进行运算,控制器模块根据OP 和Zero 零标志位送出Branch 控制信号,控制数据选择器,选择imm或者PC+1 至PC 寄存器中。

(3)J型指令执行流程

J 型指令只有一条JMP,OP 经控制器送出控制信号Jump,将指令中的立即数imm直接送至PC 程序指针模块的输入端,在下一个时钟信号到来写入PC,修改了PC 的内容。如图2-6 所示。

3.设计8位算术逻辑运算器ALU模块

(1)任务要求

该ALU 模块可在暑期“电子技术课程设计”完成的8 位算数逻辑运算器ALU 的基础上完成。根据设计的指令系统要求,该8 位计算器能完成的运算有7 中:”与”、”或”、”比较”、”不带进位加”、”不带借位减”、”带进位加”、”带借位减”,ALU 模块的封装参考图见图2-7,ALU 的运算关系见表2-2。

2-7 ALU模块的封装结构图

输入信号:

data_a[7..0]、data_b[7..0]:参与操作的两个8位二进制数

CS[2..0]:存放7种运算操作的编码,编码规则自定

Carry_in: 参与运算的进/借位值

输出信号:

S[7..0]:操作后的8位结果存放在中,

Zero:零标志当s[7..0]为0时,zero=1; 否则zero=0;

Carry_out: 进位/借位标志

当加法运算过程最高位有进位时,Carry_out=1;否则Carry_out=0;

当减法运算最高位产生借位时,Carry_out=0; 否则,Carry_out=1

(2)任务实现

该模块可在小学期的ALU基础上完善,原ALU具有进行五种运算的能力:加、减、与、或、比较。本例中的ALU只不过将加和减运算分为带进位和不带进位的情况而已,其他的诸如zero 信号,carry_out信号等均与以前完成的ALU模块基本相同,此外,ALU模块仍然是一个组合逻辑电路,不具有数据存储功能,因此,单靠ALU模块只能完成八位二进制数的相应运算,要将其扩展到16位乃至更高位数,首先必须将位数超过8位的运算数由低到高拆成若干个八位二进制数进行运算,还需要一个模块来储存各次运算的结果、进借位等信息,最后由这些结果进行综合形成最终运算结果。但是就ALU模块本身来说,它只需完成七种运算即可。

代码如下:

module ALU(en,data_a,data_b,CS,carry_in,S,zero,carry_out);

input [7:0] data_a;

input [7:0] data_b;

input [2:0] CS;

inputcarry_in;

input en;

outputreg [7:0] S=8'b00000000;

outputreg zero=1'b0;

outputregcarry_out=1'b0;

reg [15:0] middle=16'b0000000000000000;

reg [7:0] s=8'b00000000;

always @(en)

begin

case (CS)

3'b001: //与

begin

S=data_a&data_b;

carry_out=1'b0;

if (S==8'b00000000)

begin

zero=1'b1;

end

else

begin

zero=1'b0;

end

3'b010: //或

begin

S=data_a | data_b;

carry_out=1'b0;

if (S==8'b00000000)

begin

zero=1'b1;

end

else

begin

zero=1'b0;

end

end

3'b011: //不带进位加begin

middle=data_a+data_b;

S=middle[7:0];

if (middle>8'b11111111)

begin

carry_out=1'b1;

end

else

begin

carry_out=1'b0;

end

if (S==8'b00000000)

begin

zero=1'b1;

end

else

begin

zero=1'b0;

end

end

3'b100: //不带借位减begin

if (data_a>=data_b)

begin

S=data_a-data_b;

carry_out=1'b1;

end

else

S=data_b-data_a;

carry_out=1'b0;

end

if (S==8'b00000000)

begin

zero=1'b1;

end

else

begin

zero=1'b0;

end

end

3'b101: //带进位加begin

middle=data_a+data_b+carry_in;

S=middle[7:0];

if (middle>8'b11111111)

begin

carry_out=1'b1;

end

else

begin

carry_out=1'b0;

end

if (S==8'b00000000)

begin

zero=1'b1;

end

else

begin

zero=1'b0;

end

end

3'b110: //带借位减begin

if (data_a>=(data_b+~carry_in))

begin

S=data_a-data_b-~carry_in; carry_out=1'b1;

end

else

begin

S=data_b+~carry_in-data_a;

carry_out=1'b0;

end

if (S==8'b00000000)

begin

zero=1'b1;

end

else

begin

zero=1'b0;

end

end

3'b111: //比较

begin

if (data_a

begin

S=8'b00000001;

carry_out=1'b0;

zero=1'b0;

end

else

begin

S=8'b00000000;

carry_out=1'b0;

zero=1'b1;

end

end

endcase

end

endmodule

(3)仿真波形

仿真验证ALU模块的运算功能,波形如下图所示:

对两个运算数11101101和10010011分别进行了七种运算,可见,当输入的运算符发生变化时,计算结果也马上发生变化,这是因为ALU是组合电路,不需要时钟信号,因此输入端的任何

改变都会立即反映在输出上。

4.设计标志寄存器模块

(1)任务要求

标志寄存器与寄存器组中的寄存器功能相似,均可用于存放信息,不同的是标志寄存器用于存放算术、逻辑运算过程和结果的一些标志信息,如进/借位Carry、零标志位Zero等。一般的标志寄存器对其读/写操作均可控,为简化设计,本设计中的标志寄存器只设计对写操作进行控制,其封装结构图参见图2-8。

图2-8 标志寄存器模块封装结构图

标志寄存器模块信号说明:

输入信号:

Flagin[7..0]:写人标志寄存器的数据,如Carry、Zero等信息,

每个标志占1位,共3位,其他5位暂时无用。

CLK:写时钟脉冲信号,上升沿时,将Flagin上的数据写入Flagout中

Reset:异步复位信号,对标志寄存器内容清零flagout[7..0]=0

输出信号:

flagout[7..0]:标志寄存器的数据

(2)任务实现

按照任务要求所述,与寄存器组模块类似,可以用MegaWizard创建一个八位D触发器,加上异步清零端即可。具体过程不再赘述。

(3)仿真波形

已在寄存器组模块进行过类似仿真,略。

5.设计控制器单元

(1)任务要求

控制器单元的模块封装图见2-9,控制器单元输出控制信号及其产生条件见表2-3,控制器单元的输入信号为指令中的操作码OP和ALU的zero零标志信号,输出为各种控制信号。可根据表2-3写出各控制信号的逻辑表达式,进而设计控制器单元的逻辑电路。

图2-9 控制器单元封装结构图

单片机第一次实验报告

单片机第一次实验报告 姓名: 学号: 班级:

实验报告 课程名称:微机原理与接口技术指导老师:学生姓名:学号:专业:自动化日期:20140327 地点: 实验一实验名称 1. 实验目的和要求 1.掌握keil软件和STC-ISP 软件的使用方法 2.点亮第一个发光管. 3.点亮1,3,5,7发光管 4.尝试让第一个发光管闪烁. 2. 主要仪器设备 1.一台pc机 2.一个单片机开发板 点亮第一个发光管. #include void main () { P1 &=0xFE; while(1) } 点亮1,3,5,7发光管 void main () { P1 &=0xAA;

while(1) } 尝试让第一个发光管闪烁. #include #define uint unsigned int #define uchar unsigned char void delay_ms(uint timer) { uchar j = 0; while(timer--) { for(j = 124;j>0;j--) { ; } } } void main (void) { while(1) { P1 &=0xFE; delay_ms(100); P1 |=0x01; delay_ms(100); } }

实验心得:这第一次试验,没准备,所以这次实验一上机啥都不会,也不知道该做啥,在同学的帮助下安装了程序和驱动,代码也是问同学才明白的。第一个代码,通过很顺利,但是测试第二个代码的时候电脑无法连接板子,后来重新安装了驱动才就能连接了。虽然感觉还是好多不懂的,不过还是学到了一些东西,有一点成就感。

微机原理及应用试题库(附答案)

《微机原理及应用》试题库 1. 8086和8088的引脚信号中, D 为地址锁存允许信号引脚。 A.CLK B.INTR C.NMI D.ALE 2. 下面的哪项是有效标识符: B A . 4LOOP: B. DELAYIS: C. MAIN A/B: D. GAMA$1: 3. 如图所示的三态输出电路,当 A 时,V B≈V DD。 A. E(ENABLE)=1, A=1 B. E(ENABLE)=1, A=0 C. E(ENABLE)=0, A=1 D. E(ENABLE)=0, A=0 4. 设(SS)=2000H,(SP)=0100H,(AX)=2107H,则执行指令PUSH AX 后,存放数据21H的物理地址是 D 。 A. 20102H B. 20101H C. 200FEH D. 200FFH 5. 汇编语言中,为了便于对变量的访问, 它常常以变量名的形式出现在程序中, 可以认为它是存放数据存储单元的 A 。 A.符号地址B.物理地址C.偏移地址D.逻辑地址 6. 下列四个寄存器中,不能用来作为间接寻址方式的寄存器是 A 。 A. CX B. BX C. BP D. DI (C)7. 执行下列程序段: MOV AX,0 MOV BX,1 MOV CX,100 AA:ADD AX,BX INC BX LOOP AA HLT 执行后的结果:(AX)= ,(BX)= 。 A. 5050,99 B. 2500,100 C. 5050,101 D. 2550,102 8. 假设V1和V2是用DW定义的变量,下列指令中正确的是 A 。 A.MOV V1, 20H B.MOV V1, V2 C.MOV AL, V1 D.MOV 2000H, V2 9. – 49D的二进制补码为 A 。

吉大18年9月《微机原理及应用》作业考核试题

------------------------------------------------------------------------------------------------------------------------------ (判断题) 1: 8086CPU在读/写总线周期的T3状态结束对READY线采样,如果READY为低电平,则在T3与T4状态之间插入等待状态TW。( ) A: 错误 B: 正确 正确答案: (判断题) 2: A/D转换器是将数字量变成模拟量的器件() A: 错误 B: 正确 正确答案: (判断题) 3: 8086/8088CPU的复位后开始执行的第一条指令的地址为FFFFH。() A: 错误 B: 正确 正确答案: (判断题) 4: 采用直接寻址输入/输出指令的最大端口地址为0FFH。() A: 错误 B: 正确 正确答案: (判断题) 5: DMA控制器8237A现行字节数寄存器的值减到0时,终止计数。() A: 错误 B: 正确 正确答案: (多选题) 1: 常用的输入设备有( ) A: 键盘 B: 鼠标 C: 触摸屏 D: 显示器 正确答案: (多选题) 2: 下列指令中,( )的源操作数采用的是直接寻址。 A: MOV AL,[23H] B: MOV DX,AX C: MOV AL,0FFH D: IN AL,23H 正确答案: (多选题) 3: 若需将数据段中的源串传送到附加段的目的串,可用的指令有( ) A: MOV B: MOVS C: SCAS D: LODS和STOS 正确答案: (单选题) 1: 8086CPU在执行MOVAL,[BX]指令的总线周期内,若BX存放的内容为1011H,则BHE和A0的状态是()。 A: 0,0 B: 0,1

微机原理及应用实验(题目)

微机原理及应用实验 实验一开发环境的使用 一、实验目的 掌握伟福开发环境的使用方法,包括源程序的输入、汇编、修改;工作寄存器内容的查看、修改;内部、外部RAM内容的查看、修改;PSW中个状态位的查看;机器码的查看;程序的各种运行方式,如单步执行、连续执行,断点的设置。二、实验内容 在伟福开发环境中编辑、汇编、执行一段汇编语言程序,把单片机片内的 30H~7FH 单元清零。 三、实验设备 PC机一台。 四、实验步骤 用连续或者单步的方式运行程序,检查30H-7FH 执行前后的内容变化。五、实验思考 1.如果需把30H-7FH 的内容改为55H,如何修改程序? 2.如何把128B的用户RAM全部清零? 六、程序清单 文件名称:CLEAR.ASM ORG 0000H CLEAR: MOV R0,#30H ;30H 送R0寄存器 MOV R6,#50H ;50H 送R6寄存器(用作计数器) CLR1: MOV A,#00H ;00 送累加器A MOV @R0,A ;00 送到30H-7FH 单元 INC R0 ;R0 加1 DJNZ R6,CLR1 ;不到50H个字节,继续 WAIT: LJMP WAIT END 实验二数据传送 一、实验目的 掌握MCS-51指令系统中的数据传送类指令的应用,通过实验,切实掌握数据传送类指令的各种不同的寻址方式的应用。 二、实验内容 1.编制一段程序,要求程序中包含7中不同寻址方式。 2.编制一段程序,将片内RAM30H~32H中的数据传送到片内RAM38H~3AH中。 3.编制一段程序,将片内RAM30H~32H中的数据传送到片外RAM1000H~1002H 中。 4.编制一段程序,将片内RAM40H~42H中的数据与片外RAM2000H~2002H中的数据互换。 三、实验设备 PC机一台。

《MATLAB与数值分析》第一次上机实验报告

电子科技大学电子工程学院标准实验报告(实验)课程名称MATLAB与数值分析 学生姓名:李培睿 学号:2013020904026 指导教师:程建

一、实验名称 《MATLAB与数值分析》第一次上机实验 二、实验目的 1. 熟练掌握矩阵的生成、加、减、乘、除、转置、行列式、逆、范数等运算 操作。(用.m文件和Matlab函数编写一个对给定矩阵进行运算操作的程序) 2. 熟练掌握算术符号操作和基本运算操作,包括矩阵合并、向量合并、符号 转换、展开符号表达式、符号因式分解、符号表达式的化简、代数方程的符号解析解、特征多项式、函数的反函数、函数计算器、微积分、常微分方程的符号解、符号函数的画图等。(用.m文件编写进行符号因式分解和函数求反的程序) 3. 掌握Matlab函数的编写规范。 4、掌握Matlab常用的绘图处理操作,包括:基本平面图、图形注释命令、 三维曲线和面的填充、三维等高线等。(用.m文件编写在一个图形窗口上绘制正弦和余弦函数的图形,并给出充分的图形注释) 5. 熟练操作MATLAB软件平台,能利用M文件完成MATLAB的程序设计。 三、实验内容 1. 编程实现以下数列的图像,用户能输入不同的初始值以及系数。并以x, y为坐标显示图像 x(n+1) = a*x(n)-b*(y(n)-x(n)^2); y(n+1) = b*x(n)+a*(y(n)-x(n)^2) 2. 编程实现奥运5环图,允许用户输入环的直径。 3. 实现对输入任意长度向量元素的冒泡排序的升序排列。不允许使用sort 函数。 四、实验数据及结果分析 题目一: ①在Editor窗口编写函数代码如下:

微机原理及应用实验

实验报告1 实验项目名称:I/O地址译码;简单并行接口同组人: 实验时间:实验室:微机原理实验室K2-407 指导教师:胡蔷 一、实验目的: 掌握I/O地址译码电路的工作原理,简单并行接口的工作原理及使用方法。 二、预备知识: 输入、输出接口的基本概念,接口芯片的(端口)地址分配原则,了解译码器工作原理及相应逻辑表达式,熟悉所用集成电路的引线位置及各引线用途;74LS245、74LS373的特性及作用。 三、实验内容245输入373输出 使用Protues仿真软件制作如下电路图,使用EMU8086编译软件编译源程序,生成可执行文件(nn . exe),在Protues仿真软件中加载程序并运行,分析结果。 编程实现:读8个开关的状态,根据输入信号控制8个发光二极管的亮灭。 图1-1 245输入373输出 四、程序清单

五、实验结果 六、结果分析 七、思考题: 1、如果用74LS373作输入接口,是否可行?说明原因;用74LS245作输出接口,是否可行?说明原因。

实验报告2 实验项目名称:可编程定时器/计数器;可编程并行接口同组人: 实验时间:实验室:微机原理实验室K2-407 指导教师:胡蔷 一、实验目的: 掌握8253的基本工作原理和编程应用方法。掌握8255的工作原理及使用方法。 二、预备知识: 8253的结构、引脚、控制字,工作方式及各种方式的初始化编程及应用。 8255的内部结构、引脚、编程控制字,工作方式0、1、2的区别,各种方式的初始化编程及应用。 三、实验内容: ⑴8253输出方波 利用8253的通道0和通道1,设计产生频率为1Hz的方波。设通道0的输入时钟频率为2MHz,8253的端口地址为40H,42H,44H,46H。通道0的输入时钟周期0.5μs,其最大定时时间为:0.5μs×65536 = 32.768ms,要产生频率为1Hz(周期= 1s)的方波,利用;一个通道无法实现。可用多个通道级连的方法,将通道0的输出OUT0作通道1的输入时钟信号。设通道0工作在方式2(频率发生器),输出脉冲周期= 10 ms,则通道0的计数值为20000(16位二进制)。周期为4 ms的脉冲作通道1的输入时钟,要求输出端OUT1输出方波且周期为1s,则通道1工作在方式3(方波发生器),计数值为100(8位;二进制)。硬件连接如图2-1。

微机原理与应用作业答案

1. 若二进制数为 ,则该数的十进制表示为( B : )。 2. 为二进制补码,该数的真值为( C +58 )。 3. 01000110为二进制补码, 该数的真值为( A +70 )。 4. 8位二进制数的原码表示范围为( C -127 ~ +127 )。 5. n 位二进制数的原码表示范围为( C 12~1211-++---n n )。 6. 8位二进制数的反码表值范围为( C -127~ +127 )。 7. n 位二进制数的反码表示范围为( C 12~1211-++---n n )。 8. 8位二进制数的补码表值范围为( B -128 ~ +127 )。 9. n 位二进制数的补码表示范围为( B 12~211-+---n n )。 10. 8位二进制数的无符号数表值范围为( A 0 ~ 255 )。 11. 决定计算机主要性能的是( A 中央处理器 )。 12. M I P S 用来描述计算机的运算速度,含义是( C 每秒执行百万条指令 )。 13. 完整的计算机系统应包括( D 硬件设备和软件系统)。 14. 计算机硬件主要由C P U 、内存、I /O 设备和( B 三总线 )组成。 15. 包含在8086C P U 芯片内部的是( A 算术逻辑单元)。 16. 在机器数( B 补码)中,零的表示形式是惟一的。 17. 程序计数器P C 的作用是( A 保存将要执行的下一条指令的地址)。 18. 8086当前被执行的指令存放在( D CS :IP )。 19. 运算器执行两个补码表示的整数加法时,产生溢出的正确叙述为( D 相加结果的符号位与两同号加数的符号位相反则产生溢出)。 20. 8086中,存储器物理地址形成算法是( B 段地址左移4位/16/10H+偏移地址 )。 21. 下列逻辑地址中对应不同的物理地址的是( 03E0H :0740H )。 A :0400H :0340H B :0420H :0140H D :03C0H :0740H 22. 存储字长是指( B 存储单元中二进制代码个数)。 23. 8086系统中,每个逻辑段的最多存储单元数为( C 64KB )。 24. 若某C P U 具有64G B 的寻址能力,则该C P U 的地址总线宽度为( 36 )。 25. 下列数中最小的数是( A (1011011)2 )。 26. 指令队列具有( D 暂存预取指令 )的作用。 27. 指令队列工作方式为( A 先进先出 )。 28. 堆栈存储器存取数据的方式是( C 先进后出)。 29. 8086系统中,一个栈可用的最大存储空间是( B 64KB )。 30. 8086C P U 有( C 8 )个8位的通用寄存器。 31. 8086C P U 共有( D 14)个16位寄存器。 32. 某补码表示的8位二进制整数由5个1和3个0组成,则其可表示的最小值是 ( A -113 )。 33. 16个字数据存储区的首址为70A 0H :D D F 6H ,末字单元的物理地址为( C :7E814H )。 34. 8个字节数据存储区的首址为70A 0H :D D F 6H ,末字节单元的物理地址为( D :7E7FDH )。 35. 用M B 表示存储器容量时,1M B 等于( C 220个字节)。 1. 8086与外设进行数据交换时,常会在( T 3 )后进入等待周期T w 。 2. 下列说法中属于最小工作模式特点的是( A CPU 提供全部的控制信号)。 3. 下列说法中属于最大工作模式特点的是( C 需要总线控制器8288 )。 4. 8086 C P U 中,需要( B 2 )片数据总线收发器芯片8286。 5. 8086C P U 中,需要( C 3 )片地址锁存器芯片8282。 6. 从8086存储器中读取非规则字需要( B 2 )个总线周期。 7. 从8086存储器中读取奇地址存储的字节需要( A :1 )个总线周期。 8. 下列说法中,不正确的是( C 栈底是堆栈地址较小的一端)。 9. 在8086系统中,用控制线( D M/IO )实现对存储器和I /O 接口的选择。 10. C P U 对存储器访问时,地址线和数据线的有效时间关系为( B 地址线先有效)。 11. 8086 C P U 共有( D 21 )根分时复用总线。

matlab第一次实验报告

Matlab第一次实验报告 2012029010010 尹康 1. 编程实现以下数列的图像,用户能输入不同的初始值以及系数。并以x,y为坐标显示图像 x(n+1) = a*x(n)-b*(y(n)-x(n)^2); y(n+1) = b*x(n)+a*(y(n)-x(n)^2) 程序代码: n=input('input the number of pionts:'); a=input('input a:'); b=input('input b:'); x=[]; y=[]; x(1)=input('input x1:'); y(1)=input('input y1:'); %输入点数、初始值以及系数for i=2:n x(i)=a*x(i-1)-b*(y(i-1)-x(i-1)^2); y(i)=a*x(i-1)+b*(y(i-1)-x(i-1)^2); %根据已输入的数据进行迭代end figure;plot(x,y,'linewidth',2) axis equal %横纵坐标等比例 text(x(1),y(1),'1st point') %标记初始点 运行结果:

心得体会及改进:在输入某些数据时,所绘曲线可能是一条折线(如:n=5,a=b=x1=1,y1=2)甚至只有一个点(如:n=5,a=b=x1=y1=1),此时可能出现曲线与坐标轴重合或无法看到点的情况,为了更清晰地展现曲线,可以使线宽适当加宽并标记初始点。 2.编程实现奥运5环图,允许用户输入环的直径。 程序代码: 函数circle: %在指定的圆心坐标处,用指定颜色、宽度的线条绘出指定半径、圆心角的弧 function f=circle(r,x,y,color,linw,alp1,alp2) alp=linspace(alp1,alp2); X=r*cos(alp)+x; Y=r*sin(alp)+y; plot(X,Y,color,'linewidth',linw) end 主程序代码: r=input('input r:');

微机原理及应用(广西大学)

微机原理期末复习要点(必看) 一、填空题(每空1分,共30分) 1、CPU访问存储器时,在地址总线上送出的地址称为物理地址。 2、80X86系统中,执行指令PUSH AX后,SP= SP-2 ;若执行指令POP AX 后,SP= SP+2 。 3、指令“MOV AX,2000H”源操作数的寻址方式为立即数 ;指令“MOV AX,[BX+SI+6]”源操作数的寻址方式为带偏移量的基础加变址。 4、设(DS)=24EOH,(SS)=2410H,(ES)=2510H,(DI)=0206H,则指令“MOV AX,[DI+100H]”源操作数的有效地址为 0306H ,物理地址为 25106H 。 5、80486可访问两个独立的地址空间,一个为I/O地址空间,其大小为 64K 字节。 6、执行指令“XOR AX,AX”后,标志位ZF的值为 1 。 7、若(AL)=10011000B,(BL)=01100111B,则执行指令“ADD AL,BL”后,(AL)=11111111B;执行指令“AND AL,BL”后,(AL)= 0 。 8、可屏蔽中断从CPU的 INTR 引脚进入,只有当中断允许标志IF为 1 时,该中断才能得到响应。 9、中断向量表存放在从 00000H 至 003FFH 存储空间中。 10、在实地址方式下,中断类型号为20H的中断所对应的中断向量,存放在内存 从 00080H 开始的四个连续字节单元中,若这四个字节单元的内容由低地址到 高地址依次为00H,50H,00H,60H,则中断服务程序的入口地址 65000H 。 11、80X86的I/O指令中,要寻址的16位的端口地址存放在 DX 中。 12、现要用6116静态RAM芯片构成8K×32位的存储器,此种芯片共需16 片。 13、8255A在“方式1输出”与外设之间的一对"握手"信号是 ACK和OBF 。 14、由实地址方式上,由逻辑地址获得物理地址的计算公式为:

《微机原理及应用》作业试题【精品范文】

《微机原理及应用》作业试题 《微机原理及应用》作业试题 一、判断题 (共 5 道试题,共 20 分) 1.8086/8088CPU的复位后开始执行的第一条指令的地址为FFFFH。() A.错误 B.正确 2.采用直接寻址输入/输出指令的最大端口地址为0FFH。 () A.错误 B.正确 3.若各中断源的优先级是一样的,则可用自动循环优先级来实现。() A.错误

B.正确 4.DMA控制器8237A现行字节数寄存器的值减到0时,终止计数。() A.错误 B.正确 5.ROM必须定时刷新,否则所存信息就会丢失。() A.错误 B.正确 二、多选题 (共 3 道试题,共 12 分) 1.常用的输入设备有( ) A.键盘

B.鼠标 C.触摸屏 D.显示器 2.可以实现在数据段中保留10H个字节单元的指令有?( )。 A.DW 08H?DUP(?) B.DB 10H?DUP(?) C.DB 8 DUP(2 DUP(?)) D.DD 4 DUP(?) 3.8086/8088?CPU响应硬中断NMI和INTR时,相同的条件是?( )。 A.允许中断 B.当前指令执行结束

C.CPU工作在最大组态下 D.不处于DMA操作期间 三、单选题 (共 17 道试题,共 68 分) 1.地址译码器的输入端应接到( )上。 A.控制总线 B.数据总线 C.地址总线 D.外部总线 2.串行异步通信传输的主要特点是( ) A.通信双方不必同步 B.每个字符的发送是独立的

C.字符之间的传送时间长度应相同 D.字符发送速率由波特率决定 3.8086系统中内存储器地址空间为1M,而在进行I/O读写是,有效的地址线是() A.高16位 B.低16位 C.高8位 D.低8位 4.8086CPU在执行MOVAL,[BX]指令的总线周期内,若BX 存放的内容为1011H,则BHE和A0的状态是()。 A.0,0 B.0,1

微机原理及应用实验报告81487

实 验 报 告 课 程 名 称 实 验 名 称 实 验 日 期 学 生 专 业 学 生 学 号 学 生 姓 名 教 师 姓 名 成 绩 南京理工大学机械工程学院 微机原理及应用 实验1 DEBUG 操作实验 实验2 汇编程序设计实验 实验3 8253定时/计数器实验 实验4 8255 并行接口实验 年 月 日 至 年 月 日

实验一DEBUG命令及其操作 一、实验目的 1.熟练掌握debug的常用命令,学会用debug来调试程序。 2.深入了解数据在存储器中的存取方法及堆栈中数据的压入与弹出。 3.掌握各种寻址方法以及简单指令的执行过程。 二、实验要求 1.实验前要作好充分准备,包括汇编程序清单、调试步骤、调试方法以及对程序结果的分析等。 2.本实验要求在PC机上进行。 3.本实验只要求在DEBUG调试状态下进行,包括汇编程序,调试程序,执行程序。三、实验内容 ●实验内容1:学习用DEBUG调试工具进行源程序的输入、汇编、调试和执行。 实验报告要求: 1.写出运行结果; 2.小结debug常用命令及使用体会 答:1.原文已给出(略) 2.a 汇编 d显示内存单元内容 e修改单元内存内容 g执行命令 t单步(或多步)调试 n指定文件路径文件名(含扩展名) u反汇编 r查看寄存器值及修改 l加载程序 w写盘命令 体会:提升学习热情和动手能力有助于理解代码执行过程 ●实验内容2 设AX=3000H,BX=5000H,请编一程序段将AX的内容和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。 实验报告要求: 1.写出完成上述功能的程序段; 2.单步执行,并记录寄存器AX, BX及堆栈指针SP的值 答: A100 Mov ax,3000 ;ax:3000 bx:0000 sp:ffee Mov bx,5000 ;ax:3000 bx:5000 sp:ffee Push ax ;ax:3000 bx:5000 sp:ffec

微型计算机原理及应用课后习题解答

李伯成《微机原理》习题第一章 本章作业参考书目: ①薛钧义主编《微型计算机原理与应用——Intel 80X86系列》 机械工业出版社2002年2月第一版 ②陆一倩编《微型计算机原理及其应用(十六位微型机)》 哈尔滨工业大学出版社1994年8月第四版 ③王永山等编《微型计算机原理与应用》 西安电子科技大学出版社2000年9月 1.1将下列二进制数转换成十进制数: X=10010110B= 1*27+0*26+0*25+1*24+0*23+1*22+1*21 +0*21 =128D+0D+0D+16D+0D+0D+4D+2D=150D X=101101100B =1*28+0*27+1*26+1*25+0*24+1*23+1*22+0*21+0*20 =256D+0D+64D+32D+0D+16D+4D+0D=364D X=1101101B= 1*26+1*25+0*24+1*23+1*22+0*21 +1*20 =64D+32D+0D+8D+4D+0D+1D=109D 1.2 将下列二进制小数转换成十进制数: (1)X=0.00111B= 0*2-1+0*2-2+1*2-3+1*2-4+1*2-5= 0D+0D+0.125D+0.0625D+0.03125D=0.21875D (2) X=0.11011B= 1*2-1+1*2-2+0*2-3+1*2-4+1*2-5= 0.5D+0.25D+0D+0.0625D+0.03125D=0.84375D (3) X=0.101101B= 1*2-1+0*2-2+1*2-3+1*2-4+0*2-5+1*2-6= 0.5D+0D+0.125D+0.0625D+0D+0.015625D=0.703125D 1.3 将下列十进制整数转换成二进制数: (1)X=254D=11111110B (2)X=1039D=10000001111B (3)X=141D=10001101B 1.4 将下列十进制小数转换成二进制数: (1)X=0.75D=0.11B (2) X=0.102 D=0.0001101B (3) X=0.6667D=0.101010101B 1.5 将下列十进制数转换成二进制数 (1) 100.25D= 0110 0100.01H (2) 680.75D= 0010 1010 1000.11B 1.6 将下列二进制数转换成十进制数 (1) X=1001101.1011B =77.6875D

并行计算第一次实验报告

并行计算上机实验报告题目:多线程计算Pi值 学生姓名 学院名称计算机学院 专业计算机科学与技术时间

一. 实验目的 1、掌握集群任务提交方式; 2、掌握多线程编程。 二.实验内容 1、通过下图中的近似公式,使用多线程编程实现pi的计算; 2、通过控制变量N的数值以及线程的数量,观察程序的执行效率。 三.实现方法 1. 下载配置SSH客户端 2. 用多线程编写pi代码 3. 通过文件传输界面,将文件上传到集群上 4.将命令行目录切换至data,对.c文件进行编译 5.编写PBS脚本,提交作业 6.实验代码如下: #include

#include #include #include #include #include static double PI=0; static int N=0; static int numOfThread=0; static int length=0; static int timeUsed=0; static int numOfThreadArray[]={1,2,4,6,8,10,12,14,16,20,24,30}; static int threadArraySize=12; static int nTime=4; static int repeatTime=30; static double totalTime=0; struct timeval tvpre, tvafter; pthread_mutex_t mut; clockid_t startTime,endTime;

微机原理及应用 上机实验报告2 数据传送

课程名称:_________微机原理及应用___________指导老师:_____钟崴_______成绩:__________________ 实验名称:_________数据传送___________实验类型:________________同组学生姓名:__________ 一、实验目的和要求(必填)二、实验内容和原理(必填) 三、主要仪器设备(必填)四、操作方法和实验步骤 五、实验数据记录和处理六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求(必填) 掌握MCS-51指令系统中的数据传送类指令的应用,通过实验,切实掌握数据传送类指令的各种不同的寻址方式的应用。 二、实验内容和原理(必填) 1.编制一段程序,要求程序中包含7中不同寻址方式。 2.编制一段程序,将片内RAM30H~32H中的数据传送到片内RAM38H~3AH中。 3.编制一段程序,将片内RAM30H~32H中的数据传送到片外RAM1000H~1002H中。 4.编制一段程序,将片内RAM40H~42H中的数据与片外RAM2000H~2002H中的数据互换。 三、主要仪器设备(必填) PC机一台。 四、操作方法和实验步骤 逐段编制程序,汇编无误后,用连续或者单步的方式运行程序,检查程序的运行结果,看是否达到预期的效果。 五、程序清单 1. ORG 0000H CLEAR MOV R0,#30H ;间接寻址 MOV A,#40H ;立即寻址 MOV @R0,A ;间接寻址 MOV A,30H ;直接寻址 MOV DPTR,#0100H ;间接寻址 MOV A,#36H MOVX @DPTR,A MOV R0,#50H ;立即寻址 MOV A,#10 MOVC A,@A+DPTR ;变址寻址 END

计算机组成原理上机实验报告

《计算机组成原理实验》课程实验报告 实验题目组成原理上机实验 班级1237-小 姓名 学号 时间2014年5月 成绩

实验一基本运算器实验 1.实验目的 (1)了解运算器的组成原理 (2)掌握运算器的工作原理 2.实验内容 输入数据,根据运算器逻辑功能表1-1进行逻辑、移位、算术运算,将运算结果填入表1-2。 表 1-1运算器逻辑功能表 运算类 A B S3 S2 S1 S0 CN 结果 逻辑运算65 A7 0 0 0 0 X F=( 65 ) FC=( ) FZ=( ) 65 A7 0 0 0 1 X F=( A7 ) FC=( ) FZ=( ) 0 0 1 0 X F=( ) FC=( ) FZ=( ) 0 0 1 1 X F=( ) FC=( ) FZ=( ) 0 1 0 0 X F=( ) FC=( ) FZ=( ) 移位运算0 1 0 1 X F=( ) FC=( ) FZ=( ) 0 1 1 0 0 F=( ) FC=( ) FZ=( ) 1 F=( ) FC=( ) FZ=( ) 0 1 1 1 0 F=( ) FC=( ) FZ=( ) 1 F=( ) FC=( ) FZ=( ) 算术运算 1 0 0 0 X F=( ) FC=( ) FZ=( ) 1 0 0 1 X F=( ) FC=( ) FZ=( ) 1 0 1 0X F=( ) FC=( ) FZ=( ) 1 0 1 0X F=( ) FC=( ) FZ=( ) 1 0 1 1 X F=( ) FC=( ) FZ=( ) 1 1 0 0 X F=( ) FC=( ) FZ=( ) 1 1 0 1 X F=( ) FC=( ) FZ=( ) 表1-2运算结果表

微机原理及应用试题

名姓 号学 级班 系 院学 扬州大学试题纸 (2009 —2010学年第1学期) 广陵学院07班(年)级课程微机原理及应用(A)卷 题目-一一-——二■——三四五总分 得分 阅卷人 分 ) 1 得分阅卷人审核人、选择题 (20%,每题 1. 以程序存储和程序控制为基础的计算机结构提出者是(B ) A.布尔 B. 冯?诺依曼 C.图灵 D. 帕斯卡尔 2. 十进制数95转换成二进制数是(D ) A.10010101 B.01100101 C. 0100110 D.01011111 3.大写字母C的ASCII码是(C ) A. 11001100B B. 00001100B C. 01000011B D.01000111B 4?在微机中,主机和高速硬盘进行数据交换,一般采用的方式是(D ) A.程序直接控制方式 B. 程序中断控制方式 C.无条件传送方式 D. DMA 方式 5?将寄存器AX的内容求反的正确指令是(C ) A. NEG AX B. CMP AX,0FFFFH C. NOT AX D. CMP AX , AX 6.指令MOV ARRAY[DI], DX 源操作数的寻址方式是(B ) A.变址寻址 B. 寄存器寻址 C.基址寻址 D. 基址变址寻址 7. 8086/8088 响应不可屏蔽中断时,其中断类型号是(A ) A.由CPU自动产生 B. 从外设取得 C.由指令INT给出 D. 由中断控制器提供 8.8086指令队列的长度是(C ) A. 4个字节 B.5 个字节 C.6 个字节 D.8 9.在最小模式下,CPU从外设读取数据操作, M / IO、WR、 个字节 RD信号的状态依次为(A ) A. 0 , 1, 0 B. 0 ,三态,0 C. 0 , 0, 1 D. 1 , 1, 0 10.在8086系统中,CPU被启动后,IP及四个段寄存器的初始状态是 (D )

微机原理与应用实验报告

微机原理及应用实验报告 班级:机械1301班 :黄佳清 学号:0801130117 座位号: 中南大学机电工程学院

实验一单片机仿真开发机操作和MCS-51指令系统应用 一.实验目的 1、熟悉MCS-51单片机仿真开发机和开发调试软件的操作使用和调整; 2、学会编写和输入汇编语言源程序、对输入的源程序进行汇编; 3、掌握程序的调试和运行的各种方法。 三.实验容及步骤(完成分值:60分) 本实验秩序运行Keil uVersion2程序,设置为keil为纯软件仿真 1.新建工程项目 2.设置工程文件参数 3.编写新程序事例 4.调试程序直至能够运行出结果。 四.实验程序 AJMP MAIN ORG 0030H MAIN: MOV R0,#20H MOV R2,#0FH MOV A,#00H A1: MOV R0,A INC R0 INC A DJNZ R2,A1 MOV R0,#20H ;暂停,观察并记录! MOV DPTR,#7000H MOV R2,#0FH A2: MOV A,R0 MOVX DPTR,A INC R0 INC DPTR DJNZ R2,A2 MOV R0,#030H ;断点,观察并记录! MOV DPTR,#7000H MOV R2,#0FH A3: MOVX A,DPTR MOVX R0,A INC R0 INC DPTR DJNZ R2,A3 DO: LJMP DO END ;部存储器数据块赋值,搬运数据块到外部存储器,再搬运回部数据存储器。 五、附加题 1.将光标移到想要暂停的地方,MOV R0,#20H所在行,选择“执行到光

2.在MOV R0,#0A0H行设置断点,全速执行,暂停后观察并记录以下单元容 3.

微机原理及应用

《微机原理及应用》 实训指导书 山东科技大学泰山科技学院

目 录 一、实训性质 (1) 二、实训目标 (1) 三、实训基本要求 (1) 四、实训过程要求 (1) 五、实训题目 (2) 实训一 学生成绩统计 (2) 实训二 打字游戏 (3) 实训三 乒乓球比赛游戏机 (3) 实训四 交通灯控制 (4) 实训五 反应测试仪 (5) 实训六 电子琴 (5) 实训七 猜数字游戏 (6) 实训八 微秒计时器 (6) 实训九 参数可调波形发生器 (6) 实训十 模拟电梯 (7) 实训十一 多通道温度采集与显示系统 (8) 试验十二 计算机串行通信接口的设计与应用 (8) 实训十三 流水线模拟监视器 (8) 实训十四 数据传送显示 (9)

一、实训性质 《微机原理及应用》实训教学是学生在完成《微机原理及应用》理论学习之后,为培养学生 的动手能力而必须完成的实践性教学环节。在进行本教学环节之前,学生应具备《微机原理及应 用》的理论基础知识。 二、实训目标 《微机原理及应用》实训的教学让学生通过接触客观实际,来了解和认识所学的专业知识, 让学生了解和掌握所学知识在客观实际中的应用,通过实训课可以使学生了解解决实际问题的过 程,并能亲自动手完成相关题目设计。让学生对实际课题设计的过程和方法有个很好的认识,又 能亲自动手来锻炼提高专业技能,把所学的理论知识与实际能力紧密的结合在一起。 在进行实训的同时,教师应培养学生具有初步的科研意识,培养学生查找资料、运用设计资 料,完成工程问题的能力,为后继课程的学习打下坚实的基础。 三、实训基本要求 为检验学生在原理与接口综合应用方面分析问题与解决问题的能力,同时亦给学生提供更 多、更好的训练机会,本指导书给出了微机硬件应用综合测试题。大部分测试题,至少需要选用 PC 总线微机实验装置中 3 部分以上的硬件电路(还需将它们有机组合起来)并编制相应的应用软 件。为了发挥每一个同学的创造能力,每一测试题除了题目外仅给出设计要求(又分基本要求与 进一步要求两部分)及很少的设计提示。学生可根据设计要求,选择最合适的器件,构成最有效 的硬件电路来完成。对于学有余力的学生,除了完成基本要求与进一步要求的内容外,还可对同 一题选择不同的器件(而这往往总是能做到的)构成不同的硬件电路,尽情发挥和创造。 四、实训过程要求 1.软件部分 对软件部分,建议按如下的步骤进行: (1)首先正确理解题意及题目要求,分析程序设计思想; (2)建立算法,绘制流程图; (3)再根据算法流程图编写程序;

17秋《微机原理及应用》在线作业1满分答案

17秋《微机原理及应用》在线作业1 试卷总分:100 得分:100 一、多选题 1.下面对8086CPU引脚HLDA叙述不正确的是()。 A. 总线请求信号,输入 B. 总线请求响应信号,输出 C. 中断响应信号,输出 D. 指令队列状态信号,输出 正确答案:ACD 2.在常用的I/O接口电路中,以下I/O接口芯片具有的特点是:()。 A. 计时器8253 有4个口地址,内部有三个独立的16位计数器,每个计数器具有6种工作方式,计数触发方式即可以内触发也可实现外触发。 B. 并行接口8255A有4个口地址,内部有 3 个8位I/O口,每个口既可工作于简单输入/输出方式,又可工作于选通输入/输出方式,且A口还可工作于双向输入/输出方式。 C. DMA控制器 8237 是4通道双地址DMAC,有 16 个口地址,每一通道有三种传输方式,4个通道具有固定优先或循环优先方式。 D. 串行接口 8250 是单通道异步通信控制器,有 8 个口地址,内部具有发/收双 正确答案:AD 3.8255的工作方式有(): A. 方式0即基本输入、输出 B. 方式1即选通输入,输出 C. 方式2即双向数据传送 D. 方式3,屏蔽输入输出 正确答案:ABC 4. 关于宏指令与子程序,说法不对的是()。 A. 宏指令的目标代码与子程序的目标代码都是唯一的 B. 都需要先定义,后调用 C. 执行宏指令的目标代码时与子程序时一样,都需要增加如保护、恢复现场类的额外开销 D. 宏指令的目标代码与子程序的目标代码都不是唯一的 满分:5 分 正确答案:ACD 5. 下面说法正确的是:()。 A. 8086 CPU响应8259A中断需发送两个中断响应周期。 B. 8086 CPU响应NMI中断需发送一个中断响应周期。 C. 在8086系统的中断服务程序中使用STI指令是为了实现中断嵌套。 D. 在 8086 中断系统中,CPU 响应中断过程中会自动关中断。若在中断服务程序中不使用STI指令,则中断服务结束返回到主程序,中断仍然是关闭的。 正确答案:AC

微机原理及应用实验报告

微机原理及应用实验报告标准化文件发布号:(9312-EUATWW-MWUB-WUNN-INNUL-DQQTY-

微机原理及应用实验报告 班级: 姓名: 学号: 中南大学 机电工程学院精密测控实验室

实验二软件程序设计 1.实验目的: 1、掌握MCS-51单片机指令系统及用汇编语言编程技巧; 2、了解和熟悉用MCS-51单片机仿真开发机调试程序的方法。 2.实验内容: 1、编写排序程序并上机调试通过。 已知8031内部RAM60H~69H单元中,依次存放了 FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程 将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。 2.、编写多字节加法程序并上机调试通过。 8031内部RAM20H~22H单元中,存放了3字节被加数(低字节在前),在2AH~2CH单元中存放3字节加数(低字节在前),求两数之和,并将结 果存入以20H为起始地址的区域中(低字节在前)。 3.实验设备名称、型号: 4.画出软件程序流程图,写出上机调试通过的汇编语言程序清单: 程序1、编写排序程序并上机调试通过。 已知8031内部RAM60H~69H单元中,依次存放了 FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程 将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。

解:本设计采用冒泡排序法,使用双重循环,并在内循环中进行比较如果合乎从大到小的顺序则不动,否则两两交换,这样比较下去,比较9次 后,最小的那个数就会沉底,在下一次比较时将减少一次比较次数。如 果一次比较完毕,没有发生交换,说明已经按照从大到小的顺序排列 了。则可以退出循环,结束程序。 程序结构框图和程序代码如下:

微机原理与应用

《微机原理与应用(1)》复习资料 一、填空 1、指令格式是指指令码的结构形式。通常,指令可以分为操作码和操作数两部分。 2、RST为8031的复位端,高电平有效,INC 指令的功能是自加1。 3、数据指针DPTR是一个(16)位的特殊功能寄存器,其高位字节寄存器用(DPH)表示,低位字节寄存器用(DPL)表示. 4、MOVC A,@A+DPTR指令中,源操作数在__程序_____存储区。 MOVX A,@DPTR 指令中,源操作数在____数据____存储区。 5、8031的异步通信口为全双工(单工/半双工/全双工) 6、P0口是一个 8 位漏极开路型双向I/O端口.在访问片外存储器时,它分时提供低8位地址和8位双向数据,故P0 的I/O线有地址线/数据线之称. 7、通用寄存器B是专门为乘除法设置的寄存器。在除法运算执行后,商存于累加器A 中,余数存于寄存器B 中。 8、MCS-51的堆栈只可设置在堆栈区,堆栈寄存器sp是 8 位寄存器。 9、MCS-51的I/O接口分为串行接口和并行接口两种,它是连接CPU和外设的桥梁。 10. MCS-51有 5 中断源,有 2 中断优先级,优先级由软件填写特殊功能寄存器 IP加以选择。 11、MOV A,@R0 指令对于源超作数的寻址方式是寄存器间接寻址。 12、已知fosc=12MHz, T0作为定时器使用时,其定时时间间隔为1us。 13、在MCS-51中查表时的数据表格是存放在 ROM 而不是存放在 RAM ,在编程时可以通过伪指令DB来定义。 14、8255可以扩展 3 个并行口,其中 8 条口线具有位操作功能。 二、选择题 1.单片机中的程序计数器PC用来 C 。 A.存放指令 B.存放正在执行的指令地址 C.存放下一条指令地址 D.存放上一条指令地址 2.8051单片机上电复位后,堆栈区的最大允许范围是内部RAM的 D 。 A.00H—FFH B.00H—07H C.07H—7FH D.08H—7FH 3.8051单片机的定时器T0用作定时方式时是 D 。 A.由内部时钟频率定时,一个时钟周期加1 B.由外部计数脉冲计数,一个机器周期加1 C.外部定时脉冲由T0(P3.4)输入定时 D.由内部时钟频率计数,一个机器周期加1 4.MCS-51单片机在同一级别里除INT0外,级别最高的中断源是 B 。 A.外部中断1 B.定时器T0 C.定时器T1 5.已知A=87H ,(30H)=76H,执行 XRL A,30H 后,其结果为: C 。 A.A=F1H (30H)=76H P=0 B.A=87H (30H)=76H P=1 C.A=F1H (30H)=76H P=1 D.A=76H (30H)=87H P=1 6、MCS-51单片机的堆栈区应建立在( C )。 A. 片内数据存储区的低128字节单元 B. 片内数据存储区 C.片内数据存储区的高128字节单元 D.程序存储区 7、MCS-51单片机定时器工作方式0是指的( C )工作方式。 A.8位 B.8位自动重装 C.13位 D.16位 8、当需要从MCS-51单片机程序存储器取数据时,采用的指令为( B )。 A.MOV A, @R1 B.MOVC A, @A + DPTR C.MOVX A, @ R0 D.MOVX A, @ DPTR 9.MCS-51单片机在同一级别里除INT0外,级别最高的中断源是( B )。 A.外部中断1 B.定时器T0 C.定时器T1 D.外部中断0 10.已知A=87H ,(30H)=76H,执行 XRL A,30H 后,其结果为:( C )。 A.A=F1H (30H)=76H P=0 B.A=87H (30H)=76H P=1 C.A=F1H (30H)=76H P=1 D.A=76H

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