第3部分微型计算机输入输出接口.ppt

上传人:豆**** 文档编号:65723424 上传时间:2022-12-06 格式:PPT 页数:74 大小:1,021.50KB
返回 下载 相关 举报
第3部分微型计算机输入输出接口.ppt_第1页
第1页 / 共74页
第3部分微型计算机输入输出接口.ppt_第2页
第2页 / 共74页
点击查看更多>>
资源描述

《第3部分微型计算机输入输出接口.ppt》由会员分享,可在线阅读,更多相关《第3部分微型计算机输入输出接口.ppt(74页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第3部分微型计算机输入输出接口 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望3.1 输入输出接口输入输出接口 3.1.1 3.1.1 外部设备及其信号外部设备及其信号 3.1.2 3.1.2 I/O接口的功能接口的功能3.1.3 3.1.3 I/O端口的编址方法端口的编址方法 3.1.4 3.1.4 简单简单I/O接口的组成接口的组成3.1.1 外部设备及其信号外部设备及其信号 1.外部设备(外部设备(Peripheral Device)按照与按照与CPU数据传

2、输的方向划分数据传输的方向划分:(1)输入设备)输入设备键盘、鼠标、光笔键盘、鼠标、光笔输入图形信息的扫描仪、数码相机输入图形信息的扫描仪、数码相机检测现场信息的数字化测试仪表检测现场信息的数字化测试仪表模拟量采集和模拟量数字量转换装置等模拟量采集和模拟量数字量转换装置等(2)输出设备)输出设备显示器、打印机显示器、打印机绘图仪绘图仪现场控制的数字量模拟量转换装置和执行元件现场控制的数字量模拟量转换装置和执行元件(3)复合输入输出设备)复合输入输出设备外存储设备是典型的复合输入输出设备外存储设备是典型的复合输入输出设备:磁带机(磁带机(Tape Driver)软磁盘驱动器(软磁盘驱动器(Flo

3、ppy Driver)硬磁盘驱动器(硬磁盘驱动器(Hard Disk Driver)光盘驱动器(光盘驱动器(Compact Disk Driver)许多光盘只能读出信息,称为许多光盘只能读出信息,称为CDROM(Compact DiskRead Only Memory),),只读光盘只能用作输入设备。只读光盘只能用作输入设备。2.外部设备的信号外部设备的信号(1)数据信号)数据信号按照信号的物理形态,可分为以下几种;按照信号的物理形态,可分为以下几种;数字量:数字量:以二进制形式表述的数据、图形或文字信息。以二进制形式表述的数据、图形或文字信息。模模拟拟量量:现现场场的的物物理理量量通通过过传

4、传感感器器件件,转转换换为为大大小小与与之之对对应应的的电电压压或或电电流流信信号号。这这些些量量呈呈连连续续变变化化的的形形态态,称为模拟量称为模拟量(Analog)。)。开开关关量量:开开关关量量是是只只有有二二种种状状态态(0,1)的的量量,如如开开关的接通(关的接通(ON)与断开(与断开(OFF),),电机的启停等电机的启停等脉冲量:脉冲量:计数脉冲、定时脉冲和控制脉冲计数脉冲、定时脉冲和控制脉冲对于输入设备,数据信号从外设送往对于输入设备,数据信号从外设送往CPU对于输出设备,数据信号从对于输出设备,数据信号从CPU发往外部设备。发往外部设备。(2)状态信号)状态信号 状态信号表明外

5、部设备当前的工作状态,用来协调状态信号表明外部设备当前的工作状态,用来协调CPU与外部设备之间的操作。与外部设备之间的操作。典型的状态信号:典型的状态信号:READY,BUSY有的设备有指示出错状态的信号,如打印机的纸尽有的设备有指示出错状态的信号,如打印机的纸尽(Paper Out),),故障(故障(Fault)。)。不同的外设可以有不同的状态信号。不同的外设可以有不同的状态信号。状态信号总是从外部设备发往状态信号总是从外部设备发往CPU。(3)控制信号控制信号 控制信号是控制信号是CPU向外设发出的命令,它指定设备的工向外设发出的命令,它指定设备的工作方式,启动或停止设备作方式,启动或停止

6、设备控制信号的格式因设备而异控制信号的格式因设备而异控制信号从控制信号从CPU发往外部设备发往外部设备 数数据据信信号号、状状态态信信号号、控控制制信信号号都都是是以以“数数据据”的的形形式式,通通过过数数据据总总线线在在CPU和和外外部部设设备备之之间间进进行传输的行传输的。3.1.2 I/O接口的功能接口的功能接口:计算机一个部件与另一个部件之间的连接界面。接口:计算机一个部件与另一个部件之间的连接界面。功能功能:1.设备选择功能设备选择功能CPU通过地址代码来标识和选择不同的外部设备通过地址代码来标识和选择不同的外部设备接口对系统总线上传输的外设地址进行译码,在检测接口对系统总线上传输的

