




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章 基本输入输出接口外部设备是微机系统的重要组成部分,微机通过它们与外界进行信息交换。各种外部设备必须通过输入/输出接口电路。(I/OInterface)与微机连接,并在接口电路的支持下实现数据传送和操作控制。而对于内存(RAM和ROM)可直接连接到系统总线上。I/O接口电路:是位于系统和外设之间协助完成数据传送和控制任务的逻辑电路。(1)主板上的可编程接口芯片;(2)插在I/O总线插槽中用来连接I/O设备的电路板(接口卡,又称适配器Adapter)。接口电路的工作一般离不开软件的驱动和配合-----软、硬结合。处理微机系统与外设间联系的技术就是—— 微机接口技术。根据应用系统的需要,使用和构造相应的接口电路、编制配套的接口程序、支持和连接有关的设备,是本课程的一个重要目的和应用方向,是后续若干章节的主要内容。I/O设备的特点:(1)品种繁多。有输入设备、输出设备、输入/输出设备,有检测或控制设备。这些外设可能是光、机、电、声和磁等设备。每一类设备本身可能又是由多种原理不同的具体设备组成。(2)工作速度慢。
(3)信号类型、电平种类、数据传送方式不同。外设接口既有数字电压信号,也有连续的电流信号或其它模拟信号。并行传送、串行传送。
(4)信息结构格式复杂。各设备之间的信息格式各不相同,需要“接口”能在CPU和外设之间起协调作用,以减轻CPU的负担。CPU与I/O设备交换信息,应做到:
1)CPU能与输入/输出设备进行各种数据信息的交换。2)CPU可与多个外设相连并能加以区别。3)CPU能与不同速度的输入/输出设备交换数据信息。目的:使CPU与输入/输出设备之间能高度协调、有效的进行信息的交换。
I/O接口的典型结构图(1)数据寄存器——输入时保存外设法往CPU的数据;输出时,保存CPU发往外设的数据;(2)状态寄存器——保存状态数据,CPU可从中读取当前接口电路或外设的状态;(3)控制寄存器——保存控制数据CPU通过向控制寄存器写入命令字,来决定接口电路的工作方式或控制外设进行有关操作:这样的接口电路是“可编程”控制的接口电路。以上数据、状态和控制寄存器所占用的I/O地址通常被称为数据端口、状态端口和控制端口,有时简称为数据口、状态口和控制口。接口电路的内部结构:指令格式:IN AL,i8 ;字节输入:AL
I/O端口i8(直接寻址)IN AL,DX ;字节输入:AL
I/O端口DX(DX寄存器间接寻址)IN AX,i8 ;字输入:AX
I/O端口i8(直接寻址)IN AX,DX ;字输入:AX
I/O端口DX(DX寄存器间接寻址)OUT i8,AL ;字节输出:I/O端口i8(直接寻址)
ALOUT DX,AL ;字节输出:I/O端口DX(DX寄存器间接寻址)
ALOUT i8,AX ;字输出:I/O端口i8(直接寻址)
AXOUT DX,AX ;字输出:I/O端口DX(DX寄存器间接寻址)
AX数据的传送方式主机和I/O设备之间数据的传送方式大致可分为三种:(1)程序控制的输入和输出方式:无条件传送:传送前,CPU无须了解端口的状态,直接进行数据的传送。查询传送:传送前,CPU先查询端口状态,待端口就绪后方进行传送。(2)中断传送方式:传送请求由外设提出,CPU视情况响应后,调用预先安排好的中断服务程序来完成数据传送。(3)直接存储器存取(DMA)方式:传送请求由外设向DMA控制器提出,DMAC向CPU请求占用系统总线,然后利用系统总线完成外设存储器之间的数据传送。还可利用I/O处理机进行数据的传送和处理。就绪(Ready)的含义:1、在输入场合,“就绪”说明输入接口已准备好送往CPU的数据,正等待CPU来读取;2、在输出场合,“就绪”说明输出接口已做好准备,等待接受CPU要输出的数据;或者,前次CPU输出给它的数据已得到处理,现在接口正等待新的数据,也可用接口(外设)“闲”或不“忙(Busy)”来描述。无条件传送的的前提是外设必须就绪,所以单纯的无条件传送其应用面较窄。无条件传送方式及其接口8D锁存器三态缓冲器8000H假设两个端口均用A15选中(线选法),原因:读、写控制信号参与寻址,所以输入口和输出口I/O地址可以相同。我们取8000H为其地址。程序功能:不断扫描8个开关,当开关闭合时,点亮相应的LED;扫描周期通过调用一个子程序DELAY来实现。again: mov dx,8000h ;DX指向数据口
in al,dx ;从输入口读开关状态
not al ;反相?
out dx,al ;送输出口显示 call delay ;调用延时程序 jmp again ;重复查询传送方式(异步传送方式)(1)查询环节寻址状态口,通过读取状态寄存器来检查外设是否就绪。不就绪则继续查询;直至就绪才进行传送。可在循环中添加超时判断,当查询超过规定的时间,引发超时错误并退出。(2)传送环节外设就绪后,寻址数据口,通过IN和OUT指令进行输入和输出的操作。查询流程图查询输入接口电路查询输出接口电路当CPU输出数据时,先查询状态端口。若D7=0,说明输出设备“空闲”,即以前输入的数据已经得到处理。此时,CPU可以将数据写入数据端口,同时控制信号将状态锁存器置位为1,通知输出设备获取数据,也表示此时外设“忙”,即正在接收和处理从CPU输出的数据,不能接收新的数据。另一方面,输出设备根据状态锁存器Q端为1,获知CPU输出的数据已更新,可以继续接收并处理数据。处理结束后,输出设备给出一个应答信号ACK,该信号将状态端口重新复位为0,表示输出设备“空闲” mov dx,4000h ;DX指向状态端口again: in al,dx ;读取状态端口的状态数据 test al,80h ;测试D7位 jnz again ;若D7=1,未就绪,继续查询 inc dx ;若D7=0,就绪,DX指向数据端口 mov al,buf ;取数据BUF out dx,al ;将数据输出给数据端口查询方式数据采集系统
analogsignals3.23.92.83.41.24.2343314011100011011001100原始信号PAM脉冲PCM脉冲(量化、编码)011100011011001100PCM输出A/D过程接口电路示意图中有8路模拟量输入,经多路开关选通后送A/D转换器。多路开关由控制端口(端口地址设为04H)输出的三位二进制数D2D1D0来控制。当D2D1D0分别为000、001、…、111时,相应选中A0、A1、…、A7路中的一路模拟量的输入,送至A/D转换器。同时控制端口的D4控制位,用来控制A/D转换器的启动(D4=1)和停止(D4=0)转换工作。当A/D转换器转换完成,一方面由Ready端向状态端口(端口地址设为03H)的D7位送就绪(转换完成,Ready=1)信息,另一方面将转换输出的数据信息送数据端口(端口地址设为02H)锁存。当CPU查询得知输入数据已准备就绪时,边将数据端口锁存的输入数据采集(输入)CPU,并存放在某个内存中。cseg segment assume cs:cseg,ds:cseg,es:cseg org 100h ;Tiny内存管理模式start: push cs pop ds push cs pop es ;初始化DS、ES段寄存器 mov dl,0f8h ;设置启动A/D转换的信号 mov di,offsetdstor ;指向内存数据缓冲区 cldagain: mov al,dl and al,0efh ;置D4=0 out 04h,al ;停止A/D转换 call delay ;等待停止A/D转换的完成 mov al,dl out 04h,al ;启动A/D转换器,首先选择模拟量A0poll: in al,03h ;CPU读状态信息 shl al,1 jnc poll ;若D7=0,则继续查询 in al,02h ;若D7=1,则输入数据 stosb ;存入内存数据区 inc dl ;修改多路开关控制信号,指向下一路模拟量 jnz again ;循环输入8路模拟量 …… mov ah,4ch int 21h ;返回DOSdelay proc ;延时子程序 …… ret
delay endp dstor db8dup(?) ;内存数据缓冲区cseg ends end startTPμP-16B是一种超小型的点阵式打印机,使用标准的并行接口,自带单片机,有2KB的控制程序。其接口包括单向接收数据线DB7~DB0,联络信号STB、BUSY、ACK、ERR等。TPμP-16B打印机通过20芯扁平电缆与主机连接。DB7~DB0:数据传输线,单向,方向由微机输入至打印机;STB:打印机选通(strobe)信号,输入,此信号有效时,数据总线上8位数据被打印机读入;BUSY:“忙”信号,输入,此信号高电平时,表示打印机正在处理上一次输入的数据,不能接收新的数据;ACK:“应答”信号,输出,此信号有效(低电平)时,表示打印机已接收上一个字节的数据;ERR:“出错”信号,输出,当送入打印机的命令格式有错时,打印机将输出一行出错提示信息。在打印机打印出错信息之前,此信号线输出一低电平脉冲信号,宽度约为30ms。数据端口控制端口状态端口CPU首先查询状态端口(端口地址设为379H)的信号,当CPU检测到BUSY为低电平,即打印机“不忙”时,CPU就通过数据总线D7~D0向接口的数据端口(端口地址设为378H)送一个数据。待数据在与打印机连接的输出数据引脚上稳定后,CPU再向控制端口(端口地址设为37AH)发来一个选通脉冲,即使STB有效(宽度不小于0.5μs),将送到打印机的数据打入打印机的数据输入寄存器中。STB的上升沿将打印机的BUSY置为高电平,表示打印机不能接受数据。当打印机准备就绪,可以接受下一个打印数据时,就输出宽度约5μs的负脉冲ACK,并用其前沿(也可以选择后沿)使BUSY由“高”变“低”,即置打印机“不忙”状态。至此一个数据传送结束。要传送第二个数据,就再重复上述过程。
打印机数据传送时序图
PRINTPROC
PUSHDX PUSHAX ;保护现场,AL存放要打印的数据;查询打印机状态: MOVDX,379H ;DX指向状态端口AGAIN:INAL,DX ;CPU读状态端口 TESTAL,80H JE(?) AGAIN ;若D7=1,打印机“忙”,继续查询;输出数据: POPAX MOVDX,378H ;DX指向数据端口 OUTDX,AL ;输出数据到数据端口 PUSHAX ;维持堆栈的状态;选通打印机读取数据: MOVDX,37AH ;DX指向控制端口 MOVAL,00H OUTDX,AL ;选通打印机 MOVAL,01H OUTDX,AL ;关闭打印机
POPAX POPDX
;恢复现场 RETPRINTENDPdata segment buf db'Printerdisplayprogram' crlf db13,10data endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,ax mov bx,offsetbuf ;待打印字符串的首地址利用查询方式打印一行字符串的一个完整的程序:rot: mov al,[bx] mov dx,378h ;DX指向数据端口 out dx,al ;输出一个字符到打印机 inc dx ;DX指向状态端口wat:in al,dx ;读入状态信息 test al,80h ;测试打印机“忙”否 jz(?)wat ;“忙”,重新测试 mov al,0dh ;不“忙”,发出选通信号 inc dx ;DX指向控制端口 out dx,al mov al,0ch ;取消选通信号 out dx,al cmp byteptr[bx],10 ;测试输出字符 je exit ;为换行符,打印结束 inc bx ;指向下一个字符 jmp rot ;输出下一个字符exit: mov ax,4c00h int 21h ;返回DOS code ends end start(1)送打印数据到数据端口(LPT1为378H,LPT2为278H)。(2)循环读入打印状态信息(LPT1为379H,LPT2为279H)直到打印机“不忙”。(3)若“忙”信号为高电平时(不忙),通过控制锁存器(LPT1为37AH,LPT2为27AH)输出数据选通信号到打印机,打印机接收数据。(4)当打印机接收到一个字符时,打印机立即开始打印,此时“忙”信号为低电平,计算机不能继续送出打印和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 污泥资源化综合利用项目可行性研究报告
- 生物基二元醇项目可行性研究报告
- 防汛知识培训领导开场白课件
- 战略合作协议
- 结直肠息肉门诊管理专家共识(2025成都)
- 科技数码产品电子产品推广方案设计
- 继承财产分配协议范本书5篇
- 借款还贷合同书7篇
- 河北省唐山市2025-2026学年高三上学期开学摸底考试物理试卷
- 精神疾病社会污名化-洞察及研究
- 装修装饰报价单范文
- 药店内部各项管理制度
- 高层建筑无人机巡检系统施工方案
- 卫生心理健康课件
- 中建领料管理制度
- 医院培训课件:《精神科暴力特征及实战技巧》
- 乡村春晚活动方案
- 2025年临床执业医师考试《第一单元》新版真题卷(含答案)
- 大头儿子测试题及答案
- 雅砻江公司招聘笔试题库2025
- 日本所有番号分类
评论
0/150
提交评论