微机原理及其接口技术重要实验详解

微机原理及其接口技术重要实验详解
微机原理及其接口技术重要实验详解

实验三可编程定时器/计数器(8253)

一、实验目的

掌握8253的基本工作原理和编程方法。

二、实验内容

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

三、编程提示

1、8253控制寄存器地址283H

计数器0地址280H

计数器1地址281H

CLK0连接时钟1MHZ

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

;* 8253方式0计数器实验*;

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

io8253a equ 283h

io8253b equ 280h

code segment

assume cs:code

start: mov al,14h ;设置8253通道0为工作方式2,二进制计数

mov dx,io8253a

out dx,al

mov dx,io8253b ;送计数初值为0FH

mov al,0fh

out dx,al

lll: in al,dx ;读计数初值

call disp ;调显示子程序

push dx

mov ah,06h

mov dl,0ffh

int 21h

pop dx

jz lll

mov ah,4ch ;退出

int 21h

disp proc near ;显示子程序

push dx

and al,0fh ;首先取低四位

mov dl,al

cmp dl,9 ;判断是否<=9

jle num ;若是则为'0'-'9',ASCII码加30H

add dl,7 ;否则为'A'-'F',ASCII码加37H

num: add dl,30h

mov ah,02h ;显示

int 21h

mov dl,0dh ;加回车符

int 21h

mov dl,0ah ;加换行符

int 21h

pop dx

ret ;子程序返回

disp endp

code ends

end start

实验三可编程定时器/计数器(8253)

一、实验目的

掌握8253的基本工作原理和编程方法。

二、实验内容

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

三、编程提示

1、8253控制寄存器地址283H

计数器0地址280H

计数器1地址281H

CLK0连接时钟1MHZ

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

;* 8253分频*

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

io8253a equ 280h

io8253b equ 281h

io8253c equ 283h

code segment //声明代码段

assume cs:code

start:mov dx,io8253c ;向8253写控制字mov dx,283h;

mov al,36h ;使0通道为工作方式3

D7D6D5D4D3D2D1D0=00110110,D7D6=00表示计数器0;D5D4=11先读写低8为再读写高8位;D3D2D1=011表示计数器工作方式3;D0=0表示计数器的初值为二进制数

out dx,al //向283h写控制字

mov ax,1000 ;写入循环计数初值1000

mov dx,io8253a

out dx,al ;先写入低字节到计数器0地址280H

mov al,ah

out dx,al ;后写入高字节到计数器0地址280H

mov dx,io8253c

mov al,76h ;设8253通道1工作方式3 .D7D6D5D4D3D2D1D0=01110110,D7D6=01表示计数器1;D5D4=11 先读写低8为再读写高8位;D3D2D1=011表示计数器工作方式3;D0=0表示计数器的初值为二进制;

out dx,al

mov ax,1000 ;写入循环计数初值1000

mov dx,io8253b

out dx,al ;先写低字节到计数器1地址281H

mov al,ah

out dx,al ;后写高字节到计数器1地址281H

mov ah,4ch ;程序退出

int 21h

code ends

end start

实验四可编程并行接口(一)(8255方式0)

一、实验目的

掌握8255方式0的工作原理及使用方法。

二、实验内容

1、实验电路如图4-1,8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。2、编程从8255C口输入数据,再从A口输出。

三、编程提示

1、8255控制寄存器端口地址28BH

A口的地址288H

C口的地址28AH

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

;* 8255方式0的C口输入,A口输出*;

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

io8255a equ 288h

io8255b equ 28bh

io8255c equ 28ah

code segment //定义代码段

assume cs:code

start:mov dx,io8255b ;设8255为C口输入,A口输出mov dx,

28bh//D7=1,D6D5=00(工作方式为0),D4=0(A出),D2=0,D3=1(C入),D0=1(C入)。

mov al,8bh //D7D6D5D4D3D2D1D0=10001011,D7=1,D6D5=00,

D4=0,D3.D0=0,D2=0,D1=1

out dx,al //设8255为C口输入,A口输出

inout: mov dx,io8255c ;c口的地址28AH从C口输入一数据

in al,dx //将al的数给dx

mov dx,io8255a ;A口的地址288H从A口输出刚才自C口

out dx,al ;所输入的数据

mov dl,0ffh ;判断是否有按键

mov ah,06h

int 21h

jz inout ;若无,则继续自C口输入,A口输出

mov ah,4ch ;否则返回

int 21h

code ends

end start

实验七竞赛抢答器

一、实验目的

1、了解微机化竞赛抢答器的基本原理。

2、进一步学习使用并行接口。

二、实验内容

图7-1为竞赛抢答器(模拟)的原理图,逻辑开关K0~K7代表竞赛抢答按钮0~7号,当某个逻辑电平开关置“1”时,相当某组抢答按钮按下。在七段数码管上将其组号(0~7)显示出来,并使微机扬声器响一下。

