华北电力大学接口实验报告.docx

上传人:b****4 文档编号:12317089 上传时间:2023-04-18 格式:DOCX 页数:22 大小:22.93KB
下载 相关 举报
华北电力大学接口实验报告.docx_第1页
第1页 / 共22页
华北电力大学接口实验报告.docx_第2页
第2页 / 共22页
华北电力大学接口实验报告.docx_第3页
第3页 / 共22页
华北电力大学接口实验报告.docx_第4页
第4页 / 共22页
华北电力大学接口实验报告.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

华北电力大学接口实验报告.docx

《华北电力大学接口实验报告.docx》由会员分享,可在线阅读,更多相关《华北电力大学接口实验报告.docx(22页珍藏版)》请在冰豆网上搜索。

华北电力大学接口实验报告.docx

华北电力大学接口实验报告

华北电力大学

实验报告

|

|

实验名称实验一开发器的使用与设计实验

实验二中断8259应用、

定时/计数器8253应用

实验三并行接口8255应用

实验四存储器拓展实验

实验五A/D转换结果送数码管显示

课程名称接口与通信课程设计

|

|

专业班级:

计科1202学生姓名:

谷玉虎

学号:

201209010205成绩:

指导教师:

张少敏实验日期:

2015-6-1

实验一、数据转换实验

一、实验目的

1、初步掌握在PC机上建立、汇编、链接和运行8086/88汇编语言程序的过程。

2、通过对两个验证性实验的阅读、调试,掌握不同进制数及编码相互转换的程序设计方法。

3、完成程序设计题,加深对数码转换的理解,了解简单程序设计方法。

二、实验条件

一台计算机

三、实验内容与步骤

1)设二字节十六进制数存放于起始地址为3500H的内存单元中,把他们转换成ASCII码后,再分别存入起始地址为350AH的四个内存单元。

从书上ASCII码表中可知十六进制数加30H即可得到0H~9H的ASCII码,而要得到AH~FH的ASCII码,则需再加7H。

2)参考程序如下:

CODESEGMENT

ASSUMECS:

CODE

START:

MOVAX,0

MOVDS,AX

MOVCX,0004H

MOVDI,3500H

MOVDX,[DI]

A1:

MOVAX,DX

ANDAX,000FH

CMPAL,0AH

JBA2

ADDAL,07H

A2:

ADDAL,30H

MOV[DI+0AH],AL

INCDI

PUSHCX

MOVCL,04H

SHRDX,CL

POPCX

LOOPA1

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

四、实验结论与分析

实验结果:

在调试运行后350AH的内存单元中会显示3500H中所转换的对应的ASCII码。

分析:

本次实验的重要之处在于能够先对输入的ASI码进行判断然后根据条件进行处理,最后写入的位置要依照题目要求。

五、实验心得

本次实验中,出错并后来改正的地方是:

(1)ASM文件后面在保存后必须要以ASM标记。

(2)参考书上的代码有错,修改了写入位置才行。

(3)首次实验时,没有将内存信息拉倒3500H位置,导致以为实验失败,后来改正。

实验二、接收小写字母转换成大写字母并显示

一、实验目的

通过阅读并调试示例程序,完成程序设计题,掌握利用DOS中断的调用来实现人机对话的编程方法。

二、实验条件

一台计算机

三、实验内容与步骤

1)从键盘上接收一串小写字母存入内存单元,经过转换后在屏幕上显示其大写字母。

设计思路:

利用DOS中断的01号子功能接收键盘输入的一串字符串并存入内存单元,当接收到回车键时,将小写字母的ASCII码转换为大写字母的ASCII码,利用DOS功能的02号子功能将其显示在屏幕上。

2)参考程序如下:

DATASEGMENT

