当前位置:文档之家› 微机原理与接口技术-北京交大-微机实验报告

微机原理与接口技术-北京交大-微机实验报告

微机原理与接口技术-北京交大-微机实验报告
微机原理与接口技术-北京交大-微机实验报告

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

班级:通信xxxx

姓名: xxxx

学号: 1xxxxx

授课教师: xxxx老师

目录

1.实验一 (3)

2. 实验二 (9)

3.实验三 (15)

4.实验四 (23)

5.实验五 (29)

6.实验六 (38)

实验一交通灯控制实验

一.实验目的

通过应用接口技术设计十字路口、复杂路口交通灯控制系统,学会应用“微机原理与接口技术”课程所学的X86汇编语言和接口技术掌握可编程并行接口芯片的硬件设计、软件编程,实现十字路口交通灯的模拟控制并思考计算机如何应用在各种控制系统中。

(1)掌握利用X86汇编语言技巧

(2)掌握X86微处理器与可编程并行接口芯片8255A硬件电路设计

(3)熟悉模拟交通灯控制的实现方法并思考如何应用在实际中。

二.实验内容

1.基本功能:

设计一个交通控制系统,该控制系统工作后,交通灯按照如下规律变化:

(1)南北路口的绿灯、东西路口的红灯同时亮3秒左右。

(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。

(3)南北路口的红、东西路口的绿灯同时亮3秒。

(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。

(5)返回(1)依次循环。

2.思考扩展功能:

(1)如遇到特殊情况,可拨动应急开关,使各项均为红灯,特殊车辆不受红灯限制,使其顺利通过后拨动另一个开关,系统返回继续运行

(2)用LED应倒计时方式显示各路口灯亮时间

(3)对于多路口联网应该如何设计。

三.实验电路

如下图,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律燃灭。

8255动态分配地址:

控制寄存器:0EC0BH

A口地址: 0EC08H

C 口地址: 0EC0AH

8255

PC7PC6PC5

PC2PC1PC0

CS

288H-28FH

L7 L6 L5

L2 L1 L0

红 黄 绿红 黄 绿交通灯实验电路图

10211089

四.程序流程图

长延时

是否有按键

南北路口黄灯闪,东西路口绿灯亮

南北路口绿灯亮,东西路口红灯亮

南北路口红灯亮,东西路口绿灯亮

设置8255A 口输出C 口输出

返回DOS

开始

南北路口红灯亮,东西路口黄灯闪

长延时

Y

N

交通灯控制流程图

10211089

五.源程序

CODE SEGMENT

ASSUME CS:CODE

;********************************** 工作状态控制字设置

START: MOV DX,0EC0BH ;写控制端口,地址0EC0BH MOV AL,10010000B ;C口方式0输出

OUT DX,AL

;**********************************南北路口绿灯亮,东西路口红灯亮FIRST: MOV DX,0EC0AH ;写PC口,地址0EC0AH MOV AL,00100100B ;南北绿,东西红,PC口写00100100

OUT DX,AL

;------------------------------两层嵌套实现长延时

MOV CX,0 ;外层循环送入初值65536

MOV AX,2000H ;内层循环送入初值2000H DELAY1: DEC AX

JNZ DELAY1

LOOP DELAY1

;**********************************南北路口黄灯闪烁,东西路口红灯亮MOV BL,5 ;BL控制黄灯亮的次数5次SECOND:MOV DX,0EC0AH

MOV AL,01000100B

OUT DX,AL ;南北黄,东西红

MOV CX,3000H

MOV AX,0100H

LI1:

DEC AX

JNZ LI1

LOOP LI1

MOV DX,0EC0AH ;短延时

MOV AL,00000100B ;南北路口黄灯先灭

OUT DX,AL

MOV CX,3000H

MOV AX,0100H

WEN1:

DEC AX

JNZ WEN1 ;短延时

LOOP WEN1

DEC BL

JNZ SECOND ;南北路口黄灯再亮

;**********************************南北路口红灯亮,东西路口绿灯亮THIRD: MOV DX,0EC0AH ;写入C口

MOV AL,10000001B

OUT DX,AL ;南北红,东西绿

MOV CX,0 ;长延时

MOV AX,2000H

DELAY2: DEC AX

JNZ DELAY2

LOOP DELAY2

MOV BL,4 ;控制黄灯亮的次数

FORTH: MOV DX,0EC0AH ;写入C口

MOV AL,10000010B

OUT DX,AL ;南北红,东西黄

MOV CX,3000H

MOV AX,0100H

LI2:

DEC AX

JNZ LI2 ;短延时

LOOP LI2

;**********************************南北路口红灯亮,东西路口黄灯闪烁MOV DX,0EC0AH

MOV AL,10000000B

OUT DX,AL ;东西路口黄灯先灭

MOV CX,3000H

MOV AX,0100H

WEN2:

DEC AX

JNZ WEN2

LOOP WEN2

DEC BL

JNZ FORTH ;东西路口黄灯再亮

MOV DL,0FFH

;**********************************检测是否有键按下,调用6号功能

MOV AH,06H

INT 21H ;执行键盘输入操作

JZ FIRST

MOV AH,4CH

INT 21H ;返回操作系统

CODE ENDS

END START

六.实验总结

这是我们的首个微机原理实验,而且我们班是第一批做实验的,没有丝毫经验,对实验箱以及TPC-2003集成开发环境都比较陌生,也没有事先编写好程序,因此时间很紧张,今后一定要在实验前做好充分的预习工作,现根据实验指导书上的要求,编写好程序。这个实

验主要是用8255的定时功能来定时,然后使用JZ、JNZ来实现闪烁和红绿灯转换等功能,运用循环进行延时,实验中还使用了6号功能来实现显示的功能。通过这次实验使我对8255的工作原理、定时功能有了进一步的了解,同时也对汇编的程序结构和调试方法更加熟悉。一开始,程序编译连接都没有错误,但是有一个红灯一直亮,其他功能均正常,我又去检查程序是否存在逻辑错误,并反调试运行,都不能解决问题,后来在别人的实验箱上就运行成功了,可靠的硬件保障是实验成功的首要条件。

实验二 可编程定时器/计数器

一.实验目的

通过实验了解可编程定时器/计数器的本质是计数,学会再设计应用系统中如何用接口芯片实现计数和定时功能,通过实验思考并比较标准TTL 集成电路实现计数和可编程定时器/计数器有什么不同,各有哪些特点?思考计数器可以用哪些场合。 (1)掌握8253A 与X86微机处理硬件连接原理。 (2)掌握8253A 计数定时应用编程。

(3) 熟悉掌握8253A 在PC 机系统中典型应用方法并思考如何应用在其他系统中。

二.实验内容

(1)利用单脉冲发生器作为8253A 可编程计数定时器时钟信号,实现N 个脉冲后产生输出高电平信号。

(2)利用8253A 可编程计数定时器实现产生1S 钟定时输出程序设计,输入1MHZ 。

三.实验电路

U5 8253

CLK0

GATE0OUT0

CS

280H-5V

5V

GND

R2

R3

图2.1 可编程定时器/计数器 电路图一

10211089

1.按图2.1虚线连接电路,将计数器0设置为方式0,计数器初值为N (N ≤0FH ),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当

输入N+1个脉冲后OUT0变高电平)。

2.按图2.2连接电路图,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率为1MHz )。