三、编程提示

设置8255为C口输入、A口输出,读取C口数据,若为0表示无人抢答,若不为0则有人抢答。根据读取数据可判断其组号。从键盘上按空格键开始下一轮抢答,按其它键程序退出。

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

;* 本程序为模拟抢答器*

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

data segment ;定义数据段

io8255a equ 28ah ;端口初始化

io8255b equ 28bh

io8255c equ 288h

led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h ;数码表

data ends

code segment ;定义代码段

assume cs:code,ds:data ;有了这一句代码,程序就知道从ds:data中找到data所定义

的内存地址,然后传送给ds

start:mov ax,data ;把data段的段地址送入es中,以便计算物理地址的时候得

到正确的段地址。

mov ds,ax

mov dx,io8255b ;设8255为A口输出,C口输入

mov ax,89h

out dx,al

mov bx,offset led ;使BX指向段码管首址

sss: mov dx,io8255a ;从8255的C口输入数据

in al,dx

or al,al ;比较是否为0

je sss ;若为0,则表明无键按下,转sss

mov cl,0ffh ;cl作计数器,初值为-1

rr: shr al,1 ;al逻辑右移一位

inc cl ;cl减一

jnc rr ;如果进位则跳转

mov al,cl ;

xlat ;交换。。。。22行到27行应该循环计数

mov dx,io8255c ;从8255的C 端输出“个人觉得是初始化”

out dx,al

mov dl,7 ;响铃ASCII码为07

mov ah,2 ;输出指令(三条指令一起读)

int 21h

wai: mov ah,1 ;键盘输入一个数

int 21h

cmp al,20h ;是否为空格

jne eee ;不是,转eee ,等于零跳转,不等于零继续执行

mov al,0 ;是,关灭灯

mov dx,io8255c ;从8255的C 端输出“个人觉得是初始化”

out dx,al

jmp sss ;跳转到sss

eee: mov ah,4ch ;功能调用,该功能为关闭窗,即抢答结束

int 21h

code ends ;代码段结束

end start ;程序结束

实验九中断

一、实验目的

1、掌握PC机中断处理系统的基本原理。

2、学会编写中断服务程序。

二、实验原理与内容

1、实验原理

PC机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU发出可屏蔽中断请求。IBMPC、PC/XT机内有一片8259中断控制器对外可以提供8个中断源:

中断源中断类型号中断功能

IRQ0 08H 时钟

IRQ1 09H 键盘

IRQ2 0AH 保留

IRQ3 OBH 串行口2

IRQ4 0CH 串行口1

IRQ5 0DH 硬盘

IRQ6 0EH 软盘

IRQ7 0FH 并行打印机

8个中断源的中断请求信号线IRQ0~IRQ7在主机的62线ISA总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。对于PC/AT及286以上微机内又扩展了一片8259中断控制,IRQ2用于两片8259之间级连,对外可以提供16个中断源:

中断源中断类型号中断功能

IRQ8 070H 实时时钟

IRQ9 071H 用户中断

IRQ10 072H 保留

IRQ11 O73H 保留

IRQ12 074H 保留

IRQ13 075H 协处理器

IRQ14 076H 硬盘

IRQ15 077H 保留

TPC-USB实验板上,固定的接到了3号中断IRQ3上,即进行中断实验时,所用中断类型号为0BH。

2、实验内容

实验电路如图9-1,直接用手动产单脉冲作为中断请求信号(只需连接一根导线)。要求每按一次开关产生一次中断,在屏幕上显示一次“TPCA Interrupt!”,中断10次后程序退出。

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

;* 中断实验*;

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

data segment ;定义数据段

mess db 'TPCA interrupt!',0dh,0ah,'$'; 显示TCPA interrupt! 0dh:回车0ah:换行

data ends; 数据段结束

code segment;定义代码段

assume cs:code,ds:data ; 假定code位于代码段,data位于数据段

start:

mov ax,cs; cs内容送ax中

mov ds,ax; ds:dx内容为中断服务程序的入口地址,位于数据段,偏移量送到dx中mov dx,offset int3 ;取中断服务程序的偏移地址送dx中

mov ax,250bh; dos调用的功能号为25h,中断矢量是0bh

int 21h; 设置IRQ3的中断矢量

in al,21h; 读中断屏蔽寄存器

and al,0f7h; 开放IRQ3中断(与上11110111H,3位为0)

out 21h,al;写进去允许

mov cx,10; 记中断循环次数为10次

Sti; 置中断标志位,IF=1

ll: jmp ll; cx是否为0,等待循环

int3: 中断服务程序

mov ax,data 取数据的地址

mov ds,ax 把数据的地址送到ds

mov dx,offset mess 把字符串的偏移地址取出

mov ah,09 显示每次中断的提示信息(ds:dx=字符缓冲首址)

int 21h 执行调用

mov al,20h 20H送al,OCW2=00100000B

