微机原理加法器实训报告

微机原理加法器实训报告
微机原理加法器实训报告

沈阳工程学院

课程设计课程设计题目:加法器设计

系别信息工程系班级系统本101 学生姓名闫浩学号 2010414113 指导教师衣云龙、王德君职称讲师、工程师

起止日期:2012年5月21日起——至2012年5月26日止

沈阳工程学院

课程设计任务书

课程设计题目:加法器设计

系别信息工程系班级系统本101 学生姓名闫浩学号 2010414113 指导教师衣云龙、王德君职称讲师、工程师

课程设计进行地点:微机原理实验室

任务下达时间:2012年5月18日

起止日期: 2012年5月21日起——至2012年5月26日止教研室主任王健 2012年5月18日批准

一、课程设计目的

通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。为以后学生结合专业从事微机应用设计奠定基础。

二、课程设计的原始资料及依据

查阅可编程并行芯片8255或其他相关资料。

用简单的输入输出端口等硬件,配合延时和控制程序控制灯的亮灭。

三、课程设计的主要内容及要求

内容:利用微机原理实验箱,采两组发光二极管来模拟A,B两路交叉路口的信号灯控制。

要求:按实际交通灯控制规程控制。

四、课程设计说明书撰写内容、格式、字数的要求

1.课程设计说明书是体现和总结课程设计成果的载体,主要内容包括:设计题目、设计目的、设备器材、设计原理及内容、设计步骤、程序代码及功能说明(程序及必要注释等)、遇到的问题及解决方法、设计总结、设计小组评语、参考文献等。一般不应少于3000字。

2.在适当位置配合相应的设计原理图、程序流程图、硬件电路接线图等图表进行说明。应做到文理通顺,内容正确完整,书写工整,装订整齐。

3.设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。设计小组评语处注明设计组组长、设计组成员,并由设计组组长给出评语。

4.课程设计说明书手写或打印均可。手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距18磅。文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,表题与图题采用宋体五号字。

5.课程设计说明书装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。

五、设计完成后应提交成果的种类、数量、质量等方面的要求

1.完成课程设计任务书中要求的功能,软硬件系统运行稳定。

2.提交课程设计说明书。

六、时间进度安排

顺序阶段日期计划完成内容备注

1 1.5天查阅资料及程序设计

2 2.5天上机调试程序

3 0.5天成绩评定

4 0.5天书写报告

七、主要参考资料(文献)

[1] 李伯成《微型计算机原理及应用》西安电子科技大学

[2] 微机原理及应用实验指导书

[3] 周明德《微型计算机系统原理及应用(第四版)》清华大学出版社

[4] 潘峰《微型计算机原理与汇编语言》电子工业出版社

微机原理及应用课程设计成绩评定表

系(部):信息工程系班级:系统本101 学生姓名:闫浩

指导教师评审意见

评价内容具体要求权重评分

加权

调研论证能独立查阅文献,收集资料;能制定课程设计方案

和日程安排。

0.1 5 4 3 2

工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能

够独立完成设计工作,

0.2 5 4 3 2

工作量按期圆满完成规定的设计任务,工作量饱满,难度

适宜。

0.2 5 4 3 2

说明书的质量

说明书立论正确,论述充分,结论严谨合理,文字

通顺,技术用语准确,符号统一,编号齐全,图表

完备,书写工整规范。

0.5 5 4 3 2

指导教师评审成绩

(加权分合计乘以12)

分加权分合计

指导教师签名:年月日

评阅教师评审意见

评价内容具体要求权重评分

加权

查阅

文献

查阅文献有一定广泛性;有综合归纳资料的能力0.2 5 4 3 2 工作

工作量饱满,难度适中。0.5 5 4 3 2

说明书的质量说明书立论正确,论述充分,结论严谨合理,文字

通顺,技术用语准确,符号统一,编号齐全,图表

完备,书写工整规范。

0.3 5 4 3 2 评阅教师评审成绩

(加权分合计乘以8)

分加权分合计

评阅教师签名:年月日课程设计总评成绩分

目录

1设计任务描述 (2)

1.1 设计题目 (2)

1.2 设计内容 (2)

1.2.1 设计目的 (2)

1.2.2 设计要求 (2)

1.2.3 发挥部分 (2)

2 设计思路 (3)

3 主要元器件介绍 (5)

3.1键盘 (5)

3.1.1键盘的工作原理 (5)

3.1.2键盘输入信息的过程 (5)

3.1.3键盘扫描(识别键)的过程 (5)

3.2 可编程并行接口8255A (6)

3.2.1 8255简介 (6)

3.2.2 8255内部结构及引脚功能 (7)

3.2.3 8255的控制字 (9)

3.2.4 8255的寻址 (10)

4源程序清单及注释 (11)

5设计原理流程图 (14)

6实际硬件电路接线图 (16)

设计总结…… …….… ………….………………..…..…….….…. …………..….. .17 参考文献…………..…………….…………………..….…..……………………… ..18

1 设计任务描述

1.1设计题目

加法器设计

1.2设计内容

(1)从键盘输入两个二/四位BCD数,求其和,保存到内存;

(2)用LED指示灯显示结果.

1.2.1 设计目的

通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进行软、

硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。为以后学生结合专业

从事微机应用设计奠定基础

1.2.2设计要求

(1)输入两位十进制数

(2)用BCD码显示和的十位和个位

1.2.3设计发挥

(1)延时

(2)显示百位进位

2设计思路

本周课程设计中,我们组的设计题目是加法器设计。得知这个题目后,我们全组同学共同讨论研究了设计流程.从键盘输入数据开始,首先键盘清0,按四下分别输入两个二位十进制数,再利用8255的输入输出功能,输入数据,在CPU中计算和,再经8255输出到LED显示器,用九盏灯显示结果.第一盏表示十位向百位是否有进位,即只能进行一百以内的显示,接下来的四位为BCD码显示的十位,最后四位显示个位.先设计子程序分别实现延时,扫描键盘,判断输入位,清屏等.程序开始后调用子程序.实现求和。

此方案是通过并行接口芯片8255和8086计算机的硬件连接,以及延时方法,来实现两位BCD数加法器的输入、运算、输出.硬件接线如图所示,输入、运算、输出由软件编程来实现.