U5 8253

CLK0

GATE0OUT0CS

280H-5V

OUT1

GATE1CLK1

图2.2 可编程定时器/计数器 电路图二

10211089

5V

四.实验原理

8253具有3个独立的计数通道,采用减1计数方式。在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。当计数脉冲是已知周期的时钟信号时,计数就成为定时。作计数器时, 要求计数的次数可直接作为计数器的初值预置到减“1”计数器中。

8253中各通道可有6种可供选择的工作方式, 以完成定时、计数或脉冲发生器等多种功能。本实验用到的是方式0—计数结束中断。在写入计数值N 之后的第一个CLK 的下降沿将N 装入计数执行单元,待下一个CLK 的下降沿到来且门控信号GATE 为高电平时,通道开始启动计数。在计数过程中,OUT 一直保持低电平,直到计数达“0”时,OUT 输出由低电平变为高电平,并且保持高电平。

8253动态分配地址: 控制寄存器: 0EC03H 计数器0地址: 0EC00H 计数器1地址: 0EC01H

五.程序流程图

开始

设计数器0为工作方式0 显示计数值

读计数器值

送计数器初值

有键按下吗?

结束

N Y 开始

设计数器0为工作方式3

向计数器1送初值1000 先送低字节后送高字节

设计数器1为工作方式3

向计数器0送初值1000 先送低字节后送高字节结束

可编程定时器/计数器 流程图

10211089

六.源程序

(1)

DATA SEGMENT N EQU 0BH ;定义计数器初值N ,初值N 在0到F 之内,便于字符显示简

单 STRING DB 0AH,0DH,'$' ;定义STRING 用来换行,0DH 回车,0AH 换行,$是字符串

的结尾标志 DATA ENDS

STACK1 SEGMENT STACK DW 100 DUP(0) STACK1 ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK1

START: MOV AX,DATA

MOV DS,AX

;*************************************************8253的初始化

MOV DX,0EC03H ;控制寄存器地址0EC03H

MOV AL,10H ;计数器0:00,只读/写计数器的低字节:01,方式0:000,

;二进制计数:0, 所以控制字写00010000B

OUT DX,AL ;写入控制字

MOV DX,0EC00H ;计数器0地址0EC00H

MOV AL,N

OUT DX,AL ;写入计数初值为N,即0BH,11

MOV CL,N ;用CL控制计数N次

L00P: MOV DX,0EC00H

IN AL,DX ;读取当前数值

CMP AL,CL

JNE L00P ;若AL不等于CL,则继续到L00P循环

DEC CL ;更改CL值

;*****************************************************单字符输出程序,先转换成ASIIC

MOV DL,AL

CMP DL,09H ;转换为ASIIC,0~9内的数字加30,A到F加37

JLE ADD30

ADD DL,07H ; A~F先加7,下一步再加30

ADD30: ADD DL,30H

MOV AH,02H ;02号功能是单字符输出显示,显示计数器当前值INT 21H

;******************************************************

MOV DX,OFFSET STRING ;换行

MOV AH,09H ;,

INT 21H

CMP CL,0

JNL L00P ;循环至CL等于0,即N次

MOV AH,4CH

INT 21H

CODE ENDS

END START

(2)

CODE SEGMENT ;

ASSUME CS:CODE ;

START:MOV DX,0EC03H ;把控制寄存器地址放在DX寄存器中MOV AL,36H ;设置控制字00110110计数器0,方式3

OUT DX,AL ;

MOV AX,1000 ;

MOV DX,0EC00H ;把计数器0地址放在DX寄存器中

OUT DX,AL ;

MOV AL,AH ;

OUT DX,AL

MOV DX,0EC03H ;把端口地址放在DX寄存器中

MOV AL,76H ;设置控制字01110110(计数器1,方式3)

OUT DX,AL ;

MOV AX,1000

MOV DX,0EC01H ;把端口地址放在DX寄存器中

OUT DX,AL

MOV AL,AH

OUT DX,AL

MOV AH,4CH

INT 21H

CODE ENDS

END START

七.实验总结

经过第一次实验的教训后,我在实验前做了充足的预习工作,已经将程序写好,只需要在实验室连接外部电路,调试程序即可,因此实验进行得很顺利。这次实验是针对可编程定时时钟/计数器(8253),8253有六种工作方式,我在实验中主要用到了8253的工作方式0和工作方式3,此外调用了02号功能单字符输出显示,以及09号功能输出显示字符串,我在做宏汇编研究性学习的时候就已经研究过这两个功能的使用方法,所以这次使用得心应手,要注意的是:执行02号功能必须进行ASSIC码转换,执行09号功能必须在字符串结尾写一个符号'$',表示字符串结束。此外,在实验老师的指导下,我进一步熟悉了调试的方法,之前只会F8单步调试,但是在遇到很长的循环程序时,就不能单步调试的了,通过这次实验我学会了如何使用F4让程序进行到任意指定位置,这样就可以跳过循环继续执行代码。

实验三、可编程中断控制器

一.实验目的

通过实验了解中断是计算机系统最重要的工作方式之一,理解中断能实现系统协调工作,了解中断在操作系统,工业控制中的应用。通过实验可学会可编程中断控制器8259的结构、中断申请、中断响应、中断处理、中断返回等中断原理,掌握中断系统的编程与应用。(1)掌握PC机8259A可编程中断控制器中断基本原理。

(2)掌握中断源、中断处理过程、中断向量表的建立、DOS的使用。

(3)熟悉主程序、中断服务程序编写,了解中断相应过程。

二.实验内容

(1)学习PC机系统中断原理

(2)利用手动产单脉冲作为中断请求信号,要求每按一次开关产生一次中断在屏幕上显示一次“TPC pci card Interrupt”中断10次后程序退出。

三.实验原理

1. 由于9054的驱动程序影响直写9054芯片的控制寄存器,中断实验需要在纯DOS的环境中才能正常运行。这里指的纯DOS环境是指微机启动时按F8键进入的DOS环境。WINDOWS重启进入MSDOS方式由于系统资源被重新规划过,所以也不能正常实验。

