微型计算机接口技术实验报告.docx

上传人:b****2 文档编号:14472370 上传时间:2023-04-23 格式:DOCX 页数:18 大小:56.65KB
下载 相关 举报
微型计算机接口技术实验报告.docx_第1页
第1页 / 共18页
微型计算机接口技术实验报告.docx_第2页
第2页 / 共18页
微型计算机接口技术实验报告.docx_第3页
第3页 / 共18页
微型计算机接口技术实验报告.docx_第4页
第4页 / 共18页
微型计算机接口技术实验报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

微型计算机接口技术实验报告.docx

《微型计算机接口技术实验报告.docx》由会员分享,可在线阅读,更多相关《微型计算机接口技术实验报告.docx(18页珍藏版)》请在冰豆网上搜索。

微型计算机接口技术实验报告.docx

微型计算机接口技术实验报告

 

微型计算机接口技术实验报告

 

实验1:

基本IO口扩展实验

一.实验目的

了解TTL芯片扩展简单I/O口的方法,掌握数据输入输出程序编制的方法。

二.实验内容说明

74LS244是一种三态输出的8总线缓冲驱动器,无锁存功能,当G为低电平时,Ai信号传送到Yi,当为高电平时,Yi处于禁止高阻状态。

74LS273是一种8D触发器,当CLR为高电平且CLK端电平正跳变时,D0——D7端数据被锁存到8D触发器中。

本实验利用74LS244作为输入口,读取开关状态,并将此状态通过74LS273驱动发光二极管显示出来。

三.实验原理图

74LS244与74LS273扩展I/O口原理图

四.实验步骤

1.编写源程序

源程序为:

MY_STACKSEGMENTPARA'STACK'

