第二部分微机接口实验.docx

上传人:b****7 文档编号:23581252 上传时间:2023-05-18 格式:DOCX 页数:19 大小:127.77KB
下载 相关 举报
第二部分微机接口实验.docx_第1页
第1页 / 共19页
第二部分微机接口实验.docx_第2页
第2页 / 共19页
第二部分微机接口实验.docx_第3页
第3页 / 共19页
第二部分微机接口实验.docx_第4页
第4页 / 共19页
第二部分微机接口实验.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

第二部分微机接口实验.docx

《第二部分微机接口实验.docx》由会员分享,可在线阅读,更多相关《第二部分微机接口实验.docx(19页珍藏版)》请在冰豆网上搜索。

第二部分微机接口实验.docx

第二部分微机接口实验

第二部分微机接口实验

一、说明

1.下面的实验程序是根据我们设计的实验模块电路编写的,供用户参考。

2.所有的实验程序均可以在DVCC32JHP软件集成环境下运行和调试。

3.在实验前必须先仔细阅读随机配备的用户手册,以便对整个系统的硬件结构和设计思想有所了解,特别要仔细阅读软件安装和使用部分,以便了解DVCC32JHP集成软件运行环境和操作方法,为后面顺利进行编程实验做好充分准备。

4.图中虚线框内的电路为我们设计的模块电路。

虚线框外的电路为系统部分。

模块电路和系统电路之间需要用单个导线或排线连接。

通常控制线都是单个的,数据总线D0~D7(JD1~JD4)、地址总线A0~A7(JA1)、A8~A15(JA2)等用排线连接。

若模块内部有连线时,需要学生根据模块电路原理图进行连接。

5.模块上的工作电源(+5V、GND)在实验时从系统板接入(用二芯连线),当用到±12V电源时,还需从系统板接入±12V电源(用四芯连线)。

在下面的实验程序中电路接线部分省略了电源接入这一步。

6.实验中凡是用到A/D或D/A电路,在运行程序前,必须先将其基准电压调到+5V。

7.程序的退出是按PC机的ESC键。

8.实验程序的C语言源文件在安装目录下面的CPP目录下。

二、实验程序目录

3.Ymq.ASMI/O地址译码

5.D244.ASM简单并行接口扩展输入

16.DMA_1.ASMDMA传送实验

(1)

17.DMA_2.ASMDMA传送实验

(2)

三、实验的一般步骤

(1)运行DVCC32JHP软件,选择编辑Edit菜单,根据实验内容的描述编写实验程序或选择Open菜单直接打开程序。

(2)使用“ASM编译”菜单中“编译+连接+运行”选项,对实验程序进行汇编、连接。

汇编、连接无误的话,就直接运行程序。

观察运行结果。

(3)或使用动态调试,进入调试环境,观察调试过程中,指令执行情况,包括各寄存器及数据区内容的变化等。

(4)查看实验结果,考察程序的正确性。

实验一I/O地址译码

一、实验目的

掌握I/O地址译码电路的工作原理。

二、实验原理和内容

实验电路如图1-1所示,图中线路两端有节点的信号线需要用户用实验导线连接起来。

其中74LS74为D触发器,可直接使用实验台上部系统板上的D触发器。

74LS138为地址译码器。

译码输出端Y0~Y7在实验台中间系统板上引出,每个输出端包含8个地址,即:

Y0:

280H~287H;Y4:

2A0H~2A7H;

Y1:

288H~28FH;Y5:

2A8H~2AFH;

Y2:

290H~297H;Y6:

2B0H~2B7H;

Y3:

298H~29FH;Y7:

2B8H~2BFH;

当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。

例如:

执行下面两条指令,对应的译码输出脚输出一个负脉冲。

MOVDX,PORT1

OUTDX,AL(或INAL,DX)

执行下面两条指令,对应的译码输出脚输出一个负脉冲。

MOVDX,PORT2

OUTDX,AL(或INAL,DX)

利用这个负脉冲控制发光二极管L0闪烁发光(亮灭循环),时间间隔通过软件延时实现。

注意:

命令中的端口地址PORT1、PORT2是根据DVCC卡的I/O基址再加上偏移量计算出来的,不同的微机DVCC卡的I/O基址可能不同,需要事先查找出来,详细见《用户手册》第五章节5.3中第10~12点介绍的查找方法。

计算公式如下:

PORT1=查找出的DVCC卡的I/O基址+偏移量

其中:

偏移量=Y0~Y7中所选定的任意一个译码地址值-280H。

下面的程序用到Y4,即2A0H。

假设DVCC卡的I/O基地址=0C400H,经计算PORT1=0C420H。

三、编程提示

1.实验电路中D触发器的CLK端输入脉冲时,上升沿使Q端输出高电平,L0发光,CLR端加低电平L0灭。