7、外设地址进行译码,在检测到本设备地址代码时,产生相应的到本设备地址代码时,产生相应的“选中选中”信号信号2.信息传输功能信息传输功能设备被设备被“选中选中”时时:从从CPU/数据总线接收数据或控制信息数据总线接收数据或控制信息外部设备的数据或状态信息发往数据总线外部设备的数据或状态信息发往数据总线/CPU3.数据格式转换功能数据格式转换功能外外设设使使用用的的数数据据格格式式与与CPU数数据据格格式式不不同同时时,接接口口要要进进行二种数据格式之间的相互转换。行二种数据格式之间的相互转换。4.联络功能联络功能从系统总线或外设接收一个数据后从系统总线或外设接收一个数据后,发出发出“数据到数据到”

8、联络信号,通知外设或联络信号,通知外设或CPU取走数据取走数据数据传输完成,向对方发出信号,准备进行下次传输数据传输完成,向对方发出信号,准备进行下次传输5.中断管理功能中断管理功能向向CPU申请中断;申请中断;向向CPU发中断类型号;发中断类型号;中断优先权的管理;中断优先权的管理;在在以以8086为为CPU的的系系统统中中,这这些些功功能能大大部部份份可可以以由由专专门的中断控制器实现。门的中断控制器实现。6.复位功能复位功能 接接口口在在接接收收系系统统的的复复位位信信号号后后,将将接接口口电电路路及及其其所所连接的外部设备置成初始状态。连接的外部设备置成初始状态。7.可编程功能可编程功

9、能 有有些些接接口口具具有有可可编编程程特特性性,可可以以用用指指令令来来设设定定接接口口的工作方式、工作参数和信号的极性。的工作方式、工作参数和信号的极性。8.错误检测功能错误检测功能 (1)物理信道上的传输错误物理信道上的传输错误信信号号在在线线路路上上传传输输时时,如如果果遇遇到到干干扰扰信信号号,可可能能发发生生传输错误。传输错误。检测传输错误的常见方法是奇偶检验。检测传输错误的常见方法是奇偶检验。(2)数据传输中的覆盖错误数据传输中的覆盖错误输输入入设设备备完完成成一一次次输输入入操操作作后后,把把所所获获得得的的数数据据暂暂存存在接口内在接口内如如果果在在该该设设备备完完成成下下一

10、一次次输输入入操操作作之之后后,CPU还还没没有有从从接接口口取取走走数数据据,那那么么,在在新新的的数数据据送送入入接接口口后后,上上一次的数据被覆盖,从而导致数据的丢失一次的数据被覆盖,从而导致数据的丢失输出操作中也可能产生类似的错误输出操作中也可能产生类似的错误覆覆盖盖错错误误导导致致数数据据的的丢丢失失,易易发发生生在在高高速速数数据据传传输输的的场合场合3.1.3 I/O端口的编址方法端口的编址方法有两种不同的有两种不同的I/O端口编址方式:端口编址方式:1.I/O端口与内存统一编址端口与内存统一编址把内存的一部分地址分配给把内存的一部分地址分配给I/O端口,一个端口,一个8位端口占

11、位端口占用一个内存单元地址,也称为用一个内存单元地址,也称为存储器映射编址方式存储器映射编址方式优点:优点:访问内存单元和访问内存单元和I/O端口使用相同的指令,使用方便端口使用相同的指令,使用方便降低降低CPU电路的复杂性电路的复杂性缺点:缺点:减少了内存可用范围减少了内存可用范围难以区分访问内存和难以区分访问内存和I/O的指令,降低了程序的可读性的指令,降低了程序的可读性和可维护性和可维护性2.I/O端口与内存独立编址端口与内存独立编址内存储器和内存储器和I/O端口各自有自己独立的地址空间端口各自有自己独立的地址空间访问访问I/O端口需要专门的端口需要专门的I/O指令指令8086/8088

12、 CPU采用这种方式采用这种方式访问内存储器访问内存储器使用使用20根地址线根地址线A0A19使使M/IO#=1内存地址范围为内存地址范围为000000FFFFFH共共1MB访问访问I/O端口端口使用低使用低16根地址线根地址线A0A15使使M/IO#=0I/O端口地址范围为端口地址范围为00000FFFFH共共64K3 IBM PC 微型计算机微型计算机I/O端口地址分配端口地址分配在在PC系系列列微微机机中中,仅仅使使用用A0A9共共10条条地地址址线线定定义义I/O端口(设端口(设A11A15=0),),寻址范围为寻址范围为03FFH前前256个个端端口口地地址址供供主主板板上上寻寻址址

