文档库 最新最全的文档下载
当前位置:文档库 › 微机原理实验报告五

微机原理实验报告五

微机原理实验报告五
微机原理实验报告五

实验七8255输入、输出实验

1、实验要求:

利用8255可编程并行口芯片,实现输入/输出,实验中用8255PA口作输出,PB口作输入。

2、实验目的:

(1)了解8255芯片结构及编程方法。

(2)了解8255输入/输出实验方法。

3、实验电路:

8255的/CS接译码器Y2(0A000H-0AFFFH),则命令字地址为0A003H,PA口地址为0A000H,PB口地址为0B001H,PC口地址为0B002H。PA0-PA7(PA口)接L0-L7(LED发光二极管组),PB0-PB7(PB口)接K0-K7(K0-K7开关量发生器),再接上数据线和读/写信号,地址线只接A0,A1即可,还要接上RESET信号,以便8255A 可靠复位。

特别强调:8255的第七脚应接GND(地),第二十六脚应接+5V。

4.实验器材:

(1)G2010实验平台1台(2)G6W仿真器1台(3)连线若干根

(4)8255芯片1片(5)LAB8088CPU板 1 块

5、实验说明:

可编程通用接口芯片8255A有三个八位的并行I/O口,它有三种工作方式。本实验采用的是方式0:PA,PC口输出,PB口输入。方式字为82H。

6、实验步骤:

(1)使用实验平台锁进插座,如图连线,因8255片选信号为0A000H,所以,A口为0A000H、口为0A001H、C口为0A002H、命令口为0A003H。

(2)硬件测试:把G2010+G6W连PC机,在WINDOWS调试环境下点击[窗口/数据窗口

/MEMORY],以打开MEMORY数据窗口,在打开的MEMORY窗口中的0A003H地址(即8255的片选空间)上写入控制字82H,在0A000H(8255的A口)上打入55H,0AAH 等数字,LED发光二极管组对应点亮。若不是,则硬件有问题。

(3)编写程序、编译程序,用单步、断点、连续方式调试程序,排除软件错误。运行程序,直至达到本实验的要求为止。

7、实验框图:

开始

延时

置8255工作方式置8255PA

延时

开始

延时

置8255工作方式读8255PB口置8255PA口

8、器件引脚:

9、软件清单:(IN8088A\B07.ASM ) mode equ 082h ; 方式0,PA ,PC 输出,PB 输入 PortA equ 0A000h ; Port A

PortB equ 0A001h ; Port B

PortC equ 0A002h ; Port C

CAddr equ 0A003h ; 控制字地址

code segment

assume cs:code

start proc near

Start:

mov al, mode

mov dx, CAddr

out dx, al ; 输出控制字

;实验1:PortA 输出

mov al, 80H

mov cx, 08H OutA:

数据左移

; mov dx, PortA

;out dx, al ; 输出PortA

mov dx, PortC

out dx, al

shr al, 1 ; 移位

mov ah,100

call delay ; 延时

loop OutA

;实验2:PortB 输入PortA 输出

mov dx, PortB

in al, dx ; 读入PortB

mov dx, PortC

out dx, al

mov dx, PortA

out dx, al ; 输出到PortA

mov ah, 200

call delay

jmp Start

endp

delay proc near

push ax

mov al,0

push cx

mov cx,ax

loop $

pop cx

pop ax

ret

delay endp

code ends

end start

微机原理与接口技术硬件实验报告

微原硬件实验报告 班级:07118 班 学号:070547 班内序号:26 姓名:杨帆

实验一熟悉实验环境及IO的使用 一,实验目的 1. 通过实验了解和熟悉实验台的结构,功能及使用方法。 2. 通过实验掌握直接使用Debug 的I、O 命令来读写IO 端口。 3. 学会Debug 的使用及编写汇编程序 二,实验内容 1. 学习使用Debug 命令,并用I、O 命令直接对端口进行读写操作, 2.用汇编语言编写跑马灯程序。(使用EDIT 编辑工具)实现功能 A.通过读入端口状态(ON 为低电平),选择工作模式(灯的闪烁方式、速度 等)。 B.通过输出端口控制灯的工作状态(低电平灯亮) 三,实验步骤 1.实验板的IO 端口地址为EEE0H 在Debug 下, I 是读命令。(即读输入端口的状态---拨码开关的状态) O 是写命令。(即向端口输出数据---通过发光管来查看) 进入Debug 后, 读端口拨动实验台上八位拨码开关 输入I 端口地址回车 屏幕显示xx 表示从端口读出的内容,即八位开关的状态ON 是0,OFF 是 1 写端口 输入O 端口地址xx (xx 表示要向端口输出的内容)回车 查看实验台上的发光二极管状态,0 是灯亮,1 是灯灭。 2. 在Debug 环境下,用a 命令录入程序,用g 命令运行 C>Debug -a mov dx, 端口地址 mov al,输出内容 out dx, al