程序主要分三个部分,分别为输入部分,运算部分和输出部分。键盘输入部分的操作有两步:先进行扫描。键盘初始状态为1,扫描结果如果全为1,则说明没有按键按下,则需进行等待按键,有零则说明有键按下。再确定按键的位置,键盘的X1-X4 控制行,Y1-Y4控制列,确定按键对应的数;两个数输入后,通过8255接口芯片进入系统内部进行加法运算,先扫描第一个数的第一位,调用延时子程序,再扫描第一个数的第二位。同样再调用第二个数。再进行加法运算,低位相加,再进行高位带进位相加,并进行调整;将加法运算的结果通过8255出到LED 显示灯上。每四个灯为一组,显示一位BCD数,共用三组从右到左分别显示个位,十位和百位。

程序代码段共有两个子程序,分别为键盘扫描子程序和延时子程序,主程序先进行8255初始化,送8255控制口地址和控制字,工作方式为方式0,基本输入输出方式,PA口输入(行),PB口输入(列),PC口输出。再调用扫描和延时程序输入两个被加数,进行求和运算。将求和的结果输出送C口地址,将个位和十位分别送到送C口的低四位和高四位,百位送到A口高四位调用延时程序并清零。

程序首先定义数据段,代码段,然后设置8255控制字(工作方式为方式0,基本输入输出方式,PA口输入(行),PB口输入(列),PC口输出)。

通过才call语句调用键盘扫描子程序SAOMIAO

PUSH AX ;通过PUSH语句把AX,BX,CX,DX中的数据压栈,起保护数据作用。

PUSH BX

PUSH CX

PUSH DX

MOV DX,0600H ;设置8255的PA端口地址

MOV AL,00H ;使行输出全为0

OUT DX,AL

LP1: MOV DX,0602H ; 设置8255 PB端口地址

IN AL,DX ; 读入列线值

AND AL,0FH ; 屏蔽高位无关位

CMP AL,0FH ; 查看列线值是否全为1

JZ LP1 ; 若列线值全为1,则无键按下,等待按键

MOV CX,2000H ; 设置循环次数

DELAY1:LOOP DELAY1 ; 若有按键按下,延迟20MS

IN AL,DX ; 若有键按下则把值读入到AL中

AND AL,0FH ; 确认按键是否按下,消除抖动

CMP AL,0FH ;

JZ LP1 ; 是零转移否则执行下一条语句

LP2:MOV BL,4 ; 行扫描次数送BL

MOV BH,4 ; 列扫描次数送BH

MOV AL,0FEH ; 设置行扫描初值

MOV CH,0FFH ; 设置起始键号为FFH

LP3:MOV DX,0600H ; 设置8255PA端口地址

OUT DX,AL ; 输出扫描初值

ROL AL,1 ; 修改扫描码,为扫描下一行做准备 MOV AH,AL ; 保持修改后的扫描码

MOV DX,0602H ; 设置8255PB端口地址

IN AL,DX ; 读入列值

AND AL,0FH ; 屏蔽高位无关位

CMP AL,0FH ; 查列线是否全为1

JNZ LP4 ; 有,则转去找该列线

ADD CH,BH ; 无,则修改键号指向该行末列键号 MOV AL,AH ; 取回扫描码

DEC BL ; 行值减1

JNZ LP3 ; 行末查完转下一行

JMP LP2 ; 重新开始扫描键盘

LP4:INC CH ;键号加1,指向本行首列键号

RCR AL,1 ; 右移一位

JC LP4

MOV [SI],CH ;键号送入[SI]中

INC SI

POP DX

POP CX

POP BX

POP AX

RET

SAOMIAO ENDP

3 主要元器件介绍

3.1 键盘

键盘是微机系统和其他实时控制系统中广泛使用的一种基本输入设备。按键实际上就是一个开关;对大多数键盘而言,为了减少与微机间的连线,简化结构,按键被排成行和列的矩阵形式,称为矩阵键盘。矩阵键盘根据识别键和键盘扫描实现方式的不同又分为两类:编码键盘和非编码键盘。编码键盘主要是用硬件来实现键的识别和扫描,它功能强,可靠,但硬件复杂,一般微机系统使用编码键盘。非编码键盘主要是用软件方法来识别键和绎键,本次课程设计主要应用非编码键盘的基本工作原理,及键盘控制程序的编制方法。

3.1.1 键盘的工作原理

通常可采用两种方法来识别键盘上的闭合键:即行扫描与行反转法,本次课程设计采用的是行扫描法,其基本思想是:将行线接输出端口,列线接输入端口。先将所有的行线输出低电平(A口),读入列线的值(B口),若此时列线上的值全为1,说明无键按下;若有某位为0,则说明对应列上有键按下,这时改变行扫描码,使行线逐行为0,依次输出行扫描码,读入列值。当读入某一列线的值为0时,则可根据此时的行扫描码和列线的值唯一的确定按键的位置,同时也就确定了该键的扫描码。

3.1.2 键盘输入信息的过程

(1)CPU检查是否有键按下;

(2)扫描检查各行和列,找到被按键的键号;

(3)将键号转换成计算机能识别的代码并转入相应的键盘处理程序。

3.1.3键盘扫描(识别键)的过程

(1)识别是否有键按下:方法是使PA0~PA3输出全为0,读B口(列值)PB0~PB3,PB0~PB3中只要有一位为0,就说明有键按下,因为由于上拉电阻接+5V的作用,无键按下时,列线被置成高电平。当某键被按下,该键所在行线和列线接通,所以,当行线为低电平时,对应的列线也为低电平。

(2)消抖动:抖动就是键按下时由于手工操作,键的闭合和断开之间回跳几下才能稳定到闭合的位置,这就称为抖动。抖动问题不解决回引起对闭合键的错误识别,所以当判别出有键按下时应消除抖动。消除抖动的常用方法是在检测到有键按下后,延迟一段时间(通常为20ms),再检查该键是否仍然被按着,若是,才真正认为有键按下,而不是干扰。

(3)确定是哪个键被按下:即确定被按下键的行列号,因此可采用上述的行扫描法。

(4).根据找到的键号,转去执行该键功能的子程序。