2.由于DVCC卡使用PCI总线,所以分配的IO地址每台微机可能都不同,编程时需要了解当前的微机使用那段IO地址并进行设置,获取方法见《用户手册》第五章节5.3第10~12点中的介绍。

下面的程序YMQ.ASM(在文件夹“ASM_汇编程序”中)是需要用户自己根据查找到的DVCC卡的I/O基址替换到程序中带下划线的位置(0C400H);程序YMQ.ASM(在文件夹“ASM_汇编程序_自动”中)是通过程序自动获取DVCC卡资源分配的实验程序。

图1-1

四、参考程序

1.手动替换I/O基址的源程序文件名:

YMQ.ASM(在文件夹“ASM_汇编程序”中)

源程序清单如下:

ioportequ0C400H-0280h

outport1equioport+2a0h

outport2equioport+2a8h

codesegment

assumecs:

code

start:

movdx,outport1

outdx,al

calldelay;调延时子程序

movdx,outport2

outdx,al

calldelay;调延时子程序

movah,1

int16h

jestart

movah,4ch

int21h

delayprocnear;延时子程序

movbx,2000

lll:

movcx,0

ll:

loopll

decbx

jnelll

ret

delayendp

codeends

endstart

实验五可编程并行接口

一、实验目的

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

二、实验内容

1.实验电路如图5-1,8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。

2.编程从8255C口输入数据,再从A口输出。

3.由于DVCC卡使用PCI总线,所以分配的IO地址每台微机可能都不同,编程时需要了解

当前的微机使用那段IO地址并进行设置,获取方法见《用户手册》第五章节5.3第10~12点中的介绍。

下面的程序D8255_1.ASM(在文件夹“ASM_汇编程序”中)是需要用户自己根据查找到的DVCC卡的I/O基址替换到程序中带下划线的位置(0C400H)。

图5-1

三、编程提示

1.8255控制寄存器端口地址28BH,A口的地址288H,C口的地址28AH。

四、参考流程图如图5-2所示

五、参考程序

源程序文件名D8255_1.ASM(在文件夹“ASM_汇编程序”中)

源程序清单如下:

ioportequ0C400H-0280h

io8255aequioport+288h

io8255bequioport+28bh

io8255cequioport+28ah

codesegment

assumecs:

code

start:

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

moval,8bh

outdx,al

inout:

movdx,io8255c;从C口输入一数据

inal,dx

movdx,io8255a;从A口输出刚才自C口

outdx,al;所输入的数据

movdl,0ffh;判断是否有按键

movah,06h

int21h

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

movah,4ch;否则返回DOS

int21h

codeends

endstart

 

图5-2

 

注意:

本实验自动获取DVCC卡资源的源程序在文件夹“ASM_汇编程序_自动”中,文件名为D8255_1.ASM,源文件不在这里列出。

实验十六交通灯控制实验

一、实验目的

通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。

二、实验内容

1.如图16-1,L8、L7、L6作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。

编程使六个灯按交通灯变化规律亮灭。

2.L0对应东西路口绿灯,L1对应东西路口黄灯,L2对应东西路口红灯;L6对应南北路口绿灯,L7对应南北路口黄灯,L8对应南北路口红灯。

图16-1

三、编程提示

1.十字路口交通灯的变化规律要求:

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

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

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

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

(5)转

(1)重复。

2.由于DVCC卡使用PCI总线,所以分配的IO地址每台微机可能都不同,编程时需要了解当前的微机使用那段IO地址并进行设置,获取方法见《用户手册》第五章节5.3第10~12点中的介绍。

下面的程序JTD.ASM(在文件夹“ASM_汇编程序”中)是需要用户自己根据查找到的DVCC卡的I/O基址替换到程序中带下划线的位置。

四、参考流程图

开始

设置8255A口、C口为输出口

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

长延时

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

短延时

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

长延时

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

短延时

N

Y

返回

图30

五、参考程序

源程序文件名:

JTD.ASM(在文件夹“ASM_汇编程序”中)

源程序清单如下:

datasegment

ioportequ0C400H-0280h

io8255cequioport+28ah

io8255kequioport+28bh

portc1db24h,44h,04h,44h,04h,44h,04h;六个灯可能

db81h,82h,80h,82h,80h,82h,80h;的状态数据

db0ffh;结束标志

dataends

codesegment

assumecs:

code,ds:

data

start:

movcx,3000

delay:

loopdelay

movax,data

movds,ax

movdx,io8255k

moval,80h

Outdx,al;设置8255C口为输出

movdx,io8255c

re_on:

movbx,0

on:

moval,portc1[bx];取状态值

cmpal,0ffh

jzre_on

outdx,al;点亮相应的灯

incbx

movcx,2000h;延时参数赋初值

testal,21h;是否有绿灯亮

jzde1;没有,短延时

movcx,0ffffh;有,长延时

de1:

movdi,0ffffh;di赋初值5000

de0:

decdi;减1计数

jnzde0;di不为0

loopde1

pushdx