mov ah, 0bh int 21h or al, al jz 0100 int 20h -g 运行查看结果,修改输出内容 再运行查看结果 分析 mov ah, 0bh int 21h or al, al jz 0100 int 20h 该段程序的作用 3.利用EDIT 工具编写汇编写跑马灯程序程序 实现功能 A.通过读入端口状态(ON 为低电平),选择工作模式(灯的闪烁方式、速度等)。 B.通过输出端口控制灯的工作状态(低电平灯亮) C>EDIT 文件名.asm 录入程序 按Alt 键打开菜单进行存盘或退出 编译文件 C>MASM 文件名.asm 连接文件 C>LINK 文件名.obj 运行文件或用Debug 进行调试。 四,程序流程图

微机原理实验指导书-硬件部分(2015)

微机原理实验指导书硬件实验部分 东华大学信息学院 信息与控制实验中心 2015.12

关于微机原理硬件部分实验的说明 ●硬件实验主要分为基础实验和综合设计实验两部分。 基础实验部分每个实验需完成各自的实验报告。报告内容以每项实验的思考题内容为主,不需要抄录实验指导书提供的范例程序。报告内容具体要求为: 1、实验名称、所需设备、实验要求; 2、实验步骤简述 3、思考题解答; 4、有关思考题的程序的流程框图及源程序代码,源程序 需加上必要的注释; 5、思考题的程序在调试中出现的问题及解决过程。 综合设计实验须按照设计要求,利用实验设备提供的软硬件条件设计一个简单的红绿灯模拟系统。要求每小组完成硬件连线设计、连接,软件编程及调试,并提交相关的设计和调试报告。系统运行情况需进行实际运行检查。 ●基础实验必须完成,综合实验部分根据自身能力选做。 ●实验中先完成基础实验部分,再做综合设计实验。 ●硬件实验成绩按考勤情况(5%)、基本实验情况(85%)和综合设 计实验情况(10%)综合评定。

一、实验设备及软件介绍 第1部分硬件系统介绍 1. CPU单元及外围芯片 1)、微处理器:8086 2)、时钟频率:6MHz 3)、存储器 6264 系统RAM,地址范围 0~3FFFH,奇地址有效 6264 系统RAM,地址范围0~3FFFH,偶地址有效 27C64 系统ROM,地址范围 FC000~FFFFFH,奇地址有效 27C256 系统ROM,地址范围 FC000~FFFFFH,偶地址有效4)、可提供的对8086的基本实验 (1).简单I/O扩展实验 (2).存储器扩展实验 (3).CPLD地址译码实验 (4).8255可编程并口实验 (5).8253定时/计数器实验 (6).A/D0809实验 (7).D/A0832实验 (8).8250可编程串口实验 (9).8279显示器接口实验 (10).8279键盘扩展实验 (11).8259可编程中断控制器实验 (12).8237DMA控制器实验 5)、系统资源分配 本系统采用可编程逻辑器件(CPLD)EPM7128做地址的编译码工作,可通过芯片的JTAG接口与PC机相连,对芯片进行编程,可完成系统器件,如监控程序 存储器、用户程序存储器、数据存储器、系统显示控制器、系统串行通讯控制器 等的地址译码功能,同时也由部分地址单元经译码后输出(插孔CS0---CS5)给 用户使用,他们的地址固定,用户不可改变。

微机原理实验报告

汇编语言程序设计实验 一、实验内容 1.学习并掌握IDE86集成开发环境的使用,包括编辑、编译、链接、 调试与运行等步骤。 2.参考书例4-8,P165 (第3版161页)以单步形式观察程序的 执行过程。 3.修改该程序,求出10个数中的最大值和最小值。以单步形式观 察,如何求出最大值、最小值。 4.求1到100 的累加和,并用十进制形式将结果显示在屏幕上。 要求实现数据显示,并返回DOS状态。 二、实验目的 1.学习并掌握IDE86集成开发环境的使用 2.熟悉汇编语言的基本算法,并实际操作 3.学会利用IDE86进行debug的步骤 三、实验方法 1.求出10个数中的最大值和最小值 (1)设计思路:利用冒泡法,先对数据段的10个数字的前2个比 较,把二者中大的交换放后面。在对第二个和第三个数比较,把 二者中较大的交换放后面,依此类推直到第十个数字。这样第十 位数就是10个数里面最大的。然后选出剩下9个数字里面最大 的,还是从头开始这么做,直到第九个数字。以此类推直到第一 个数字。

(2)流程图 2.求1到100 的累加和,并用十进制形式将结果显示在屏幕上。 要求实现数据显示,并返回DOS状态

(1)设计思路:结果存放在sum里面,加数是i(初始为1),进行 100次循环,sum=sum+I,每次循环对i加1. (2)流程图: 四、 1.求出10个数中的最大值和最小值

DSEG SEGMENT NUM DB -1,-4,0,1,-2,5,-6,10,4,0 ;待比较数字 DSEG ENDS CODE SEGMENT ASSUME DS:DSEG,CS:CODE START:MOV AX,DSEG MOV DS,AX LEA SI,NUM MOV DX,SI MOV CL,9 ;大循环计数寄存器初始化 NEXT1:MOV BL,CL ;大循环开始,小循环计数器初始化MOV SI,DX NEXT2:MOV AL,[SI+1] CMP [SI],AL ;比较 JGGONE ;如果后面大于前面跳到小循环末尾CHANGE:MOV AH,[SI] ;交换 MOV [SI+1],AH MOV [SI],AL JMP GONE GONE:add SI,1 DEC BL JNZ NEXT2