2. 由于TPC卡使用PCI总线,所以分配的中断号每台微机可能都不同,编程时需要了解当前的微机使用那个中断号并进行设置,获取方法请参看汇编程序使用方法的介绍。(也可使用自动获取资源分配的程序取得中断号)

3. 在纯DOS环境下,有些微机的BIOS设置中有将资源保留给ISA总线使用的选项,致使在纯DOS环境(WINDOWS环境下不会出现此问题)下PCI总线无法获得系统资源,也就无法做实验,这时需要将此选项修改为使用即插即用。

4. 在纯DOS环境下,有些微机的BIOS设置中有使用即插即用操作系统的选项,如果在使用即插即用操作系统状态下,BIOS将不会给TPC卡分配系统资源,致使在纯DOS环境(WINDOWS环境下不会出现此问题)下PCI总线无法获得系统资源,也就无法做实验,这时需要将此选项修改为不使用即插即用操作系统。

5. 由于TPC卡使用9054芯片连接微机,所以在编程使用微机中断前需要使能9054的

中断功能,代码如下:

mov dx,ioport_cent+68h ;设置tpc 卡中9054芯片io口,使能中断

in ax,dx

or ax,0900h

out dx,ax

其中IOPORT_CENT是9054芯片寄存器组的I/O起始地址,每台微机可能都不同,编程时需要了解当前的微机使用哪段并进行设置,获取方法请参看本书结尾部分的介绍。(也可使用自动获取资源分配的程序取得),+68H的偏移是关于中断使能的寄存器地址,设置含义如下:

程序退出前还要关闭9054的中断,代码如下:

mov dx,ioport_cent+68h ;设置tpc 卡中9054芯片io口,关闭中断

in ax,dx

and ax,0f7ffh

out dx,ax

6. PC机中断控制器8259 的地址为20H、21H,编程时要根据中断类型号设置中断矢量,8259中断屏蔽寄存器IMR对应位要清零(允许中断),中断服务结束返回前要使用中断结束命令:

MOV AL,20H

OUT 20H,AL

中断结束返回DOS时应将IMR对应位置1,以关闭中断。

四.实验电路

实验电路如图,直接用手动产单脉冲作为中断请求信号,只需连接一根导线。

IRQ

+5V

R11R10

GND

中断实验电路图

五.流程图

开始

关中断

设置TPC卡中断使能

保存原中断向量

设置新中断向量

设置中断掩码

显示提示信息

开中断

计数器为0

按任意键

恢复中断掩码

恢复中断向量

设置TPC卡中断关闭

结束返回Y Y

N N

中断开始

关中断

计数器减1

显示提示信息

发出EOI结束中断

开中断

中断返回

中断实验流程图

10211089

五.源程序

;386以上微机适用

;纯dos下才能使用

;tasm4.1或以上编译

;*********************;

;* 中断 *;

;*********************;

data segment

int_vect EQU 073H ;中断0-7的向量为:08h-0fh,中断8-15的向量为:70h-77h

irq_mask_2_7 equ 11111011b ;中断掩码,中断0-7时从低至高相应位为零,中断8-15时第2位为零

irq_mask_9_15 equ 11110111b ;中断0-7时全一,中断8-15时从低至高相应位为零

ioport_cent equ 0E800h ;tpc 卡中9054芯片的io地址

csreg dw ?

ipreg dw ? ;旧中断向量保存空间

irq_times dw 00h ;中断计数

msg1 db 0dh,0ah,'TPC pci card Interrupt',0dh,0ah,'$'

msg2 db 0dh,0ah,'Press any key to exit!',0dh,0ah,'$'

msg3 db 0dh,0ah,'Press DMC to interrupt 10 times and exit!',0dh,0ah,'$' data ends

stack segment stack

db 100 dup (?)

stack ends

code segment

assume cs:code,ds:data,ss:stack,es:data

start:

;Enable Local Interrupt Input

.386

cli

mov ax,data

mov ds,ax

mov es,ax

mov ax,stack

mov ss,ax

mov dx,ioport_cent+68h ;设置 tpc 卡中9054芯片io口,使能中断

in ax,dx

or ax,0900h

out dx,ax

mov al,int_vect ;调用35号功能,保存原中断向量int_vect

mov ah,35h

int 21h

mov ax,es

mov csreg,ax

mov ipreg,bx ;ipreg csreg是旧中断向量保存空间

mov ax,seg int_proc ;调用25号功能设置新中断向量

mov ds,ax ;中断服务程序的的段基址送DX

mov dx,offset int_proc ;中断服务程序的的偏移地址送DX

mov al,int_vect

mov ah,25h

int 21h

in al, 21h ;设置中断掩码

and al, irq_mask_2_7 ;主片端口地址21H,D2允许中断11111011b out 21h, al

in al, 0a1h

and al, irq_mask_9_15 ;从片端口地址A1H,D3允许中断11110111b

mov ax,data

mov ds,ax

mov dx,offset msg2

mov ah,09h ;09号功能显示'Press any key to exit!' int 21h

mov dx,offset msg3 ;显示'Press DMC to interrupt 10 times and exit!'

mov ah,09h

int 21h

mov irq_times,0ah

sti ;允许可屏蔽中断请求进入

loop1:

cmp irq_times,0 ;等待中断并判断中断10次后退出

jz exit

mov ah,1 ;BIOS功能调用int 16h ah=01H检测字符是否准备好

int 16h ;ZF=0,表示无字符可接收,ZF=1,表示有字符可接收

jnz exit ;按任意键退出IF=1

jmp loop1

exit: cli

mov bl, irq_mask_2_7 ;恢复中断掩码

not bl

in al, 21h

or al, bl

out 21h, al

mov bl, irq_mask_9_15

not bl

微机原理与接口技术(第三版)课本习题答案