3.2 可编程并行接口8255A

3.2.1 8255简介

并行接口是以数据的字节为单位与I/O设备或被控对象之间传递信息。在实际应用中凡是CPU与外设之间同时需要传递两位以上信息时均需采用并行接口。可编程并行通信接口(8255A)是一个具有两个8位(A口和B口)和两个4位(C口)并行输入/输出端口的接口芯片,为了适应多种数据传送方式的要求8255A设置了3种工作方式:方式0为基本输入输出方式,方式1为选通输入输出方式,方式2为双向传送方式。本次为满足设计需要,将8255A 设置为方式0。如表3.2.1所示。

表3.2.1 8255设置方式0

A 组B组

A口(PA0---PA7)C口(PC4---PC7)B口(PB0---PB7)C口(PC0---PC3)

入入入入

入入入出

入入出入

入入出出

入出入入

入出入出

入出出入

入出出出

出入入入

出入入出

出入出入

出入出出

出出入入

出出入出

出出出入

出出出出

本次课程设计用并行接口8255作为微机与键盘间的接口,采用行扫描法识别键。将键盘

中的各行与A 口PA0~PA3相连,A 口为输出;将各列与B 口的PB0~PB3相连,B 口为输入口。

3.2.2 8255内部结构及引脚功能

8255A 的内部结构包括以下几个部分:

如图3.2.1所示,并行输入/输出端口,它有三个输入/输出端口,每个端口8位,都可选择为输入或输出。A 端口有一阁位数据输出锁存/缓冲器和一个8位数据输入锁存器;B 端口有一个8位数据输出锁存/缓冲器和一个8位数据输入缓冲器;C 端口有一个8位数据输出锁存/缓冲器和一个8位数据输入缓冲器。通常A 端口和B 端口作为输入/输出数据端口,C 端口常作

为控制或状态信息的端口,它可分为两个4位端口。在与外设数据传送中需要联络控制线时,C 端口分别与A ,B 端口配合使用,此时,C 端口作控制信号输出和状态信号输入。

各部件的功能如下:

RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O 口均被置成输入方式。

CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU 进行通讯。

RD:读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU 发送数据或状态信息,即CPU 从8255读取信息或数据。

WR:写入信号,输入引脚为低电平时,允许CPU 将数据或控制字写入8255。

D0~D7:三态双向数据总线,8255与CPU 数据传送的通道,当CPU 执行输入输出指令时,它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。

PA0~PA7:端口A 输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。

PB0~PB7:端口B 输入输出线,一个8位的I/O 锁存器, 一个8位的输入输出缓冲器。 PC0~PC7:端口C 输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C 可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A 和端口B 配合使用,可作为控制信号输出或状态信号输入端口。

A1、A0:端口地址总线,8255中有端口A 、B 、C 和一个内部控制字寄存器,共4个端口,由A0、A1输入地址信号来寻址。8255引脚如图3.2.2所示。

RESET

CS

DB

数据 总线 缓冲器

B 组 控制

A 组 控制

端口C (低位)

端口B

端口C (高位) 端口A PB 7~PB 0

PC 3~PC 0 PC 7~PC 4

PA 7~PA 0 图3.2.1 8255内部结构

RD

读/写 控制 逻辑

WR A 0 A 1

图3.2.2 8255引脚图

1.8255A 有三种基本的工作方式:方式0、方式1和方式2。

(1)方式O

方式O 为基本的输入/输出方式,传送数据时不需要联络信号。A 口、B 口和c 口(或C 高4位口及c 低4位口)均可独立设置成方式0输入口或方式0输出口。 (2)方式1

方式l 为选通输入/输出方式,即需要进行联络的输入/输出。A 组、B 组的8位口(A 口或B 口)可被设置为方式1输人口或方式1输出口,而这时要用相应C 口的3根线作联络线。 (3)方式2

方式2为双向传送。该方式要使用c 口的5根线作联络线。由于c 口只有8根线,因

此只能有一组使用方式2确定为A 组。当A 组被设置成方式2时,A 口被设置成双向端口,即既可以输入数据,也可以输出数据,c 口的5根线被指定为联络线。

2. 8255A 有两种控制字。

一个是方式选择控制字,另一个是对c 口进行置位或复位的控制字。这两种控制字都为8位。

方式选择控制字用来设置工作方式。最高位D7为1,作为该控制字的标志。紧接着的4位用来对A 组进行设置,最低的3 位用来对B 组进行设置。A 组可设置成三种工作方式的任一种,因此用了两位(D6、D5)来规定工作方式;而B 组只能选择方式1或方式0,所以规定工作方式仅需一位(D2)。D4和D3位分别规定A 组的8位口(A 口)和4位口(C 口高4位)是输入还是输出:

1234567891011121314151617181920

PA3PA2PA1PA0RD CS GND A1A0PC7PC6PC5PC4PC3PC2PC1PC0PB0PB1PB2

4039383736353433323130292827262524232221

PA5PA6PA7WR

RESET PA4D0D1D2D3D4D5D6PB6PB7V C C D7PB5PB4PB3

8255A

功能控制

0:位操作 1:方式选择 l 表示输入,0表示输出。D1和DO 位分别规定B 组的8位口(B 口)和4位口(c 口低4位)是输入还是输出:1表示输入,0表示输出。

3.2.3 8255的控制字

8255控制字格式如下图3.2.3所示。

7

6

5

4

3

2 1

图3.2.3 8255的控制字格式

说明:当控制字bit7=1时,控制字的bit6~bit3这4位用来控制A 组,即A 口的8位和C 口的高4位,而控制字的低3位bit2~bit0用来控制B 组,包括B 口的8位和C 口的低4位。

3.2.4 8255的寻址

控制C 口抵4位 1:输入 0:输出 控制B 口8位 1:输入 0:输出 方式选择 0:方式0 1:方式1 控制C 口高4位 0:输出 1:输入 控制A 口8位 0:输出 1:输入 方式选择 00:方式0 01:方式1 1X :方式2

8255寻址方式如下表3.2.2所示

表3.2.28255寻址方式

___

CS A1 A0 ____

IOR

____

IOW 操作

0 0 0 0 1 读A口

0 0 1 0 1 读B口