武汉理工大学微机原理接口实验报告

学生学号22实验课成绩 学生实验报告书 实验课程名称微机原理与接口技术 开课学院计算机科学与技术学院 指导教师姓名何业兰 学生姓名高胜洋 学生专业班级计算机1404 2016-- 2017学年第二学期

实验课程名称:微机原理及接口技术 第一部分:实验准备 一、实验目的和意义 1.熟悉接口试验箱的使用环境。 2.体会接口电路通过外部总线与处理器连接原理。 3.掌握可编程芯片8253的编程方法。 二、实验内容和环境 实验内容: 1、编写程序,将 8254 的计数器 0 和计数器 1 都设为方式 3,用信号源 1MHz 作为 CLK0时钟,OUT0 为波形输出 1ms 方波,再通过 CLK1 输入,OUT1 输出 1s 方波。 2、编写程序,将 8254 的计数器 0 设为方式 3,计数值为十进制数 4,用单次脉冲 KK1+作为 CLK0 时钟,OUT0 连接 MIR7,每当 KK1+按动 5 次后产生中断请求,在Wmd86程序运行结果栏上显示字符M 。改变计数值,验证 8254 的计数功能。 实验设备: PC 机一台,TD-PITE 实验装置一套。 三、实验基本原理与方法 (1)8254的功能 ?8253具有三个独立的16位计数器(0#~2#通道); ?每个通道有6种工作方式; ?可以进行二进制或十进制计数,计数方式为减1计数。 (最高计数频率2.6MHZ) (2)8254 的内部结构和外部引脚 图1.1 8254内部结构图1.2 8254外部引脚 (3)8254 的工作方式 ●方式0:计数到0 结束输出正跃变信号方式。 ●方式1:硬件可重触发单稳方式。 ●方式2:频率发生器方式。

微机原理实验报告

西安交通大学实验报告 课程_微机与接口技术第页共页 系别__生物医学工程_________实验日期:年月日 专业班级_____组别_____交报告日期:年月日 姓名__ 学号__报告退发 ( 订正、重做 ) 同组人_教师审批签字 实验一汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH,97H,64H,BBH,7FH,0FH,D8H。编程并显示结果: 如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子

程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H + 99223344H = xxxxxxxxH 四、实验代码及结果 1.1、实验代码: DATA SEGMENT SZ DB 80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H;存进数组 SHOW DB 'THE MAX IS: ','$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA ;把数据的基地址赋给DS MOV DS,AX MOV DX,OFFSET SHOW ;调用DOS显示字符串 MOV AH,09H INT 21H MOV SI ,OFFSET SZ ;数组的偏移地址赋给SI MOV CX,10 ;存进数组的长度给CX MOV DH,80H ;将数组的第一个数写进DH NEXT: MOV BL,[SI] ;将数组的第一个数写进BL CMP DH,BL ;比较DH和BL中数的到校 JAE NEXT1 ;如果DH中的数大于BL中,将跳转到NEXT1 MOV DH,BL ;如果DH中的数小于BL中,将BL中的数赋给DH NEXT1: INC SI ;偏移地址加1 LOOP NEXT;循环,CX自减一直到0,DH中存数组的最大值 ;接下来的程序是将将最大值DH在屏幕上显示输出 MOV BX,02H NEXT2: MOV CL,4 ROL DH,CL ;将DH循环右移四位

微机原理实验报告6

8254定时/计数器应用实验 1.实验目的: (1)、掌握8254的工作方式及应用编程。 (2)、掌握8254的典型应用电路接法。 2.实验设备: PC微机一台、TD-PIT+ 实验系统一套。 3.实验内容: (1)、计数应用实验。编写程序,应用8254的计数功能,用开关模拟计数,使每当按动KK1-五次后,产生一次计数中断,并在屏幕上显示一个字符‘5’。 (2)、定时应用实验。编写程序,应用8254的定时功能,实现一个秒表计时并在屏幕上显示。 4.实验说明及步骤: (1)定时应用实验: 编写程序,将8254的计数器2设置为方式3,用1.8432MHz作为CLK2时钟,计数值为64H,OUT2输出为18.432KHz的时钟。将OUT2连接到计数器0的CLK0,设置计数器0也工作在方式3,计数值为18432,相当于18432分频,则在OUT0得到1Hz的输出。参考程序流程如图5-2所示。 图5-2 8254定时应用实验接线图 实验步骤如下: a确认从PC机引出的两根扁平电缆已经连接在实验平台上。 b首先运行CHECK程序,查看I/O空间始地址。

c利用查出的地址编写程序,然后编译链接。 d参考图5-2所示连接实验线路。 e运行程序,看数据灯显示是否正确。 8254定时应用实验代码输出1Hz ;*** *********根据查看端口资源修改下列符号值******************* IOY0 EQU 9C00H ;************************************************************** **** MY8254_COUNT0 EQU IOY0+00H*4 ;8254计数器0端口地址MY8254_COUNT1 EQU IOY0+01H*4 ;8254计数器1端口地址MY8254_COUNT2 EQU IOY0+02H*4 ;8254计数器2端口地址MY8254_MODE EQU IOY0+03H*4 ;8254控制寄存器端口地址 STACK1 SEGMENT STACK DW 256 DUP(?) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE START: MOV DX,MY8254_MODE ;初始化8254工作方式MOV AL,0B6H ;计数器2,方式3 OUT DX,AL MOV DX,MY8254_COUNT2 ;装入计数初值 MOV AL,64H ;100分频 OUT DX,AL MOV AL,00H OUT DX,AL MOV DX,MY8254_MODE ;初始化8254工作方式

微机原理与单片机实验报告

北京联合大学信息学院实验报告 课程名称:微型计算机原理学号: 姓名: 2012 年 6 月 9 日

目录 实验1 EMU8086模拟器的使用 (3) 实验2 数据传送指令的使用 (5) 实验3 多位十六进制加法运算实验 (9) 实验5 循环程序实验 (11) 实验6 由1 到100 求和实验 (13) 实验7 求表中正数_负数_0 的个数实验 (14) 实验8 数据排列实验(冒泡排序) (16) 实验9 系统功能调用(大小写转换) (18) 实验10 阶乘(递归运算) (20) 实验11 ProteusIO工程文件的建立 (21) 实验12 IO口读写实验(245、373) (22) 实验13 8255 接口实验 (24) 实验14 声光报警 (25) 实验总结 (28)

实验1 EMU8086模拟器的使用 一实验要求 利用EMU8086模拟器环境,完成创建源程序文件,运行调试,实验结果的查看二实验目的: 熟悉EMU8086实验环境 三EMU8086环境: 1 模拟器编辑窗口 2 模拟器调试窗口

四实验内容 实验内容1:新建文件。 运行emu8086 1. 新建文件:单击“新建”按钮,选择COM模板,在模拟器编辑窗口中输入如下程序代码: MOV AX, 1020H MOV BX, 2030H MOV AX, BX ADD AX, BX MOV [BX], AX MOV [2032H], AX HLT 2. 编译:单击“编译”按钮,对程序段进行编译; 3. 保存:编译通过,单击“完成”按钮,将其以文件名“EXP1”保存在本地磁盘上。 4. 仿真:单击“仿真”按钮,打开模拟器调试窗口和源文件窗口。 5.在模拟器调试窗口中的寄存器组区,查看数据寄存器AX,BX,CX,DX;段寄存器CS,ES,SS,DS;指令指针寄存器IP;指针寄存器SP,BP;变址寄存器SI,DI;标志寄存器的值。 6.单击“单步前”按钮,单步执行程序,并观察每次单步执行后,相关寄存器值的变化。 7.单击“重载”按钮,将程序重载,并调整指令运行步进时延为400毫秒,单击“全速”按钮,运行程序, 8.程序运行之后,在程序调试窗口中,选择[view]/[memory],查看模拟器环境中,内存单元0700:0100开始的连续10个单元的内容 9.将“存储器”中的地址改为0700:2030,查看开始的四个字节的内容,并思考其内容与程序

北京邮电大学微机原理硬件实验报告

北京邮电大学微机原理硬件实验报告

实验报告一:I/0地址译码和简单并行接口 ——实验一&实验二 一、实验目的 掌握I/O地址译码电路的工作原理;掌握简单并行接口的工作原理及使用方法。 二、实验原理及内容 a) I/0地址译码 1、实验电路如图1-1所示,其中74LS74为D触发器,可直接使用实验台上数 字电路实验区的D触发器,74LS138为地址译码器。译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H~ 287H,Y1:288H~28FH,……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。 例如:执行下面两条指令 MOV DX,2A0H OUT DX,AL(或IN AL,DX) Y4输出一个负脉冲,执行下面两条指令 MOV DX,2A8H OUT DX,AL(或IN AL,DX) Y5输出一个负脉冲。 利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔经过软件延时实现。 2、接线: Y4/IO地址接 CLK/D触发器