13、I/O接接口口芯芯片片使使用用,后后768个供扩展槽接口卡使用个供扩展槽接口卡使用用用户户设设计计I/O接接口口电电路路的的时时候候,应应使使用用系系统统未未占占用用的的端端口地址区域口地址区域为为避避免免所所选选择择的的地地址址与与其其他他扩扩展展卡卡冲冲突突,最最好好将将其其设设计成地址可选的型式计成地址可选的型式IBM-PC微机系统板各微机系统板各I/O接口器件端口地址见表接口器件端口地址见表3-1。3.1.4 简单简单I/O接口的组成接口的组成 1.端口端口 端端口口:接接口口内内的的寄寄存存器器,用用来来暂暂存存CPU和和外外设设之之间间传传输输的的数据、状态和命令。数据、状态和命令

14、。端口地址端口地址:每一个端口有一个独立的地址。:每一个端口有一个独立的地址。外外部部设设备备地地址址:设设备备接接口口内内各各端端口口的的地地址址,一一台台外外部部设设备备可以拥有几个通常是相邻的端口地址。可以拥有几个通常是相邻的端口地址。端口种类:端口种类:数据端口、命令端口(控制端口)和状态端口数据端口、命令端口(控制端口)和状态端口。如如果果外外部部设设备备的的信信息息(数数据据/状状态态)已已经经锁锁存存,端端口口也也可可以由三态缓冲电路组成。以由三态缓冲电路组成。2.地址译码电路地址译码电路 地址译码是接口的基本功能之一。地址译码是接口的基本功能之一。一个接口上的几个端口地址通常是

15、连续排列的,一个接口上的几个端口地址通常是连续排列的,可以把可以把16位地址码分解为二个部分:位地址码分解为二个部分:高位地址码用作对接口的选择;高位地址码用作对接口的选择;低位地址码用来选择接口内不同的端口。低位地址码用来选择接口内不同的端口。例如:某接口占有地址例如:某接口占有地址330H333H:高高8 8位地址为位地址为1100110011001100B B时,本接口被选中;时,本接口被选中;低低2 2位地址为位地址为0000,0101,1010,1111时,选择接口内的不同端口。时,选择接口内的不同端口。图图3-1 端口的地址译码电路端口的地址译码电路为了避免地址冲突,许多接口电路允

16、许用为了避免地址冲突,许多接口电路允许用“跳线器跳线器(JUMPER)”改变端口地址。上页图改变端口地址。上页图3-1(b)将异或门的输出代替图将异或门的输出代替图3-1(a)中的中的A8,A9引脚:引脚:二个跳线引脚均接地时,上面译码电路仍然产生二个跳线引脚均接地时,上面译码电路仍然产生330H333H的端口译码信号;的端口译码信号;当二个跳线引脚均接当二个跳线引脚均接“1”时,上面译码电路会产生时,上面译码电路会产生030H033H的端口译码信号的端口译码信号同理还可以产生同理还可以产生130H133H,230H233H的译码信号。的译码信号。8086工工作作于于最最大大模模式式时时,上上

17、面面的的M/IO#、WR#、RD#信信号由号由8288总线控制器发出的总线控制器发出的IORC#、IOWC#代替代替。由由于于读读、写写操操作作不不会会同同时时进进行行,一一个个输输入入端端口口和和另另一一个个输输出端口可以使用同一个地址编码。出端口可以使用同一个地址编码。例例如如,可可安安排排数数据据输输入入端端口口、数数据据输输出出端端口口使使用用同同一一个个地地址址330H,命令端口和状态端口共同使用地址命令端口和状态端口共同使用地址331H。需需要要注注意意的的是是,数数据据输输入入端端口口和和数数据据输输出出端端口口虽虽然然使使用用相相同的地址,但却是二个各自独立的不同的端口。同的地

18、址,但却是二个各自独立的不同的端口。3.数据锁存器与缓冲器数据锁存器与缓冲器数据数据(状态状态)输入端口:输入端口:必必须须通通过过三三态态缓缓冲冲器器与与系系统统总总线线相相连连,保保证证数数据据总总线线能够正常地进行数据传送。能够正常地进行数据传送。输输入入设设备备在在完完成成一一次次输输入入操操作作后后,在在输输出出数数据据的的同同时时,产生数据选通信号,把数据打入八位锁存器产生数据选通信号,把数据打入八位锁存器74LS273锁锁存存器器的的输输出出信信号号通通过过三三态态八八位位缓缓冲冲器器74LS244连连接接到系统数据总线。到系统数据总线。数据端口读信号数据端口读信号由地址译码电路