out 20h,al 发出EOI结束中断

loop next CF=1,不为0,跳到next

in al,21h 设中断屏蔽器

or al,08h 关闭IRQ3中断

out 21h,al 写入

sti 显中断标志位,IF=1

mov ah,4ch

int 21h 返回DOS

next: iret 中断返回

code ends

end start

实验十可编程并行接口(二)(8255方式1)

一、实验目的

1、掌握8255工作方式1时的使用及编程。

2、进一步掌握中断处理程序的编写。

二、实验内容

1、按图10-1,8255方式1的输出电路连好线路。

2、编程:每按一次单脉冲按钮产生一个正脉冲使8255产生一次中断请求,让CPU进行一次中断服务:依次输出01H、02H,04H,08H,10H,20H,40H,80H使L0~L7依次发光,中断8次结束。

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

;* 8255方式1实验1 *;

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

1 code segment

2 assume cs:code

3 start:

4mov ax,cs

5mov ds,ax

6mov dx,offset int_proc ;将int_proc地址送给dx

7mov ax,250bh ; 设置外部中断int_proc类型

号为0bh,25H系统设置中断向量程

序:AH=25H,DS:DX=中断服务入口(由6可知

dx中放的是int_proc的地址),AL=中断类型号8 int21h ;调用0bh这个中断(功能0bH描

述:检查标准输入设备上是否有字符可读。该

输入操作可被重定向入口参数:AH=0bH,)

9 mov dx,21h ;将21h送给dx

10in al,dx ;将21h号端口的内容给al

11and al,0f7h ;开放IRQ3(串口设备)中断

12out dx,al

13mov dx,28bh ;设8255为A口方式1输入

14 mov al,0a0h

15 out dx,al

16mov al,0dh ;将PC6置位

17out dx,al

18mov bl,1

19ll: jmp ll ;循环等待

20int_proc:

21mov al,bl

22mov dx,288h ;将AL从8255的A口输出

23out dx,al

24mov al,20h

25out20h,al

26shl bl,1

27jnc next ;中断次数小于8,返回主程序28in al,21h

29or al,08h ;关闭IRQ7中断

30 out21h,al

31sti ;开中断,将IF置1

32mov ah,4ch ;返回DOS

33int21h

34next: iret ;中断返回指令

35code ends

36end start

接口程序10.2可编程并行接口(8255方式一实验二)

一、实验目的

1、掌握8255工作方式1时的使用及编程。

2、进一步掌握中断处理程序的编写。

二、实验内容

1、按图10-2,8255方式1输入电路,连好线路。

2、编程:每按一次单脉冲按钮产生一个正脉冲使8255产生一次中断请求,让CPU进行一次中断服务:读取逻辑电平开关预置的ASCII码,在屏幕上显示其对应的字符,中断8次结束。三、实验原理图

四:实验流程图

五:实验代码及注释

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

;* 8255方式1实验2 *;

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

code segment ;定义代码段

assume cs:code ;假定code位于代码段

start: ;程序开始

mov ax,cs ;将cs内容送到ax中

mov ds,ax ;将ax内容送到ds中,因为不能段与段之间直接传送,所以

借助ax

mov dx,offset int_proc ;将中断子程序的偏移地址送入dx,设置IRQ3中断矢量

mov ax,250bh ;dos调用25号功能号设置中断向量号,设外部中断int_proc类型号为0bh

int 21h

mov dx,21h

in al,dx ;读中断屏蔽寄存器

and al,0f7h ;开放IRQ3中断,将第4位置0

out dx,al

mov dx,28bh ;将控制寄存器端口地址(28bh)送到dx中

mov al,0b8h ;0b8h=10111000 D7是标志位,D6,D5是A组方式的选择(方式0,1,2),D4是A口的输入输出选择(0为输出),D3是C口高四位的输入输出选择,D2是B组方式的选择(方式0,1),D1是B口的输入输出选择,D0是C口低

四位的输入输出选择。这里设置8255A口工作于方式1作输入,B口工作于方式0作输出,C口上半部输入,下半部输出

out dx,al ;out的意思是cpu通过执行out指令使WR#有效,即写信息,将命令字或数据写入8255,这里是命令字

mov al,09h ;将8255的PC4置位,09h=00001001b,D3,2,1是C口的为选择,这里是PC4,D0位为1表示置位,表示允许中断,当输入的数据缓冲区满的时候,8255 向cpu发出INTR中断请求,cpu相映中断,发出RD#信号把数据读入cpu。

out dx,al

mov bl,8 ;bl为中断次数计数器

ll: jmp ll ;循环等待

int_proc:

mov dx,288h ;8255A口地址为288h,这句代码含义为自8255A口输入数据

in al,dx ;in的意思是cpu通过执行IN指令使RD#有效,即发读信号,将数据或

状态信息从8255中读入CPU

mov dl,al ;将输入的数据保存到dl中