Y5/IO地址接 CD/D触发器 D/D触发器接 SD/D触发器接 +5V Q/D触发器接L7(LED灯)或逻辑笔 b) 简单并行接口 1、按下面图4-2-1简单并行输出接口电路图连接线路(74LS273插通 用插座,74LS32用实验台上的“或门”)。74LS273为八D触发器, 8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电 路L0~L7。 2、编程从键盘输入一个字符或数字,将其ASCⅡ码经过这 个输出接口输出,根据8个发光二极管发光情况验证正确 性。 3、按下面图4-2-2简单并行输入接口电路图连接电路 (74LS244插通用插座,74LS32用实验台上的“或门”)。 74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关 输出K0~K7,8个数据输出端分别接数据总线D0~D7。 4、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这 个ASCⅡ码,并将其对应字母在屏幕上显示出来。 5、接线:1)输出 按图4-2-1接线(图中虚线为实验所需接线,74LS32为实验 台逻辑或门) 2)输入 按图4-2-2接线(图中虚线为实验所需接线,74LS32为实 验台逻辑或门) 三、硬件连线图 1、I/O地址译码

微机原理实验报告

大学 科技学院 实 验 报 告 课程名称:微机原理实验

实验一数据转换实验 一、实验目的 (1)初步掌握在PC机上建立、汇编、链接和运行8086/88汇编语言程序的过程。 (2)通过对两个验证性试验的阅读、调试、掌握不同进制数及编码相互转换的程序设计方法。 (3)完成程序设计题,加深对数码转换的理解,了解简单程序设计方法。 二、实验内容 1.十六进制数转换为ASCII码 设二字节十六进制数存放于其实地址为3500H的内存单元中,把他们转换成ASCII码后,再分别存入起始地址为350A的四个内存单元中。从书上ASCII码表中可知十六进制数加30H即可得到0H~9H的ASCII码,而要得到AH~FH 的ASCII码,则需再加7H。 请根据所给流程图理清思路,总结出对应的若干要点。将流程图与参考程序相互。根据分析的结果将运行时内存的变化列写出来。 学习并使用MASM或WAVE仿真软件分析程序运行过程中相关寄存器及相应内存的变化情况来验证自己的猜想,以巩固命令的学习,提高编程能力。