第二章 8086体系结构与80x86CPU 1.8086CPU由哪两部分构成它们的主要功能是什么 答:8086CPU由两部分组成:指令执行部件(EU,Execution Unit)和总线接口部件(BIU,Bus Interface Unit)。指令执行部件(EU)主要由算术逻辑运算单元(ALU)、标志寄存器FR、通用寄存器组和EU控制器等4个部件组成,其主要功能是执行指令。总线接口部件(BIU)主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成,其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参加EU运算或存放运算结果等。 2.8086CPU预取指令队列有什么好处8086CPU内部的并行操作体现在哪里答:8086CPU的预取指令队列由6个字节组成,按照8086CPU的设计要求,指令执行部件(EU)在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并分析执行它。从速度上看,该指令队列是在CPU内部,EU从指令队列中获得指令的速度会远远超过直接从内存中读取指令。8086CPU 内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取,并送到指令队列。 5.简述8086系统中物理地址的形成过程。8086系统中的物理地址最多有多少个逻辑地址呢答:8086系统中的物理地址是由20根地址总线形成的。8086系统采用分段并附以地址偏移量办法形成20位的物理地址。采用分段结构的存储器中,任何一个逻辑地址都由段基址和偏移地址两部分构成,都是16位二进制数。通过一个20位的地址加法器将这两个地址相加形成物理地址。具体做法是16位的段基址左移4位(相当于在段基址最低位后添4个“0”),然后与偏移地址相加获得物理地址。由于8086CPU的地址线是20根,所以可寻址的存储空间为1M字节,即8086系统的物理地址空间是1MB。逻辑地址由段基址和偏移地址两部分构成,都是无符号的16位二进制数,程序设计时采用逻辑地址,也是1MB。 6.8086系统中的存储器为什么要采用分段结构有什么好处 答:8086CPU中的寄存器都是16位的,16位的地址只能访问64KB的内存。086系统中的物理地址是由20根地址总线形成的,要做到对20位地址空间进行访问,就需要两部分地址

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

微机原理与接口技术实验报告 班级:自动化(铁道信号) 姓名: ***** 学号: 1121**** 授课教师:福恩

目录 1.实验一 (3) 2. 实验二 (8) 3.实验三 (13) 4.实验四 (22) 5.实验五 (26) 6.实验六 (33) 7.参考文献 (38)