mov ah,02h ;显示ASCII码为DL的字符

int 21h

mov dl,0dh ;回车

int 21h

mov dl,0ah ;换行

int 21h

mov dx,20h

mov al,20h ;发出中断结束命令

out dx,al

dec bl ;中断次数计数器减一

jnz next ;判断计数器数值,若不为0,则跳到NEXT

in al,21h

or al,08h ;C口的D3,2,1为100表示PC4,D0位为0,表示复位,使INTE复位以

禁止中断,PC4是在输入的时候通过置位控制INTEA使A口允许中断,这里是PC4复位,即禁止中断

out 21h,al

sti ; 开中断

mov ah,4ch ;返回DOS

int 21h

next: iret ;返回中断code ends

end start

微机接口实验

北京科技大学计算机与通信工程学院 实验报告 实验名称:实验一8259 中断控制器应用实验 实验二8254 定时/计数器应用实验 实验三8255 并口控制器应用实验学生姓名: 专业: 班级: 学号: 指导教师: 实验成绩: 实验地点:机电楼320 实验时间:2015 年12 月 4 日

一、实验目的与实验要求 1、实验目的 实验一 1.掌握PC 机中断处理系统的基本原理。 2.掌握可编程中断控制器8259 的应用编程方法。 实验二 1.掌握8254 的工作方式及应用编程。 2.掌握8254 典型应用电路的接法。 实验三 1.掌握8255 的工作方式及应用编程。 2.掌握8255 典型应用电路的接法。 2、实验要求 实验一 (1)实验1-1:PC 机内中断应用实验 ①按接线图连好接线,调用程序源代码8259-1.asm,观察实验现象,将屏幕显示结果以截图方式写在实验报告中。 ②自设计实验。改变接线方式,将单次脉冲连到USB 核心板上的IRQ10 插孔上,参考本实验代码,编程实现IRQ10 中断。(注意:考虑PC 机内中断级联的方式,参看前面的原理说明),将代码写在报告中。 (2)实验1-2:PC 机内中断嵌套实验 ①按接线图连好接线,调用程序源代码8259-2.asm,做如下操作,并将屏幕显示结果以截图的方式写在实验报告中,并分析产生该现象的原因: A.按下连接IRQ 的单次脉冲按键,屏幕上会显示10个3,在屏幕上10 次显示未结束之前,按下连接IRQ10 的单次脉冲按键,观察现象; B.按下连接IRQ10 的单次脉冲按键,屏幕上会显示10个10,在屏幕上10次显示未结束之前,按下连接IRQ3 的单次脉冲按键,观察现象。 ②程序中所有代码均没有注释,请在报告中补全注释,尽量详细。

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

微机原理与接口技术实验报告 班级:自动化(铁道信号) 姓名: ***** 学号: 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

微机原理实验指导书

微型计算机原理与应用实验指导书 上海大学通信学院

2010 年4 月 PC微机原理实验一 一、目的:掌握PC机DEBUG调试程序有关命令的操作及8086各类指令的 功能。 要求:在PC机上完成下列程序的调试运行,并写出运行结果。二、1.DEBUG的基本操作:(详细内容请参阅教材“程序的调试,P173”和“附录F 调试程序DEUBG的使用,P499”) (1)从WINDOWS进入DOS之后,输入命令启动DEBUG: C:>DEBUG 回车 (2)输入R命令,查看和记录CPU各个寄存器的内容: -R回车 看到什么 (3)输入A命令,汇编下面的字符“WINDOWS”显示程序: -A100 ;从偏移地址是0100H处开始写指令 MOV AH,2 MOV DL, 57 ;57H 是“W ”的ASCII码 INT 21 ;INT 21是DOS 功能调用,AH=2代表2号功能 ;这3句合起来的功能是:显示DL中的字符 MOV DL, 49 INT 2 1 MOV DL, 4E INT 21 MOV DL, 44 INT 2 1 MOV DL, 4F INT 2 1 MOV DL, 57 INT 2 1 MOV DL, 53 INT 2 1 INT 3 ;功能是产生一个断点,不要省略 (4)输入U 命令反汇编上面的程序: -U 100 问:这里100代表什么 (5)输入G命令连续运行上面的程序,记录运行结果:

-G=100 ,57,53依次分别改为574F4E57 (6)输入E命令把上面程序中的数据,49,,44,,45:,,45,4C43,4F4D,-E 103 回车(以下同) -E 107 10B-E -E 10F 113-E 117-E 11B-E (7)输入D命令查看程序机器码的存放情况: -D 100 11E ;看从100开始到11E的机器码 (8)输入G命令再连续运行程序,并记录运行结果: -G=100 (9)依次输入下面的T命令(单步执行)和G命令(设置断点并启动运行),记录各 命令的运行结果: -T=100 回车 -G=100 106 回车 -G=100 10A 回车 -G=100 10E 回车 -G=100 11E 回车 注意: 下面第2—第8段程序是7个实用的小程序,若不小心打错指令,可以这样修改: 例如:CS:0100 B300 MOV BL,0 0102 53 PUSH BX 0103 B220 LP1: MOV DL,20 要修改“PUSH BX”,因为这条指令的IP是0102,所以按以下操作: -A 0102 回车,然后把正确的指令打入,“-A ”是汇编指令。 如果要查看0100以后的指令及相应的机器代码,可以 -U 0100 回车,能够看到CS:0100开始的指令及相应的机器代码。“-U ”是反汇编 若发现有误用,用“-A XXXX 回车”,重打这条指令即可 2.编制一个能在CRT上连续显示A,B,C,D······Z大写英文字符的源程序,并在源程序下汇编调试机运行。

微机接口实验

科技大学计算机与通信工程学院 实验报告 实验名称:实验一8259 中断控制器应用实验 实验二8254 定时/计数器应用实验 实验三8255 并口控制器应用实验学生: 专业: 班级: 学号: 指导教师: 实验成绩: 实验地点:机电楼320 实验时间:2015 年12 月 4 日

一、实验目的与实验要求 1、实验目的 实验一 1.掌握PC 机中断处理系统的基本原理。 2.掌握可编程中断控制器8259 的应用编程方法。 实验二 1.掌握8254 的工作方式及应用编程。 2.掌握8254 典型应用电路的接法。 实验三 1.掌握8255 的工作方式及应用编程。 2.掌握8255 典型应用电路的接法。 2、实验要求 实验一 (1)实验1-1:PC 机中断应用实验 ①按接线图连好接线,调用程序源代码8259-1.asm,观察实验现象,将屏幕显示结果以截图方式写在实验报告中。 ②自设计实验。改变接线方式,将单次脉冲连到USB 核心板上的IRQ10 插孔上,参考本实验代码,编程实现IRQ10 中断。(注意:考虑PC 机中断级联的方式,参看前面的原理说明),将代码写在报告中。 (2)实验1-2:PC 机中断嵌套实验 ①按接线图连好接线,调用程序源代码8259-2.asm,做如下操作,并将屏幕

显示结果以截图的方式写在实验报告中,并分析产生该现象的原因: A.按下连接IRQ 的单次脉冲按键,屏幕上会显示10个3,在屏幕上10 次显示未结束之前,按下连接IRQ10 的单次脉冲按键,观察现象; B.按下连接IRQ10 的单次脉冲按键,屏幕上会显示10个10,在屏幕上10次显示未结束之前,按下连接IRQ3 的单次脉冲按键,观察现象。 ②程序中所有代码均没有注释,请在报告中补全注释,尽量详细。 (3)实验1-3:扩展多中断应用实验 说明:本实验采用查询方式,应用实验箱提供的8259 中断源,向PC 机提交中断请求。拨动开关发起请求一次中断,屏幕上显示相应的中断请求号。 调用程序源码文件8259-3.asm,在程序源代码中划横线的位置,请按照所学8259 工作原理填写并验证,然后将所填容写在实验报告中,并分析所填数据的形成原理。 实验二 (1)实验2-1:计数器应用实验 ①将计数器0 设置为方式3,计数器初值为4,用手动逐个输入单脉冲,用LED 灯观察OUT0 电平变化。将代码中划横线的部分填上相应的代码,并在实验报告中对所填代码做原理分析。 ②如果令计数器0 工作在方式0,其实验现象有什么不同,在报告中进行分析说明。 (2)实验2-2:自设计实验 参考实验一的程序和接线,自行设计接线图以及程序代码,实现,以1MHz为时钟源,应用8254 的定时功能,将其分频为1Hz。以LED灯作为输出显示。

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

新疆农业大学机械交通学院 实习(实验)报告纸 班级:机制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 实验项目名称: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。

微机原理实验指导书

微机原理及应用实验指导书 南京理工大学机械工程学院 2011年10月10日

实验1 基本操作实验 1. 实验目的 (1) 掌握TD-PITC 80X86 微机原理及接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。 (2) 掌握使用运算类指令编程及调试方法; (3) 掌握运算类指令对各状态标志位的影响及其测试方法; (4) 学习使用软件监视变量的方法。 2. 实验设备 PC机一台,TD-PITC 实验装置一套。 3. 实验内容及步骤 通过对样例程序的操作,学会在TD-PITC境下,如何输入汇编语言程序,如何进行汇编语言源程序的汇编、连接、下载和运行;在调试程序的学习过程中,应学会: ●如何设置断点; ●如何单步运行程序; ●如何连续运行程序; ●怎样查看寄存器的内容; ●怎样修改寄存器的内容; ●怎样查看存储器的内容; ●怎样修改存储器的内容。 3.1 实验内容1――――BCD码转换为二进制数 实验内容: 将四个二位十进制数的BCD 码存放于3500H 起始的内存单元中,将转换的二进制数存入3510H 起始的内存单元中,自行绘制流程图并编写程序。 参考实验程序清单如下: SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: XOR AX, AX MOV CX, 0004H MOV SI, 3500H MOV DI, 3510H A1: MOV AL, [SI] ADD AL, AL MOV BL, AL