图1-1-1

DATAS SEGMENT ;此处输入数据段代码 DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV CX,0004H;根据转换个数设定循环次数 ;(两字节十六进制数如6B2C对应有四个用十六进制表示的ASCII码表示,即四个字节) MOV DI,3500H;指向该两字节十六进制数起始地址,此时在调试窗口修改内存字节 MOV DX,[DI];将地址3500H中的内容(6B2C)给DX A1: MOV AX,DX;第一次时DX=6B2C, ;因为想顺序取C、2、6、B,所以需要一个中间变量AND AX,000FH;取低四位,第一次取到C, CMP AL,0AH;判断AL属于0~9,还是A~F JB A2;如果是0~9,则跳转到A2 ADD AL,07H;若属于A~F,再加上07H后也是再加上30H即得到转换。 A2: ADD AL,30H;0~9的ASCII码对应的十六进制比其 ;本身(注意:亦是十六进制)大30H MOV [DI+0AH],AL;将转码后的C,即43H给350A INC DI;将DI指向下一字节,用于存储转码后的值,第一次自增后要存‘2’ PUSH CX;功能是接下来要用到CX作为一个中间变量, ;而刚才已经使用并且接下来还会用到CX的值, ;也可以不用CX,用其他不用的寄存器或者直接立即数形式的。 MOV CL,04H;若直接用立即数,可能不稳定,(原因不详)用一个中间变量。

四川大学微机原理实验报告..

微机原理实验报告 学院: 专业班级: 姓名 学号

实验一汇编语言编程基础 1.3汇编语言程序上机操作和调试训练 一.功能说明 运用8086汇编语言,编辑多字节非压缩型BCD数除法的简单程序,文件名取为*.ASM。 运用MASM﹒EXE文件进行汇编,修改程序中的各种语法错误,直至正确,形成*.OBJ文件。 运用LINK.EXE文件进行连接,形成*.EXE文件。 仔细阅读和体会DEBUG调试方法,掌握各种命令的使用方法。 运用DEBUG。EXE文件进行调试,使用单步执行命令—T两次,观察寄存器中内容的变化,使用察看存储器数据段命令—D,观察存储器数据段内数值。 再使用连续执行命令—G,执行程序,检查结果是否正确,若不正确可使用DEBUG的设置断点,单步执行等功能发现错误所在并加以改正。 二.程序流程图 设置被除数、商的地址指针 设置单位除法次数计数器 取被除数一位作十进制调整 作字节除法、存商 N 被除数各位已除完? Y 显示运算结果 结束 三.程序代码 修改后的程序代码如下: DATA SEGMENT A D B 9,6,8,7,5 B DB 5 C DB 5 DUP (0) N EQU 5 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX

MOV ES,AX CLD LEA SI,A LEA DI,C MOV CX,N MOV AH,0 LP1: LODSB AAD DIV B STOSB LOOP LP1 MOV CX,N LEA DI,C LP2: MOV DL,[DI] ADD DL,30H MOV AH,2 INT 21H INC DI LOOP LP2 MOV AH,4CH INT 21H CODE ENDS END START 四.实验感想和收获 通过这次试验,我对微机原理上级试验环境有了初步的认识,可以较为熟练地对汇编语言进行编译,汇编及连接,同时也学会了用DEBUG调试程序,收获很大。 在这次试验中我也遇到了一些困难。在刚开始我发现自己无法打开MASM.EXE,计算机提示是由于版本不兼容。我这才想起来我的操作系统是64位的,和该软件版本不兼容。不过我并没有放弃,经过我的摸索之后,我发现用DOSBOX这个程序可以解决我的电脑运行不了该程序的问题。在解决了第一个难题后,我开始着手改正试验1.3中的语法错误和逻辑错误,但是无论我怎么修改却始终都无法通过编译,并且基本上每句话都有编译错误。根据我多年编程的经验来看,这应该是中文输入法在搞鬼,之后我耐心地把程序重新输了一遍,果然通过了编译,并且之后的连接也进行的很顺利。在用DEBUG调试时发现得出的结果也很正确。 尽管这次的实验内容非常简单,仅仅是教会我们一些基本的操作,但我却明显感觉到了汇编语言和C语言等高级语言所不同的地方。越是底层,基础的东西就越不人性化,用C语言一行代码就能实验的功能在汇编语言中可能要花上数十行。看来汇编语言的学习不是几周就能速成的,必须要有长年累月的积淀才能掌握。