DB100DUP(?

MY_STACKENDS

MY_DATASEGMENTPARA'DATA'

IO_9054base_addressDB4DUP(0);PCI卡9054芯片I/O基地址暂存空间

IO_base_addressDB4DUP(0);PCI卡I/O基地址暂存空间

pcicardnotfindDB0DH,0AH,'pcicardnotfindoraddress/interrupterror!

!

!

',0DH,0AH,'$'

GOODDB0DH,0AH,'TheProgramisExecuting!

',0DH,0AH,'$'

LS244DW00000H

LS273DW00020H

RADB?

LBDB?

DELAY_SETEQU0FFFH;延时常数

MY_DATAENDs

MY_CODESEGMENTPARA'CODE'

MY_PROCPROCFAR

ASSUMECS:

MY_CODE,DS:

MY_DATA,SS:

MY_STACK

MAIN:

.386;386模式编译

MOVAX,MY_DATA

MOVDS,AX

MOVES,AX

MOVAX,MY_STACK

MOVSS,AX

CALLFINDPCI;自动查找PCI卡资源及IO口基址

MOVCX,wordptrIO_base_address

;MOVCX,0E800H;直接加入(E800:

本机PCI卡IO口基址)

ADDLS244,CX;PCI卡IO基址+偏移

ADDLS273,CX

MOVRA,7FH

MOVLB,0FEH

READ1:

MOVDX,LS244;读取开关状态

INAL,DX

CMPAL,55H;如果是55右移

JEREAD2

CMPAL,0AAH;如果是AA左移

JEREAD3

NOTAL;取反

JMPREAD4

READ2:

CALLRIGHT

JMPREAD4

READ3:

CALLLEFT

READ4:

MOVDX,LS273

OUTDX,AL;送LED显示

CALLDELAY

CALLBREAK

JMPREAD1

MY_PROCENDp

;

RIGHTPROCNEAR

MOVAL,RA

RORAL,1

MOVRA,AL

RET

RIGHTENDP

LEFTPROCNEAR

MOVAL,LB

ROLAL,1

MOVLB,AL

RET

LEFTENDP

;

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

;/*按任意键退出*/

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

;

BREAKPROCNEAR;按任意键退出

PUSHF

PUSHAX

PUSHDX

MOVAH,06H

MOVDL,0FFH

INT21H

JERETURN

MOVAX,4C00H

INT21H

RETURN:

POPDX

POPAX

POPF

RET

BREAKENDP

;

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

;/*延时程序*/

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

;

DELAYPROCNEAR;延时程序

PUSHF

PUSHDX

PUSHCX

MOVDX,DELAY_SET

D1:

MOVCX,-1

D2:

DECCX

JNZD2

DECDX

JNZD1

POPCX

POPDX

POPF

RET

DELAYENDp

;

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

;/*找卡子程序*/

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

;

;FUNCTIONCODE

IO_port_addreEQU0CF8H;32位配置地址端口

IO_port_dataEQU0CFCH;32位配置数据端口

IO_PLX_IDEQU200810B5H;PCI卡设备及厂商ID

BADR0=10H;基地址寄存器0

BADR1=14H;基地址寄存器1

BADR2=18H;基地址寄存器2

BADR3=1CH;基地址寄存器3

FINDPCIPROCNEAR;查找PCI卡资源并显示

PUSHAD

PUSHFD

MOVEBX,080000000H

FINDPCI_next:

ADDEBX,100H

CMPEBX,081000000H

JNZfindpci_continue

MOVDX,offsetpcicardnotfind;显示未找到PCI卡提示信息

MOVAH,09H

INT21H

MOVAH,4CH

INT21H;退出

findpci_continue:

MOVDX,IO_port_addre

MOVEAX,EBX

OUTDX,EAX;写地址口

MOVDX,IO_port_data

INEAX,DX;读数据口

CMPEAX,IO_PLX_ID

JNZfindpci_next;检查是否发现PCI卡

MOVDX,IO_port_addre

MOVEAX,EBX

ADDEAX,BADR1

OUTDX,EAX;写地址口

MOVDX,IO_port_data

INEAX,DX;读数据口

MOVdwordptrIO_9054base_address,EAX

ANDEAX,1

JZfindPCI_next;检查是否为i/o基址信息

MOVEAX,dwordptrIO_9054base_address

ANDEAX,0fffffffeh

MOVdwordptrIO_9054base_address,EAX;去除i/o指示位并保存

MOVDX,IO_port_addre

MOVEAX,EBX

ADDEAX,BADR2

OUTDX,EAX;写地址口

MOVDX,IO_port_data

INEAX,DX;读数据口

MOVdwordptrIO_base_address,EAX

ANDEAX,1

JZfindPCI_next;检查是否为i/o基址信息

MOVEAX,dwordptrIO_base_address

ANDEAX,0fffffffeh

MOVdwordptrIO_base_address,EAX;去除i/o指示位并保存

MOVDX,offsetgood;显示开始执行程序信息

MOVAH,09H

INT21H

POPfd

POPad

RET

findPCIENDP

MY_CODEENDS

ENDMAIN

2.编译源程序

3.实验连线(连线图如下)

244的CS——ISA总线接口模块的0000H,Y7—Y0——开关K1—K8。

273的CS——ISA总线接口模块的0020H,Q7—Q0——发光二极管L1—L8。

该模块的WR、RD分别连到ISA总线接口模块的IOWR、IORD。

该模块的数据(AD0~AD7)连到ISA总线接口模块的数据(LD0~LD7)。

扩展I/O口连线图

4.运行源程序

5.拨动开关,观察发光二极管的变化。

五.实验结果

当分别拨动开关KO1~KO8时,开关对应的二极管L1~L8亮

六.实验结果分析

当拨动开关时,程序会检测到开关的拨动,并把信号经74LS244(8总线缓冲驱动器)传递到74LS273(8D触发器)中,当CLR为高电平且CLK端电平正跳变时,D0——D7端据被锁存到8D触发器中,这时通过74LS273可改变发光二级管的装态。

 

实验二:

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

一.实验目的

了解计数器的硬件连接方法及时序关系,掌握8254的各种模式的编程及其原理,用示波器观察各信号之间的时序关系。

二.实验原理图

可编程定时器/计数器8254原理图

三.实验内容及说明

将32Hz的晶振频率作为8254的时钟输入,利用定时器8254产生1Hz的方波,发光二极管不停闪烁,用示波器可看到输出的方波。

8254是一种可编程的定时器/计数器芯片,它具有3个独立的16位计数器通道,每个计数器都可以按照二进制或二-十进制计数,每个计数器都有6种工作方式,计数频率可高达24MHz,芯片所有的输入输出都与TTL兼容。

计数器都有6种工作方式:

方式0—计数过程结束时中断;方式1—可编程的单拍脉冲;方式2—频率发生器;方式3—方波发生器;方式4—软件触发;方式5—硬件触发。

6种工作方式主要有5点不同:

一是启动计数器的触发方式和时刻不同;二是计数过程中门控信号GATE对计数操作的影响不同;三是OUT输出的波形不同;四是在计数过程中重新写入计数初值对计数过程的影响不同;五是计数过程结束,减法计数器是否恢复计数初值并自动重复计数过程的不同。

四.实验步骤

1.根据实验要求,编写源程序。

源程序如下:

MY_STACKSEGMENTPARA'STACK'

DB100DUP(?

MY_STACKENDS

MY_DATASEGMENTPARA'DATA'

IO_9054base_addressDB4DUP(0);PCI卡9054芯片I/O基地址暂存空间

IO_base_addressDB4DUP(0);PCI卡I/O基地址暂存空间

pcicardnotfindDB0DH,0AH,'pcicardnotfindoraddress/interrupterror!

!

!

',0DH,0AH,'$'

GOODDB0DH,0AH,'TheProgramisExecuting!

',0DH,0AH,'$'

P8254_T0DW0000H

P8254_T1DW0001H

P8254_T2DW0002H

P8254_MODEDW0003H

MY_DATAENDs

MY_CODESEGMENTPARA'CODE'

MY_PROCPROCFAR

ASSUMECS:

MY_CODE,DS:

MY_DATA,SS:

MY_STACK

MAIN:

.386;386模式编译

MOVAX,MY_DATA

MOVDS,AX

MOVES,AX

MOVAX,MY_STACK

MOVSS,AX

CALLFINDPCI;自动查找PCI卡资源及IO口基址

MOVCX,wordptrIO_base_address

;MOVCX,0E800H;直接加入(E800:

本机PCI卡IO口基址)

ADDP8254_T0,CX;PCI卡IO基址+偏移

ADDP8254_T1,CX

ADDP8254_T2,CX

ADDP8254_MODE,CX

MOVDX,P8254_MODE;写入方式控制字

MOVAL,37H;计数器0,先读写低位,后读写高位,

OUTDX,AL;方式3,BCD码计数

MOVDX,P8254_T0

MOVAL,20H;初值低8位

OUTDX,AL

MOVAL,00H;初值高8位

OUTDX,AL

NEXT:

CALLBREAK

JMPNEXT

MY_PROCENDp

;

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

;/*按任意键退出*/

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

;

BREAKPROCNEAR;按任意键退出

PUSHF

PUSHAX

PUSHDX

MOVAH,06H

MOVDL,0FFH

INT21H

JERETURN

EXEC_EXIT:

MOVAX,4C00H

INT21H

RETURN:

POPDX

POPAX

POPF

RET

BREAKENDP

;

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

;/*找卡子程序*/

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

;

;FUNCTIONCODE

IO_port_addreEQU0CF8H;32位配置地址端口

IO_port_dataEQU0CFCH;32位配置数据端口

IO_PLX_IDEQU200810B5H;PCI卡设备及厂商ID

BADR0=10H;基地址寄存器0

BADR1=14H;基地址寄存器1

BADR2=18H;基地址寄存器2

BADR3=1CH;基地址寄存器3

FINDPCIPROCNEAR;查找PCI卡资源并显示

PUSHAD

PUSHFD

MOVEBX,080000000H

FINDPCI_next:

ADDEBX,100H

CMPEBX,081000000H

JNZfindpci_continue

MOVDX,offsetpcicardnotfind;显示未找到PCI卡提示信息

MOVAH,09H

INT21H

MOVAH,4CH

INT21H;退出

findpci_continue:

MOVDX,IO_port_addre

MOVEAX,EBX

OUTDX,EAX;写地址口

MOVDX,IO_port_data

INEAX,DX;读数据口

CMPEAX,IO_PLX_ID

JNZfindpci_next;检查是否发现PCI卡

MOVDX,IO_port_addre

MOVEAX,EBX

ADDEAX,BADR1

OUTDX,EAX;写地址口

MOVDX,IO_port_data

INEAX,DX;读数据口

MOVdwordptrIO_9054base_address,EAX

ANDEAX,1

JZfindPCI_next;检查是否为i/o基址信息

MOVEAX,dwordptrIO_9054base_address

ANDEAX,0fffffffeh

MOVdwordptrIO_9054base_address,EAX;去除i/o指示位并保存

MOVDX,IO_port_addre

MOVEAX,EBX

ADDEAX,BADR2

OUTDX,EAX;写地址口

MOVDX,IO_port_data

INEAX,DX;读数据口

MOVdwordptrIO_base_address,EAX

ANDEAX,1

JZfindPCI_next;检查是否为i/o基址信息

MOVEAX,dwordptrIO_base_address

ANDEAX,0fffffffeh

MOVdwordptrIO_base_address,EAX;去除i/o指示位并保存

MOVDX,offsetgood;显示开始执行程序信息

MOVAH,09H

INT21H

POPfd

POPad

RET

findPCIENDP

MY_CODEENDS

ENDMAIN

2.编译程序

3.实验连线:

(连线图如下图)

信号源模块短路32.0Hz,CLK连到8254模块的CLK0。

􀂾8254模块选通线CS连到ISA总线接口模块的0000H。

􀂾8254模块GATE0接电源+5V;OUT0接发光二极管L1。

􀂾该模块的WR、RD分别连到ISA总线接口模块的IOWR、IORD。

􀂾该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到ISA总线接口模块的数据(LD0~LD7)、地址线(LA0~LA7)。

8254定时器/计数器实验

4.运行程序

5.观察发光二极管,用示波器可看到输出的方波。

五.实验结果

发光二级管L1在以某一个频率,有规律的闪烁。

六.实验结果分析

由实验可知,8254工作在方式三——方波发生器中,要求输入的频率为32Hz,输出频率为1Hz,所以计数初值应设置为32。

当写入记数值后开始记数,采用减2记数,当记数到一半记数值时,输出变低,重新装入记数值进行减2记数,当记数到0时,输出变高,装入记数值进行减2记数,循环不止。

最后把输出的1Hz信号接入发光二极管中,发光二级管以1Hz的频率有规律的闪烁。

七.实验总结

本实验为基本IO端口扩展实验和可编程定时器/计数器8254实验,实验过程相对比较顺利。

在编译程序阶段,因为把程序存在桌面上了,编译程序出错,在经过检查后,把程序放到了F盘,再次编译程序,编译成功。

在这次实验中,不仅练了自己动手能力,而且巩固了课本学习的内容,为自己在以后的工作学习中打下基础。

 

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

当前位置:首页 > 医药卫生 > 药学

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

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