movah,06h

movdl,0ffh

int21h

popdx

jzon;没有,转到on

exit:

movah,4ch;返回

int21h

codeends

endstart

注意:

本实验自动获取DVCC卡资源的源程序在文件夹“ASM_汇编程序_自动”中,文件名为JTD.ASM,源文件不在这里列出。

实验十七步进电机控制实验

一、实验目的

1.了解步进电机控制的基本原理。

2.掌握控制步进电机转动的编程方法。

二、实验内容

1.按图17-1连接线路,利用8255输出脉冲序列,开关K0~K6控制步进电机转速,K7控制步进电机转向。

2.编程:

当K0~K6中某一开关为“1”(向上拨)时步进电机启动。

K7向上拨电机正转,向下拨电机反转。

3.由于DVCC卡使用PCI总线,所以分配的IO地址每台微机可能都不同,编程时需要了解当前的微机使用那段IO地址并进行设置,获取方法见《用户手册》第五章节5.3中第10~12点的介绍。

下面的程序BJDJ.ASM(在文件夹“ASM_汇编程序”中)是需要用户自己根据查找到的DVCC卡的I/O基址替换到程序中带下划线的位置。

图17-1

三、实验说明

步进电机驱动原理是通过对每相线圈中的电流的顺序切换来使电机作步进式旋转。

驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。

如图17-2所示:

本实验使用的步进电机用直流+5V电压,每相电流为0.16A,电机线圈由四相组成:

即:

φ1(BA);φ2(BB);φ3(BC);φ4(BD),驱动方式为二相激磁方式,各线圈通电顺序如下表。

顺序相

φ1

φ2

φ3

φ4

0

1

1

0

0

1

0

1

1

0

2

0

0

1

1

3

1

0

0

1

表中首先向φ1线圈-φ2线圈输入驱动电流,接着φ2-φ3,φ3-φ4,φ4-φ1,又返回到φ1-φ2,按这种顺序切换,电机轴按顺时针方向旋转。

实验可通过不同长度的延时来得到不同频率的步进电机输入脉冲,从而得到多种步进速度。

图17-2

四、参考流程图

 

 

图17-3

五、参考程序

源程序文件名:

BJDJ.ASM(在文件夹“ASM_汇编程序”中)

源程序清单如下:

DATASEGMENT

IoportEQU0C400H-0280h

io8255aEQUioport+288H;8255A口

io8255cEQUioport+28AH;8255C口

io8255kEQUioport+28BH;8255控制口

BUFDB0

MESDB'K0-K6ARESPEEDCONTYOL',0AH,0DH

DB'K6ISTHELOWESTSPEED',0AH,0DH

DB'K0ISTHEHIGHESTSPEED',0AH,0DH

DB'K7ISTHEDIRECTIONCONTROL',0AH,0DH,'$'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,CS

MOVDS,AX

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETMES

MOVAH,09

INT21H

MOVDX,io8255k

MOVAL,8BH

OUTDX,AL;设置8255C口输入,A口输出

MOVBUF,33H

OUT1:

MOVAL,BUF

MOVDX,io8255a

OUTDX,AL

MOVAH,06h

movdl,0ffh

INT21H;有键输入吗?

JEIN1;无键转IN1

MOVAH,4CH;有键转返回

INT21H

IN1:

MOVDX,io8255c

INAL,DX;读PC口上开关的状态

TESTAL,01H

JNZK0

TESTAL,02H

JNZK1

TESTAL,04H

JNZK2

TESTAL,08H

JNZK3

TESTAL,10H

JNZK4

TESTAL,20H

JNZK5

TESTAL,40H

JNZK6

STOP:

MOVDX,io8255a;电机停转

MOVAL,0FFH

JMPOUT1

K0:

MOVBX,0100H

SAM:

TESTAL,80H;判正反转

JZYX0

JMPZX0

K1:

MOVBX,0300H

JMPSAM

K2:

MOVBX,050H

JMPSAM

K3:

MOVBX,0700H

JMPSAM

K4:

MOVBX,0900H

JMPSAM

K5:

MOVBX,0B00H

JMPSAM

K6:

MOVBX,4000H

JMPSAM

YX0:

CALLDELAY;正转

MOVAL,BUF

RORAL,1

MOVBUF,AL

JMPOUT1

ZX0:

CALLDELAY;反转

MOVAL,BUF

ROLAL,1

MOVBUF,AL

JMPOUT1

DELAYPROCNEAR;延时子程序

DELAY1:

MOVCX,0FFFFH

DELAY2:

LOOPDELAY2

DECBX

JNZDELAY1

RET

DELAYENDP

CODEENDS

ENDSTART

注意:

本实验自动获取DVCC卡资源的源程序在文件夹“ASM_汇编程序_自动”中,文件名为BJDJ.ASM,源文件不在这里列出。

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

当前位置:首页 > 工程科技 > 建筑土木

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

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