微机原理实验报告

微 机 原 理 实 验 报 告 班级: 指导老师:学号: 姓名:

实验一两个多位十进制数相加的实验 一、实验目的 学习数据传送和算术运算指令的用法 熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。 二、实验内容 将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。 三、程序框图 图3-1

四、参考程序清单 DATA SEGMENT DATA1 DB 33H,39H,31H,37H,34H;被加数 DATA1END EQU $-1 DATA2 DB 34H,35H,30H,38H,32H;加数 DATA2END EQU $-1 SUM DB 5 DUP(?) DATA ENDS STACK SEGMENT STA DB 20 DUP(?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX

MOV SI,OFFSET DATA1END MOV DI,OFFSET DATA2END CALL ADDA MOV AX,4C00H INT 21H ADDA PROC NEAR MOV DX,SI MOV BP,DI MOV BX,05H AD1: SUB BYTE PTR [SI],30H SUB BYTE PTR [DI],30H DEC SI DEC DI DEC BX JNZ AD1 MOV SI,DX MOV DI,BP MOV CX,05H CLC AD2: MOV AL,[SI] MOV BL,[DI] ADC AL,BL

微机原理实验指导书-硬件部分(2017)

微机原理实验指导书 硬件实验部分 东华大学信息科学与技术学院信息与控制实验中心 2017.11

关于微机原理硬件部分实验的说明 硬件部分包含5个基本实验和一个综合设计实验。综合设计实验为选作部分。每个实验需完成各自的实验报告。报告内容以每项实验的思考题内容为主,不需要抄录实验指导书提供的范例程序。基本实验的报告内容具体要求为: 1、实验名称、所需设备、实验目的。 2、思考题要求。 3、有提问的思考题分析解答。 4、需要编程的思考题的程序的流程框图 5、思考题的全部源程序代码,源程序需加上必要的注释。 6、思考题的程序在调试中出现的问题及解决过程。 ●实验必须完成基础实验部分,综合设计实验选作。 ●硬件实验成绩按基本实验情况(85%)和选作实验情况(15%)综 合评定。

一、实验设备及软件介绍 第1部分硬件系统介绍 1. CPU单元及外围芯片 1)、微处理器:8086 2)、时钟频率:6MHz 3)、存储器 6264 系统RAM,地址范围 0~3FFFH,奇地址有效 6264 系统RAM,地址范围0~3FFFH,偶地址有效 27C64 系统ROM,地址范围 FC000~FFFFFH,奇地址有效 27C256 系统ROM,地址范围 FC000~FFFFFH,偶地址有效4)、可提供的对8086的基本实验 (1).简单I/O扩展实验 (2).存储器扩展实验 (4).8255可编程并口实验 (5).8253定时/计数器实验 (6).A/D0809实验 (7).D/A0832实验 (8).8250可编程串口实验 (9).8279显示器接口实验 (10).8279键盘扩展实验 (11).8259可编程中断控制器实验 5)、系统资源分配 本系统采用可编程逻辑器件(CPLD)EPM7128做地址的编译码工作,可通过芯片的JTAG接口与PC机相连,对芯片进行编程,可完成系统器件,如监控程序 存储器、用户程序存储器、数据存储器、系统显示控制器、系统串行通讯控制器 等的地址译码功能,同时也由部分地址单元经译码后输出(插孔CS0---CS5)给 用户使用,他们的地址固定,用户不可改变。 2.地址资源分配 本系统采用可编程逻辑器件(CPLD)EPM7128作为地址译码器,完成系统器件如存

微机原理实验报告

目录 软件实验部分: 实验一清零程序 实验二拆字程序 实验三拼字程序 实验四数据区传送子程序 实验五数据排序实验 实验六查找相同数个数 实验七无符号双字节快速乘法子程序 实验八多分支程序 实验九脉冲计数(定时/计数器实验) 实验十电脑时钟(定时器、中断综合实验) 硬件实验部分: 实验一 P1口亮灯实验 实验二 P1口转弯灯实验 实验三 P3.3口输入,P1口输出 实验四工业顺序控制 实验五继电器控制 实验六 8255控制交通灯 实验七 LED16×16点阵显示实验 实验八串并转换实验 实验九 A/D转换实验 实验十 D/A转换 实验十一电子音响 实验十二步进电机控制 实验十三 8032串行口应用实验㈠——双机通信 实验十四小直流电机调速实验 软件实验部分 本节共编了十个软件实验,通过这些实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。 本节提供的软件实验,涉及外部数据存储器扩展寻址操作,因此需按下图连接实验线路。