ADD AL, AL ADD AL, AL ADD AL, BL INC SI ADD AL, [SI] MOV [DI], AL INC SI INC DI LOOP A1 A2: JMP A2 CODE ENDS END START 实验步骤: 1)运行Wmd86 软件,进入Wmd86 集成开发环境。 2)根据程序设计使用语言的不同,通过在“设置”下拉列表来选择需要使用的语言,如图1-1所示。语言选择后,下次再启动软件,语言环境保持这次的修改不变。在这里,我们选择汇编语言。 图1-1 语言环境选择界面 3)语言选择后,点击新建或按Ctrl+N 组合键来新建一个文档,如图1-2所示。默认文件名为Wmd861。 图1-2 新建文件界面 4)编写实验程序,如图1-3所示,并保存,此时系统会提示输入新的文件名,输完后点击保存。

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

实验一 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.

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

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

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

微机原理实验报告

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

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

微机原理实验指导书

微型计算机原理与应用 实验指导书 上海大学通信学院 2010 年 4 月

PC微机原理实验一 一、目的:掌握PC机DEBUG调试程序有关命令的操作及8086各类指令的 功能。 二、要求:在PC机上完成下列程序的调试运行,并写出运行结果。1.DEBUG的基本操作:(详细容请参阅教材“4.5程序的调试,P173”和“附 录F调试程序DEUBG的使用,P499”) (1)从WINDOWS进入DOS之后,输入命令启动DEBUG: C:>DEBUG 回车 (2)输入R命令,查看和记录CPU各个寄存器的容: -R回车 看到什么? (3)输入A命令,汇编下面的字符“WINDOWS”显示程序: -A100 ;从偏移地址是0100H处开始写指令 MOV AH,2 MOV DL, 57 ;57H 是“W”的ASCII码 INT 21 ;INT 21是DOS 功能调用,AH=2代表2号功能 ;这3句合起来的功能是:显示DL中的字符 MOV DL, 49 INT 21 MOV DL, 4E INT 21 MOV DL, 44 INT 21 MOV DL, 4F INT 21 MOV DL, 57 INT 21 MOV DL, 53 INT 21 INT 3 ;功能是产生一个断点,不要省略 (4)输入U命令反汇编上面的程序: -U 100 问:这里100代表什么? (5)输入G命令连续运行上面的程序,记录运行结果: -G=100 (6)输入E命令把上面程序中的数据57,49,4E,44,4F,57,53依次分别改为57,45,4C,43,4F,4D,45: -E 103 回车(以下同) -E 107 -E 10B

微机接口实验1

一、8255串口实验一 1 8255芯片的端口地址是 8255 接入的地址线是两位所以有四个端口地址分别是: 00 PA 01 PB 10 PC 11 控制口 记住实验中8255地址是 IOCONPT EQU 0073H 控制口 IOAPT EQU 0070H PA口 IOBPT EQU 0071H PB口 IOCPT EQU 0072H PC口 我们在写出端口则是0070H到0073H 2注释下面指令 MOV DX,IOCONPT ;控制端口地址 OUT DX,AL ;送控制字 MOV DX,IOBPT ;PB端口地址 IN AL,DX ;从PB端口读8位 MOV DX,IOCONPT ;控制端口地址 MOV AL,80H ;控制字内容

OUT DX,AL ;送控制字80H 其中控制字格式是 以看书上148页图7-13和图7-14两个图 二、8253 计数器、计时器实验 1、记住8253 的是个端口 TCONTRO EQU 004BH TCON2 EQU 004AH 还有两个是 0048H和0049H 2、注释下列代码 MOV DX,TCONTRO ;控制端口 MOV AL,0B6H ;T2计时器控制字内容 OUT DX,AL ;送控制字 MOV DX,TCON2 ;T2计时器端口地址 MOV AL,00 ; T2计时器低8位 OUT DX,AL ;送低8位 MOV AL,10H ;T2计时器高8位 OUT DX,AL ;送高8位 因为控制字是 0B6H,要求是先送低位再送高位。

8253控制字格式是: 这个也可以看书 128页图6-4 很详细 3已知译码器是139 两进四出地址是10位 其中端口地址是200H 到 203H,求地址范围? 方法如下: 因为译码器是139输入2位输出4个 高位是用于送译码器的(这里是送两位) 写出200H,203H的二进制是: 0010 0000 0000 其中译码器位是不能动的是10 则后面8个位是可变的从 0000 0000 到1111 1111 最后地址范围是:200H 到2FFH 补充: 译码有三种方法: 1.线性选择法:最高位地址线送译码器 2.部分译码法:从高位中选出所需的位 什么是高位:把所以的地址线看成两半,一半是高位,另一半是低位。 3.全译码法:高位全部送译码器

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

