资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,6.1 输入/输出接口概述,接口解决微处理器与外设之间的差异,外设种类多,信号类型有机械的、物理的、电信号等,信号形式有脉冲、模拟量或数字量,数据传输率,不同,数据格式,不同,数据传输方式,不同,有并行、串行之分,CPU,与外设都是面向接口而非直接联络,6.1 输入/输出接口概述接口解决微处理器与外设之间的差异,接口电路中的信息,数据信息、状态信息,及,控制信息,AB,DB,CB,CPU,I/O,接口,I/O,设备,端口,数据,控制,状态,AB,DB,CB,CPU,I/O,接口,I/O,设备,接口电路中的信息数据信息、状态信息及控制信息ABDBCBCP,数据信息,数据信息,:,要交换的数据本身。,数字量,:,通常以8位或16位的二进制数以及,ASCII,码的形式传输,主要指由键盘、磁带机、磁盘等输入的信息或主机送给打印机、显示器、绘图仪等的信息,开关量,:,用“0”和“1”来表示两种状态,如开关的通/断,模拟量,:,模拟的电压、电流或者非电量。对模拟量输入而言,需先经过传感器转换成电信号,再经,A/D,转换器变成数字量;如果需要输出模拟控制量的话,就要进行上述过程的逆转换,数据传输方向,:,CPU,I/O,接口外设,数据信息数据信息:要交换的数据本身。,控制信息,控制信息,:控制外设工作的命令,,CPU,通过接口发出,如,A/D,转换器的启/停信号,数据传输方向:,CPUI/O,接口处设,控制信息控制信息:控制外设工作的命令,CPU通过接口发出,如,状态信息,状态信息,:,表征外设工作状态的信息,对,输入接口,CPU,是否准备好接收数据,“,READY”,准备好吗?,对,输出接口, 外设是否准备好接收数据,,“,BUSY”,外设忙吗?,数据传输方向:,CPUI/O,接口外设,状态信息状态信息:表征外设工作状态的信息,I/O,端口,传送这三种信息的,接口电路中的寄存器,称为,数据、状态和控制端口,不同的寄存器有不同的端口地址,即用,地址访问,端口,由一个或多个,寄存器,组成,接口,由,若干个端口加上相应的控制逻辑组成,I/O端口传送这三种信息的接口电路中的寄存器称为数据、状态和,接口的基本功能,数据缓冲功能,设备选择功能,信号转换功能,接收、解释并执行,CPU,命令的功能,中断管理功能,可编程功能,接口的基本功能数据缓冲功能,接口电路的结构,数据,缓冲器,状态,寄存器,控制,寄存器,接外设一侧,主,机,外,设,总线驱动,地址译码,控制逻辑,接,CPU,一侧,DB,AB,CB,数据信息,控制信息,状态信息,端口,接口,实现对,CPU,数据总线速度和驱动能力的匹配,实现各寄存器端口寻址操作,实现接口电路中的各寄存器端口的读/写操作和时序控制,接口电路的结构 数据状态控制接外设一侧,接口电路的分类,数据传送方式:,并行接口,串行接口,功能选择的灵活性 :,可编程接口,不可编程接口,数据传送操作的同步方式 :,同步接口,异步接口,通用性 :,通用接口,专用接口,接口电路的分类数据传送方式:,6.,1.2.2,传输控制方式,外设的速度与,CPU,相比要慢好几个数量级,且不同外设之间的速度也相差很大,为了保证数据传输的可靠性,,CPU,一定要等外设准备就绪之后才能执行输入/输出操作,,而外设就绪的时刻对,CPU,而言是随机的,因此,需要同步,。,三种,I/O,同步控制方式:,程序控制方式,:无条件传送和程序查询传送,中断控制方式,直接存储器存取方式,:,DMA,方式,6.1.2.2 传输控制方式 外设的速度与CPU相比要慢好,无条件程序控制方式(一),最简单的,I/O,控制方式,,CPU,可以随时根据需要无条件地读写,I/O,端口,外设要求:简单,数据变化缓慢,操作时间固定,如一组开关或,LED,显示管。,外设被认为始终处于就绪状态,接口特点,CPU,的,DBI/O,接口(输出锁存器)外设,CPU,的,DBI/O,接口(输入缓冲器)外设,无条件程序控制方式(一)最简单的I/O控制方式,CPU可以随,无条件程序控制方式(二),数据输入,缓冲器端口,数据输出,锁存器端口,输入数据,输出数据,端口,译码器,RD,AB,DB,WR,M/IO,无条件程序控制方式(二)数据输入数据输出输入数据输出数据端口,无条件程序控制方式(三),例6.5,START:,MOV DX,INPORT,IN AL,DX,;,读入按键状态,TEST AL,01H;,判断最低位按,键,JNZ K1;,最低位按键没闭合,转,MOVAL,01H;,最低位发光,JMPDISP,K1:TEST AL,02H;,JNZ K2;,次低位按键没闭合,转,MOVAL,03H;,最低2位发光,JMPDISP,.,DISP:,MOV DX,OUTPORT,OUT DX,AL,;,JMP START,无条件程序控制方式(三)例6.5 DISP:,程序查询输入方式(,条件传送方式,),接口特点:避免了对端口的“盲读”、“盲写” ,数据传送的可靠性高,并且硬件接口相对简单。缺点是,CPU,工作效率低,,I/O,响应速度慢,;,外设要求:,状态口和数据口,在有多个外设的系统中,,CPU,的查询顺序由,外设的优先级,确定,一种,CPU,主动、外设被动,的,I/O,操作方式,很好地解决了,CPU,与外设之间的,同步,问题,程序查询输入方式(条件传送方式 )接口特点:避免了对端口的“,查询控制的程序流程,READY?,读取状态端口,读/写数据端口,Y,N,状态端口复位,查询控制的程序流程 READY? 读取状态端口 读/写数据端,程序查询方式的,输入,接口电路,数据缓冲器,(输入端口),状态缓冲器,(输入端口),输,入,设,备,数据端口读选通,状态端口读选通,DB(,数据、状态),锁,存,器,输入数据,输入选通,R,Q,D,5,V,READY,D0,程序查询方式的输入接口电路数据缓冲器状态缓冲器输数据端口读选,数据端口(8位),状态端口(1位),READY,READY?,输入状态信息,输入数据信息,Y,N,状态信息占用数据线的,D,0,位,查询程序如下:,QUERY:,IN AL,,S_PORT,;,状态口地址,SAR AL,1JNCQUERY,INAL,,D_PORT,;D_PORT,是数据口地址,查询输入程序,数据端口(8位)状态端口(1位)READYREADY? 输入,查询方式的,A/D,采样,WAIT:IN AL,,51H,;,读状态端口的值,TESTAL,10H;,判断,D,4,是否为1?,JZ WAIT;,不是1,等待,IN AL,,50H,;,读数据端口的值,MOVBUF,AL;,将数据送到数据缓冲单元,数据,端口,状态,端口,A/D,转,换器,定时,器,模拟,信号,译码,电路,启动信号,状态信号,D,4,数据总线,地址总线,控制信号,50,H,51,H,查询方式的A/D采样WAIT:IN AL,51H;读状态端,程序查询方式的,输出,接口电路,输出选通,数据锁存器,(输出端口),状态缓冲器,(输入端口),输,出,设,备,R,Q,D,5,V,DB(,数据、状态),BUSY(1bit),ACK,状态端口读选通,数据端口写选通,程序查询方式的输出接口电路输出选通数据锁存器状态缓冲器RQD,数据端口(8位),状态端口(1位),BUSY,输入状态信息,BUSY?,输出数据信息,N,Y,QUERY:,INAL,,S_PORT,;,状态口地址,SARAL,1JCQUERY,OUT,D_PORT,,AL,;D_PORT,数据口地址,查询输出程序,数据端口(8位)状态端口(1位)BUSY输入状态信息 BUS,查询方式的打印机接口,WAIT:,IN7AH,AL,;,读状态端口,TEST AL,04H;,判断,D,2,是否为0?,JNZWAIT;,不是0,等待,MOVAL,BUF;,取数据,OUT78H,,,AL,;,将数据送到打印机接口,数据,端口,状态,端口,数据缓,冲器,状态,检测,打印机,译码,电路,触发信号,状态信号,D,2,数据总线,地址总线,控制总线,信号,78,H,7,AH,接口电路,查询方式的打印机接口 WAIT:IN7AH,AL;读状态端,多个外设的查询,CPU,周期性地依次查询每个外设的状态,优先权,决定了查询次序,不具有实时性,多个外设的查询 CPU周期性地依次查询每个外设的状态,查询式8路模拟数据采集系统,D,0,D,1,D,2,3,2,4,A/D,转换器,DB,多路开关,数据端口读选通,1路模拟量,状态端口读选通,控制端口读选通,READY,START,D,0,C,P,U,8路模拟量输入,A0,A7,D,3,D,7,D,0,D,3,D,0,DATA,查询式8路模拟数据采集系统D0 D1 D2324,中断控制方式,接口特点,:,避免了,CPU,反复低效率的查询,适用于,CPU,任务繁忙、而数据传送不太频繁的系统中。缺点是硬件电路和处理过程都比较复杂;(中断控制芯片),CPU,被动而外设主动,的,I/O,操作方式,较大地提高了,CPU,的工作效率,并使系统具有了实时处理功能,中断控制方式接口特点:避免了CPU 反复低效率的查询,适用于,中断控制方式,中断请求触发器,Q,R,D,数据缓冲,端口译码,端口译码,控制端口,中断屏蔽触发器,Q,D,+5,V,WR,外,设,READY,DB,AB,DB,INTR,INTA,中断可被响应的条件:,中断请求触发器置位;中断屏蔽触发器清零;,CPU,内部开放中断;,CPU,未处理更高级中断;,CPU,现行指令执行完;,中断控制方式中断请求触发器QRD数据缓冲端口译码端口译码控制,中断工作过程,外设需要,CPU,服务时,外设,I/O,接口向,CPU,发中断请求,,INTR=H,(,中断请求有效),CPU,执行完当前指令后, (注: 若,IF = 1),CPU I/O,接口 外设发中断响应,,/,INTA = L,CPU,执行中断服务程序,CPUI/O,接口外设读写数据,中断工作过程外设需要CPU服务时,DMA,控制方式(存储器直接存取),内存与外设间有,大量数据,交换时,采用中断方式,每传送一次数据,就必须经历中断处理的全部步骤,而且一般需要,借助,CPU,内部的寄存器作为中介,DMA,方式:,不用,CPU,的寄存器作传数中介, 完成存储器和外设间的直接传数,,CPU,必须将系统总线的控制权让给,DMAC,DMA控制方式(存储器直接存取)内存与外设间有大量数据交换时,DMA,方式原理方框图,DB,HOLD,CPU,HLDA,AB,DMAC,MEM,I/O,请求,响应,DMA方式原理方框图 DBDMAC ME,DMA,的工作流程,DMAC,发存储器地址,在总线上传送数据,传送结束?,修改地址指针,DMA,结束,交还总线权,CPU,允许释放总线,向,DMAC,发出总线应答信号,HLDA,DMAC,向,CPU,发总线申请,HOLD,Y,N,DMA的工作流程 DMAC发存储器地址在总线上传送数据传送结,DMAC,的结构,数据,端口,状态,/,控制,端口,DMA,控制器,地址寄存器,计,数,器,控制,/,状态寄存器,C,P,U,存,储,器,数据缓冲,寄存器,DMA,请求,触发器,输,入,设,备,DMA,响应,Ready,DMA,请求,HOLD,HLDA,DMAC的结构 数据端口状态/控制端口DMA控制器地址寄存器,DMA,操作的基本方法,周期挪用,:挪用,CPU,不访问存储器的周期,不影响或减慢,CPU,的操作,不易识别可被挪用的周期,硬件电路复杂,数据传送不连贯、不规则,周期扩展,:延长,CPU,的时钟周期,CPU,在加宽了的周期内不会进行下一步操作,正好用来进行,DMA,降低,CPU,的处理速度,CPU,停机,:,最简单也是最常用的,DMA,传送方式,迫使,CPU,让出总线控制权,整个,DMA,期间,,CPU,都一直处于空闲状态,会降低,CPU,的利用率,并可能影响到,CPU,对中断的响应和,DRAM,刷新,DMA操作的基本方法 周期挪用:挪用CPU不访问存储器的周期,DMAC,必须具备的功能,向,CPU,发出总线请求,信号,HOLD。,CPU,出让总线控制权时,能接收,CPU,的应答信号并,接管总线,,进入,DMA,方式。,有,寻址功能,,对存储器及,I/O,寻址并修改地址,具有,控制逻辑,,能发出读/写控制信号。,决定传输的字节数,并,判断,DMA,是否结束,。,发出,DMA,结束信号,使,CPU,恢复正常,工作状态,DMAC必须具备的功能向CPU发出总线请求信号HOLD。,6.2,I/O,指令和,I/O,地址译码,为了区分接口电路的各个寄存器,系统为它们各自分配了一个地址,称为,I/O,端口地址,,以便对它们进行寻址并与存储器地址相区别,I/O,端口有,两种编址方式,:,存储器映像方式、,I/O,独立编址方式,6.2 I/O指令和I/O地址译码为了区分接口电路的各个寄,1、存储器映像编址,指,I/O,端口与存储器,共享,一个寻址空间,又称为,统一编址,。在这种系统中,,CPU,可以用,同样的指令,对,I/O,端口和存储器单元的进行访问。,优点,:对,I/O,口的访问灵活方便,有利于提高端口数据的处理能力。,缺点,:,I/O,端口占用了主存地址,相对减少了主存的可用范围。,1、存储器映像编址指I/O端口与存储器共享一个寻址空间,又称,2、,I/O,独立编址(一),指主存地址空间和,I/O,端口地址空间,相互独立,分别编址,。,CPU,通过指令来区分,是访问,I/O,口还是存储单元,优点,:主存和,I/O,端口的地址可用范围都比较大;,缺点,:,I/O,指令的功能一般比较弱,在,I/O,操作中必须借助,CPU,的寄存器进行中转,2、I/O独立编址(一)指主存地址空间和I/O端口地址空间相,2、,I/O,独立编址(二),80,X86,系列微处理器采用独立的,I/O,编址方式,CPU,使用地址总线中的,A,0,A,15,来寻址,I/O,口,故最大,I/O,空间是,64,K,个字节端口(或32,K,个字端口,),2、I/O独立编址(二)80X86系列微处理器采用独立的I/,两种编址方式比较(一),I/O,空,间,内,存,空,间,I/O,空,间,内,存,空,间,两种编址方式比较(一)I/O内I/O内,两种编址方式比较(二),存储器,CPU,AB,DB,CB,接口,外设,接口,外设,CPU,AB,DB,CB,存储器,存储器读写,I/O,读写,两种编址方式比较(二)存储器CPUABDBCB接口外设接口外,I/O,接口的访问控制,微机系统的每个端口都有惟一的端口地址,端口地址:经译码电路译码后产生,端口选通信号,,控制端口的,读/写操作,I/O接口的访问控制微机系统的每个端口都有惟一的端口地址,I/O,端口的地址分配,80,X86,系列微处理器提供,16条地址线,访问,I/O,端口,编址可达,64,K,个字节端口或者32,K,个字端口,。,IBM,系列采用非完全译码方式,即只考虑了,低10位地址线,A0-A9,,I/O,端口地址范围是0000,H-03FFH,,总共只有1024个端口,80386微处理器或此后的微处理器构成的微机系统,采用全译码的方法,端口为64,K,个字节端口或32,K,个字端口,I/O端口的地址分配 80X86系列微处理器提供16条地址线,I/O,端口地址选用的原则,自行设计接口电路或给微机系统添加接口卡时,必须避免端口地址发生冲突,申明保留的地址,不要使用,用户可使用300,H-31FH,地址,I/O端口地址选用的原则自行设计接口电路或给微机系统添加接口,I/O,端口的地址译码,将来自地址总线上的地址代码翻译成为所需要访问的端口,I/O,端口地址译码电路结构,译码电路的输入信号,地址信号,:由地址范围决定,控制信号,:数据流向(读/写)、数据宽度(8位/16位)、是否采用奇/偶地址和,DMA,传送方式,译码电路的输出信号:接口芯片的,片选信号,端口的读写控制:输入需要缓冲,,输出需要锁存,I/O端口的地址译码将来自地址总线上的地址代码翻译成为所需要,输入缓冲电路,当读有效时,才将缓冲器中的三态门打开,使外设的数据进入系统的数据总线,其它时间,三态门处于高阻状态,不影响总线上的其它操作,微处理,器系统,外部输,入设备,A,0,B,0,A,1,B,1,A,2,B,2,A,3,B,3,A,4,B,4,A,5,B,5,A,6,B,6,A,7,B,7,E,DIR,2,3,4,5,6,7,8,9,18,17,16,15,14,13,12,11,1,19,译码,片选,IOR,DIR=1,,,A,B,DIR=0,,,B,A,74,LS245,输入缓冲电路 当读有效时,才将缓冲器中的三态门打开,使外设的,输出锁存,选中锁存器时,总线上的数据才能进入锁存器,此后不管总线上的数据(锁存器输入端)如何变化,只要没有再次使锁存器的信号有效,锁存器的输出端就一直保持原来锁存的信息不变。,微处理,器系统,外部输,出设备,D,0,Q,0,D,1,Q,1,D,2,Q,2,D,3,Q,3,D,4,Q,4,D,5,Q,5,D,6,Q,6,D,7,Q,7,CLK,CL,R,3,4,7,8,13,14,17,18,2,5,6,9,12,15,16,19,74,LS273,11,译码片选,IOW,74,LS32,+5,V,1,输出锁存 选中锁存器时,总线上的数据才能进入锁存器微处理器系,I/O,地址译码方法,地址译码的方法灵活多样,高位地址线,与,CPU,的控制信号进行组合,经译码电路产生,I/O,接口芯片的片选信号,CS,,实现,系统中的接口芯片寻址,低位地址线,直接接到,I/O,接口芯片的地址引脚,进行,I/O,接口芯片的,片内端口寻址,I/O地址译码方法 地址译码的方法灵活多样,I/O,端口地址译码电路设计,译码电路的形式,固定式译码:,接口中用到的端口地址不能更改,可选式译码:,译码电路采用的元器件来分,门电路译码,译码器译码,可编程逻辑器件译码,I/O端口地址译码电路设计 译码电路的形式,读077,AH,端口地址译码电路,端口地址的二进制形式,A,15,A,14,A,1,A,0,0,0,00 0111 0111 10,1,0,端口读:,IOR,AEN,译码输出:/,R77AH,执行,MOV DX,77AH,INAL,,,DX,74,LS32,&,A,10,A,9,A,8,74,L,S30,A,6,A,5,A,4,AEN,A,1,A,3,A,14,A,13,&,A,15,A,12,A,7,A,2,&,A,11,A,0,1,74,LS20,74,LS04,1,1,1,R,77,AH,IOR,读077AH端口地址译码电路端口地址的二进制形式A15 A,读/写操作,77AH,端口地址的译码电路,IOW,W,77,AH,&,A,10,A,9,A,8,74,LS30,A,6,A,5,A,4,AEN,A,1,A,3,A,14,A,13,&,A,15,A,12,A,7,A,2,&,A,11,A,0,1,74,LS20,74,LS04,IOR,74,LS,32,1,1,1,R,77,AH,1,读/写操作77AH端口地址的译码电路 IOWW77AH&A1,译码器译码,A15A8,为,译码器使能,A7A5,决定,芯片端口范围,A4A0,选择,芯片片内端口,2,A,G,G,DMACS,A,A,5,B,A,6,C,A,7,1,AEN,0,Y,INTRCS,1,Y,T/CCS,2,Y,PPICS,3,Y,4,Y,5,Y,6,Y,7,Y,2,B,G,A,10,A,9,&,A,11,A,8,A,14,A,13,&,A,15,A,12,74,LS20,74,LS138,74,LS06,译码器译码A15A8为A7A5决定A4A0选择2AGG,可选式端口地址译码器,通过开关使接口卡的,I/O,端口地址根据需要加以改变而无需改动硬件电路,能适应不同的地址分配场合,其电路可由,地址开关,、译码器、,比较器,和基本门电路等组成,可选式端口地址译码器 通过开关使接口卡的I/O端口地址根据需,用比较器组成的可选式译码电路,A9,-A6,=开关状态时,比较器才输出,高电平,译码器才能工作,通过设置,不同的,开关状态,,就可以选择不同的地址范围,12,2,A,G,G,B,C,1,1,Y,2,Y,3,Y,4,Y,5,Y,6,Y,7,Y,2,B,G,A,A,2,1,A,0,Y,74,LS138,74,LS08,&,A,5,A,3,A,4,A,15,A,14,A,13,A,11,A,10,1,1,1,74,LS32,CC,A,6,A,7,A,8,A,9,V,A,0,A,1,A,2,I,A=B,74,LS85,A,3,B,0,B,1,B,2,B,3,I,AB,I,AB,O,AB,O,A=B,DIP,S,0,S,1,S,2,S,3,V,CC,用比较器组成的可选式译码电路 A9-A6=开关状态时,比较器,可编程逻辑器件作译码电路,可编程逻辑器件包括,GAL、CPLD,和,FPGA,通常一片,GAL,器件的电路规模可达几百门,而,FPGA,可达几百万门,这些器件可以被,多次修改和反复使用,的,只需要修改软件,,就可以改变译码电路,可编程逻辑器件作译码电路 可编程逻辑器件包括GAL、CPLD,6.3 PC,机的系统总线(放在本章后详细讲述),6.3 PC机的系统总线(放在本章后详细讲述),6.,4,基本输入输出接口,键盘/鼠标接口,数码管显示接口,并行打印机接口,6.4 基本输入输出接口 键盘/鼠标接口,键盘接口,线性键盘,:按键并联方式与,I/0,端口连接,每一个按键需要占用,I/O,端口的一根口线,由程序处理按键的操作情况,矩阵键盘,:,按键按照行、列方式排列,比线性键盘节约,I/0,口线,非编码键盘:,CPU,处理按键的操作,,减低了,CPU,的效率,编码键盘 :专用的单片机处理按键操作,,缓减了,CPU,的负担,键盘接口 线性键盘:按键并联方式与I/0端口连接,矩阵键盘结构,8,位,并行,输入,端口,8,位,并行,输出,端口,+5,V,10,k,10,k,10,k,10,k,第,0,行,第,1,行,第,2,行,第,7,行,第,0,列,第,1,列,第,2,列,第,3,列,第,7,列,矩阵键盘结构 8位并行输入端口8位并行输出端口+5V10k,行扫描法(一),第一步:判断是否有键按下,输出端口,的各位都为低电平,即,各列都为0,读取输入端口数据,,如果输入不等于,FFH,,则有键被按下,MOVAL,00H;,MOVDX,OUTPORT;,OUTDX,AL,MOVDX,INPORT;,IN AL,DX,;,ANDAL,0FFH,CMPAL,0FFH,行扫描法(一) 第一步:判断是否有键按下 MOVAL,00,行扫描法(二),第二步:确定按键号,确定按键的列数:输出扫描值,使,某一列为低电平,其它列为高电平,;读取,行值,看是否有行线处于低电平,确定按键的行数:循环右移行值,直到为0,行扫描法(二)第二步:确定按键号,行扫描法程序流程,是否有一行接地?,键盘,命令,处理,是,进位位为,0,?,否,扫描值循环左移一位,,使下一列为低电平,键号,+1,,计数值,-,1,否,读进行值,行值循环右移一位,是,结束,是,全部扫描完?,否,设键号,=0,,计数器,=,列数,行扫描初值,=11111110,B,输出扫描值,使某一行为低电平,MOVBL,,,0,MOVDL,,,8,MOVCL,,,0FEH,MOV AL,,,CL,OUT OUTPORT,,,AL,IN AL,,,INPORT,CMPAL,,,0FFH,ROLAL,,,1,MOVCL,,,AL,RCR AL,,,1,JNC PROC,INC BL,行扫描法程序流程 是否有一行接地?键盘命令处理是进位位为0?,微机键盘接口,其接口电路通常集成在主板上,最早的键盘接口是用8255实现的,而鼠标则通过,RS-232,串口实现,目前微机系统的键盘/鼠标是,PS/2,接口,。,微机键盘单片机,自动地识别键的按下与释放,自动生成相应的,扫描码,,,并以串行方式发送扫描码到主机,主机根据扫描码转换为反映键功能的,ASCII,码,严格地说,微机键盘仍属于非编码键盘,微机键盘接口 其接口电路通常集成在主板上,键盘/鼠标接口引脚定义,通过数据线,DATA,和时钟线,CLK,两根线,,就可以实现主机和,PS/2,设备之间的通信,键盘/鼠标接口引脚定义 通过数据线DATA和时钟线CLK两根,PS/2,键盘接口时序,(,a,),是键盘向主机发送数据时的,PS/2,接口时序图,(,b,),是主机向,PS/2,键盘发送数据的时序图,CLK,DATA,D,0,D,1,D,2,D,3,D,4,D,5,D,6,D,7,P,S,E,起始,校验,停止,(,a),(,b),S,DATA,D,0,D,1,D,2,D,3,D,4,D,5,D,6,D,7,P,起始,校验,停止,主机,CLK,键盘,PS/2键盘接口时序 (a)是键盘向主机发送数据时的PS/2,键盘的,BIOS,调用,DOS,的1,H、6H、7H、8H、0AH、0BH、0CH,功能接收单个字符或字符串,比,INT 16H,更方便,但,INT 16H,一次可读取一个字符的扩充,ASCII,码,而,DOS,功能调用需要两次才能读取1个字符的扩充,ASCII,码,键盘的BIOS调用 DOS的1H、6H、7H、8H、0AH、,INT 16H,功能调用,MOV AH,0H,INT16H,CMPAL,0H,;AL,如果为0,,AH,为键盘扩充,ASCII,码,JE EXCD,JMPERR,EXCD:,CMP AH,3BH,JEOPT1,CMPAH,3CH,JEOPT2,CMPAH,3DH,JE OPT3,ERR:,OPT1:,OPT2:,OPT3:,INT 16H功能调用 MOV,鼠标接口,仍然是,PS/2,接口,PS/2,鼠标有四种工作模式,RESET,模式,STREAM,模式,REMOTE,模式,WRAP,模式,鼠标发送的数据包格式,鼠标接口 仍然是PS/2接口,INT 33H,功能调用(一),初始化鼠标驱动程序,:功能号0,XORAX,AX;,功能号0,INT 33H,;,初始化驱动程序,显示或隐藏鼠标光标:功能号1、2,MOVAX,0001H;,显示鼠标光标功能号,INT33H,MOVAX,0002H;,隐藏鼠标光标功能号,INT33H,INT 33H功能调用(一) 初始化鼠标驱动程序 :功能号0,INT 33H,功能调用(二),取得或设置鼠标光标的位置,:功能号3、4,监视鼠标按钮状态 :功能号5和6,设定鼠标光标在屏幕上的范围 :功能号7 、8,跟踪鼠标光标的移动 :功能号0,BH,INT 33H功能调用(二)取得或设置鼠标光标的位置 :功能,数码管显示接口,共阴结构,阴极控制端为低电平时,,LED,工作,输入控制端为高电平时,对应的发光管亮,共阳结构,阳极控制端为高电平时,,LED,工作,输入控制端为低电平时,对应的发光管亮,段选码,数码管显示接口 共阴结构,静态显示,段(发光二极管),恒定地导通或截止,,直到显示另一个字符为止,各个数码管的输入控制端相互独立,并与接口电路的输出端口相连,占用,I/O,端口资源多,:数码管的个数为,M,时,需要的接口口线数目为8,M。,所以显示位数较多时,需要采用动态显示方式,静态显示 段(发光二极管)恒定地导通或截止,直到显示另一个字,动态显示,所有数码管,共享输入控制端,需要的口线数8+数码管的个数,M,工作原理:动态地轮流点亮各个,LED,位选码:选择被点亮的,LED,段选码:显示什么字符,通常通过,查找表,的方式实现,动态显示 所有数码管共享输入控制端,动态显示例子,D,I,S,D,A,T,17,14,18,18,0,2,T,A,B,L,E,3,FH,06,H,76H,38,H,73H,71H,“,H,”,“,E,”,79H,“,L,”,“,0,”,5,BH,“,2,”,0,2,17,14,18,DI,MOV DI,,,OFFSET DISDAT,MOV AL,DI;,AL=17,LEA BX,TABLE,BX,XLAT ;,AL=76H,“,H,”,动态显示例子D1714181802T3FH06H76H38H,并行输,出端口,(,带锁存,功能,),并行输,出端口,(带锁,存功能),D,0,D,7,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,D,5,D,4,D,3,D,2,D,1,D,0,位,0,位,1,位,2,位,3,位,4,位,5,D,0,D,7,段选,位选,图,6.30 6,个数码管的显示接口电路,OUT SEGPORT,AL ;,AL=76H,“,H,”,MOV CL,0DFH ;,CL=11,0,1,1111,76,H,OUT BITPORT,AL ;,AL=CL=11,0,1,1111,0 1 1 1 1 1,INC DI,MOV AL,DI ;,AL=79H,H,79,H,ROR CL ;,CL=111,0,1111,1 0 1 1 1 1,E,并行输出端口(带锁存功能)并行输出端口(带锁存功能)D0D,并行输,出端口,(,带锁存,功能,),并行输,出端口,(带锁,存功能),D,0,D,7,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,D,5,D,4,D,3,D,2,D,1,D,0,位,0,位,1,位,2,位,3,位,4,位,5,D,0,D,7,段选,位选,图,6.30 6,个数码管的显示接口电路,OUT SEGPORT,AL ;,AL=76H,“,H,”,MOV CL,0DFH ;,CL=11,0,1,1111,76,H,OUT BITPORT,AL ;,AL=CL=11,0,1,1111,0 1 1 1 1 1,INC DI,MOV AL,DI ;,AL=79H,H,79,H,ROR CL ;,CL=111,0,1111,1 0 1 1 1 1,E,并行输出端口(带锁存功能)并行输出端口(带锁存功能)D0D,并行打印机接口,打印机提供了与微机系统相连的36芯,Centronics,连接器,微机上的并口采用的是,DB25,最主要的信号:8根数据线,2根握手联络信号线/,STROB,和/,ACK、,1根状态信号线,BUSY,并行打印机接口 打印机提供了与微机系统相连的36芯Centr,Centronics,标准时序图,BUSY,数据有效,DATA,数据有效,ACK,5,s,STROB,5,s,Centronics标准时序图 BUSY数据有效DATA数据,并行打印机接口框图,D,0,D,7,DIR,AEN,IOR,A,0,A,9,IOW,IRQ,复位,写数据,读数据,写控制,读控制,读状态,数据线,控制,线,状态线,5,4,8,4,输出数据,寄存器,数,据,收,发,器,命,令,译,码,器,输入数据,缓冲器,控制寄存器,状态寄存,器,(2),状态寄存,器,(1),集,电,极,驱,动,器,打,印,机,并行打印机接口框图 D0D7DIRAENIORA0A9I,打印机端口,三个打印机接口,使用的起始端口地址分别为278,H、378H、3BCH,,每个打印机接口工作在基本模式时,各占用起始端口地址开始的3个连续端口地址,当只配置一个打印机接口时,默认的端口地址为378,H-37FH,,且378,H,为数据端口地址、379,H,为状态端口地址、37,AH,为控制端口地址,打印机端口 三个打印机接口,使用的起始端口地址分别为278H,控制寄存器格式,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,未定义,1,:有效,1,:数据口输入模式,0,:数据口输出模式,中断允许信号,打印机允许信号,SLCTIN,初始化信号,INIT,自动换行信号,AUTOLF,选通信号,STROB,控制寄存器格式 D7D6D5D4D3D2D1D0未定义1:有,状态寄存器格式,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,0,:收到数据,1,:无纸,1,:打印机在线,0,:发生错误,1,:未发生中断,1,:不忙,1,:,EPP,模式超时,未定义,状态寄存器格式 D7D6D5D4D3D2D1D00:收到数据,打印机接口编程(一),直接对端口地址进行编程操作,MOVDX,,,378H,;,指向输出数据口,OUTDX,,,AL,;,输出字符(,ASCII,码),MOVDX,,,379H,;,指向状态端口,WAIT,:,IN AL,,,DX,;,读打印机状态,TESTAL,,,10000000B,;,检查打印机是否忙?,JEWAIT,;,忙,继续等待,MOVAL,,,00001001B,;,发送选通信号,MOVDX,,,37AH,;,控制端口,OUTDX,,,AL,MOVAL,,,00001000B,;,选通信号复位,OUTDX,,,AL,打印机接口编程(一) 直接对端口地址进行编程操作,打印机接口编程(二),BIOS,中断功能调用,中断类型号是,17,H,MOV AH,0;,功能号0,MOV AL,P;,待打印字符,MOV DX,0;,打印机接口号,INT 17H;,中断功能调用,TEST AH,01H;,检测是否超时,JNZ ERROR,;,超时,转出错处理,打印机接口编程(二)BIOS中断功能调用,中断类型号是17H,IEEE1284,并行接口工作模式,硬件上完全与原打印机接口标准兼容,传输速率有较大提高,而且为双向传输。,定义了兼容模式、半字节模式、字节模式、,ECP(Extended Capabilities Port ),模式和,EPP(Enhanced Parallel Port),模式等五种传输模式,IEEE1284并行接口工作模式 硬件上完全与原打印机接口标,
展开阅读全文