1.将存储器单元的D0—D7总线接口用8芯扁平线与数据总线单元D0—D7的任一接口相连,存储器单元的A0—A7地址接口与地址总线单元(低8)A0—A7的任一接口相连,存储器单元的A8—A12地址接口与地址总线单元(高8)A8—A12的任一接口相连。注意外部扩充的数据区的有效范围。 2.存储器单元的WE/PGM插孔与六位LED左下方的IOWE插孔相连。 3.存储器单元的OE插孔与六位LED左下方的IORD插孔相连。 4.存储器单元的CS1插孔与六位LED右下方的IOWE插孔相连。 实验一清零程序 一、实验目的 掌握汇编语言设计和调试方法,熟悉键盘操作。 二、实验内容 把2000H-20FFH的内容清零 三、程序框图 四、实验步骤 用连续或单步方式运行程序,检查2000-20FF中执行程序前后的内容变化。 五、思考 假使把2000H-20FFH中的内容改成FF,如何修改程序。 接P1.0到L1,试编写程序,对片外数据存储器6264进行读写操作,若L1闪动则表示6264RAM读写正常。(此思考题也可留在硬件实验中做) ORG 0640H

微机原理 实验报告

微机原理与接口技术 实验指导书 班级 学号099074 姓名 安徽工业大学计算机学院

实验一存贮器读写实验 一、实验内容 对指定地址区间的RAM(4000H~4FFH)先进行写数据55AAH,然后将其内容读出再写到5000H~5FFH中。 二、实验步骤 l、将实验系统与PC机连接; 2、在PC机上启功DJ-8086k软件,实验系统进入联机状态; 3、在DJ-8086k软件环境下编辑、调试程序,将程序调试、编译通过; 4、运行程序。 5、稍后按RST键退出,用存贮器读方法检查4000H~43FFH中的内容和5000~53FFH中的内容应都是55AA。 三、实验程序清单 CODE SEGMENT ; ASSUME CS:CODE PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口 ORG 1850h START: JMP START0 BUF DB ,,,,, data1: db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1 h db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH START0: MOV AX,0H MOV DS,AX MOV BX,4000H MOV AX,55AAH MOV CX,0200H RAMW1: MOV DS:[BX],AX ADD BX,0002H LOOP RAMW1 MOV AX,4000H MOV SI,AX MOV AX,5000H MOV DI,AX

微机原理实验报告冒泡排序

一、实验目的 (1)学习汇编语言循环结构语句的特点,重点掌握冒泡排序的方法。 (2)理解并掌握各种指令的功能,编写完整的汇编源程序。 (3)进一步熟悉DEBUG的调试命令,运用DEBUG进行调试汇编语言程序。 二、实验内容及要求 (1)实验内容:从键盘输入五个有符号数,用冒泡排序法将其按从小到大的顺序排序。 (2)实验要求: ①编制程序,对这组数进行排序并输出原数据及排序后的数据; ②利用DEBUG调试工具,用D0命令,查瞧排序前后内存数据的变化; ③去掉最大值与最小值,求出其余值的平均值,输出最大值、最小值与平均值; ④用压栈PUSH与出栈POP指令,将平均值按位逐个输出; ⑤将平均值转化为二进制串,并将这组二进制串输出; ⑥所有数据输出前要用字符串的输出指令进行输出提示,所有数据结果能清晰显示。 三、程序流程图Array (1)主程序:MAIN

(2)

就是 NAME BUBBLE_SORT DATA SEGMENT ARRAY DW 5 DUP(?) ;输入数据的存储单元 COUNT DW 5 TWO DW 2 FLAG1 DW 0 ;判断符号标志 FLAG2 DB 0 ;判断首位就是否为零的标志FAULT DW -1 ;判断出错标志 CR DB 0DH,0AH,'$' STR1 DB 'Please input five numbers seperated with space and finished with Enter:','$' STR2 DB 'The original numbers:','$' STR3 DB 'The sorted numbers:','$' STR4 DB 'The Min:','$' STR5 DB 'The Max:','$' STR6 DB 'The Average:','$' STR7 DB 'The binary system of the average :','$' STR8 DB 'Input error!Please input again!''$' DATA ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATA,ES:DATA START: PUSH DS AND AX,0 PUSH AX MOV AX,DATA MOV DS,AX LEA DX,STR1 MOV AH,09H ;9号DOS功能调用,提示输入数据 INT 21H CALL CRLF ;回车换行 REIN: CALL INPUT ;调用INPUT子程序,输入原始数据CMP AX,FAULT ;判断就是否出错, JE REIN ;出错则重新输入

微机原理实验报告材料

微型计算机原理及单片机 实验报告 班级: 学号: :

实验一 汇编语言程序设计 1 分支程序设计实验 1.1.1 实验目的 1. 掌握分支程序的结构。 2. 掌握分支程序的设计、调试方法。 1.1.2 实验设备 PC 机一台,TD-PITE 实验装置一套。 1.1.3 实验容 设计一数据块间的搬移程序。设计思想:程序要求把存中一数据区(称为源数据块)传送到另一存储区(成为目的数据块)。源数据块和目的数据块在存储中可能有三种情况,如图1.1所示。 源数据块 目的数据块0H FFFFFH 源数据 块目的数据块0H FFFFFH 源数据 块 目的数据块0H FFFFFH (a ) (b ) (c ) 图1.1 源数据块与目的数据块在存储中的位置情况 对于两个数据块分离的情况,如图1.1(a ),数据的传送从数据块的首地址开始,或从数据块的末地址开始均可。但是对于有重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭到破坏,可有如下结论: 当源数据块首地址<目的块首地址时,从数据块末地址开始传送数据,如图1.14(b )所示。 当源数据块首地址>目的块首地址时,从数据块首地址开始传送数据,如图1.14(c )所示。 实验程序流程图如图1.5所示。 1.1.4 实验程序如下 SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START:

MOV CX, 0010H图1.5 程序流程图 MOV SI, 6000H Array MOV DI, 7000H CMP SI, DI JA A2 ADD SI, CX ADD DI, CX DEC SI DEC DI A1: MOV AL, [SI] MOV [DI], AL DEC SI DEC DI DEC CX JNE A1 JMP A3 A2: MOV AL, [SI] MOV [DI], AL INC SI INC DI DEC CX JNE A2 A3: JMP A3 CODE ENDS END START 1.1.5 实验步骤 1. 按流程图编写实验程序,经编译、无误后装入系统。 2. 用E命令在以SI为起始地址的单元中填入16个数。 3. 运行程序,待程序运行停止。 4. 通过D命令查看DI为起始地址的单元中的数据是否与SI单元中数据相同。 5. 通过改变SI、DI的值,观察在三种不同的数据块情况下程序的运行情况,并验证程 序的功能。

微机原理硬件实验报告

微机原理课程实验报告 实验题目 简易微型计算机控制系统的设计与接口芯片的使用,8259A、8254、8255A、8251A 的联合编程。 实验目的 掌握简易微型计算机控制系统的设计和搭建的步骤和方法,理解并使用8259A、8254、8255A、8251A接口芯片进行联合编程,实现双机通讯、基本输入输出、计数\定时、中断响应的基本功能,在此基础上,达到实验设计构想。 设计思路 1. 使用两台实验装置,一台为发送机,一台为接收机,进行两机间的串行通讯。 2. 运行各自对应程序后,发送机在DOS界面下显示开始信息“START”,接收机显示程序启动、等待接受的信息“BEGUN,RECEIVING INFO”。 3. 输入控制指令“TURN”(8路LED灯轮流闪动,每次灯闪0.5s),或“BLINK”(8路LED灯一同闪动,每次灯闪0.5s),或“FORWARD”(8路LED从两边向中间闪动,每次灯闪0.5s),回车后则接收机上8路LED灯出现各自对应效果,屏幕上显示“IT’S SHOW TIME”。 4. 显示15次(1min)后,演示结束,接收机LED灯出现OVER状态(每隔一灯亮),屏幕上显示“SHOW OVER”,并将结果传回发送机,发送机屏幕上显示同样内容。 5. 按ESC键退出程序。 程序思路 分为发送机程序和接收机程序两大部分 发送机程序思路(SENDER.ASM) 1. 程序启动时显示提示信息。指令字符串、提示信息的输入、显示、存储操作采用INT 21H的DOS中断功能调用。 2. 得到指令字符串后,判断其类型后,向发送机发送指令类型,功能实现通过8251A的双机通信,S/R(发送机、接收机,下同)设置相同的波特率、数据格式(1个停止位、偶检验、字符长度8位),均允许收发数据。 3. 发送完指令类型后,开始等待接收演示结束的指令。 4. 程序结束。 综上,发送机端主要用到8255的基本输入输出、8251A的双机串行异步通信、DOS功能调用等主要功能。 接收机程序思路(RECEIVER.ASM) 接收机程序中需要用到中断处理,因此设计思路分为主程序和中断处理子程序两部分。 接收机主程序

微机原理上机实验报告

微机原理上机实验报告 实验六:74HC138译码器实验实验十:LED 16x16点阵显示实验

微机原理上机实验(六)实验报告 实验六:74HC138译码器实验 一、实验目的 1、掌握74HC138译码器的工作原理,熟悉74HC138译 码器的具体运用连接方法,了解74HC138是如何译码的。 2、认真预习本节实验内容,尝试自行编写程序,填写实 验报告 二、实验内容 1、编写程序:使用8255的PC0、PC1、PC2控制 74HC138的数据输入端,通过译码产生8选1个选通信号,轮流点亮8个LED指示灯。 2、运行程序,验证译码的正确性。 三、实验原理图 四、实验步骤

1、连线说明: F7区:A、B、C — —D3区:PC0、PC1、PC2 F7区:G1、G2A、G2B — — C1区:VCC、GND、 GND F7区:JP63 — —F4区:JP18(LED 指示灯) D3区:CS、A0、A1 — — A3区:CS1、A0、 A1 2、调试程序,查看运行结果是否正确 五、实验代码 Con_8255EQU 0273H ;8255控制口 PC_8255 EQU 0272H ;8255 PC口_STACK SEGMENT STACK ;设置堆栈段 DW 100 DUP(?) _STACK ENDS CODE SEGMENT START PROC NEAR

ASSUME CS:CODE, SS:_STACK MOV DX,Con_825 5 MOV AL,80H OUT DX,AL ;8255初始化,PC口作输 出用,向8255的控制口 输入置位/复位控制字 10000000B,PC0~PC7 全部复位 MOV DX,PC_8255 MOV AL,0 START1: OUT DX,AL 将00000000B输入8255 的PC口 CALL Delay 延时 INC AL AL加一 JMP START1 循环 Delay PROC NEAR ;延时 Delay1: XOR CX,CX ;CX清零 LOOP $ 当前位置循环一次后推 出 RET Delay ENDP

相关文档