微机原理实验讲义资料

微机原理实验讲义 程曙艳编 厦门大学自动化系 2016年10月

汇编语言的上机过程 1、建立汇编语言的工作环境 至少有以下程序文件: 编辑程序,文件名https://www.360docs.net/doc/65995834.html,,使用https://www.360docs.net/doc/65995834.html,编辑程序代码生成*.asm。 汇编程序,文件名MASM.EXE,使用masm.exe对*.asm文件进行汇编,生成*.obj 文件 连接程序,文件名LINK.EXE,使用link.exe对目标文件*.obj进行连接生成*.exe 文件 调试程序,文件名DEBUG.EXE,使用debug.exe对可执行文件*.exe进行调试运行 (1)编辑 可以用记事本或DOS下的EDIT编辑器来编写源程序。但程序保存时文件必须取名为*.asm 。或EDIT 文件名.asm 打开已经存在的文件。 (2)汇编 在DOS状态执行masm 文件名,则屏幕显示与操作如下: (3)连接 汇编后产生的目标文件必须经过连接,才能成为可执行文件.exe。在DOS 状态执行link 文件名,则屏幕显示与操作如下: (4)运行、调试

>DEBUG 文件名.exe Debug运行后,出现状态提示符短划线- 常用debug命令: D,显示内存单元内容 R,显示与修改寄存器内容 T、P,单步执行命令 G,连续执行指令 U,反汇编 Q,退出DEBUG程序 2. 汇编语言程序格式 汇编语言由若干个段组成: 堆栈段(保存数据、断点等信息) 代码段(存放指令)必需 数据段(定义数据,分配存储单元) 附加段(定义数据,分配存储单元) 每段必须有且仅有一个名字,以SEGMENT定义段的起始,以ENDS定义段的结束,整个程序结束后需以END收尾 STACK SEGMENT ...... STACK ENDS DATA SEGMENT ...... DATA ENDS ESEG SEGMENT ...... ESEG ENDS CODE SEGMENT ASSUME CS:CODE ,DS:DATA,SS:STACK,ES:ESEG START:mov ax, data mov ds, ax mov ax, eseg mov es, ax mov ax, stack mov ss, ax ………. CODE ENDS END START

微机原理实验指导

微机原理实验一简单I/O口扩展实验 一、实验目的 1. 熟悉74LS273、74LS244的应用接口方法。 2. 掌握用锁存器、三态门扩展简单并行输入输出口的方法。 二、实验内容 用逻辑电平开关作为74LS244(U10)的输入,用发光二极管作为74LS273的输 出,编写程序,使得逻辑电平开关的输入状态从发光二极管上显示出来。 三、实验器材 微机、EL型微机教学实验箱 四、实验原理图 4LS273 4 4LS02 S O S I C S U 1 R K1-K8是开关的输出插孔,L1-L8是发光二极管的输入插孔,SI0-SI7是74LS244 的输入插孔,SO0-SO7是74LS273的输出插孔,CSU10\是74LS244的地址译码输入插孔,CSU8\是74LS273译码输入插孔,以上插孔实验时均需连线,原理图中其它已注的和未标注的引脚均以连好或实验不需要。 74LS244

五、实验步骤 1.连线:将74LS244的输入SI0-SI7分别与逻辑电平开关电路的 K1-K8相连,从I/O地址片选信号 CS0\~CS7\中任选一个与 U10的片选信号相连(例如CS0\)。将74LS273(U8或U9)的输出(CS0\~CS7\)分别与发光二极管电路的 L1~L8相连,从I/O地址片选信号CS0\~CS7\中任选一个与U8或U9的片选信号相连。(如CS1\)2.编辑程序,单步运行,调试程序 3.调试通过后,全速运行,观察实验结果 4.编写实验报告 六、编程提示 逻辑电平开关拨上时为5V,拨下时为0V,发光二极管输入‘1’为亮,‘0’为灭。从U10读入的数据后从输出口输出。 七、程序框图

微机原理与接口技术实验指导书1_[1]...

微机原理与接口技术实验指导书 编者:王亭岭 华北水利水电学院 电气学院自动化教研室 二零一二年三月

目录 实验一标志寄存器应用 (1) 实验二指令寻址方式练习 (4) 实验三分支结构程序设计 (6) 实验四循环结构程序设计 (7) 实验五子程序结构程序设计 (8) 实验六DOS系统功能调用程序设计 (10) 实验七BIOS中断调用程序设计 (12) 实验八定时器中断程序设计 (14)