BUFDB200DUP(?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVSI,OFFSETBUF

MOVCL,00H

A1:

MOVAH,01H

INT21H

CMPAL,0DH

JZA2

SUBAL,20H

MOV[SI],AL

INCSI

INCCL

JMPA1

A2:

MOVDL,0AH

MOVAH,02H

INT21H

MOVDL,ODH

INT21H

MOVSI,OFFSETBUF

MOVCH,00H

A3:

MOVDL,[SI]

MOVAH,02H

INT21H

INCSI

LOOPA3

MOVAH,4CH

INT21H

CODESEGMENT

ENDSTART

四、实验结论与分析

实验结论:

在CMD命令行中,找到当前文件所在的位置,打开.exe文件,输入小写字母按回车键相应的会输出大写的字母。

分析:

本次实验中首先考虑人机交互,读入用户输入的数据。

在内部进行处理然后输出。

将小写字母转化为大写字母。

五、实验心得

本次实验首先要了解DOS调用功能:

01号和02号子功能,输入输出功能。

试验中出现一个问题就是无法运行程序,找不到合适的方式打开EXE文件,浪费了不少时间。

后来采取CMD命令行中找到EXE文件位置打开文件,运行程序。

实验三、中断8259应用

一、实验目的

1、通过阅读并调试示例程序,学习8088/86与8259A的连接与控制方法,掌握8259A中断控制器的工作原理。

2、完成程序设计题,学会编写中断服务程序。

二、实验条件

一台计算机,8259A可编程中断控制器,仿真软件

三、实验内容与步骤

1、实验原理

8259A是一种可编程中断控制器,与8088/86微机兼容,能处理8级向量优先权中断,亦可以通过级联构成64级向量优先权中断系统。

具有可编程控制中断方式,并能分别屏蔽各个中断请求。

通过4个初始化命令字(icw1~icw4)及3个操作命令字(ocw1~ocw3)使用8259A可编程程序中断控制器。

2、实验内容

用8088/86控制8259可编程中断控制器,实现对外部中断的响应和处理。

要求程序对每次中断进行计数,并将计数结果用8255的PA口输出到LED显示。

修改参考书中程序,使每中断10次计数器加1,并将技术结果从8255的PB口输出到LED显示。

实验重点放在思考题上。

3、参考流程图及程序

modeequ80h

pa8255equ8000h

pb8255equ8001h

ctl8255equ8003h

icw1equ00010011b

icw2equ00100000b

icw4equ01h

ocw1equ11111110b

cs8259aequ09000h

cs8259bequ09001h

datasegment

cntdb0

cndb0

dataends

codesegment

assumecs:

code,ds:

data

ienterprocnear

pushax

pushdx

movdx,pb8255

inccnt

cmpcnt,0ah

jnzP1

movcnt,0

inccn

moval,cn

outdx,al

P1:

movdx,cs8259a

moval,20h

outdx,al

popdx

popax

iret

ienterendp

initprocnear

movdx,cs8259a

moval,icw1

outdx,al

movdx,cs8259b

moval,icw2

outdx,al

moval,icw4

outdx,al

moval,ocw1

outdx,al

ret

initendp

startprocnear

movdx,ctl8255

moval,mode

outdx,al

cli

movax,0

movds,ax

movbx,4*icw2

movax,offsetienter

mov[bx],ax

movax,code

incbx

incbx

mov[bx],ax

callinit

movax,data

movds,ax

movcn,0

moval,cn

movdx,pb8255

outdx,al

sti

lp:

nop

jmplp

startendp

codeends

endstart

四、实验结论与分析

实验结果:

通过按单脉冲,使之产生中断,然后再LED显示按下的次数就是中断的次数。

思考题:

通过单脉冲,但是连续10次脉冲,才能产生一次中断,然后再LED显示按下的次数就是中断的次数

分析:

本次实验,连线是一个重要问题。

同时选择合适的插口进行连接比较重要。

本次实验由单脉冲作为触发源,当8259设置好中断模式后,在中断函数中写入触发次数,同时将数据传给8255,给其计数显示。

五、实验心得

本实验中遇到一些问题,

(1)首先遇到就是插线问题,由于实验牵扯到8259,8255,单脉冲,地址分配和地址插线就显得尤为重要。

(2)代码编写过程中,设定好中断模式后,如何在中断函数中将中断次数传给8255,让其进行保持显示,成为一个问题。

后来在参考同学代码思路的情况下,配置了8255,并且进行显示。

(3)实验中,由于用到了多个cpu地址线,本来按照帮助文档上的连线来接,发现并不出效果。

后来查看连线和代码,发现多个地址线和代码中规定的地址线不同。

后来改正,完成了实验。

实验四、定时/计数器8253应用

一、实验目的

通过阅读并调试示例程序,完成程序设计题,掌握8253的基本工作原理和编程方法,熟悉8253在系统中的典型接法。

二、实验条件

一台计算机,8253可编程定时/计数器

三、实验内容与步骤

1、实验原理

8253可编程定时/计数器是Intel公司生产的统一外围接口芯片它有3个独立的16位计数方式和操作方式都通过编程控制。

2、实验内容

利用8088/86外接8253可编程定时/计数器,可以实现对外部事件进行计数,且可以设置断点读回计数器的值。

本实验中计数器按方式0工作,即十六位二进制计数器。

当计数设置好后,计数器就开始计数。

如果要读入计数器的值,要先锁存计数值,才能读到计数值。

本实验所设计数值为五,也就是每5个外部脉冲,计数器值加1.同时out脚输出一个高电平。

实验时,可以将out0接到LED上,观察计数器是否工作。

思考题:

编程实现LED指示灯以1s的时间间隔闪烁。

本次实验报告重点放在思考题上。

3、流程图及参考程序

CONTROLEQU08003H

COUNT0EQU08000H

COUNT1EQU08001H

COUNT2EQU08002H

PORTBEQU09001H

PORTAEQU09000H

MODEEQU082H

CADDREQU9003H

CODESEGMENT

ASSUMECS:

CODE

STARTPROCNEAR

MOVAL,MODE

MOVDX,CADDR

OUTDX,AL

MOVAL,36H

MOVDX,CONTROL

OUTDX,AL

MOVAX,10000

MOVDX,COUNT0

OUTDX,AL

MOVAL,AH

OUTDX,AL

MOVAL,76H

MOVDX,CONTROL

OUTDX,AL

MOVAX,100

MOVDX,COUNT1

OUTDX,AL

MOVAL,0

OUTDX,AL

AGAIN:

MOVDX,PORTB

INAL,DX

ANDAL,01H

MOVDX,PORTA

OUTDX,AL

MOVAL,00000000B

MOVDX,CONTROL

OUTDX,AL

MOVDX,COUNT0

INAL,DX

MOVBL,AL

INAL,DX

MOVAH,AL

MOVAL,BL

JMPAGAIN

STARTENDP

CODEENDS

ENDSTART

四、实验结论与分析

参考书例程实验结果:

自动脉冲5下,LED灯就会显示。

思考题结果:

LED灯以1s的时间间隔显示。

分析:

首先是完成参考书中的单脉冲5下,LED灯显示。

再通过8253定时,1HZ自动脉冲条件下,LED灯显示。

本次实验重点放在后者。

同样,设定芯片8253、8259工作模式,使得1HZ的脉冲能够触发中断,然后点亮LED。

五、实验心得

本实验中遇到一些问题,

(1)首先遇到就是插线问题,8253在设定模式下,定时信息的传输依靠连线进行,这就要求8253必须合适端口进行相连。

(2)代码编写过程中,设定好定时周期,设定好中断模式后,如何将定时脉冲作为中断源触发中断成为一个问题。

后来在参考同学代码思路的情况下,配置了8253/8259,并且进行显示。

实验五、并行接口8255应用

一、实验目的

1、通过阅读并调试示例程序,掌握8255A可编程并行接口的工作原理;

2、完成程序设计题,学会并行接口电路的设计,及编写输入输出控制程序。

二、实验条件

一台计算机,8255A可编程控制芯片,LED灯的电路板

三、实验内容与步骤

1、实验原理

8255A是可编程的通用并行输入输出接口芯片,因通用性强,使用灵活,可直接与cpu总线相连,应用非常广泛。

8255A芯片内部有3个8位的输入输出端口,即A口、B口、C口。

从内部控制的角度来讲,可分为两组:

A组和B组。

A组控制模块管理A口和C口的高4位(pc7~PC4),B组控制模块管理B口和C口的低4位(pc3~pc0)。

思考题:

跑马灯程序设计,要求K0=0,从左向右跑马灯;K1=0时,从右向左跑马灯;K2=0时,从左从右向中间跑马灯,LED从pc口输出。

完成电路设计及程序的编制,进行调试并验证结果。

2、实验内容

设计跑马灯程序设计,要求K0=0,从左向右跑马灯;K1=0时,从右向左跑马灯;K2=0时,从左从右向中间跑马灯,LED从pc口输出。

完成电路设计及程序的编制,进行调试并验证结果。

参考程序

MNSSDATASEGMENT

MODEEQU082H

PORTAEQU8000H

PORTBEQU8001H

PORTCEQU8002H

CADDREQU8003H

POSDB0FFH

NOWDATADB0FFH

LEFTDB0FFH

RIGHTDB0FFH

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAL,MODE

MOVDX,CADDR

OUTDX,AL

INPUT:

MOVDX,PORTB

INAL,DX

CMPAL,NOWDATA

JNZINITIAL

CMPAL,0FEH

JZK0

CMPAL,0FDH

JZK1

CMPAL,0FBH

JZK2

CMPAL,0F7H

JZK3

JMPINPUT

INITIAL:

MOVNOWDATA,AL

CMPAL,0FEH

JZINTIK0

CMPAL,0FDH

JZINTIK1

CMPAL,0FBH

JZINTIK2

CMPAL,0F7H

JZINTIK3

INTIK0:

MOVPOS,10000000B

JMPOUTPUT

INTIK1:

MOVPOS,00000001B

JMPOUTPUT

INTIK2:

MOVLEFT,10000000B

MOVRIGHT,00000001B

MOVAL,LEFT

ORAL,RIGHT

MOVPOS,AL

JMPOUTPUT

INTIK3:

MOVLEFT,00010000B

MOVRIGHT,00001000B

MOVAL,LEFT

ORAL,RIGHT

MOVPOS,AL

JMPOUTPUT

K0:

RORPOS,1

JMPOUTPUT

K1:

ROLPOS,1

JMPOUTPUT

K2:

RORLEFT,1

ROLRIGHT,1

MOVAL,LEFT

ORAL,RIGHT

MOVPOS,AL

K3:

RORLEFT,1

ROLRIGHT,1

MOVAL,LEFT

ORAL,RIGHT

MOVPOS,AL

OUTPUT:

MOVAL,POS

MOVDX,PORTA

OUTDX,AL

MOVCX,5000H

LOOP$

JMPINPUT

CODEENDS

ENDSTART

四、实验结论与分析

实验结果:

将某个开关状态置1时,LED点亮。

置0,则LED灭。

思考题结果:

K0=0,从左向右跑马灯;K1=0时,从右向左跑马灯;K2=0时,从左从右向中间跑马灯

分析:

此实验牵扯到的芯片较多,首先要将K开关和8255A口相连,然后将LED和C口相连。

当开关触发一定条件时,将通过8255输出端口C口输出一定信息,从而达到跑马灯的效果。

本次实验先将参考书中提供的例程输入,查看效果,然后在编写多条件跑马灯,本实验重点在后者。

五、实验心得

实验中遇到了几个问题:

(1)在实验中,由于先是按照参考书中例程进行连线,后来进行思考题中要求时,8255配置不同,但是连线没有相对应改动,导致拨动开关,却没有效果。

后来出于简便,将8255输入输出重新配置。

(2)在编写代码的过程中,如何分辨开关及其状态,然后做出的操作,完成相应要求,比较困难。

在参照同学代码的基础上,将不同操作,分到几个不同的子函数中,用于完成不同操作,同时,在开始判断开关状态时,进行多个判断,最后成功完成逻辑。

实验六、存储器拓展实验

一、实验目的

1.通过阅读并调试示例程序,完成程序设计题,熟悉静态Ram的拓展方法;

2.了解8086/8088与存储器的连接,掌握拓展存储器的读写方法。

二、实验条件

一台计算机,62256RAM

三、实验内容与步骤

1.实验原理(62256RAM介绍)

62256是32*8的静态存储器,管脚如图所示。

其中:

A0~A14为地址线,DB0~DB7为数据线,/cs为存储器的片选,/OE为存储器数据输出选通信号,/WE为数据写入存储器信号。

62256工作方式如下图。

/CS/WE/OE方式DB-~DB7

HXX未选中高阻

LHH读写禁止高阻

LLH写IN

LHL读OUT

2.实验内容

设计扩展存储电器的硬件连接图并编制程序,讲字符A~Z循环存入62256扩展RAM中,让后再检查扩展存储器中的内容。

思考题:

编写程序,将4KB扩展存储器交替写入55H和AAH。

本次实验报告重点在后者。

3、参考程序

RAMADDREQU0000H

RAMOFFEQU9000H

COUNTEQU800H

CODESEGMENT

ASSUMECS:

CODE

START:

PROCNEAR

MOVAX,RAMADDR

MOVDS,AX

MOVBX,RAMOFF

MOVCX,COUNT

REP1:

MOVDL,55H

MOV[BX],DL

INCBX

MOVDL,0AAH

MOV[BX],DL

INCBX

LOOPREP1

JMP$

MOVAH,04H

INT21H

CODEENDS

四、实验结论与分析

例程实验结果:

字符A~Z循环存入62256扩展RAM中。

思考题实验结果:

0000:

9000~0000:

9fffh这4KB拓展存储器内容为交替显示55H和AAH。

分析:

本实验着重于RAM存储,其中牵扯到地址线,数据线的连接。

同时,如何读写RAM中某块地址是本实验的基础部分。

五、实验心得

本次实验:

(1)试验中由于吸取之前实验的的连线经验,在本次实验中,首先熟悉了RAM的地址和数据总线,然后按照书中程序写定的地址进行连接,在后续实验中实验进行地就比较快。

(2)实验中,熟悉了对RAM的基本读写操作,在编写代码时,只需将需要写入的数据放到相应地址,实验进行地比较顺利。

实验七、A/D转换结果送数码管显示

一、实验目的

1.通过阅读并调试示例程序,了解A/D转换的基本原理

2.完成程序设计题,掌握ADC0809的使用方法

二、实验条件

一台计算机,A/D转换器,LED数码显示管

三、实验内容与步骤

1.实验原理

ADC0809是8位8通道A/D转换器,芯片包括一个8位的逐次逼近型的ADC部分,并提供一个8通道的模拟多路开关盒联合寻址逻辑。

用该电路可直接采样8个单端的模拟信号,分时进行A/D转换,在多点巡回检测,过程控制等应用领域使用非常广泛。

2.实验内容

通过电位器输出0~5V直流电压送入ADC0809通道0(in0),利用输出命令启动A/D转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。

编程采集in0输入电压,通过8255PA连接发光二级管显示转换后的数据(16进制数)。

思考题:

编程实现在数码管上动态显示采集到的AD值。

本实验报告重点在后者。

3.实验电路

参考程序

CS0809EQU09000H

OUTBITEQU08002H

OUTSEGEQU08004H

DATASEGMENT

LEDBUFDB2DUP(?

NUMDB1DUP(?

DELAYTDB1DUP(?

LEDMAP:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

DELAYPROCNEAR

PUSHAX

PUSHCX

MOVAL,0H

MOVCX,AX

LOOP$

POPCX

POPAX

RET

DELAYENDP

DISPLAYLEDPROCNEAR

MOVBX,OFFSETLEDBUF

MOVCL,2

MOVAH,00100000B

DLOOP:

MOVDX,OUTBIT

MOVAL,0

OUTDX,AL

MOVAL,[BX]

MOVDX,OUTSEG

OUTDX,AL

MOVDX,OUTBIT

MOVAL,AH

OUTDX,AL

PUSHAX

MOVAH,1

CALLDELAY

POPAX

SHRAH,1

INCBX

DECCL

JNZDLOOP

MOVDX,OUTBIT

MOVAL,0

OUTDX,AL

RET

DISPLAYLEDENDP

STARTPROCNEAR

MOVAX,DATA

MOVDS,AX

AGAIN:

MOVAL,0

MOVDX,CS0809

OUTDX,AL

MOVCX,40H

LOOP$

INAL,DX

MOVNUM,AL

MLOOP:

MOVCH,NUM

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 自然景观

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1