0 1 0 0 1 读C口

0 0 0 1 0 写A口

0 0 1 1 0 写B口

0 1 0 1 0 写C口

0 1 1 1 0 写控制寄存器

1 X X 1 1 D0~D7三态

8255占外设编码的四个地址,即A口,B口,C口和控制寄存器各占一个外设接口地址,对同一地址分别可以进行读写操作,利用8255的片选信号A0,A1及读写信号即可方便的对8255进行寻址。

4 源程序清单及注释

MYDATA SEGMENT

NUM DB 4 DUP(0)

SUM DB 3 DUP(0)

MYDATA ENDS

STACK SEGMENT

DW 200 DUP(?)

STACK ENDS

MYCODE SEGMENT

ASSUME CS:MYCODE,DS:MYDATA,ES:MYDATA,SS:STACK0

SOFTDLY PROC

PUSH BX

PUSH CX

MOV BL,50

DELAY:MOV CX,3800

WAITA:LOOP WAITA

DEC BL

JNZ DELAY

POP CX

POP BX

RET

SOFTDLY ENDP

SAOMIAO PROC

PUSH AX

PUSH BX

PUSH CX

PUSH DX

MOV DX,0600H ;设置8255的PA端口地址

MOV AL,00H ;使行输出全为0

OUT DX,AL

LP1: MOV DX,0602H ; 设置8255 PB端口地址

IN AL,DX ; 读入列线值

AND AL,0FH ; 屏蔽高位无关位

CMP AL,0FH ; 列线值是否全为1

JZ LP1 ; 若列线值全为1,则无键按下,等待按键 MOV CX,2000H ; 设置循环次数

DELAY1:LOOP DELAY1 ; 若有按键按下,延迟20MS,清除抖动

IN AL,DX

AND AL,0FH

CMP AL,0FH

JZ LP1

LP2:MOV BL,4 ; 行扫描次数送BL

MOV BH,4 ; 列扫描次数送BH

MOV AL,0FEH ; 设置行扫描初值

MOV CH,0FFH ; 设置起始键号为FFH

LP3:MOV DX,0600H ; 设置8255PA端口地址

OUT DX,AL ; 输出扫描初值

ROL AL,1 ; 修改扫描码,为扫描下一行做准备

MOV AH,AL ; 保持修改后的扫描码

MOV DX,0602H ; 设置8255PB端口地址

IN AL,DX ; 读入列值

AND AL,0FH ; 屏蔽高位无关位

CMP AL,0FH ; 查列线是否全为1

JNZ LP4 ; 有,则转去找该列线

ADD CH,BH ; 无,则修改键号指向该行末列键号

MOV AL,AH ; 取回扫描码

DEC BL ; 行值减1

JNZ LP3 ; 行末查完转下一行

JMP LP2 ; 重新开始扫描键盘

LP4:INC CH ;键号加1,指向本行首列键号

RCR AL,1 ; 右移一位

JC LP4

MOV [SI],CH ;键号送入[SI]中

INC SI

POP DX

POP CX

POP BX

POP AX

RET

SAOMIAO ENDP

START:MOV AX,MYDATA ;主程序开始

MOV DS,AX

MOV ES,AX

MOV SI,OFFSET NUM

MOV DI,OFFSET SUM

MOV DX,0606H ;8255控制口地址

MOV AL,82H ;方式控制字,PA口方式0输入(行),PB口方式0输入(列) OUT DX,AL

MOV CX ,2

L1:CALL SAOMIAO ;输入第一个数

CALL SOFTDLY

LOOP L1

MOV CX,2

L2:CALL SAOMIAO ;输入第二个数

CALL SOFTDLY

LOOP L2

MOV CX,2

MOV SI,OFFSET NUM

CLC

L3:MOV AL,[SI+1] ;开始进行加法运算

ADC AL,[SI+3]

AAA

MOV [DI+2],AL

DEC DI

DEC SI

LOOP L3

MOV AH,0 ;防止溢出,保存进位

ADC AH,0

MOV [DI+2],AH

MOV DI,OFFSET SUM

L4:MOV DX,0604H ;送8255的PC口地址

MOV AH,[DI+1]

ROL AH,4

MOV AL,[DI+2]

ADD AL,AH

OUT DX,AL ;将十位,个位输出到PC口使LED灯显示 MOV AL,[DI]

ROL AL,4

MOV DX,0600H

OUT DX,AL ;将百位输出到PA口高4位使LED灯显示 MOV CX,20

L5:CALL SOFTDLY ;延迟2秒后清零

LOOP L5

MOV AX,0

OUT DX,AX

MOV DX,0604H

OUT DX,AX

JMP START

MYCODE ENDS

END START

5设计原理流程图

8255A与键盘接口程序流程图

开始

设置数据段

8255初始化

接受数据(键盘扫描子程

序)

处理数据(两个二位BCD

数相加程序)

输出数据(将和输出到PC口

8位及PA口高4位以驱动

LED灯显示)

返回

(a)主程序

开始

Y

N

Y

N

N Y

N

Y

(b)键盘扫描子程序

6实际硬件电路接线图

设A 端口为输出方式,B 端口为输入方式 A 端口输出全为“0”,从B 口读取列值 列线全为“1”? 保存列值,延时消抖动 列线仍有“1”? 设置行扫描初值,输出到A 口 修改行扫描码,转去下一行扫描 读入低4位列线值 列线是否有“0”?

从B 口读入列值 键释放? 保存键号

返回

设计总结

一周的课程设计很快的就结束了,我很感谢衣老师对我的耐心指导,在这一周内,我学到了很多的知识,同时也发现了自己的很多的不足,在以后的学习中努力的学习,来弥补自己的

XA1

XA2

统 XD0 .

. 总 . XD7

线

IOW#

IOR#

IOY0

A0

PB0

A1 S PB3

PA0 S D0 PA3 . . .

D7

PC0 S WR PC7

RD PA4 S CS PA7

Y1 键数 盘码 S 扫显 Y3 描示 及单 X1 元 S X3

D0 开 S 关 D7 及 LED D8 显 S 示 D11 单 元

微机原理习题及答案