实验一交通灯控制实验 一.实验目的 通过应用接口技术设计十字路口、复杂路口交通灯控制系统,学会应用“微机原理与接口技术”课程所学的X86汇编语言和接口技术掌握可编程并行接口芯片的硬件设计、软件编程,实现十字路口交通灯的模拟控制并思考计算机如何应用在各种控制系统中。 (1)掌握利用X86汇编语言技巧 (2)掌握X86微处理器与可编程并行接口芯片8255A硬件电路设计 (3)熟悉模拟交通灯控制的实现方法并思考如何应用在实际中。 二.实验容 设计一个交通控制系统,该控制系统工作后,交通灯按照如下规律变化: (1)南北路口的绿灯、东西路口的红灯同时亮3秒左右。 (2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。 (3)南北路口的红、东西路口的绿灯同时亮3秒。 (4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。 (5)返回(1)依次循环。 三.实验电路 如下图,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律燃灭。 8255动态分配地址: 控制寄存器:0EC0BH A口地址: 0EC08H C口地址: 0EC0AH

红黄绿红黄绿 图1-1 交通灯实验电路图四.程序流程图 五.源程序 CODE SEGMENT ASSUME CS:CODE ;********************************** 工作状态控制字设置 START: MOV DX,0EC0BH ;写控制端口,地址0EC0BH MOV AL,10010000B ;C口方式0输出 OUT DX,AL

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

新疆农业大学机械交通学院 实习(实验)报告纸 班级:机制072 学号: 073731234 姓名:唐伟 课程名称:微机原理及接口技术实习(实验)名称: DEBUG软件的使用 实验时间: 6.22 指导教师签字:成绩: —、实验目的 1.学习DEBUG软件的基本使用方法。 2.掌握8088/8086的寻址方式。 3.掌握数据传送、算术运算逻辑运算等类指令的基本操作。 二、实验内容与步骤 实验内容: 修改并调试以下程序,使之完成30000H开始的内存单元中存入31个先自然递增然后有自然递减的数据(00H~0F~00H)的功能。程序从CS:0100H开始存放。调试完成后程序命名为PCS.EXE并存盘。 实验步骤: (1)用A命令输入程序; (2)用反汇编U命令显示程序及目标码; 存盘程序命令为PCS1.EXE;

三、思考题 1.EXE文件程序的第一条可执行指令的IP等于多少? 答:EXE文件程序的第一条可执行指令的IP等于0010 。 2.在DEBUG环境下显示的程序和数字是什么形式?标号又是什么形式? 答: DEBUG把所有数据都作为字节序列处理。因此它可以读任何类型的文件。DEB UG可以识别两种数据: 十六进制数据和ASCⅡ码字符。它的显示格式是各个字节的十六进制值以及值在32与126之间的字节的相应ASCⅡ码字符。DEBUG总是用四位十六进制数表示地址。用两位数表示十六进制数据。不支持标号。 3.试述本次实验中你学会的DEBUG命令? 答:本次试验我学会了汇编命令(A命令)、.反汇编命令(U命令)、显示当前环境和寄存器内容(R命令、以十六进制和ASCII码形式显示内存单元内容(D命令)

西安交大微机原理实验报告1

实验一数据传送、算术运算、循环程序结构 实验目的: 1 ?熟悉8086汇编语言源程序的框架结构,并掌握汇编语言程序的编写、汇编、 连接、执行的过程,并利用 Turbo Debugger 调试汇编程序。 2. 熟悉8086指令系统的数据传送指令,掌握寻址方式。 3. 熟悉8086指令系统的算术运算指令。掌握循环结构汇编语言程序的编制。 实验内容: 1、P121 14 题 程序框图: DW 128 DUP ⑺ STACKS ENDS DATAS SEGMENT ;数据 DATA SEGMENT ORG 1000H BCD1 DD 90000010H,12345678H ORG 2000H BCD2 DD 90000020H,23456789H ;堆栈 段 源代码: STACKS SEGMENT STACK

DATA ENDS CODES SEGMENT ;代码段 ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS ;初始化 MOV DS,AX MOV CX,8 ; 循环次数 MOV BX,0 ; 指针 CLC J 进位清零 L00P1: MOV AL,[BX+1000H] ;BCD1 ADC AL,[BX+2000H] ;BCD1+BCD2 AAA J 分离修正 MOV [BX+2000H],AL ;移到要求的位置 INC BX ; 指针指向下一个子节 LOOP LOOP1 MOV AX,4C00H ;退出程 INT 21H CODES ENDS START 结果: 2、P121 15 题 程序框图: 源代码: STACKS SEGMENT STACK ;堆栈段 DW 128 DUP ⑺ STACKS ENDS DATAS SEGMENT ;数据段 END

微机原理与接口技术(第二版) 清华大学出版社

习题1 1.什么是汇编语言,汇编程序,和机器语言? 答:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。 汇编语言是面向及其的程序设计语言。在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码。这种用符号代替机器语言的二进制码,就把机器语言编程了汇编语言。 使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序。 2.微型计算机系统有哪些特点?具有这些特点的根本原因是什么? 答:微型计算机的特点:功能强,可靠性高,价格低廉,适应性强、系统设计灵活,周期短、见效快,体积小、重量轻、耗电省,维护方便。 这些特点是由于微型计算机广泛采用了集成度相当高的器件和部件,建立在微细加工工艺基础之上。 3.微型计算机系统由哪些功能部件组成?试说明“存储程序控制”的概念。 答:微型计算机系统的硬件主要由运算器、控制器、存储器、输入设备和输出设备组成。 “存储程序控制”的概念可简要地概括为以下几点: ①计算机(指硬件)应由运算器、存储器、控制器和输入/输出设备五大基本部件组成。 ②在计算机内部采用二进制来表示程序和数据。 ③将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作,使计算机在不需要人工干预的情况下,自动、高速的从存储器中取出指令加以执行,这就是存储程序的基本含义。 ④五大部件以运算器为中心进行组织。 4.请说明微型计算机系统的工作过程。 答:微型计算机的基本工作过程是执行程序的过程,也就是CPU自动从程序存

放的第1个存储单元起,逐步取出指令、分析指令,并根据指令规定的操作类型和操作对象,执行指令规定的相关操作。如此重复,周而复始,直至执行完程序的所有指令,从而实现程序的基本功能。 5.试说明微处理器字长的意义。 答:微型机的字长是指由微处理器内部一次可以并行处理二进制代码的位数。它决定着计算机内部寄存器、ALU和数据总线的位数,反映了一台计算机的计算精度,直接影响着机器的硬件规模和造价。计算机的字长越大,其性能越优越。在完成同样精度的运算时,字长较长的微处理器比字长较短的微处理器运算速度快。 6.微机系统中采用的总线结构有几种类型?各有什么特点? 答:微机主板常用总线有系统总线、I/O总线、ISA总线、IPCI总线、AGP总线、IEEE1394总线、USB总线等类型。 7.将下列十进制数转换成二进制数、八进制数、十六进制数。 ①(4.75)10=(0100.11)2=(4.6)8=(4.C)16 ②(2.25)10=(10.01)2=(2.2)8=(2.8)16 ③(1.875)10=(1.111)2=(1.7)8=(1.E)16 8.将下列二进制数转换成十进制数。 ①(1011.011)2=(11.375)10 ②(1101.01011)2=(13.58)10 ③(111.001)2=(7.2)10 9.将下列十进制数转换成8421BCD码。 ① 2006=(0010 0000 0000 0110)BCD ② 123.456=(0001 0010 0011.0100 0101 0110)BCD 10.求下列带符号十进制数的8位基2码补码。 ① [+127]补= 01111111

微机原理实验报告

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

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

实验一 DEBUG命令及其基本操作 一.实验目的: 1.熟练掌握DEBUG的常用命令,学会用DEBUG来调试程序。 2.深入了解数据在存储器中的存取方法,了解堆栈中数据的压入与弹出方法。 3.掌握各种寻址方法,了解简单指令的执行过程。 二、实验容: 1.打开计算机,在WINXP操作系统下,点击“开始”,选择“运行”,在“打开”一栏中输入“debug”,运行DEBUG应用程序,将出现DEBUG的提示符“-”。 2.在DEBUG提示符后键入字母“-a100”,回车后,屏幕上就会出现下面类似的容: (具体到每个计算机所产生的段地址和偏移地址可能有所不同) 这表示在地址1383:0100处,DEBUG等待用户键入程序助记符,下面键入程序: 3.在DEBUG的提示符后键入G,这是执行程序的命令,然后回车,就可以看到结果了。 4.现在让我们用“d”命令来看一下存储器 在100H~107H这8个单元,程序覆盖了原来的容,右边的字符是组成程序的ASCII码等价字符,圆点表示不可显示字符。 5.下面我们用反汇编命令来查看一下所键入的程序。“U”命令的格式是“U起始地址,终止地址”,即把起始地址到终止地址之间的十六进制码反汇编成汇编语言助记符语句。键入: 大家在屏幕上不仅可以看到地址和助记符,而且还可以看到与汇编语言等价的机器语言。6.现在我们修改存储单元的容,看看显示情况和变化。 我们看到显示的结果发生了变化,这是因为DOS的2号功能调用是显示输入数据的ASCII 码字符。 7.下面我们给程序命名并存盘。在键入“n”后紧跟程序名及扩展名

因为文件的字节数必须事先放在BX和CX中,其中BX保存高16位,CX保存低16位,整个32位的数保存文件的字节数,一般来说,BX设置为0,因为CX可存放的字节数为64K,对于一般的程序已足够了。 8.结束后可用Q命令退出DEBUG程序。 三、实验习题 1.写出完成下列功能的指令序列 (1)传送20H到AL寄存器 (2)将(AL)*2 (3)传送25H到BL寄存器 (4)(AL)*(BL) 问最后的结果(AX)=? 单步执行结果: 2.分别写出完成下列指令要求的指令: (1)将BX的低4位清零; (2)将AX的高4位置1; (3)将DX的低4位取反; (4)将CX的中间八位清零; (5)将AX中与BX中的对应位不相同的位均置1.

微机原理与接口技术学习心得

本学期微机原理课程已经结束,关于微机课程的心得体会甚多。微机原理与接口技术作为一门专业课,虽然要求没有专业课那么高,但是却对自己今后的工作总会有一定的帮助。记得老师第一节课说学微机原理是为以后的单片机打基础,这就让我下定决心学好微机原理这门课程。 初学《微机原理与接口技术》时,感觉摸不着头绪。面对着众多的术语、概念及原理性的问题不知道该如何下手。在了解课程的特点后,我发现,应该以微机的整机概念为突破口,在如何建立整体概念上下功夫。可以通过学习一个模型机的组成和指令执行的过程,了解和熟悉计算机的结构、特点和工作过程。 《微机原理与接口技术》课程有许多新名词、新专业术语。透彻理解这些名词、术语的意思,为今后深入学习打下基础。一个新的名词从首次接触到理解和应用,需要一个反复的过程。而在众多概念中,真正关键的并不是很多。比如“中断”概念,既是重点又是难点,如果不懂中断技术,就不能算是搞懂了微机原理。在学习中凡是遇到这种情况,绝对不轻易放过,要力求真正弄懂,搞懂一个重点,将使一大串概念迎刃而解。 学习过程中,我发现许多概念很相近,为了更好地掌握,将一些容易混淆的概念集中在一起进行分析,比较它们之间的异同点。比如:微机原理中,引入了计算机由五大部分组成这一概念;从中央处理器引出微处理器的定义;在引出微型计算机定义时,强调输入/输出接口的重要性;在引出微型计算机系统的定义时,强调计算机软件与计算机硬件的相辅相成的关系。微处理器是微型计算机的重要组成部分,它与微型计算机、微型计算机系统是完全不同的概念在微机中,最基础的语言是汇编语言。汇编语言是一个最基础最古老的计算机语言。语言总是越基础越重要,在重大的编程项目中应用最广泛。就我的个人理解,汇编是对寄存的地址以及数据单元进行最直接的修改。而在某些时候,这种方法是最有效,最可靠的。 然而,事物总有两面性。其中,最重要的一点就是,汇编语言很复杂,对某个数据进行修改时,本来很简单的一个操作会用比较烦琐的语言来解决,而这些语言本身在执行和操作的过程中,占有大量的时间和成本。在一些讲求效率的场合,并不可取。 汇编语言对学习其他计算机起到一个比较、对照、参考的促进作用。学习事物总是从最简单基础的开始。那么学习高级语言也当然应当从汇编开始。学习汇

8086软硬件实验报告(微机原理与接口技术上机实验)

实验一实验环境熟悉与简单程序设计 实验目的 (1)掌握DEBUG调试程序的使用方法。 (2)掌握简单程序的设计方法。 实验内容 编程将BH中的数分成高半字节和低半字节两部分,把其中的高半字节放到DH中的低4位(高4位补零),把其中的低半字节放到DL中的低4位(高4位补零)。如: BH=10110010B 则运行程序后 DH=00001011B DL=00000010B 实验准备 (1)熟练掌握所学过的指令。 (2)根据实验内容,要求预先编好程序。 实验步骤 (1)利用DEBUG程序输入、调试程序。 (2)按下表要求不断地修改BH的内容,然后记录下DX的内容。 实验报告 (1)给出程序清单。 (2)详细说明程序调试过程。

程序: CODE SEGMENT START : MOV BH,00111111B MOV AL,BH MOV CL,4 SHR AL,CL MOV DH,AL MOV AL,BH AND AL,00001111B MOV DL,AL MOV CL,0 CODE ENDS END START

实验二简单程序设计 实验目的 (3)掌握DEBUG调试程序的使用方法。 (4)掌握简单程序的设计方法。 实验内容 试编写一个汇编语言程序,要求实现功能:在屏幕上显示:Hello world My name is Li Jianguo 参考程序如下:(有错) data segment out1 db 'Hello world' ax db 'My name is Li Jianguo' data ens code segment assume cs:code;ds:data lea dx,out1 mov ah,2 int 21h mov dl,0ah mov ah,2

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

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

2

3

实验一:数据传送 实验学时:2 实验类型:验证 实验要求:必修 一.实验目的 1.学习程序设计的基本方法和技能,掌握用汇编语言设计、编写、调试和运行程序的方法; 学习用全屏幕编辑软件QEDIT.EXE建立源程序(.ASM文件); 学习用汇编软件MASM.EXE对源文件汇编产生目标文件(.OBJ文件); 学习用连接程序LINK.EXE对目标文件产生可执行文件(.EXE文件); 学习用调试软件TD.EXE调试可执行文件; 2.掌握各种寻址方法以及简单指令的执行过程。 二.实验器材 PC机 三.实验组织运行要求 1.利用堆栈实现AX的内容与BX的内容进行交换。堆栈指针SP=2000H,AX=3000H,BX=5000H; 2.汇编、调试、观察、记录结果; ⑴用QEDIT.EXE软件输入汇编语言源程序,以.ASM格式文件存盘; ⑵用MASM对源程序进行汇编产生二进制目标文件(.OBJ文件),再用连接程序LINK产生可执行文件(.EXE文件); ⑶用调试软件TD调试、运行程序,观察、记录结果。 四.实验步骤 1.进入子目录E:>\SY86后,利用QEDIT.EXE(简称Q)送入以下汇编语言源程序,并以M1.ASM文件存盘 ⑴汇编语言程序的上机过程 ①进入\SY86子目录 E:>CD\SY86 E:\SY86> ②进入QEDIT.EXE 编辑界面 E:\SY86> Q ③输入文件名*.ASM(如M1.ASM)后,输入源程序 源程序 DATA SEGMENT PARA PUBLIC’DATA’ ;数据段定义 DB 512 DUP(0) DATA ENDS STACK SEGMENT PARA STACK’STACK’ ;堆栈段定义 DB 512 DUP( ?) 4

微机原理实验四实验报告 8255控制交通灯实验

实验四 8255控制交通灯实验 一、实验目的与要求 1、了解8255芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。学会使用8255并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。 2、熟悉8255内部结构和与8088的接口逻辑,熟悉8255芯片的3种工作方式以及控制字格式。 3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。 二、实验设备 STAR系列实验仪一套、PC机一台 三、实验内容 1、编写程序:使用8255的PA0.. 2、PA4..6控制LED指示灯,实现交通灯功能。 2、连接线路验证8255的功能,熟悉它的使用方法。 四、实验原理图 五、实验步骤 六、演示程序

.MODEL TINY COM_ADD EQU 0F003H PA_ADD EQU 0F000H PB_ADD EQU 0F001H PC_ADD EQU 0F002H .STACK 100 .DATA LED_Data DB 01111101B ;东西绿灯,南北红灯DB 11111101B ;东西绿灯闪烁,南北红灯 DB 10111101B ;东西黄灯亮,南北红灯 DB 11010111B ;东西红灯,南北绿灯 DB 11011111B ;东西红灯,南北绿灯闪烁 DB 11011011B ;东西红灯,南北黄灯亮 .CODE START: MOV AX,@DATA MOV DS,AX NOP MOV DX,COM_ADD MOV AL,80H ;PA、PB、PC为基本输出模式 OUT DX,AL MOV DX,PA_ADD ;灯全熄灭 MOV AL,0FFH OUT DX,AL LEA BX,LED_Data START1: MOV AL,0 XLAT OUT DX,AL ;东西绿灯,南北红灯 CALL DL5S MOV CX,6 START2: MOV AL,1 XLAT OUT DX,AL ;东西绿灯闪烁,南北红灯 CALL DL500ms MOV AL,0 XLAT OUT DX,AL CALL DL500ms LOOP START2 MOV AL,2 ;东西黄灯亮,南北红灯 XLAT OUT DX,AL CALL DL3S MOV AL,3 ;东西红灯,南北绿灯

微机原理上机实验答案

实验01A 将FFFFH送到AX,BX,CX,DX,SI,DI,BP寄存器 程序如下: CODE SEGMENT ASSUME CS:CODE START PROC FAR STT:PUSH DS SUB AX,AX PUSH AX ;============================== MOV AX,0FFFFH MOV BX,AX MOV CX,AX MOV DX,AX MOV SI,AX MOV DI,AX MOV BP,AX ;============================== RET START ENDP CODE ENDS END STT 实验01B 将FFH送到内存1000H,1001H,1002H,1003H,1004H单元中程序如下: DA TA SEGMENT ORG 1000H H1 DB 5 DUP(?) DA TA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DA TA START PROC FAR STT:PUSH DS SUB AX,AX PUSH AX ;============================== MOV AL,0FFH MOV DI,1000H MOV CX,5 ;循环5次 LP1:MOV [DI],AL ;FF放入1000H-1004H中 INC DI

DEC CX JNZ LP1 ;============================== RET START ENDP CODE ENDS END STT 实验02A 编写一个加法程序,在数据段偏移地址1000H处开始,存放有两个3字节长的数据(高位对应高地址,低位对应低地址),求这两数据(十六进制数)的和,并将结果放在两数据之后,利用DEBUG调试程序,并求解:CCBBAAH+223344H=?CCBBAA+554433H=? 程序如下: DA TA SEGMENT ORG 1000H H1 DB 10 DUP(?) DA TA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DA TA START PROC FAR STT:PUSH DS SUB AX,AX PUSH AX Mov ax,dseg Mov ds,ax ;============================== MOV SI,1000H ;不带最高位进位的全加器 MOV DI,1003H MOV BX,1006H MOV CX,3 CLC AA: MOV AL,[SI] ADC AL,[DI] MOV [BX],AL PUSHF ;保护FR,这里其实没有必要,因为INC不会产生进位 INC SI INC DI INC BX POPF LOOP AA

北京交通大学微机原理实验报告

微机原理 实 验 报 告 隋伟 08212013 自动化0801

目录 一、I/O地址译码与交通灯控制实验 (3) 二、可编程定时器/计数器(8253) (6) 三、中断实验(纯DOS) (11) 四、模/数转换器………………………………………………………… 18 五、串行通讯…………………………………………………………… 16 六、课程综合实验(抢答器) …………………………………………… 28 七、自主设计实验——LED显示 (32) 八、参考文献 (35)

一、I/O地址译码与交通灯控制实验 一.实验目的 通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。 二.实验内容 如图5-3,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律燃灭。 十字路口交通灯的变化规律要求: (1)南北路口的绿灯、东西路口的红灯同时亮3秒左右。 (2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。 (3)南北路口的红灯、东西路口的绿灯同时亮3秒左右。 (4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。 (5)转(1)重复。 8255动态分配地址: 控制寄存器: 0C40BH A口地址: 0C408H C口地址: 0C40AH

三.程序流程图和程序清单 DATA SEGMENT X DB ? DATA ENDS STACK1 SEGMENT STACK DW 100H DUP(0) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1 START: MOV AX,DATA MOV DS,AX ;---------------INIT---------------- MOV DX,0C40BH ;写控制字

微机原理及应用实验报告

微机原理及应用实验报告标准化文件发布号:(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次 后,最小的那个数就会沉底,在下一次比较时将减少一次比较次数。如 果一次比较完毕,没有发生交换,说明已经按照从大到小的顺序排列 了。则可以退出循环,结束程序。 程序结构框图和程序代码如下:

微机原理与接口技术_课程设计实验报告

课程设计实验报告 课程:现代微机原理与接口技术题目:键盘扫描实验

班级:数字媒体 1004 学号: 0305100417 学生:海洋 指导老师:天天 日期: 2012.6.18 一、实验目的 (1)掌握键盘扫描的应用及编程 (2)掌握LED的应用 二、实验设备 PC计算机一台,TD-PIT + 实验系统一套。 三、实验原理 (1)8255芯片:8255具有3个带锁存或缓冲的数据端口,它的并行数据宽度为8位。可与外设并行进行数据交换。A口和B口具有中断控制逻辑,在外设与CPU之间可用中断方式进行信息交换。把8255并口和键盘,组成一个键盘装置。通过cpu对8255的控制最总达到键扫的目的。每一个键对应一个ASCII 码字符,通过8255的输入和输出,最终显示在屏幕上。 (2)LED数码显示原理:数码管的 7 个段及小数点都是由 LED 块组成的,显示方式分为静态显示和动态显示两种。数码管在静态显示方式时,其共阳管的位选信号均为低电平,四个数码管的共用段选线 a、b、c、d、e、f、g、dp 分别与单片机的 8 根 I/O 口线相连,显示数字时只要给相应的段选线送低电平。数码管在动态显示方式时,在某一时刻只能有一个数码管被点亮显示数字,其余的处于非选通状态,位选码端口的信号改变时,段选码端口的信号也要做相应的改变,每位显示字符停留显示的时间一般为1-5ms,利用人眼睛的视觉惯性,在数码管上就能看到相当稳定的数字显示。 (3)键盘扫描原理:第一步,使行线为编程的输入线,列线是输出线,拉低所有的列线,判断行线的变化,如果有按键按下,按键按下的对应行线被拉低,否则所有的行

微机原理与接口技术

第二章 8086系统结构 一、 8086CPU 的内部结构 1.总线接口部件BIU (Bus Interface Unit ) 组成:20位地址加法器,专用寄存器组,6字节指令队列,总线控制电路。 作用:负责从内存指定单元中取出指令,送入指令流队列中排队;取出指令所需的操作 数送EU 单元去执行。 工作过程:由段寄存器与IP 形成20位物理地址送地址总线,由总线控制电路发出存储器“读”信号,按给定的地址从存储器中取出指令,送到指令队列中等待执行。 *当指令队列有2个或2个以上的字节空余时,BIU 自动将指令取到指令队列中。若遇到转移指令等,则将指令队列清空,BIU 重新取新地址中的指令代码,送入指令队列。 *指令指针IP 由BIU 自动修改,IP 总是指向下一条将要执行指令的地址。 2.指令执行部件EU (Exection Unit) 组成:算术逻辑单元(ALU ),标志寄存器(FR ),通用寄存器,EU 控制系统等。 作用:负责指令的执行,完成指令的操作。 工作过程:从队列中取得指令,进行译码,根据指令要求向EU 内部各部件发出控制命令,完成执行指令的功能。若执行指令需要访问存储器或I/O 端口,则EU 将操作数的偏移地址送给BIU ,由BIU 取得操作数送给EU 。 二、 8088/8086的寄存器结构 标志寄存器 ALU DI DH SP SI BP DL AL AH BL BH CL CH ES SS DS CS 内部暂存器输入 / 输出控制 电路1432EU 控制系 统20位16位8086总线指令 队列总线 接口单元执行 单元 6 516位 属第三代微处理器 运算能力: 数据总线:DB

微机原理上机实验报告3

201406 微机原理上机实验报告 实验三 班级:物联网1班 姓名:邓笑游 学号: 01210261y11 成绩:

实验3:8086 典型习题的上机求解实验 一、实验目的 1、了解8086指令的特点。 2、学会用Debug和源程序的上机方法求解作业答案的方法。 二、预习要点 1、习题的现场 2、选用工具的方法 三、实验项目 在DOS下利用Debug调试工具和MASM、LINK工具和模版验证求解典型习题的答案。 四、实验设备环境 PC机1台,DOS操作系统,Debug调试工具 五、实验方法 1.现有数据段如下: DAT1 SEGMENT ORG 0020H A1 DW 12H , 23H A2 DB 11H , 21H A3 EQU 1234H A4 EQU $+8 A5 DW 31H , A2 DAT1 ENDS 该数据段占有多少字节的存储空间?A5的偏移地址是何值?A4的值是多少? 2.若48H和93H是无符号数。 SOUR DB 48H,93H MZ DB ?

MOV AL,SOUR CMP AL,SOUR+1 JA K1 MOV AL,SOUR+1 K1: MOV MZ,AL 试问:①(MZ)=_____________ ②48H和93H是有符号数,JA K1指令应改为什么指令? 3.编程序统计某班100个学生英语考试分数高于等于85分以上的人数,结果存入MN字节中。 六、实验要求 将习题1、2、3改造上机求解答案

实验3报告习题1的上机源程序 习题1的汇编、链接

习题1的代码段 已看到答案,该数据段占有10个字节的存储空间?A5的偏移地址是0026H?A4的值是002EH 习题2的源程序

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

微机原理与接口技术 实验报告 学院:计算机与通信工程学院 专业:计算机科学与技术 班级: 学号: 姓名:

实验一8259中断控制器应用实验 一、实验目的 1.掌握PC机中断处理系统的基本原理。 2. 掌握可编程中断控制器8259的应用编程方法。 二、实验内容 1.PC机内中断实验。使用单次脉冲模拟中断产生。验证中断处理程序,在显示器屏幕上显示一行预设定的字符串。 2.PC机内中断嵌套实验。使用单次脉冲模拟两个中断源的中断产生,填写中断处理程序,体会中断嵌套的过程。 3.扩展多中断源查询方式应用实验。利用实验平台上8259控制器作为中断扩展源,编写程序对8259控制器的中断请求进行处理。 三、实验步骤 1.实验1-1:PC机内中断应用实验 (1)按接线图连好接线,调用程序源代码8259-1.asm,观察实验现象,屏幕显示结果截图如下: (2)自设计实验。改变接线方式,将单次脉冲连到USB核心板上的IRQ10插孔上,参考本实验代码,编程实现IRQ10中断。(注意:考虑PC机内中断级联的方式,参看前面的原理说明),代码如下: DA TA SEGMENT MESS DB 'IRQ10 ',0DH,0AH, '$' DA TA ENDS

CODE SEGMENT ASSUME CS:CODE, DS:DA TA START: MOV AX, CS MOV DS, AX MOV DX,OFFSET INT10 MOV AX,2572H ;设置IRQ10对应的中断向量 INT 21H IN AL,21H ;读取中断屏蔽寄存器 AND AL,0F3H ;开放IRQ3中断和从片 OUT 21H,AL IN AL,0A1H ;从片的中断屏蔽寄存器 AND AL,0FBH ;开放IRQ10中断 OUT 0A1H,AL MOV CX,10 STI WAIT: JMP W AIT INT10: MOV AX, DATA ;中断服务程序 MOV DS, AX MOV DX, OFFSET MESS MOV AH, 09 ;在屏幕上显示每次中断的提示信息 INT 21H MOV AL, 20H ; 发出EOI结束中断到PC内主片的地址20H OUT 20H, AL LOOP NEXT IN AL, 21H ;读中断屏蔽寄存器,获取中断屏蔽字 OR AL, 08H ;关闭IRQ3中断 OUT 21H, AL ;将中断屏蔽字送到中断屏蔽寄存器 STI ;置中断标志位 MOV AH, 4CH ;返回DOS INT 21H NEXT: IRET ;中断返回 CODE ENDS END START 调用程序代码,观察实验现象,屏幕显示截图如下:

西交大微机原理与接口技术实验报告

微机原理与接口技术实验报告 学院: 班级: 姓名: 学号:

西安交通大学实验报告 课程微机原理与接口技术实验日期年月日 专业班号交报告日期年月日 姓名学号共页第 1 页实验1 数据传送、算术运算、循环程序结构 一、实验目的 1.熟悉8086汇编语言源程序的框架结构,并掌握汇编语言程序的编写、汇编、连接、执行的过程,并利用Turbo Debugger调试汇编程序。 2.熟悉8086指令系统的数据传送指令,掌握寻址方式。 3.熟悉8086指令系统的算术运算指令。掌握循环结构汇编语言程序的编制。 二、实验任务 教材P121,第14、15题。 教材P195,第6、12题。 三、实验内容 实验1.1:教材P121,第14题 设有两个8个字节长的BCD码数据BCD1及BCD2。BCD1数以1000H为首地址在内存中顺序存放;BCD2数以2000H为首地址在内存中顺序存放。要求相加后结果顺序存放在以2000H为首地址的内存区中(设结果BCD数仍不超过8个字节长)。 【实验原理】 考虑两个8个字节长的BCD码相加,首先根据地址要求将数据放在对应的地址单元中,然后做加法,BCD码相加要用到调整指令,结果才为正确的BCD数。若为分离BCD 码调整指令为AAA,组合BCD码调整指令为DAA。 【程序框图】

开始 结束 设置初值CX=8地址指针BX=0进位标志CF=0 取相对于段基址1000H 和2000H 偏移量为BX 的两个 BCD 数相加 调用调整指令AAA (DAA )并将结果存入[BX+2000H]中 BX<-BX+1CX<-CX-1 CX 是否为0 Y N 【程序源代码】 DATAS SEGMENT ORG 1000H BCD1 DB 01H,02H,03H,04H,05H,06H,07H,08H ;起始地址为1000H ORG 2000H BCD2 DB 03H,04H,07H,08H,09H,02H,01H,00H ;起始地址为2000H DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START : MOV AX,DATAS MOV DS,AX MOV CX,8 ;字节数送CX MOV BX,0 ;地址指针BX 清零 CLC ;进位标志CF 清零 L1: MOV AL,[BX+1000H] ;取BCD1的一个字节 ADC AL,[BX+2000H] ;与BCD2的一个相应字节及进位标志相加 AAA ;分离BCD 码加修正 MOV [BX+2000H],AL ;和存入加上内存区 INC BX ;修改地址指针 LOOP L1 ;8个字节未加完继续循环进行 MOV AH,4CH INT 21H CODES ENDS

微机原理实验报告

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

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

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