19、产生。由地址译码电路产生。高电平(无效):缓冲器输出端呈高阻态。高电平(无效):缓冲器输出端呈高阻态。低电平(有效,端口被选中低电平(有效,端口被选中):已锁存的数据通过):已锁存的数据通过74LS244送往系统数据总线,被送往系统数据总线,被CPU所接收。所接收。图图3-3 输入设备接口的数据锁存和缓冲电路输入设备接口的数据锁存和缓冲电路数据(命令)输出端口:数据(命令)输出端口:CPU送送往往外外设设的的数数据据或或命命令令,应应由由接接口口进进行行锁锁存存,以便使外设有充分的时间接收和处理。以便使外设有充分的时间接收和处理。八位输出锁存电路例(图八位输出锁存电路例(图3-4)。)。图图3

20、-4 输出锁存电路输出锁存电路简单的输入输出接口(图简单的输入输出接口(图3-5)把把地地址址译译码码、数数据据锁锁存存与与缓缓冲冲、状状态态寄寄存存器器、命命令令寄寄存器各个电路组合起来,构成简单输入输出接口存器各个电路组合起来,构成简单输入输出接口接口连接的信号:接口连接的信号:与系统总线连接:与系统总线连接:地址总线地址总线A0A15数据总线数据总线D0D7控控制制总总线线M/IO#、RD#、WR#(最最小小模模式式时时)或或IOWC#、IORC#(最大模式时)相连接(最大模式时)相连接与外部设备相连:数据、状态、命令。与外部设备相连:数据、状态、命令。图图3-5 简单接口的组成简单接口

21、的组成3.2 输入输出数据传输的控制方式输入输出数据传输的控制方式 3.2.1 3.2.1 程序方式程序方式 3.2.2 3.2.2 中断方式中断方式3.2.3 3.2.3 直接存储器存取直接存储器存取(DMA)方式方式3.2.1 程序方式程序方式 在程序控制下进行信息传送在程序控制下进行信息传送分为分为无条件传送无条件传送和和条件传送条件传送二种二种1 无条件传送方式无条件传送方式对于简单的外部设备的对于简单的外部设备的IO操作可以随时进行;操作可以随时进行;例如例如,开关开关、发光二极管发光二极管这些简单设备的输入信号一般不需要锁存,可以通过三这些简单设备的输入信号一般不需要锁存,可以通过

22、三态缓冲器与系统数据总线直接相连。态缓冲器与系统数据总线直接相连。简单输出设备的信号一般需要由锁存器锁存简单输出设备的信号一般需要由锁存器锁存图图3-6 无条件输入输出传送接口无条件输入输出传送接口2.条件传送方式条件传送方式条件传送也称为条件传送也称为查询式传送查询式传送、异步传送异步传送;接接口口电电路路除除了了有有传传送送数数据据的的端端口口以以外外,还还应应有有储储存存和和传送状态的端口。传送状态的端口。对于输入过程:对于输入过程:外设将数据准备好,外设将数据准备好,“准备好(准备好(READY)”标志位置标志位置1;CPU将数据取走,将数据取走,READY=0对于输出过程对于输出过程

23、:外设接收到数据,将外设接收到数据,将“忙(忙(BUSY)”标志位置标志位置1数据输出完成,将数据输出完成,将“BUSY”清零。清零。一个数据的一个数据的“条件传送条件传送”过程过程:CPU从接口中读取状态字;从接口中读取状态字;CPU检检测测状状态态字字的的对对应应位位是是否否满满足足“就就绪绪”条条件件,如如果不满足,则回到前一步重新读取状态字;果不满足,则回到前一步重新读取状态字;如状态字表明外设已处于如状态字表明外设已处于“就绪就绪”状态,则传送数据。状态,则传送数据。图图3-9 查询式输入流程查询式输入流程查询方式输入接口电路查询方式输入接口电路(图(图3-73-7)接口内有两个端口

24、:接口内有两个端口:数据端口(数据端口(8位,输入)位,输入)状态端口(状态端口(1位,输入,连接在位,输入,连接在D7上,上,=1表示有数据)表示有数据)选通信号有选通信号有二个作用二个作用:将外设的数据送到接口的锁存器中;将外设的数据送到接口的锁存器中;使接口中的使接口中的D触发器置触发器置“l”(READY=1)数数据据信信息息和和状状态态信信息息从从不不同同端端口口经经过过数数据据总总线线送送到到CPU。图图3 3-7 查询式输入接口电路查询式输入接口电路汇编语言程序汇编语言程序:AGAIN:IN AL,STAT_PORT;读状态端口,读状态端口,D7=1表示表示“数据就绪数据就绪”T

25、EST AL,80H;测试测试“数据就绪数据就绪”位位 JZ AGAIN;未就绪,继续读状态端口未就绪,继续读状态端口 IN AL,DATA_PORT;已就绪,从数据端口读取数据已就绪,从数据端口读取数据 C语言程序语言程序:do stat=inportb(stat_port);while(stat&0 x80=0);/*数据未准备好反复读状态数据未准备好反复读状态*/data=inportb(data_port);/*数据已准备好则读取数据数据已准备好则读取数据*/查询方式输出接口电路查询方式输出接口电路(图图3 3-8)接口内有两个端口:接口内有两个端口:数据端口(数据端口(8位,输出)位

26、,输出)状状态态端端口口(1位位,输输入入,连连接接在在D7上上,=1表表示示正正在在输出,输出,“BUSY”)CPU读取接口中的状态:读取接口中的状态:外设忙(外设忙(BUSY=1),),CPU等待等待 外设空闲(外设空闲(BUSY=0),向外设输出数据),向外设输出数据图图3 3-8 查询式输出接口电路查询式输出接口电路“数据端口写数据端口写”信号作用:信号作用:把数据打入把数据打入“锁存器锁存器”;将将“状态触发器状态触发器”置置1D触发器的作用:触发器的作用:为为外外设设提提供供一一个个联联络络信信号号STB,告告诉诉外外设设现现在在接接口口中已有数据可供提取;中已有数据可供提取;用作

27、该设备的状态标志(用作该设备的状态标志(“忙忙”,BUSY)。)。汇编语言程序汇编语言程序:ONE:IN AL,STATUS_PORT ;读状态端口读状态端口TEST AL,80H;测试测试“忙忙”位位 JNZ ONE;忙,再读状态端口忙,再读状态端口 MOV AL,DATA;不忙,取来数据不忙,取来数据OUT DATA_PORT,AL;送入数据端口送入数据端口C C语言程序语言程序:do stat=inportb(status_port);while(stat&0 x80=0 x80);/*/*设设备备“忙忙”:反反复复读读状状态态*/*/outportb(data_port,data);/

28、*/*设备空闲设备空闲:输出数据输出数据*/*/查询式输入输出的程序设计例查询式输入输出的程序设计例某字符输入设备以查询方式工作:某字符输入设备以查询方式工作:数据输入端口:数据输入端口:0054H,状态端口:状态端口:0056H。状态寄存器:状态寄存器:D0=1,数据准备好,可以输入;,数据准备好,可以输入;状态寄存器:状态寄存器:D1=1,输入设备发生故障,输入设备发生故障要求:要求:从该设备上输入从该设备上输入80个字符,配上水平和垂直校验码个字符,配上水平和垂直校验码(偶校验),向串行口输出。(偶校验),向串行口输出。如果设备出错,显示错误信息后停止。如果设备出错,显示错误信息后停止。

29、汇编语言程序汇编语言程序:.dataBuffer DB 81 dup(?)Message DB Device Fault !,0DH,0AH,$.codeStart:MOV AX,data ;对对DS初始化初始化 MOV DS,AX LEA SI,Buffer;设置设置SI为缓冲区指针为缓冲区指针 MOV CX,80;设置设置CX为计数器为计数器 MOVDL,0 ;DL置垂直校验码初值置垂直校验码初值 Next:IN AL,56H ;读入状态读入状态 TEST AL,02H ;测状态寄存器测状态寄存器D1 JNZ ERROR ;设备故障,转设备故障,转ERROR TEST AL,01H ;测状

30、态寄存器测状态寄存器D0JZ Next;未准备好,则等待,再测未准备好,则等待,再测 IN AL,54H ;准备好准备好,输入字符输入字符AND AL,7FH ;清最高位,进行校验清最高位,进行校验JPE Store ;已经是偶数个已经是偶数个1,则转,则转Store ORAL,80H ;奇数个奇数个1,将最高位置为,将最高位置为1Store:XOR DL,AL ;产生垂直校验码产生垂直校验码MOV SI,AL ;将字符送缓冲区将字符送缓冲区 INC SI ;修改地址指针修改地址指针LOOP Next ;80个字符未输入完成,继续个字符未输入完成,继续MOV SI,DL ;输入完成输入完成,保

31、存垂直校验码保存垂直校验码Tranfer:LEA SI,Buffer;准备发送准备发送,SI中置字符串首址中置字符串首址 MOV CX,81 ;发送字符数发送字符数One:MOV AH,04H ;设置串口输出功能号设置串口输出功能号MOV DL,SI ;取出一个字符取出一个字符INT 21H;从串口输出从串口输出 INC SI;修改指针修改指针 LOOP One ;输出下一个字符输出下一个字符JMP Done Error:MOV AH,09H;设备故障,输出出错信息设备故障,输出出错信息LEA DX,Message INT 21HDone:MOV AH,4CHINT 21H;返回返回DOSEN

32、D Start说明说明:程序由程序由二段循环程序二段循环程序组成:组成:第一段程序从设备输入第一段程序从设备输入80个字符,同时产生它的水平个字符,同时产生它的水平/垂直校验码存入缓冲区;垂直校验码存入缓冲区;第二段程序将缓冲区内容通过串口输出。第二段程序将缓冲区内容通过串口输出。测试状态位要注意先后次序测试状态位要注意先后次序:由于设备故障将导致该设备不能正常输入,使完成标由于设备故障将导致该设备不能正常输入,使完成标志(志(D0)恒为零。所以,在设备发生故障时先判是否恒为零。所以,在设备发生故障时先判是否完成可能导致程序死循环。完成可能导致程序死循环。产生产生水平校验码水平校验码:从设备读

33、入数据,清除最高位,:从设备读入数据,清除最高位,根据剩余七位的奇偶特性决定最高位置根据剩余七位的奇偶特性决定最高位置1或不变或不变(保持为(保持为0)。)。产生产生垂直校验码垂直校验码:将:将80个字节半加(异或)得到。个字节半加(异或)得到。多个设备多个设备循环查询循环查询方法举例方法举例:三个设备,它们状态端口地址分别为三个设备,它们状态端口地址分别为STATl、STAT2、STAT3,三个状态端口均使用第三个状态端口均使用第5位作为准备好标志。位作为准备好标志。TREE:MOV FLAG,3INPUT:IN AL,STAT l TEST AL,20H JZ DEV2 CALL PROC

34、 lDEV2:IN AL,STAT2 TEST AL,20H JZ DEV3 CALL PROC2DEV3;IN AL,STAT3 TEST AL,20H JZ NOINPUT CALL PROC3NOINPUT:CMP FLAG,0 JNE INPUT说明说明:PROCl、PROC2、PROC3是是三三个个设设备备输输入入数数据据并并进进行处理的子程序。行处理的子程序。FLAG存放三个设备输入完成的标志,初始值为存放三个设备输入完成的标志,初始值为3。上例仅适用于三个设备工作速度都比较慢的情况;上例仅适用于三个设备工作速度都比较慢的情况;如如果果其其中中一一个个设设备备工工作作速速度度很很快

35、快,而而其其他他设设备备的的输输入入输输出出处处理理程程序序运运行行时时间间又又较较长长,可可能能发发生生“覆覆盖盖错错误误”。在在这这种种情情况况下下,应应优优先先执执行行工工作作速速度度较较快快的的外外设设的的IO过程,然后再执行其他设备的过程,然后再执行其他设备的IO过程。过程。3.2.2 中断方式中断方式程序查询方式的特点程序查询方式的特点:程程序序查查询询方方式式解解决决了了CPU与与外外设设工工作作的的协协调调问问题题,但但是却大大是却大大降低了降低了CPU的使用效率;的使用效率;在在程程序序查查询询方方式式中中,CPU处处于于主主动动地地位位,外外设设处处于于消消极等待极等待查询

36、的被动地位;查询的被动地位;设设备备较较多多时时,查查询询方方式式的的数数据据传传送送很很难难使使每每一一个个外外设设都能工作在最佳状态都能工作在最佳状态。程序中断方式特点程序中断方式特点:赋赋予予系系统统中中的的外外设设某某种种主主动动申申请请、配配合合CPU工工作作的的“权利权利”。外设把数据准备好时,主动向外设把数据准备好时,主动向CPU发出一个请求信号。发出一个请求信号。CPU接接收收到到请请求求信信号号后后,暂暂停停当当前前的的工工作作,进进行行该该设设备的数据传送操作。备的数据传送操作。赋赋予予外外设设“主主动动权权”之之后后,CPU可可以以不不必必反反复复查查询询该设备的状态,而

37、是正常地处理系统任务;该设备的状态,而是正常地处理系统任务;CPU与与外外设设处处于于某某种种“并并行行工工作作”的的状状态态,从从而而提提高高CPU的工作效率。的工作效率。中断方式举例中断方式举例:某外设在某外设在1秒内传送秒内传送100个字节。个字节。若用程序查询的方式传送,则若用程序查询的方式传送,则CPU为传送为传送100个字节所个字节所化费的时间等于化费的时间等于1秒。秒。用中断控制方式传送,用中断控制方式传送,CPU为执行一个字节的传送需为执行一个字节的传送需要进入一次中断服务程序。要进入一次中断服务程序。设设CPU执行一次中断服务程序需要执行一次中断服务程序需要100s;传递传递

38、100个字节个字节CPU所使用的时间为所使用的时间为100s100=10ms;CPU处理中断开销为处理中断开销为1,99的时间可执行其他任务;的时间可执行其他任务;中断方式的数据传送仍在程序的控制下执行,称为中断方式的数据传送仍在程序的控制下执行,称为程程序中断方式;序中断方式;适应于中、慢速的外部设备数据传送。适应于中、慢速的外部设备数据传送。3.2.3 直接存储器存取直接存储器存取(DMA)方式方式程序中断方式,程序查询方式的缺点程序中断方式,程序查询方式的缺点:中断方式中断方式:每传送一次数据,每传送一次数据,CPU必须执行一次中断服务程序;必须执行一次中断服务程序;对于高速数据传输,容

39、易产生对于高速数据传输,容易产生“覆盖错误覆盖错误”。程序查询方式程序查询方式:响响应应速速度度比比中中断断方方式式要要快快一一些些,完完成成一一次次数数据据传传输输仍仍然需要执行七、八条以上的指令。然需要执行七、八条以上的指令。CPU的的工工作作速速度度不不高高时时仍仍有有可可能能跟跟不不上上外外设设数数据据传传输输的需要。的需要。直接存储器传送直接存储器传送(Direct Memory AccessDMA)将外设的数据不经过将外设的数据不经过CPU直接送入内存储器;直接送入内存储器;或者,从内存储器不经过或者,从内存储器不经过CPU直接送往外部设备;直接送往外部设备;一次一次DMA传送只需

40、要执行一个传送只需要执行一个DMA周期(相当于一周期(相当于一个总线读写周期);个总线读写周期);能够满足高速外设数据传输的需要;能够满足高速外设数据传输的需要;需要一个专门的器件来协调外设接口和内存储器的数需要一个专门的器件来协调外设接口和内存储器的数据传输,称为据传输,称为DMA控制器(控制器(DMAC)图图3-10 DMA数据传送示意图数据传送示意图3.3 开关量输入输出接口开关量输入输出接口 3.3.1 3.3.1 开关量输入接口开关量输入接口 3.3.2 3.3.2 开关量输入接口开关量输入接口 3.3.1 开关量输入接口开关量输入接口 1 基本的开关量输入接口基本的开关量输入接口开

41、关开关形态形态:单刀单掷开关:单刀单掷开关/单刀双掷开关单刀双掷开关/按钮按钮开关量通过三态缓冲器与系统数据总线连接开关量通过三态缓冲器与系统数据总线连接常用的三态缓冲器:常用的三态缓冲器:74LS244(输入输出同相)输入输出同相)/74LS240(输入输出反相)输入输出反相)一条输入指令可以同时读入一条输入指令可以同时读入8位或位或16位开关量。位开关量。图图3-11 基本开关量输入接口基本开关量输入接口2 矩阵式开关量输入接口矩阵式开关量输入接口开关数量多时,可以排列成矩阵,例如:图开关数量多时,可以排列成矩阵,例如:图3-13(键盘)(键盘)数据输出端口连接数据输出端口连接8根根“行线

42、行线”(Row,R0R7);数据输入端口连接数据输入端口连接8根根“列线列线”(Column,C0C7);电路电路特点特点:没有键按下时,列线端口输入为全没有键按下时,列线端口输入为全“1”;行线端口输出全行线端口输出全“1”时,不论有无键按下,列线端口输时,不论有无键按下,列线端口输入仍然为全入仍然为全“1”;某一行线输出某一行线输出“0”时,如果该行上有一个键按下,则输时,如果该行上有一个键按下,则输入端口输入代码为入端口输入代码为7个个“1”,1个个“0”,0的位置与被按的位置与被按下键的位置相对应。下键的位置相对应。图图3-12 键盘键盘(矩阵式开关量输入矩阵式开关量输入)接口接口键盘

43、扫描与编码键盘扫描与编码:对对8根行线逐行扫描,识别按键的所在行、列,从而根行线逐行扫描,识别按键的所在行、列,从而获得该键的代码获得该键的代码;一个键的编码可以用它的二字节一个键的编码可以用它的二字节“行列码行列码”表示。表示。例例如如,(,(R3,C2)的二字节的二字节“行列码行列码”为为F7FBH:F7H=11110111:按键在:按键在R3行上;行上;FBH=11111011:按键在:按键在C2列上;列上;用用“行列码行列码”查表,可以得到这个键的代码。查表,可以得到这个键的代码。键的编码也可以用一字节键的编码也可以用一字节“扫描码扫描码”表示。上例中按表示。上例中按键的一字节键的一字

44、节“扫描码扫描码”为为32H:高高4位位0011:键所在的行;:键所在的行;低低4位位0010:键所在的列;:键所在的列;键刚按下时,会产生键刚按下时,会产生“抖动抖动”。没有键被按下,返回没有键被按下,返回1;有有键键按按下下时时返返回回按按键键的的二二字字节节“行行列列码码”(行行码码为为高高8位,列码为低位,列码为低8位);位);RPORT,CPORT 定义为行、列端口的地址。定义为行、列端口的地址。键盘扫描程序键盘扫描程序:unsigned int kbinput()unsigned int row,row0,column,code,k=0;outportb(RPORT,0);/*/*

45、各行输出全各行输出全0,0,测试有无键按下测试有无键按下*/*/if(inportb(CPORT)&0 xff=0 xff)return(0 xffff);/*/*没有键按下,返回全没有键按下,返回全“1”*/*/delay(20);/*/*延时延时20ms,消除抖动消除抖动*/*/if(inportb(CPORT)&0 xff=0 xff)return(0 xffff);/*再次测试,确认有键被按下再次测试,确认有键被按下 */row0=row=0 xff7f;column=0 xff;k=0;/*置行码初值置行码初值:从最高位对应行开始逐行扫描从最高位对应行开始逐行扫描*/while(k

46、1);k+;/*形形成成下下一一个个行行码码 */if(column=0 xff)return(0 xffff);/*未找到按键所在行,返回全未找到按键所在行,返回全“1”*/code=(row0&0 xff)*0 x100+column;/*由行码、列码组合得到由行码、列码组合得到“行列码行列码”*/return(code);3.3.2 开关量输出接口开关量输出接口1 基本的开关量输出接口基本的开关量输出接口常见的开关量输出常见的开关量输出:LED发光二极管发光二极管LED指示灯用于指示室内仪表状态指示灯用于指示室内仪表状态小功率小功率LED可以由逻辑电路直接驱动:可以由逻辑电路直接驱动:输

47、出0:LED发光输出1:LED熄灭执行元件驱动线圈执行元件驱动线圈器件型号器件型号高电平输出电流高电平输出电流 低电平吸收电流低电平吸收电流74LS00,04,10,20,30(逻辑门)400A8mA74LS01,03,05,12,22(OC门)100A8mA7407(OC驱动器)250A40mA(Voh=30V)74LS244(总线驱动器)15mA24mA74LS273(D触发器)400A8mA74LS373(三态输出锁存器)2.6mA24mA表表3-3 部分逻辑电路输出端电流部分逻辑电路输出端电流大功率大功率LEDLED驱动或执行元件驱动线圈的驱动驱动或执行元件驱动线圈的驱动:普通逻辑电路

48、输出,外接功率放大三极管驱动;普通逻辑电路输出,外接功率放大三极管驱动;集电极开路驱动器(集电极开路驱动器(OC驱动器),输出端通过上拉驱动器),输出端通过上拉 电阻接高压。电阻接高压。2 LED七段数码显示管接口七段数码显示管接口图图3-15 多位多位LED数码显示接口数码显示接口多位多位LEDLED显示器驱动显示器驱动:设置位码,熄灭所有数码管;设置位码,熄灭所有数码管;将一个数码管的字形代码(段码)送入段码端口将一个数码管的字形代码(段码)送入段码端口;设置位码,点亮一个数码管设置位码,点亮一个数码管适当延时后,适当延时后,重复以上过程重复以上过程多位不同的数字同时显示在不同的数码管上。

49、多位不同的数字同时显示在不同的数码管上。送送段段码码之之前前熄熄灭灭所所有有数数码码管管可可以以消消除除“段段码码”和和“位码位码”不同步产生的闪烁不同步产生的闪烁。多位多位LEDLED数码显示程序数码显示程序:需要输出的数字分别是需要输出的数字分别是1,2,3,4,5,6,7,8段码和位码的端口地址分别是段码和位码的端口地址分别是segport 和和 bitport;数据段和堆栈段数据段和堆栈段dataSegtabdb 40h,4fh,24h,30h,19h db 12h,02h,78h,00h,10hbuffer db 1,2,3,4,5,6,7,8 segcodedb?bitcodedb

50、?stack100hcodeleddisp proc farpushds;保护各寄存器内容保护各寄存器内容pushaxpushbxpushcxpushsimovax,data;装载装载dsmovds,axleabx,segtab;bx 置为七段码表首址置为七段码表首址movbitcode,80h;位码初始值为位码初始值为80H(从左边开始从左边开始)movsi,0;si用作输出缓冲区指针,初值用作输出缓冲区指针,初值0movcx,8;cx 用作循环计数器,初值用作循环计数器,初值8one:moval,0out bitport,al;送位码送位码0,熄灭各,熄灭各LED moval,buffer

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