一、选择 1、在微型计算机中,微处理器的主要功能是进行( )。 D A、算术运算 B、逻辑运算 C、算术、逻辑运算 D、算术、逻辑运算及全机的控制 2、Pentium I属于()位CPU C A、16 B、8 C、32 D、64 3、Intel 8086属于()位CPU A A、16 B、8 C、32 D、64 4、CPU与I/O设备间传送的信号通常有( ) D A、控制信息 B、状态信息 C、数据信息 D、以上三种都有 5、存储器用来存放计算机系统工作时所需要的信息,即( )。 D A、程序 B、数据 C、技术资料 D、程序和数据 6、运算器的核心部件是( )。 D A、加法器 B、累加寄存器 C、多路开关 D、算逻运算单元 二、填空 1、内存可分为2大类:随机存储器RAM 和 2、数据总线是向的,地址总线是向的。 3、计算机的五大部件是:、、、、输出设备 4、总线可分为三类:、、 5、存储程序工作原理最先由提出 6、在计算机内部,一切信息的存取、处理和传送都是以形式进行的。 1、只读存储器ROM 2、双、单 3、运算器、控制器、存储器、输入设备 4、地址总线、数据总线、控制总线 5、冯·诺依曼 6、二进制 三、简答 1、冯·诺依曼型计算机的特点是什么? (1).以二进制表示指令和数据 (2).程序和数据存放在存储器中,从存储器中取指令并执行 (3).由运算器、控制器、存储器、输入设备、输出设备构成计算机硬件系统。 一、选择 1、在机器数______中,零的表示形式是唯一的()。BD A、原码 B、补码 C、反码 D、移码 2、计算机内部表示带符号整数通常采用()。C A、原码 B、反码 C、补码 D、移码

微机原理学习心得

微机原理学习心得 本学期的微机原理课程即将要结束,以下是关于微机这门课程的心得体会: 初学《微机原理》时,感觉摸不着头绪。面对着众多的术语、概念及原理性的问题不知道该如何下手。在了解课程的特点后,我发现,应该以微机的整机概念为突破口,在如何建立整体概念上下功夫。“麻雀虽小,五脏俱全”可以通过学习一个模型机的组成和指令执行的过程,了解和熟悉计算机的结构、特点和工作过程。 《微机原理》课程有许多的新名词、新专业术语。透彻理解这些名词、术语的意思,为今后深入学习打下基础。一个新的名词从首次接触到理解和应用,需要一个反复的过程。而在众多概念中,真正关键的有很多。比如“中断”概念,既是重点又是难点,如果不懂中断技术,就不能算是搞懂了微机原理。在学习中凡是遇到这种情况,绝对不轻易放过,要力求真正弄懂,搞懂一个重点,将使一大串概念迎刃而解。 学习过程中,我发现许多概念很接近,为了更好的掌握,将一些容易混淆的概念集中在一起进行分析,比较它们之间的异同点。比如:微机原理中,引入了计算机由五大部分组成这一概念;从中央处理器引出微处理器的定义;在引出微型计算机定义时,强调输入/输出接口的重要性;在引出微型计算机系统的定义时,强调计算机软件与计算机硬件的相辅相成的关系。微处理器是微型计算机的重要组成部

分,它与微型计算机、微型计算机系统是完全不同的概念。 在微机中,最基础的语言是汇编语言。汇编语言是一个最基础最古老的计算机语言。语言总是越基础越重要。在重大的编程项目中应用最广泛。就我的个人理解,汇编是对寄存的地址以及数据单元进行最直接的修改。而在某些时候,这种方法是最有效,最可靠的。比如,最近闹得沸沸扬扬的珊瑚虫一案,其软件制作的核心人物就是使用汇编语言来创造闻名遐迩的QQ查IP软件-----珊瑚虫,并成立了有名的珊瑚虫工作室,其威力可见一斑。 然而,事物就是有两面性,有优点自然缺点也不少。其中,最重要的一点就是,汇编语言很复杂,对某个数据进行修改时,本来很简单的一个操作会用比较复杂的语言来解决,而这些语言本身在执行和操作的过程中,占有大量的时间和成本。在一些讲求效率的场合,并不可取。 汇编语言对学习其他计算机起到一个比较、对照、参考的促进作用。学习事物总是从最简单的基础开始的。那么学习高级语言也当然应当从汇编开始。学习汇编语言实际上是培养了学习计算机语言的能力和素养。个人认为,学习汇编语言对学习其他语言很有促进作用。 汇编语言在本学期微机学习中有核心地位。本学期微机原理课程内容繁多,我认为在学习中要考虑到“学以致用”,不能过分强调课程的系统性和基本理论的完整性,而应该侧重于基本方法和应用实例。从微机应用系统的应用环境和特点来看,微机系统如何与千变万化的外部设备、外部世界相连,如何与它们交换信息,是微机系统应用中的关键所在,培养一定的微机应用系统的分析能力和初步设计能

微机原理课程设计报告

微型计算机技术课程设计 指导教师: 班级: 姓名: 学号: 班内序号: 课设日期: _________________________

目录 一、课程设计题目................. 错误!未定义书签。 二、设计目的..................... 错误!未定义书签。 三、设计内容..................... 错误!未定义书签。 四、设计所需器材与工具 (3) 五、设计思路..................... 错误!未定义书签。 六、设计步骤(含流程图和代码) ..... 错误!未定义书签。 七、课程设计小结 (36)

一、课程设计题目:点阵显示系统电路及程序设计 利用《汇编语言与微型计算机技术》课程中所学的可编程接口芯片8253、8255A、8259设计一个基于微机控制的点阵显示系统。 二、设计目的 1.通过本设计,使学生综合运用《汇编语言与微型计算机技术》、《数字电子技术》等课程的内容,为今后从事计算机检测与控制工作奠定一定的基础。 2.掌握接口芯片8253、8255A、8259等可编程器件、译码器74LS138、8路同相三态双向总线收发器74LS245、点阵显示器件的使用。 3.学会用汇编语言编写一个较完整的实用程序。 4.掌握微型计算机技术应用开发的全过程,包括需求分析、原理图设计、元器件选用、布线、编程、调试、撰写报告等步骤。 三、设计内容 1.点阵显示系统启动后的初始状态 在计算机显示器上出现菜单: dot matrix display system 1.←left shift display 2.↑up shift display 3.s stop 4.Esc Exit 2.点阵显示系统运行状态 按计算机光标←键,点阵逐列向左移动并显示:“微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓”。 按计算机光标↑键,点阵逐行向上移动并显示:“微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓”。 按计算机光标s键,点阵停止移动并显示当前字符。 3.结束程序运行状态 按计算机Esc键,结束点阵显示系统运行状态并显示“停”。 四.设计所需器材与工具 1.一块实验面包板(内含时钟信号1MHz或2MHz)。 2.可编程芯片8253、8255、74LS245、74LS138各一片,16×16点阵显示器件一片。