实验一标志寄存器应用 一、实验目的与要求 1.掌握汇编程序的编译过程; 2.掌握8086的标志寄存器的特点。 二、实验内容 微型计算机(80x86系列)。 四、实验参考程序 DATA SEGMENT A DW 123 B DW 456 SUM DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE , DS:DATA START: MOV AX , DATA MOV DS , AX MOV AX , A SUB AX , B MOV SUM , AX MOV AH,4CH INT 21H CODE ENDS END START 五、实验步骤 步骤一、用鼠标单击开始菜单,单击运行。如下图所示:

步骤二、在运行窗口中键入cmd,回车进入命令提示符。如下图所示: 步骤三、在命令提示符中编译汇编源程序并连接*.obj文件。如下图所示:1.C:\>D: 回车 2.D:\ >CD MASM 回车 3.D:\MASM>MASM SY1.ASM 回车 4.D:\MASM>LINK SY1.OBJ 回车

步骤四、在命令提示行中运行并调试汇编程序。如下图所示:1.D:\MASM>SY1.EXE 回车 2.D:\MASM>DEBUG SY1.EXE 回车 六、实验结论 1.程序运行后变量SUM的值是多少? 2.程序运行前后标志寄存器的各标志位有何变化? 3.分析实验结果及所遇到的问题,并说明解决的方法。

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

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

班级:数字媒体 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)键盘扫描原理:第一步,使行线为编程的输入线,列线是输出线,拉低所有的列线,判断行线的变化,如果有按键按下,按键按下的对应行线被拉低,否则所有的行

微机原理实验报告

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

微机原理实验指导

实验一 MASM For Windows 的使用及顺序程序设计 一、实验目的 1、熟悉在PC机上建立、汇编、连接、调试和运行8086汇编语言程序的过程。 2、熟悉masm for windows调试环境及DEBUG常用命令的使用 二、实验内容 1.DEBUG常用命令(U、R、D、E、F、T、G、Q)的操作使用 2.编程实现两个16位无符号数的加、减、乘、除运算。 有两个两字节无符号数分别放在存储单元A、B起始的缓冲器中,求其和,结果放在A起始的缓冲区并在屏幕上显示。相加若有进位不存入存储单元。 三、实验设备 PC机一台、masm for windows 汇编语言集成环境 四、实验准备 1) 分析题目,将程序中的原始数据和最终结果的存取方法确定好。 2) 画出流程图。 3) 写出源程序。 4) 对程序中的结果进行分析,并准备好上机调试与用汇编程序及汇编调试的过程。 五、实验步骤 1) 输入源程序。 2) 汇编、连接程序,生成 .EXE文件,执行文件,检查结果。 六、学生实验报告的要求 1) 列出源程序,说明程序的基本结构,包括程序中各部分的功能。 2) 说明程序中各部分所用的算法。

3) 说明主要符号和所用到寄存器的功能。 4) 上机调试过程中遇到的问题是如何解决的。 5) 对调试源程序的结果进行分析。 4) 说明标志位CF、SF和OF的意义。 DEBUG的常用命令 1、R 显示或修改寄存器的内容命令格式:-R 2、 D 显示存储单元的内容命令格式:-D[地址1, 地址2] 3、E修改存储单元的内容 命令格式:-E[地址1, 地址2] 4、U反汇编 命令格式:-U[地址1, 地址2] 5、T单步执行 命令格式:-T 6、G连续执行 命令格式:-G[=起始地址, 结束地址] A小汇编 命令格式:-A 7、Q退出DEBUG,返回DOS 实验一源程序 EXAM1-2 .ASM DATA SEGMENT A D B 34H,18H,2 DUP(0),’$’ B DB 56H,83H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,A MOV BL,B ADD AL,BL

(完整word版)安徽工业大学微机接口实验报告

《微机原理与接口技术》 实验报告书 专业班级网104班 学号109074 姓名 指导教师高云全 安徽工业大学计算机学院

实验一 8255A应用—数码管动态显示 一、实验目的 1、掌握8255A的工作方式、编程原理和微机接口方法。 2、了解LED数码管动态显示的工作原理及编程方法。 二、实验内容 编制程序,使数码管显示“DICE88”字样。 三、实验程序框图 图6-1 实验程序流程图 四、实验步骤 联机模式: (1)在PC机和实验系统联机状态下,运行实验系统dj8086k.exe(双击桌面OTA图标或通过开始-程序-dj8086k-DJ8086k微机原理与接口技术),新建文件并在编辑窗口输入汇编源程序,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。 (2)数码管显示“DICE88”字样。 脱机模式: (1)在P.态下,通过单板机小键盘,从2DF0地址开始输入机器码(参见附录三),完成后返回监控,输入起始地址2DF0,再按EX键执行。 (2)数码管显示“DICE88”字样。 五、实验程序清单 CODE SEGMENT ; display "DICE88" ASSUME CS:CODE ORG 2DF0H START: JMP START0 PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口 BUF DB ?,?,?,?,?,? data1: db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h

相关文档
最新文档