第七章--接口与串并行通信--微型计算机原理及应用课件.ppt
第七章第七章 接口与串并行通信接口与串并行通信1第一节第一节 CPUCPU与外设之间的与外设之间的 数据传输数据传输2为了使为了使CPUCPU能适应各种各样的外设,就能适应各种各样的外设,就需要在需要在CPUCPU与外设之间增加一个接口电路,与外设之间增加一个接口电路,由它完成相应的信号转换、速度匹配、数由它完成相应的信号转换、速度匹配、数据缓冲等功能,以实现据缓冲等功能,以实现CPUCPU与外设的连接,与外设的连接,完成相应的输入输出操作。完成相应的输入输出操作。一个接口的基本作用是在系统总线和一个接口的基本作用是在系统总线和I/OI/O设备之间架起一座桥梁,以实现设备之间架起一座桥梁,以实现CPUCPU与与I/OI/O设备之间的信息传输。设备之间的信息传输。3接口的功能:接口的功能:1)1)寻址功能寻址功能2)2)识别是否是识别是否是I/OI/O口的操作信号,识别是否为端口的片选口的操作信号,识别是否为端口的片选信号,识别是芯片的哪个寄存器被访问。信号,识别是芯片的哪个寄存器被访问。3)3)2)2)输入输入/输出功能输出功能4)4)根据根据CPUCPU通过控制总线送来的读写信号决定是输入操作通过控制总线送来的读写信号决定是输入操作还是输出操作。还是输出操作。5)5)3)3)可编程功能可编程功能6)6)有些接口具有可编程特性,可以通过指令设定接口的工有些接口具有可编程特性,可以通过指令设定接口的工作方式,工作参数,以满足不同外设的要求。作方式,工作参数,以满足不同外设的要求。47)7)中断管理功能中断管理功能有专门的中断管理接口,能完成中断判优、中断屏蔽,向有专门的中断管理接口,能完成中断判优、中断屏蔽,向CPUCPU送入中断类型码等功能。送入中断类型码等功能。8)8)错误检测功能错误检测功能多数可编程芯片都能自动检测出传输过程中出现的错误。多数可编程芯片都能自动检测出传输过程中出现的错误。1.1.传输错误,如串口中的奇偶校验传输错误,如串口中的奇偶校验2.2.覆盖错误覆盖错误9)9)复位功能复位功能能接受主机的复位信号,使系统重新启动。能接受主机的复位信号,使系统重新启动。10)10)时序控制功能时序控制功能接口电路具有自己的时钟,以满足外设在时序方面的要求接口电路具有自己的时钟,以满足外设在时序方面的要求6I/OI/O端口的编址方式:端口的编址方式:1)1)统一编址统一编址2)2)I/OI/O与存储器与存储器(RAM)RAM)的的地址不重复地址不重复,读写指令一致,只是根据地址来区分读写指令一致,只是根据地址来区分操作对象是操作对象是RAMRAM还是还是I/OI/O。3)3)优点:优点:无需专门的无需专门的I/OI/O指令,对指令,对I/OI/O操作指令丰富,可进行算术和逻辑运操作指令丰富,可进行算术和逻辑运算算4)4)缺点:缺点:占用存储器地址,因外设功占用存储器地址,因外设功能各不相同,需要复杂的电路进行时能各不相同,需要复杂的电路进行时序配合。序配合。RD/WR0000H1FFFH2000H2FFFH存存储储器器I/O一致的读一致的读写信号写信号72)2)独立编址独立编址I/OI/O与存储器与存储器(RAM)RAM)的的地址重复地址重复,用不同的读写信号和,用不同的读写信号和指令区分。存储器读写:指令区分。存储器读写:MEMWMEMW,MEMRMEMR,I/OI/O读写:读写:IORIOR,IOW(PC/XT)IOW(PC/XT)优点:优点:电路简单,不占用电路简单,不占用MEMMEM空间;空间;缺点:缺点:I/OI/O指令单一。指令单一。IN AL,10HOUT 10H,ALAND SI,AXADD DI,BX8指令不同指令不同,高低高低电平不同电平不同,操作操作的对象也不同的对象也不同10输入输出传送方式输入输出传送方式1)1)无条件传送方式无条件传送方式2)2)假设外设已经准备就绪,假设外设已经准备就绪,不查询外设状态,直接执行不查询外设状态,直接执行I/OI/O指令进行数据传输指令进行数据传输。一个口地址,两个端口一个口地址,两个端口端口端口地址地址11例:图中二极管接口电路,欲使例:图中二极管接口电路,欲使LEDLED自上而下依次发光自上而下依次发光2 2s s,编写控制程序。编写控制程序。分析:因为分析:因为LEDLED总是准总是准备好,为无条件输出。备好,为无条件输出。地址:地址:1010H H,用用OUTOUT语语句向对应的数据线写句向对应的数据线写0 0。第一次:第一次:0111 11110111 1111第二次:第二次:1011 11111011 1111最后:最后:1111 1110 1111 1110 MOV AL,7FH MOV AL,7FHLOP:LOP:OUT 10H,ALOUT 10H,AL CALL delay2s CALL delay2s ROR AL,1 ROR AL,1 JMP LOP JMP LOP13查询式输入如图,状态线占用一根数据线查询式输入如图,状态线占用一根数据线D0D0,STBSTB是选通是选通信号,在输入时随着数据一起从输入端口出现,信号,在输入时随着数据一起从输入端口出现,是表示输是表示输入数据已就绪的状态信号入数据已就绪的状态信号。CPUCPU先读状态口,若状态就绪,先读状态口,若状态就绪,再读数据口。再读数据口。数据口数据口4242H H状态口状态口40HSTROBE:选通信号选通信号151)1)外设外设未准备好未准备好,STBSTB为为高高,D D触发器无脉冲,触发器无脉冲,CPUCPU读状读状态口态口(40(40H),H),打开缓冲器打开缓冲器(1),(1),读出读出DB0DB0为低为低,表示未准备好。表示未准备好。163)3)读数据口读数据口4242H H,a.a.打开缓冲器打开缓冲器(2)(2),读数据线读数据线,这时,缓,这时,缓冲器冲器(1)(1)高阻,所以数据线上是输入设备的数据;高阻,所以数据线上是输入设备的数据;b.b.同时,同时,读数据口的控制线将读数据口的控制线将D D触发器清零。触发器清零。Q Q端输出端输出0 0,下次再读下次再读状态口时读入的状态口时读入的DB0DB0为为0 0,表示数据未准备就绪,表示数据未准备就绪。4)重复重复1),2),3)步骤步骤18从输入设备上输入从输入设备上输入10001000个字节的数据,传送到存储器的缓个字节的数据,传送到存储器的缓冲区,外设数据端口冲区,外设数据端口4242H H,状态端口状态端口4040H H,状态线为状态线为DB0DB0DATA SEGMENT BUFFER DB 1000 DUP(?)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA LEA SI,BUFFER MOV CX,1000LOP:IN AL,40H;读状态口读状态口 TEST AL,01H;判断数据是否就绪判断数据是否就绪JZ LOP;未就绪未就绪,重复读取重复读取IN AL,42H;读数据口读数据口MOV BYTE PTR SI,ALINC SILOOP LOPHLT19查询式输出如图,查询式输出如图,OBF(Output Buffer Full)OBF(Output Buffer Full):输入信号,为输入信号,为1 1表示输出缓冲器满,表示输出缓冲器满,即数据已经到外设输入口;即数据已经到外设输入口;ACK(Acknowledge):ACK(Acknowledge):输出信号,应答,为输出信号,应答,为0 0表示数据已被外表示数据已被外设取走,可以发送下一个数据。设取走,可以发送下一个数据。数据口数据口6262H H状态口状态口60HOBFOBFACKACK201)1)CPUCPU输出数据,锁存器选通,将数据输入锁存器,同时,输出数据,锁存器选通,将数据输入锁存器,同时,D D触发器有脉冲,使触发器有脉冲,使OBFOBF为为1 1,通知外设取数据。,通知外设取数据。212)2)CPUCPU读状态口,因为读状态口,因为外设速度较慢外设速度较慢,数据输入后有个读,数据输入后有个读取的过程,取的过程,所以外设未完全取走数据时,所以外设未完全取走数据时,ACKACK信号为高信号为高,因此因此读取的读取的DB0DB0为高为高,表示外设还未将数据取走,表示外设还未将数据取走,CPUCPU不不能送入下一个数据。能送入下一个数据。状态口状态口DB0为为122将将BUFFERBUFFER区区5050个字节输出,外设数据端口个字节输出,外设数据端口6262H H,状态端状态端口口6060H H,状态线为状态线为DB0DB0。DATA SEGMENT BUFFER DB 50 DUP(3)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA LEA SI,BUFFER MOV CX,50LOP:MOV AL,SI OUT 62H,AL;输出数据输出数据LOP1:IN AL,60H;读取状态口读取状态口 TEST AL,01H;判断外设是否取走数据判断外设是否取走数据JNZ LOP1;未取走未取走,等待等待INC SI;取走取走,输出下一个输出下一个LOOP LOPHLT243)3)中断传送方式中断传送方式4)4)DMA(Direct Memory Access)DMA(Direct Memory Access)传送方式传送方式I/OI/OCPU CPU (AL,AX)(AL,AX)存储器存储器25PCPC机机I/OI/O端口地址分配端口地址分配 虽然虽然PCPC机的机的I/OI/O地址线可有地址线可有1616根,对应的根,对应的I/OI/O编编址可达址可达6464K K字节,但由于字节,但由于IBMIBM公司当初设计微机主板公司当初设计微机主板及规划接口卡时,其端口地址译码是采用非完全译及规划接口卡时,其端口地址译码是采用非完全译码方式,即只考虑了低码方式,即只考虑了低1010位地址线位地址线A0A0A9A9,而没有而没有考虑高考虑高6 6位地址线位地址线A10A10A15A15,故其端口地址范围是故其端口地址范围是00000000H H03FFH03FFH,总共只有总共只有10241024个端口,个端口,且将前且将前512512个端口分配给了主板,后个端口分配给了主板,后512512个端口分配给了扩展个端口分配给了扩展槽上的常规外设。槽上的常规外设。26I/OI/O芯片名称芯片名称端口地址端口地址DMADMA控制器控制器1 100001FHDMADMA控制器控制器2 20C00DFHDMADMA页面寄存器页面寄存器08009FH中断控制器中断控制器1 102003FH中断控制器中断控制器2 20A00BFH定时器定时器04005FH键盘接口键盘接口06006FHRT/CMOS RAMRT/CMOS RAM07007FH协处理器协处理器0F00FFH系统板上接口芯片的端口地址系统板上接口芯片的端口地址I/OI/O接口名称接口名称端口地址端口地址游戏控制卡游戏控制卡20020FH并行口控制卡并行口控制卡1 137037FH并行口控制卡并行口控制卡2 227027FH串行口控制卡串行口控制卡1 13F83FFH串行口控制卡串行口控制卡2 22F02FFH标准卡标准卡(用户用户)30031FH同步通信卡同步通信卡1 13A03AFH同步通信卡同步通信卡2 238038FH单显单显MDAMDA3B03BFH彩显彩显CGACGA3D03DFH彩显彩显EGA/VGAEGA/VGA3C03CFH硬驱控制卡硬驱控制卡1F01FFH软驱控制卡软驱控制卡3F03F7HPCPC网卡网卡36036FH扩展槽上接口控制卡的端口地址扩展槽上接口控制卡的端口地址28允许用户使用的端口地址是允许用户使用的端口地址是300300H H31FH31FH。这一段地址是留给用户在开发这一段地址是留给用户在开发IBM_PCIBM_PC系列机系列机插板插板(功能模块功能模块)时,使用的端口地址,系统时,使用的端口地址,系统不会占用。除已分配的地址外,其余的地址不会占用。除已分配的地址外,其余的地址由厂商保留使用。由厂商保留使用。29第二节第二节 可编程并行接口可编程并行接口82558255A A31并行接口概念并行接口概念并行通信就是把一个字符的各数位用几条并行通信就是把一个字符的各数位用几条线同时进行传输,并行通信的信息传输速度线同时进行传输,并行通信的信息传输速度快,信息率高。用于数据传输要求较高,距快,信息率高。用于数据传输要求较高,距离较短的场合。离较短的场合。并行通信没有标准化,没有对同步和异步并行通信没有标准化,没有对同步和异步传输的严格定义。如果传输的严格定义。如果CPUCPU用一个时序信号来用一个时序信号来管理接口和设备的动作,这样的并行传输称管理接口和设备的动作,这样的并行传输称为同步传输;如果为同步传输;如果CPUCPU和接口设备之间只用应和接口设备之间只用应答信号联系答信号联系,这样的传输称为异步传输。这样的传输称为异步传输。321.1.82558255A A的内部结构的内部结构82558255A A是是IntelIntel系列的并行接口芯片,它是可编程的,可以系列的并行接口芯片,它是可编程的,可以用来设置其工作方式,不需要再附加外部电路。用来设置其工作方式,不需要再附加外部电路。33接口的功能:接口的功能:1)1)寻址功能寻址功能2)2)识别是否是识别是否是I/OI/O口的操作信号,识别是否为端口的片选口的操作信号,识别是否为端口的片选信号,识别是芯片的哪个寄存器被访问。信号,识别是芯片的哪个寄存器被访问。3)3)2)2)输入输入/输出功能输出功能4)4)根据根据CPUCPU通过控制总线送来的读写信号决定是输入操作通过控制总线送来的读写信号决定是输入操作还是输出操作。还是输出操作。5)5)3)3)可编程功能可编程功能6)6)有些接口具有可编程特性,可以通过指令设定接口的工有些接口具有可编程特性,可以通过指令设定接口的工作方式,工作参数,以满足不同外设的要求。作方式,工作参数,以满足不同外设的要求。344)4)数据转换功能数据转换功能当外设提供的数据形式不是当外设提供的数据形式不是CPUCPU能直接接受的形式时,则能直接接受的形式时,则通过接口转换成通过接口转换成CPUCPU可接受的形式。如可接受的形式。如A/DA/D,串串/并转换等,并转换等,反之也一样。反之也一样。5)5)联络功能联络功能当当CPUCPU要访问外设时,首先要查询外设状态,能否接受访要访问外设时,首先要查询外设状态,能否接受访问,接口应将外设状态准备好,供问,接口应将外设状态准备好,供CPUCPU查询;或向查询;或向CPUCPU发特发特定的信号通知外设已准备好。定的信号通知外设已准备好。6)6)数据缓冲功能数据缓冲功能主机与外设速度相差很大,为了防止数据丢失,主机与外设速度相差很大,为了防止数据丢失,I/OI/O接口接口均设有双向数据缓冲器。均设有双向数据缓冲器。357)7)中断管理功能中断管理功能有专门的中断管理接口,能完成中断判优、中断屏蔽,向有专门的中断管理接口,能完成中断判优、中断屏蔽,向CPUCPU送入中断类型码等功能。送入中断类型码等功能。8)8)错误检测功能错误检测功能多数可编程芯片都能自动检测出传输过程中出现的错误。多数可编程芯片都能自动检测出传输过程中出现的错误。1.1.传输错误,如串口中的奇偶校验传输错误,如串口中的奇偶校验2.2.覆盖错误覆盖错误9)9)复位功能复位功能能接受主机的复位信号,使系统重新启动。能接受主机的复位信号,使系统重新启动。10)10)时序控制功能时序控制功能接口电路具有自己的时钟,以满足外设在时序方面的要求接口电路具有自己的时钟,以满足外设在时序方面的要求361.数据端口数据端口 A,B,C:3个个8bit数据端口,有各自的特点数据端口,有各自的特点1)1)端口端口A A2)2)1 1个个8 8bitbit的数据的数据输入锁存输入锁存,一个一个8 8bitbit的数据输出锁存;的数据输出锁存;3)3)2)2)端口端口B B4)4)1 1个个8 8bitbit的数据的数据输入缓冲输入缓冲,一个一个8 8bitbit的数据输出锁存的数据输出锁存3)3)端口端口C C1 1个个8 8bitbit的数据的数据输入缓冲输入缓冲,一个,一个8 8bitbit的数据输出锁存;的数据输出锁存;端口端口C C常常被常常被分成分成2 2个个4 4位端口位端口,分别作为端口,分别作为端口A A和端口和端口B B的输入输出的输入输出控制线和状态信号线控制线和状态信号线,与端口,与端口A A、端口端口B B配合配合使用。使用。372.2.A A组控制和组控制和B B组控制组控制接受接受CPUCPU对控制端口的命令对控制端口的命令(控控制字制字),可以独立地设置,可以独立地设置82558255A A中中3 3个端口的工作方式。个端口的工作方式。3.3.数据总线缓冲器数据总线缓冲器双向三态双向三态8 8bitbit数据缓冲器,与数据缓冲器,与CPUCPU的数据总线相连,同时的数据总线相连,同时与与82558255A A的内部数据总线相连,接受从的内部数据总线相连,接受从CPUCPU发出的控制字发出的控制字,输入输出数据输入输出数据,同时也向同时也向CPUCPU传输传输82558255A A的状态字。的状态字。4.4.读写控制逻辑电路读写控制逻辑电路接受接受CPUCPU发送的读写信号,其中发送的读写信号,其中A0,A1A0,A1寻址寻址82558255A A内部寄内部寄存器,共有存器,共有3 3个数据端口,个数据端口,1 1个控制端口。个控制端口。382.8255A的引脚信号的引脚信号PA7PA0,PB7PB0,PC7PC0与外设相连的独立地址的与外设相连的独立地址的并行扩展口。并行扩展口。D7D0:与与CPU的数据总的数据总线相连,传输线相连,传输8255A的命的命令字或令字或I/O数据。数据。RESET:高有效高有效,8255A内部内部寄存器清零寄存器清零,3个端口均为输入。个端口均为输入。39:片选信号,为低:片选信号,为低82558255A A开始工作开始工作:为低读有效,:为低读有效,CPUCPU可以从可以从3 3个端口读入数据。个端口读入数据。:为低写有效,:为低写有效,CPUCPU可以向可以向3 3个端口输出数据,个端口输出数据,同时利用写信号可以向同时利用写信号可以向82558255A A的控制口写控制命的控制口写控制命令,设置令,设置82558255A A的工作方式。的工作方式。403.8255A的控制字的控制字控制字分两类,一类是控制并行口的工作方式的命令,控制字分两类,一类是控制并行口的工作方式的命令,一类是专门对一类是专门对C C口各位的设置。这两类控制字占用一个地口各位的设置。这两类控制字占用一个地址,用命令的最高位址,用命令的最高位D D7 7位进行区分位进行区分,所以控制字的最高位所以控制字的最高位D D7 7称为控制字标志位。称为控制字标志位。为为1 1为方式选择字为方式选择字,为为0 0为端口为端口C C设置设置字。字。D7D6D5D4D3D2D1D0格式格式字字A组工作组工作方式方式A口口I/OC口高半口高半字节字节I/OB口工作口工作方式方式B口口I/OC口低半字口低半字节节I/O100 方式方式001 方式方式11x 方式方式21输入输入0输出输出1 输入输入0 输出输出0 方式方式01 方式方式11 输入输入0 输出输出1 输入输入0 输出输出 A 方式选择控制字方式选择控制字41A A1 1,A,A0 0:82558255A A内部寄存器地址寻址信号,内部寄存器地址寻址信号,82558255A A内部有内部有4 4个端口,个端口,A,B,CA,B,C与控制口。与控制口。A1 A0 端口端口00A口口01B口口10C口口11控制口控制口42说明:说明:1)1)A A口有口有3 3种工作方式种工作方式方式方式0 0:基本:基本I/OI/O方式;方式;方式方式1 1:单向选通:单向选通I/OI/O方式,输入或输出只能选一种;方式,输入或输出只能选一种;方式方式2 2:双向选通:双向选通I/OI/O方式,一次设置后通道既可以做输入方式,一次设置后通道既可以做输入又可以做输出。又可以做输出。2)2)端口端口B B有两种工作方式有两种工作方式 即方式即方式0 0与方式与方式1 13)3)A A口和口和B B口工作在方式口工作在方式0 0时,时,C C口也可同时工作在方式口也可同时工作在方式0 0,且且C C口高半字节和低半字节可以分别独立工作。口高半字节和低半字节可以分别独立工作。434)4)A A口工作在方式口工作在方式1 1时,时,C C口的高半字节成为口的高半字节成为A A口的信号联口的信号联络线,但络线,但B B口仍可以独立工作。不要求口仍可以独立工作。不要求A,BA,B同为输入或同为输入或输出。输出。B B口工作于方式口工作于方式1 1也是一样。也是一样。5)5)A A口工作于方式口工作于方式2 2,C C口的大部分位线用于口的大部分位线用于A A口的信号联口的信号联络线,络线,B B口仍可以独立工作于方式口仍可以独立工作于方式0 0或方式或方式1 1。44D D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 0格式格式字字A A组工作组工作方式方式A A口口I/OI/OC C口高半口高半字节字节I/OI/OB B口工作口工作方式方式B B口口I/OI/OC C口低半字口低半字节节I/OI/O1 100 00 方式方式0 001 01 方式方式1 11 1x x方式方式2 21 1输入输入0 0输出输出1 1 输入输入0 0 输出输出0 0 方式方式0 01 1 方式方式1 11 1 输入输入0 0 输出输出1 1 输入输入0 0 输出输出一系统采用一系统采用82558255A A作作I/OI/O接口,其控制口的地址为接口,其控制口的地址为8 8BHBH,将将端口端口A A设置为方式设置为方式0 0输入,端口输入,端口B B设置为方式设置为方式1 1输出,则输出,则A A口口的地址为的地址为_ _,B B口地址为口地址为_,控制字为,控制字为_。8 8BH BH 1000 1011 1000 1011 1000 101000 100000 8888H H 1000 101000 100101 8989H H8888H H8989H HD D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 01 10 00 01 10 01 10 00 09494H H45J1J1:A A口,方式口,方式0 0,输出,输出 B B口,方式口,方式0 0,输入,输入 C C口高,输出口高,输出 C C 口低,输入口低,输入 J2J2:A A口,方式口,方式0 0,输入,输入 B B口,方式口,方式1 1,输出,输出 C C口高,输出口高,输出 J1J1,J2J2地址地址A9A8A7A6A5A4A3A2A1A0J1J201001000108H10EH01000000100H106H46D D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 0格式格式字字A A组工作组工作方式方式A A口口I/OI/OC C口高半口高半字节字节I/OI/OB B口工作口工作方式方式B B口口I/OI/OC C口低半字口低半字节节I/OI/O1 100 00 方式方式0 001 01 方式方式1 11 1x x 方式方式2 21 1输入输入0 0输出输出1 1 输入输入0 0 输出输出0 0 方式方式0 01 1 方式方式1 11 1 输入输入0 0 输出输出1 1 输入输入0 0 输出输出J1J1:A A口,方式口,方式0 0,输出,输出;B B口,方式口,方式0 0,输入,输入;C C口高,输出口高,输出;C C 口低,输入口低,输入 地址地址:108:108H H10EH 10EH 控制字:控制字:D D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 01 10 00 00 00 00 01 11 18383H H47D D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 0格式格式字字A A组工作组工作方式方式A A口口I/OI/OC C口高半口高半字节字节I/OI/OB B口工作口工作方式方式B B口口I/OI/OC C口低半字口低半字节节I/OI/O1 100 00 方式方式0 001 01 方式方式1 110 10 方式方式2 21 1输入输入0 0输出输出1 1 输入输入0 0 输出输出0 0 方式方式0 01 1 方式方式1 11 1 输入输入0 0 输出输出1 1 输入输入0 0 输出输出J2J2:A A口口,方式方式0,0,输入输入;B B口口,方式方式1,1,输出输出;C C口高口高,输出输出 地址:地址:100100H H106H106H控制字:控制字:D D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 01 10 00 01 10 01 10 09494H H48J1J1:A A口,方式口,方式0 0,输出,输出 B B口,方式口,方式0 0,输入,输入 C C口高,输出口高,输出 C C 口低,输入口低,输入地址:地址:108H108H10EH10EH,控制字:控制字:8383H H J2J2:A A口,方式口,方式0 0,输入,输入 B B口,方式口,方式1 1,输出,输出 C C口高,输出口高,输出 地址:地址:100H100H106H106H,控制字:控制字:9494H HMOV AL,MOV AL,83H83HMOV DX,MOV DX,10EH10EHOUT DX,ALOUT DX,AL ;J1 ;J1控制口控制口MOV AL,MOV AL,94H94HMOV DX,MOV DX,106H106HOUT DX,AL ;OUT DX,AL ;J2J2控制口控制口49 B 端口端口C口各位设置字口各位设置字D7D6D5D4D3D2D1D0格式字格式字位选择位选择数值数值0000 PC0001 PC1010 PC2011 PC3100 PC4101 PC5110 PC6111 PC71/0例:例:07H 00000111,即即将将 PC3置置1。50说明:说明:1)1)端口端口C C置置0/0/置置1 1控制字尽管是对端口控制字尽管是对端口C C进行操作,但此控进行操作,但此控制字必须写入控制口,而不是写入端口制字必须写入控制口,而不是写入端口C C。2)2)一个控制字只能对一位进行操作。一个控制字只能对一位进行操作。J1J1:A A口,方式口,方式0 0,输出,输出 B B口,方式口,方式0 0,输入,输入 C C口高口高,输出输出,C C 口低口低,输入输入 地址地址:88:88H H8EH,8EH,控制字控制字:83:83H H C C口口PC7PC7置置1 1,PC3PC3置置0 0。MOV AL,MOV AL,0FH ;00000FH ;00001111111 1OUT OUT 8EH 8EH,AL,AL MOV AL,MOV AL,06H;000006H;00000110110 0OUT OUT 8EH 8EH,AL,AL 51第三节第三节 8255 8255A A的工作方式的工作方式52一、方式一、方式0 0 基本输入输出方式基本输入输出方式实际上是实际上是4 4个端口,个端口,A A、B B、C C高、高、C C低,可以独立地任意组低,可以独立地任意组合,一共可有合,一共可有1616种种组合方式。组合方式。输入时序输入时序531)1)CPUCPU在发出读信号前,在发出读信号前,先发出地址信号,使先发出地址信号,使82558255的片选及各寄存器的片选及各寄存器有效。有效。2)2)在在CPUCPU发出读信号之前,外设已将欲输入的数据送入发出读信号之前,外设已将欲输入的数据送入82558255A A的数据总线缓冲器。的数据总线缓冲器。3)82553)8255A A数据总线缓冲器中的数据必须保持到读信号消失数据总线缓冲器中的数据必须保持到读信号消失后才结束。后才结束。4)4)读脉冲宽度至少大于读脉冲宽度至少大于300300nsns。5)5)在整个输入数据期间,地址信号保持有效在整个输入数据期间,地址信号保持有效。54输出时序输出时序1)1)地址信号必须先有效;地址信号必须先有效;2)2)写脉冲大于写脉冲大于400400nsns;3)3)数据在写信号结束前有效,且能在数据在写信号结束前有效,且能在写信号结束后保持一段时间;写信号结束后保持一段时间;4)4)在写信号结束后,不超过在写信号结束后,不超过350350nsns,数据出现在数据出现在82558255的输的输出锁存器中。出锁存器中。55在方式在方式0 0中,可利用中,可利用C C口的各位信号线做应答信号,配合口的各位信号线做应答信号,配合A,A,B B口的输入输出操作。口的输入输出操作。图中图中,8255地址为地址为02A0H02A6H根据开关情况来控制根据开关情况来控制LEDLED。(开关闭合灯亮开关闭合灯亮),写出控制程序。写出控制程序。分析:分析:A A口输入,方式口输入,方式0 0;B B口输出,方式口输出,方式0 0控制字:控制字:1 00 1 0 0 1 00 1 0 0 9090H HMOV DX,MOV DX,2A6H2A6HMOV AL,MOV AL,90H 90H OUT DX,AL OUT DX,AL MOV DX,MOV DX,2A0H2A0HININ AL,DX AL,DXMOV DX,MOV DX,2A2H2A2H OUTOUT DX,AL DX,AL 56打印机工作顺序打印机工作顺序(过程过程)1)1)数数据据与与STBSTB信信号号一一起起送送入入打打印印机机,STBSTB相相当当于于启启动动信信号,启动打印机接受数据;号,启动打印机接受数据;2)2)打打印印机机处处理理数数据据,这这时时BUSYBUSY为为高高,表表示示“忙忙”,ACKACK为高,表示打印机输入缓冲器还未接收好数据;为高,表示打印机输入缓冲器还未接收好数据;3)3)ACKACK为为低低,打打印印机机输输入入缓缓冲冲器器接接收收好好数数据据,但但由由于于打打印印机机内内部部机机械械动动作作较较慢慢,此此时时数数据据还还未未打打印印好好,故故BUSYBUSY为为1 1,表示,表示“忙忙”。4)4)打打印印机机打打印印好好数数据据,BUSYBUSY为为低低,且且ACKACK为为低低,应应答答主主机。机。57CPUCPU经经82558255与打印机连接,与打印机连接,82558255地址:地址:8080H83HH83H,打印从打印从BUFBUF缓冲区开始的缓冲区开始的100100个字符。个字符。分析:分析:82558255A A口方式口方式0 0输出,输出,C C口高半位输出,口高半位输出,C C口低半位口低半位输入,控制字:输入,控制字:1 10000 0 0 0 0 1 1 8181H H步骤:步骤:1)1)查看查看PC2PC2;2)2)发送发送PA;3)PA;3)发送发送PC7PC7。588255地址地址80H83H,控制字控制字81HMOV AL,81H OUT 83H,ALMOV AL,0FHOUT 83H,ALLEA SI,BUFMOV CX,100;设置设置PC7为为1,不启动打印,不启动打印机机L:IN AL,82H AND AL,04H JNZ L MOV AL,SI OUT 80H,ALMOV AL,0EHOUT 83H,ALCALL delayMOV AL,0FHOUT 83H,ALINC SIDEC CXJNZ LHLT;读读C口口;判断判断PC2;发送字符发送字符;PC7置置0;PC7置置1;下一个字符下一个字符;忙忙,等待等待59二、方式二、方式1 1 选通输入输出方式选通输入输出方式(应答方式应答方式)1.1.特点特点1)1)A A口或口或B B口工作在方式口工作在方式1 1时,时,C C口各位做联络应答信号线,口各位做联络应答信号线,其其各位的含义是固定的各位的含义是固定的,不可用软件改变;,不可用软件改变;2)2)各位联络信号都有固定的时序各位联络信号都有固定的时序(自动进行自动进行)3)3)在输入输出操作中,产生固定格式的状态字,这些状态在输入输出操作中,产生固定格式的状态字,这些状态信息可供信息可供CPUCPU查询或向查询或向CPUCPU申请中断。申请中断。CPUCPU从端口从端口C C中读中读取状态字。取状态字。4)4)方式方式1 1为单向传送,初始化后只能向一个方向上传送,为单向传送,初始化后只能向一个方向上传送,若要反方向传送必须再次初始化若要反方向传送必须再次初始化。602.2.方式方式1 1下输入操作的联络信号线定义及时序下输入操作的联络信号线定义及时序指定了指定了C C口的口的3 3根线作为根线作为A A口的联络线。口的联络线。:外设送入的外设送入的选通信号选通信号,与外设数据一起送入,相,与外设数据一起送入,相当于当于82558255A A的的启动信号启动信号。选通信号宽度至少为选通信号宽度至少为500500nsns,由外设撤销该信号。由外设撤销该信号。IBFIBFA A:Input Buffer Full,Input Buffer Full,输入缓输入缓冲器满,高有效,冲器满,高有效,由由82558255发往发往外设外设,表示,表示82558255收到数据,但收到数据,但未被未被CPUCPU取走,取走,通知外设不可通知外设不可再送数据再送数据;当其为;当其为低时,表示低时,表示CPUCPU已取已取走数据,允许外设送新的数据。走数据,允许外设送新的数据。61INTRINTRA A:8255 8255向向CPUCPU申请中断,高有效,请求申请中断,高有效,请求CPUCPU中断。中断。INTRINTR为高有为高有3 3个条件个条件:1)1)STBSTB为高为高,即数据已打入,即数据已打入82558255;2)2)IBFIBF为高为高,即,即82558255已收到数据;已收到数据;3)3)INTE(INTE(中断请求允许中断请求允许)为为高高,即,即82558255允许以中断方式应答。允许以中断方式应答。INTRINTRA A为高,通知为高,通知CPUCPU可以取可以取82558255A A口中的数。口中的数。62INTEINTEA A:Interrupt Enable Interrupt Enable,中断允许信号,设置中中断允许信号,设置中断允许或屏蔽中断的信号。断允许或屏蔽中断的信号。INTEINTE没有外部引出端没有外部引出端,由软件对由软件对C C口某位进行置口某位进行置0 0或置或置1 1的操作实现。的操作实现。对对A A口,中断允许端是口,中断允许端是PCPC4 4,对对B B口,是口,是PCPC2 2。置置1 1允许允许中断,置中断,置0 0屏蔽中断。屏蔽中断。63端口端口B B在在方式方式1 1输入输入下各个联络线的定义与端口下各个联络线的定义与端口C C完完全一样,只是占用全一样,只是占用C C口的联络线与端口口的联络线与端口A A不同。其不同。其中,其中断屏蔽允许位是中,其中断屏蔽允许位是PCPC2 2。64PCPC0202属于属于B B口联络线,口联络线,PCPC3535属于属于A A口联络线,口联络线,PCPC6 6,PCPC7 7没有被重新定义,没有被重新定义,仍可作为基本仍可作为基本I/OI/O口使用口使用,属于,属于C C口的高半部分,在控制字口的高半部分,在控制字中定义其输入输出特性