微机原理加法器课程设计1

中文摘要和关键词 微机原理课程设计——8255,加法器设计2 本实验是对加法器的输入、运算、输出而进行的编程,利用了8255芯片,通过8255的A,B端口输入两个八位二进制数,经CPU运算后,由C端口输出. 通过编写相应程序用8086/8088的“OUT”指令可将8255的控制字送入其控制字寄存器所对应的地址,以达到将控制字送入8255的目的,以此来控制8255的工作方式以及A、B、C三个端口的输入,输出状态,格式化8255。本实验8255工作在方式0,即基本输入输出状态,A、B端口是输入状态,C端口是输入状态。再用相同方法可将8255的A、B两个端口的内容送入A、B两个端口。 通过A,B端口输入的两个二进制数经编程运算,然后在C口输出,通过循环语句实现两个二进制数求和的连续运算、输出. 关键字: 循环、工作方式、编程、运算、格式化

目录 课程设计任务书 1设计任务描述 1.1 设计目的 1.2 设计的要求 1.3对设计说明书撰写内容、格式、字数的要求 1.4设计完成后应提交成果的种类、数量、质量等方面的要求 1.5时间进度安排 2微机原理课程设计成绩评定表 3 设计思路 (3) 4 设计原理流程图.............………..….……..….………………….…..….…...…4~5 4.1主程序 4.2键盘扫描子程序 5 实际硬件接线图 (6) 6 源程序清单及注释…………..………..….….……………………….…………7~9 7主要元器件介绍………………………………………………………………10~12 7.1键盘 7.1.1键盘的工作原理 7.1.2键盘输入信息的过程 7.1.3键盘扫描(识别键)的过程 7.2 可编程并行接口8255A 7.2.1 8255简介 7.2.2 8255的控制字 参考文献 (13) 设计总结 (14)

微机原理实验报告

汇编语言程序设计实验 一、实验内容 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

微机原理报告教材

第一部分接口实验 实验一使用ADC0809的A/D转换实验 一、实验目的 加深理解逐次逼近法模数转换器的特征和工作原理,掌握ADC0809的接口方法以及A/D输入程序的设计和调试方法。 二、实验步骤 1、正确连接好实验线路 2、理解实验原理 3、仔细阅读,弄懂实验程序 4、安装软件 三、实验结果 ■打开实验源文件:在文件(FILE)栏目下选择打开(OPEN),在本软件所在的安装目录中8HASM子目录下选择源程序,如选H0809.ASM,屏幕上出现源文件窗口)。 ■编译、连接并装载目标文件:点击调试图标,对当前源文件窗口内的源文件进行编译、连接并装载到实验板的RAM中。目标文件装载起始地址默认为源文件中ORG定义的程序段起始地址。在反汇编窗口内显示刚才装入的程序,并有一红色小箭头指示在起始程序行上。 ■运行程序:点击运行图标,在数码管上应显示“0809-XX”。 ■调节电位器WD1,以改变模拟电压值,显示器上会不断显示新的A/D 转换结果。用ADC0809做A/D转换,其模拟量与数字量对应关系的典型值为+5V -FFH,2.5V-80H,0V-00H。 实验结果如图所示,实验成功。

实验二使用DAC0832的D/A转换实验(一) 一、实验目的 熟悉DAC0832数模转换器的特性和接口方法,掌握D/A 输出程序的设计和调试方法。 二、实验步骤 1 、根据原理图正确连接好实验线路 2 、正确理解实验原理 3 、运行实验程序 用示波器测量DOUT插孔,应有方波输出,方波的周期约为1ms。 三、实验结果 用示波器测量DOUT插孔,应有方波输出,方波的周期约为1ms。 实验结果如图所示,实验成功。 实验三使用DAC0832的D/A转换实验(二) 一、实验目的 进一步掌握数/模转换的基本原理。 二、实验步骤 1、根据原理图正确连接好实验线路。 2、运行实验程序 三、实验结果 用示波器测量DOUT插孔,应有锯齿波输出。

微机原理实验报告

西安交通大学实验报告 课程_微机与接口技术第页共页 系别__生物医学工程_________实验日期:年月日 专业班级_____组别_____交报告日期:年月日 姓名__ 学号__报告退发 ( 订正、重做 ) 同组人_教师审批签字 实验一汇编语言程序设计 一、实验目的 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循环右移四位

微机原理设计报告

微机原理课程设计 题目: I/O接口卡设计 学院:仪器与电子学院 专业:测控技术与仪器 指导教师:陈鸿 成员姓名: 设计日期:2015.6.15-2015.6.28 目录 一.设计题目及设计要求 1.设计内容 2.设计要求 二.设计总体方案

三.主要元件 1.IBM PC/XT总线简介 2.ISA总线简介 3.8255芯片简介 4.驱动器 5.LED显示器 四.工作原理 五.硬件电路 六.程序设计及流程图 1.流程图 2.程序设计 七.设计心得 八.参考文献 一、设计题目及设计要求: 1.设计一块I/O卡,该卡具有3个8位I/O口(A、B、C口),利用该I/O卡控 制该卡控制一个四位的LED显示器,该卡插在PC机的IMB-PC扩展总线插槽上(ISA),选用8255接口芯片 2.设计要求:画出电路原理图,说明工作原理,编写利用该接口卡对键盘上键入

的数字进行显示的程序(当回车键按下前,如果键入的数字的次数大于4时显示最后的4位数) 二.设计整体方案 该接口卡的主芯片是8255芯片,将ISA总线上的地址线A0-A19经过译码作为8255的片选信号,IOR、IOW分别作为8255的读写信号。四位LED显示器采用共阴极接法,将8255的A端口的8个引脚经过驱动器与LED的a-h相连,用C端口的低四位来控制那个LED亮,B端口不使用。 三.主要元件 1.IBM PC/XT总线简介 总线在PC/XT机的底板上共有8个插头,称为IMB PC/XT总线。PC/XT 总线在每个插槽(扩展槽)配有62个引脚代表各种不同的信号。IBM PC/XT 总线的62条引线包括20位地址线、8位数据线、21根控制线、2根状态线和11根辅助线及电源线。每一个插槽对应的引脚均有相同的意义,因此所有的接口卡可插于任何一个插槽上。引脚间隔为2.54mm。 2.ISA总线简介 ISA总线是IBM PC/AT机(CPU是80286)所用的系统总线,这是一个16位兼8位的总线标准。如果忽略标准化细节,则可认为16位ISA总线就是PC/AT总线。由于IBM PC/AT与IBM PC、IBM PC/XT机(CPU 都是8088)所用的Pc总线兼容,所以可认为8位ISA总线(16位ISA总的低8位部分)就是PC总线。ISA总线的主插槽与IBM总线的插槽兼容,如下:

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

北京联合大学信息学院实验报告 课程名称:微型计算机原理学号: 姓名: 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,查看开始的四个字节的内容,并思考其内容与程序

微机原理实验报告

微机原理实验报告 计算机网络的设计是一个要求动手能力很强的一门实践课程,在课程设计期间我努力将自己以前所学的理论知识向实践方面转化,尽量做到理论与实践相结合,在课程设计期间能够遵守纪律规章,不迟到、早退,认真完成老师布置的任务,同时也发现了自己的许多不足之处。 在课程设计过程中,我一共完成了11个实验,分别是1.制作直通电缆和交叉UTP、2.交换机Console口和Telnet配置、3.交换机端口和常规配置、4.虚拟局域网VLAN配置、5.路由器Console口Telnet 配置方法和接口配置、6.路由器静态路由配置、7单臂路由配置、8.动态路由协议配置、9.PPP协议配置、10路由器访问控制表(ACL)、11.网络地址转换(NAT)。 在制作直通电缆和交换UTP的实验中,我起初不能完全按照要求来剪切电缆,导致连接不通,后来在同学的帮助下,终于将实验完成。 在做到单臂路由配置和动态路由协议配置的实验,由于自身的基础知识掌握不牢,忘掉了一些理论知识,在重新翻阅课本和老师的指导之下,也成功的完成了试验。 从抽象的理论回到了丰富的实践创造,细致的了解了计算机网络连接的的全过程,认真学习了各种配置方法,并掌握了利用虚拟环境配置

的方法,我利用此次难得的机会,努力完成实验,严格要求自己,认真学习计算机网络的基础理论,学习网络电缆的制作等知识,利用空余时间认真学习一些课本内容以外的相关知识,掌握了一些基本的实践技能。 课程设计是培养我们综合运用所学知识,发现、提出、分析、解决问题的一个过程,是对我们所学知识及综合能力的一次考察。随着科学技术日新月异的不断发展,计算机网络也在不断的变化发展当中,这就要求我们用相应的知识来武装自己,夯实基础,为将来走向工作岗位,贡献社会做好充分的准备。

微机原理与接口技术复习提纲

1、简述中断源的分类和它们之间的优先顺序如何?并分别简述CPU响应各类中断源的条件? 答:按中断源与CPU的位置关系,可分为外部中断和内部中断两大类: 外部中断是指有外部设备通过硬件触发请求的方式产生的中断,又称为硬件中断,外部中断有分为非屏蔽中断和可屏蔽中断 内部中断是由CPU运行程序错误或执行内部程序调用引起的一种中断,亦称软件中断。 它们之间的优先顺序是内部中断、非屏蔽中断、可屏蔽中断和单步(跟踪)中断。 CPU响应内部中断、非屏蔽中断、可屏蔽中断和单步(跟踪)中断等四类中断的相同条件是:(1)必须要有中断请求,(2)CPU当前正在执行的指令必须结束,而对于可屏蔽中断,还必须满足IF=1,即CPU处于开中断状态的条件。 2、简述动态存储器(DRAM)的特点? 答; (1) CPU对RAM中的每一单元能读出又能写入。 (2) 读/写过程先寻找存储单元的地址再读/写内容。 (3) 读/写时间与存储单元的物理地址无关。 (4) 失电后信息丢失。现已开发出带电池芯片的RAM,称为非易失性RAM(NVRAM),做到失电后信息不丢失。(5) 作Cache和主存用 3、8086 CPU中地址加法器的重要性体现在哪里? 答:地址加法器是8086 CPU的总线接口单元中的一个器件,在8086存储器分段组织方式中它是实现存储器寻址的一个关键器件,地址加法器将两个16位寄存器中的逻辑地址移位相加,得到一个20位的实际地址,把存储器寻址空间从64K扩大到1M,极大地扩大了微型计算机的程序存储空间,从而大大提高了程序运行效率。 4、8086 CPU中有哪些寄存器?分组说明用途。哪些寄存器用来指示存储器单元的偏移地址? 答:8086 CPU中有8个通用寄存器AX、BX、CX、DX、SP、BP、SI、DI;两个控制寄存器IP、FL;四个段寄存器CS、DS、SS、ES。8个通用寄存器都可以用来暂存参加运算的数据或中间结果,但又有各自的专门用途。例如,AX专用做累加器,某些指令指定用它存放操作数和运算结果;CX为计数寄存器,在某些指令中做计数器使用;DX为数据寄存器;BX为基址寄存器,BP为基址指针,SI为源变址寄存器,DI为目的变址寄存器,这4个寄存器在数据寻址中用来存放段内偏移地址(有效地址)或段内偏移地址的一部分;SP为堆栈指示器,用来存放栈顶有效地址。两个控制寄存器用来存放有关的状态信息和控制信息。例如,标志寄存器FL用来存放状态标志和控制标志;而指令指针用来存放下一条要取指令的有效地址。四个段寄存器用来存放段地址。例如,CS寄存器用来存放代码段的段地址;DS寄存器用来存放数据段的段地址;SS寄存器用来存放堆栈段的段地址;ES寄存器用来存放扩展段的段地址。 5、DRAM为什么要刷新,存储系统如何进行刷新? DRAM以单个MOS管为基本存储单元,以极间电容充放电表示两种逻辑状态。由于极间电容的容量很小,充电电荷自然泄漏会很快导致信息丢失,所以要不断对它进行刷新操作、即读取原内容、放大再写入。 存储系统的刷新控制电路提供刷新行地址,将存储DRAM芯片中的某一行选中刷新。实际上,刷新控制电路是将刷新行地址同时送达存储系统中所有DRAM芯片,所有DRAM芯片都在同时进行一行的刷新操作。 刷新控制电路设置每次行地址增量,并在一定时间间隔内启动一次刷新操作,就能够保证所有DRAM芯片的所有存储单元得到及时刷新。 6、计算机I/O接口有何用途?试列出8个I/O接口。

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

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

实验一汇编语言编程基础 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语言一行代码就能实验的功能在汇编语言中可能要花上数十行。看来汇编语言的学习不是几周就能速成的,必须要有长年累月的积淀才能掌握。

微机原理实验报告概况

宣城校区 实验报告 课程名称____________________________专业班级_____________________________学生姓名及学号____________________________ 指导教师____________________________ 实验地点———————————————— 2015 ~2016 学年第二学期

《微机原理与接口技术》实验一(1) 实验名称存贮器内部数据传送 姓名系院专业电子信息类班级学号 实验日期2016.6.14 指导教师成绩 一、实验目的和要求 1、初步掌握星研集成环境工具软件的使用方法。 2、掌握存储器内部不同位置间数据传送的方法。 3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。 二、实验内容(包括实验步骤和代码) 1、编写源程序,要求将数据段中3000H~30FFH 单元的内容传送给6000H~60FFH 单元中。 2、编译、连接所编写的源程序。 3、执行程序前,利用存贮器窗口将DS:3000H~300FH 中的数据改为11、22、33、4 4、5 5、6 6、7 7、8 8、9 9、AA、BB、CC、DD、EE、FF、00,存贮器窗口支持数据的直接修改功能,在相对应的地址中直接输入数据即可。 4、进入调试状态后,分别以“全速运行”、“全速断点”、“单步”、“单步进入”等方式运行程序,同时在工作区窗口的CommonRegister 视图中查看本程序所使用的寄存器(CX、DI、SI)内容的变化。 5、在如下图所示的存贮器窗口中检查程序运行结果是否正确。

程序如下: .MODEL TINY ;memory mode : tiny .STACK 100 ;堆栈 .CODE ;开始程序段 START: MOV AX,@DATA MOV DS,AX MOV ES,AX NOP MOV CX,100H MOV SI,3000H MOV DI,6000H CLD REPE MOVSB MOV CX,100H MOV SI,3000H MOV DI,6000H REPE CMPSB JNE ERROR TRUE: JMP $ ERROR: JMP $ END START 三、实验结果及其分析 1、通过该实验,成功地将数据段中3000H~30FFH 单元的内容传送到了6000H~60FFH 单元中。 《微机原理与接口技术》实验一(2)

微机原理实验报告

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

实验一两个多位十进制数相加的实验 一、实验目的 学习数据传送和算术运算指令的用法 熟悉在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

微机原理 实验报告

微机原理与接口技术 实验指导书 班级 学号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 思考与练习题 一、选择题 1.计算机硬件中最核心的部件是( )。C A.运算器 B.主存储器 C.CPU D.输入/输出设备 2.微机的性能主要取决于( )。 A (B——计算机数据处理能力的一个重要指标) A.CPU B.主存储器 C.硬盘 D.显示器 3.计算机中带符号数的表示通常采用( )。C A.原码 B.反码 C.补码 D.BCD码 4.采用补码表示的8位二进制数真值范围是( )。C A.-127~+127 B.-1 27~+128 C.-128~+127 D.-128~+128 5.大写字母“B”的ASCII码是( )。B A.41H B.42H C.61H D.62H 6.某数在计算机中用压缩BCD码表示为10010011,其真值为( )。C A.10010011B B.93H C.93 D.147 二、填空题 1.微处理器是指_CPU_;微型计算机以_CPU_为核心,配置_内存和I/O接口_构成;其特点是_(1)功能强 (2)可靠性高 (3)价格低 (4)适应性强 (5)体积小 (6)维护方便_。P8 P5 2.主存容量是指_RAM和ROM总和_;它是衡量微型计算机_计算机数据处理_能力的一个重要指标;构成主存的器件通常采用_DRAM和PROM半导体器件_。P5 P9 3.系统总线是_CPU与其他部件之间传送数据、地址和控制信息_的公共通道;根据传送内容的不同可分成_数据、地址、控制_3种总线。P9 4.计算机中的数据可分为_数值型和非数值型_两类,前者的作用是_表示数值大小,进行算术运算等处理操作_;后者的作用是_表示字符编码,在计算机中描述某种特定的信息_。P12 5.机器数是指_数及其符号在机器中加以表示的数值化_;机器数的表示应考虑_机器数的范围、机器数的符号、机器数中小数点位置_3个因素。P15 P16 6.ASCII码可以表示_128_种字符,其中起控制作用的称为_功能码_;供书写程序和描述命令使用的称为_信息码_。P18 P19 三、判断题 1.计算机中带符号数采用补码表示的目的是为了简化机器数的运算。( )√ 2.计算机中数据的表示范围不受计算机字长的限制。( )× 3.计算机地址总线的宽度决定了内存容量的大小。( )√ 4.计算机键盘输入的各类符号在计算机内部均表示为ASCII码。( )× (键盘与计算机通信采用ASCII码) 2 思考与练习题 一、选择题 1.在EU中起数据加工与处理作用的功能部件是( )。A A.ALU B.数据暂存器 C.数据寄存器 D.EU控制电路 2.以下不属于BIU中的功能部件是( )。 B A.地址加法器 B.地址寄存器 C.段寄存器 D.指令队列缓冲器

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

一、实验目的 (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的值,观察在三种不同的数据块情况下程序的运行情况,并验证程 序的功能。

相关文档
最新文档