资源描述
清华大学冯博琴微机原理并行接口8255Final第第8章章 并行接口并行接口8255及应用及应用清华大学冯博琴微机原理并行接口8255Final第一节第一节 可编程并行接口可编程并行接口82558255清华大学冯博琴微机原理并行接口8255Final并行接口概念并行接口概念 并行通信就是把一个字符的各数位用几条并行通信就是把一个字符的各数位用几条线线同时进行传输同时进行传输,并行通信的信息传输速度快并行通信的信息传输速度快,信信息率高。用于数据传输要求较高,距离较短的场息率高。用于数据传输要求较高,距离较短的场合合 并行通信没有对同步和异步传输的严格并行通信没有对同步和异步传输的严格定义。如果定义。如果CPU用一个时序信号来管理接口和设用一个时序信号来管理接口和设备的动作,这样的并行传输称为备的动作,这样的并行传输称为同步传输同步传输;如果;如果CPU和接口设备之间只用应答信号联系,这样的和接口设备之间只用应答信号联系,这样的传输称为传输称为异步传输异步传输。清华大学冯博琴微机原理并行接口8255Final 8255的内部结构的内部结构8255是是Intel系列的并行接口芯片,它是可编程的,可以用系列的并行接口芯片,它是可编程的,可以用来设置其工作方式,不需要再附加外部电路。来设置其工作方式,不需要再附加外部电路。数数据据总总线线缓缓冲冲器器读读/写写控控制制逻逻辑辑A组组控控制制A组组端端口口A(8)A组组端端口口C上上半半部部(4)B组组端端口口C下下半半部部(4)B组组端端口口B(8)B组组控控制制RDWRA0A1RESETCSI/O PA7PA0I/O PC7PC4I/O PC3PC0I/O PB7PB0DB8位位内内部部数数据据总总线线清华大学冯博琴微机原理并行接口8255Final数数据据总总线线缓缓冲冲器器读读/写写控控制制逻逻辑辑A组组控控制制A组组端端口口A(8)A组组端端口口C上上半半部部(4)B组组端端口口C下下半半部部(4)B组组端端口口B(8)B组组控控制制RDWRA0A1RESETCSI/O PA7PA0I/O PC7PC4I/O PC3PC0I/O PB7PB0DB8位位内内部部数数据据总总线线 数据端口数据端口 A,B,C:3个个8 8bit数据端口,有各自的特点数据端口,有各自的特点 端口端口A1个个8 8bit的数据的数据输入锁存输入锁存,一个一个8 8bit的数据的数据输出锁存输出锁存;2)2)端口端口B1个个8 8bit的数据的数据输入缓冲输入缓冲,一个一个8 8bit的数据的数据输出锁存输出锁存;3)3)端口端口C1个个8 8bit的数据的数据输入缓冲输入缓冲,一个,一个8 8bit的数据的数据输出锁存输出锁存;端口端口C常常被常常被分成分成2 2个个4 4位端口位端口,分别作为端口,分别作为端口A和端口和端口B的输入输出的输入输出控制线和状态信号线控制线和状态信号线,与端口,与端口A、端口端口B配配合使用。合使用。清华大学冯博琴微机原理并行接口8255Final2.2.A组控制和组控制和B组控制组控制接受接受CPU对控制端口的命令对控制端口的命令(控制字控制字),可以独立地设置,可以独立地设置8255中中3 3个端口的工作方式个端口的工作方式3.3.数据总线缓冲器数据总线缓冲器双向三态双向三态8 8bit数据缓冲器,与数据缓冲器,与CPU的数据总线相连,同的数据总线相连,同时与时与82558255的内部数据总线相连,接受从的内部数据总线相连,接受从CPU发出的控制发出的控制字字,输入输出数据输入输出数据,同时也向同时也向CPU传输传输8255的状态字的状态字4.4.读写控制逻辑电路读写控制逻辑电路接受接受CPU发送的读写信号,其中发送的读写信号,其中A0,A1寻址寻址8255内部寄内部寄存器,共有存器,共有3 3个数据端口,个数据端口,1 1个控制端口。个控制端口。清华大学冯博琴微机原理并行接口8255Final1PA32PA2PA13PA0440393837PA4PA5PA6PA756GND7A1836353433RESETD0D19A010PC7PC611PC51232313029D2D3D4D513PC414PC0PC115PC21628272625D6D7VCCPB717PC318PB0PB119PB22024232221PB6PB5PB4PB3WRRDCSA组组B组组2.2.8255的引脚信号的引脚信号8255ARDWRA0A1CSRESETD0D7I/O PA7PA0I/O PB7PB0I/O PC3PC0I/O PC7PC4CPU DBCPU CBCPU AB外外设设PA7PA0,PB7PB0,PC7PC0与外设相连的独立地址的与外设相连的独立地址的并行扩展口。并行扩展口。D7D0:与与CPU的数据总的数据总线相连,传输线相连,传输8255的命令的命令字或字或I/O数据。数据。RESET:高有效高有效,8255内部寄内部寄存器清零存器清零,3,3个端口均为输入。个端口均为输入。清华大学冯博琴微机原理并行接口8255Final8255ARDWRA0A1CSRESETD0D7I/O PA7PA0I/O PB7PB0I/O PC3PC0I/O PC7PC4CPU DBCPU CBCPU AB外外设设CS:片选信号片选信号,为低,为低8255开始工作开始工作RD:为:为低低,读有效读有效,CPU可以从可以从3 3个端口读入数据。个端口读入数据。WR:为:为低低,写有效写有效,CPU可以向可以向3 3个端口输出数据,个端口输出数据,同时利用写信号可以向同时利用写信号可以向8255的控制口写控制命的控制口写控制命令,设置令,设置8255的工作方式。的工作方式。清华大学冯博琴微机原理并行接口8255Final3.3.8255的控制字的控制字控制字分两类,一类是控制并行口的工作方式的命控制字分两类,一类是控制并行口的工作方式的命令,一类是专门对令,一类是专门对C口各位的设置。这两类控制字占用一口各位的设置。这两类控制字占用一个地址,用命令的最高位个地址,用命令的最高位D7位进行区分位进行区分,所以控制字的最所以控制字的最高位高位D7称为控制字标志位称为控制字标志位。为为1 1为方式选择字为方式选择字,为为0 0为端口为端口C设置字。设置字。D7D6D5D4D3D2D1D0格式格式字字A组工作组工作方式方式A口口I/OC口高半字口高半字节节I/OB组工作组工作方式方式B口口I/OC口低半字口低半字节节I/O1 100 方式方式001 方式方式110 方式方式21输入输入0输出输出1 输入输入0 输出输出0 方式方式01 方式方式11 输入输入0 输出输出1 输入输入0 输出输出 A 方式选择控制字方式选择控制字清华大学冯博琴微机原理并行接口8255Final8255ARDWRA0A1CSRESETD0D7I/O PA7PA0I/O PB7PB0I/O PC3PC0I/O PC7PC4CPU DBCPU CBCPU AB外外设设A1,A0:8255内部寄存器地址寻址信号,内部寄存器地址寻址信号,8255内部有内部有4 4个个端口端口,A,B,C与控制口。与控制口。A1 A0 端口端口00A口口01B口口10C口口11控制口控制口清华大学冯博琴微机原理并行接口8255Final说明:说明:1)1)A口有口有3 3种工作方式种工作方式方式方式0 0:基本:基本I/O方式;方式;方式方式1 1:单向选通:单向选通I/O方式,输入或输出只能选一种;方式,输入或输出只能选一种;方式方式2 2:双向选通:双向选通I/O方式,一次设置后通道既可以做输入方式,一次设置后通道既可以做输入又可以做输出。又可以做输出。2)2)端口端口B有两种工作方式有两种工作方式 即方式即方式0 0与方式与方式1 13)3)A口和口和B口工作在方式口工作在方式0 0时,时,C口也可同时工作在方式口也可同时工作在方式0 0,且且C口高半字节和低半字节可以分别独立工作。口高半字节和低半字节可以分别独立工作。清华大学冯博琴微机原理并行接口8255Final4)4)A口工作在方式口工作在方式1 1时,时,C口的部分位成为口的部分位成为A口的信号联口的信号联络线,但络线,但B口仍可以独立工作。不要求口仍可以独立工作。不要求A,B同为输入或同为输入或输出。输出。B口工作于方式口工作于方式1 1也是一样。也是一样。5)5)A口工作于方式口工作于方式2 2,C口的大部分位线用于口的大部分位线用于A口的信号口的信号联络线,联络线,B口仍可以独立工作于方式口仍可以独立工作于方式0 0或方式或方式1 1。清华大学冯博琴微机原理并行接口8255FinalD7D6D5D4D3D2D1D0格式格式字字A组工作组工作方式方式A口口I/OC口高半字口高半字节节I/OB组工作组工作方式方式B口口I/OC口低半字口低半字节节I/O1 100 方式方式001 方式方式110 方式方式21输入输入0输出输出1 输入输入0 输出输出0 方式方式01 方式方式11 输入输入0 输出输出1 输入输入0 输出输出一系统采用一系统采用8255作作I/O接口,其控制口的地址为接口,其控制口的地址为8 8BH,将将端口端口A设置为方式设置为方式0 0输入,端口输入,端口B B设置为方式设置为方式1 1输出,则输出,则A口口的地址为的地址为_ _,B口地址为口地址为_,控制字为,控制字为_。8 8BH 1000 1011 1000 1011 1000 101000 100000 8888H 1000 101000 100101 8989H8888H8989HD7D6D5D4D3D2D1D01 10 00 01 10 01 10 00 09494H清华大学冯博琴微机原理并行接口8255FinalJ1:A口,方式口,方式0 0,输出,输出 B口,方式口,方式0 0,输入,输入 C口高,输出;口高,输出;C 口低,输入口低,输入 J2:A口,方式口,方式0 0,输入,输入 B口,方式口,方式1 1,输出,输出 C口高,输出口高,输出 J1,J2地址地址A7A6A5A4A3A2A1A0J1J21 100 01 10 00 088H8EH1 100 00 00 00 080H86H00清华大学冯博琴微机原理并行接口8255FinalD7D6D5D4D3D2D1D0格式格式字字A组工作组工作方式方式A口口I/OC口高半字口高半字节节I/OB组工作组工作方式方式B口口I/OC口低半字口低半字节节I/O100 方式方式001 方式方式110 方式方式21输入输入0输出输出1 输入输入0 输出输出0 方式方式01 方式方式11 输入输入0 输出输出1 输入输入0 输出输出J1:A口,方式口,方式0 0,输出,输出;B口,方式口,方式0 0,输入,输入;C口高,输出口高,输出;C 口低,输入口低,输入 地址地址:88H-8EH控制字:控制字:D7D6D5D4D3D2D1D01 10 00 00 00 00 01 11 18383H清华大学冯博琴微机原理并行接口8255FinalD7D6D5D4D3D2D1D0格式格式字字A组工作组工作方式方式A口口I/OC口高半字口高半字节节I/OB组工作组工作方式方式B口口I/OC口低半字口低半字节节I/O100 方式方式001 方式方式110 方式方式21输入输入0输出输出1 输入输入0 输出输出0 方式方式01 方式方式11 输入输入0 输出输出1 输入输入0 输出输出J2:A口口,方式方式0,0,输入输入;B口口,方式方式1,1,输出输出;C口高口高,输出输出 地址:地址:80H-86H控制字:控制字:D7D6D5D4D3D2D1D01 10 00 01 10 01 10 09494H清华大学冯博琴微机原理并行接口8255FinalJ1:A口,方式口,方式0 0,输出,输出 B口,方式口,方式0 0,输入,输入 C口高,输出口高,输出 C 口低,输入口低,输入地址:地址:88H-8EH,控制字:控制字:8383H J2:A口,方式口,方式0 0,输入,输入 B口,方式口,方式1 1,输出,输出 C口高,输出口高,输出 地址:地址:80H-86H,控制字:控制字:9494HMOV AL,83HOUT 8EH,AL ;J1控制口控制口MOV AL,94HOUT 86H,AL ;J2控制口控制口清华大学冯博琴微机原理并行接口8255Final B 端口端口C口各位设置字口各位设置字D7D6D5D4D3D2D1D0格式字格式字位选择位选择数值数值0000 PC0001 PC1010 PC2011 PC3100 PC4101 PC5110 PC6111 PC71/0例:例:0707H 00000111,即将即将 PC3置置1 1。清华大学冯博琴微机原理并行接口8255Final说明:说明:1)端口端口C置置0/0/置置1 1控制字尽管是对端口控制字尽管是对端口C进行操作,但此控进行操作,但此控制字必须写入控制口,而不是写入端口制字必须写入控制口,而不是写入端口C。2)一个控制字只能对一位进行操作一个控制字只能对一位进行操作。J1:A口,方式口,方式0 0,输出,输出 B口,方式口,方式0 0,输入,输入 C口高口高,输出输出,C 口低口低,输入输入 地址地址:88:88H-8EH,控制字控制字:83:83H C口口PC7置置1 1,PC3置置0 0。MOV AL,0FH ;00001111OUT 8EH,AL MOV AL,06H ;00000110OUT 8EH,AL 清华大学冯博琴微机原理并行接口8255Final第二节第二节 82558255的工作方式的工作方式清华大学冯博琴微机原理并行接口8255Final一、方式一、方式0 0 基本输入输出方式基本输入输出方式实际上是实际上是4 4个端口,个端口,A、B、C高、高、C低,可以独立地任意低,可以独立地任意组合,一共可有组合,一共可有1616种种组合方式。组合方式。输入时序输入时序RDI/O口口 输输入入数数据据数数据据有有效效地地址址有有效效CSA1A0数数据据有有效效D7D0CPU数数据据总总线线CPU清华大学冯博琴微机原理并行接口8255FinalRDI/O口口 输输入入数数据据数数据据有有效效地地址址有有效效CSA1A0数数据据有有效效D7D0CPU数数据据总总线线CPU1)1)CPU在发出读信号在发出读信号前,先发出地址信号,前,先发出地址信号,使使82558255的片选及各寄的片选及各寄存器有效。存器有效。2)2)在在CPU发出读信号之前,外设已将欲输入的数据送发出读信号之前,外设已将欲输入的数据送入入8255的数据总线缓冲器。的数据总线缓冲器。3)3)8255数据总线缓冲器中的数据必须保持到读信号消数据总线缓冲器中的数据必须保持到读信号消失后才结束。失后才结束。4)4)读脉冲宽度至少大于读脉冲宽度至少大于300300ns。5)5)在整个输入数据期间,地址信号保持有效在整个输入数据期间,地址信号保持有效。清华大学冯博琴微机原理并行接口8255Final输出时序输出时序1)1)地址信号必须先有效;地址信号必须先有效;2)2)写脉冲大于写脉冲大于400400ns;3)3)数据在写信号结束前有效,且能在写信号结束后保持数据在写信号结束前有效,且能在写信号结束后保持一段时间;一段时间;4)4)在写信号结束后,不超过在写信号结束后,不超过350350ns,数据出现在数据出现在82558255的的输出锁存器中。输出锁存器中。清华大学冯博琴微机原理并行接口8255Final在方式在方式0 0中,可利用中,可利用C口的各位信号线做应答信号,配合口的各位信号线做应答信号,配合A,B口的输入输出操作。口的输入输出操作。译译码码A1A0CS+5VPA7PA0PB7PB0A1A2DBCBAB图中图中,8255,8255地址为地址为0202A0H02A6H根据开关情况来控制根据开关情况来控制LED。(开关闭合灯亮开关闭合灯亮),写出控制程序。写出控制程序。分析:分析:A口输入,方式口输入,方式0 0;B口输出,方式口输出,方式0 0控制字:控制字:1 00 1 1 00 1 0 0 0 0 9090HMOV DX,2A6HMOV AL,90H OUT DX,AL MOV DX,2A0HIN AL,DXMOV DX,2A2H OUT DX,AL 清华大学冯博琴微机原理并行接口8255Final打印机工作顺序打印机工作顺序(过程过程)1)1)数据与数据与STB信号一起送入打印机,信号一起送入打印机,STB相当于启动相当于启动信号,启动打印机接受数据;信号,启动打印机接受数据;2)2)打印机处理数据,这时打印机处理数据,这时BUSY为高,表示为高,表示“忙忙”;3)3)处理完数据,处理完数据,BUSY为为0 0,且,且ACK为低,应答主机。为低,应答主机。清华大学冯博琴微机原理并行接口8255Final打打印印机机DBSTBBUSY8255PA7PA0PC7PC2CPUCPU经经82558255与打印机连接,与打印机连接,82558255地址:地址:8080H83H,打印打印从从BUF缓冲区开始的缓冲区开始的100100个字符个字符。分析:分析:8255A口方式口方式0 0输出,输出,C口高半位输出,口高半位输出,C口低半位口低半位输入,控制字:输入,控制字:1 1 0000 0 0 0 0 1 18181H步骤:步骤:1)1)查看查看PC2;2)发送发送PA;3)发送发送PC7。清华大学冯博琴微机原理并行接口8255Final82558255地址地址8080H83H,控制字控制字8181H打打印印机机DBSTBBUSY8255PA7PA0PC7PC2CPUMOV AL,81H OUT 83H,ALMOV AL,0FHOUT 83H,ALLEA SI,BUFMOV CX,100;设置设置PC7为为1 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 0;PC7置置1 1;下一个字符下一个字符;忙忙,等待等待清华大学冯博琴微机原理并行接口8255Final二、方式二、方式1 1 选通输入输出方式选通输入输出方式(应答方式应答方式)1.1.特点特点1)1)A口或口或B口工作在方式口工作在方式1 1时,时,C口各位做联络应答信号口各位做联络应答信号线,其线,其各位的含义是固定的各位的含义是固定的,不可用软件改变;,不可用软件改变;2)2)各位联络信号都有固定的时序各位联络信号都有固定的时序(自动进行自动进行)3)3)在输入输出操作中,产生固定格式的状态字,这些状在输入输出操作中,产生固定格式的状态字,这些状态信息可供态信息可供CPU查询或向查询或向CPU申请中断。申请中断。CPU从端口从端口C中中读取状态字。读取状态字。4)4)方式方式1 1为单向传送,初始化后只能向一个方向上传送,为单向传送,初始化后只能向一个方向上传送,若要反方向传送必须再次初始化若要反方向传送必须再次初始化。清华大学冯博琴微机原理并行接口8255Final2.2.方式方式1 1下下输入操作输入操作的联络信号线定义及时序的联络信号线定义及时序指定了指定了C口的口的3 3根线作为根线作为A口的联络线。口的联络线。ASTB:外设送入的外设送入的选通信号选通信号,与外设数据一起送入,相,与外设数据一起送入,相当于当于8255的的启动信号启动信号。IBFA:Input Buffer Full,输入输入缓冲器满,高有效,缓冲器满,高有效,由由82558255发发往外设往外设,表示,表示82558255收到数据,收到数据,但未被但未被CPU取走,取走,通知外设不通知外设不可再送数据;可再送数据;当其为当其为低时,表示低时,表示CPU已取已取走数据,允许外设送新的数据。走数据,允许外设送新的数据。&清华大学冯博琴微机原理并行接口8255FinalINTRA:8255向向CPU申请中断,高有效,请求申请中断,高有效,请求CPU中断。中断。INTR为高有为高有3 3个条件个条件:1)1)STB为高为高,即数据已打入,即数据已打入82558255;2)2)IBF为高为高,即,即82558255已收到数据;已收到数据;3)3)INTE(中断请求允中断请求允许许)为高为高,即,即82558255允许以中断方式应答。允许以中断方式应答。INTRA为高,通知为高,通知CPU可以取可以取8255口中的数。口中的数。&清华大学冯博琴微机原理并行接口8255FinalINTEA:Interrupt Enable,中断允许信号,设置中断允许信号,设置中断允许或屏蔽中断的信号。中断允许或屏蔽中断的信号。INTE没有外部引出没有外部引出端端,由软件对,由软件对C口某位进行置口某位进行置0 0或置或置1 1的操作实现。的操作实现。对对A口,中断允许端是口,中断允许端是PC4,对对B口,是口,是PC2。置置1 1允许中断,置允许中断,置0 0屏蔽中断。屏蔽中断。&清华大学冯博琴微机原理并行接口8255Final端口端口B在在方式方式1 1输入输入下各个联络线的定义与端口下各个联络线的定义与端口A完完全一样,只是占用全一样,只是占用C口的联络线与端口口的联络线与端口A不同。其不同。其中,其中断屏蔽允许位是中,其中断屏蔽允许位是PC2。&清华大学冯博琴微机原理并行接口8255FinalPC02属于属于B口联络线,口联络线,PC35属于属于A口联络线,口联络线,PC6,PC7没有被重新定义,没有被重新定义,仍可作为基本仍可作为基本I/O口使用口使用,属于,属于C口的高半部分,在控制字口的高半部分,在控制字中定义其输入输出特性。中定义其输入输出特性。&清华大学冯博琴微机原理并行接口8255Final工作时序工作时序清华大学冯博琴微机原理并行接口8255Final1)1)数据与数据与STB由外设进入由外设进入82558255,STB为低,通知为低,通知82558255接受数据。接受数据。2)2)8255 8255收到收到STB信号,将信号,将IBF置为置为1 1,通知外设禁止再,通知外设禁止再送入数据,同时接受数据。送入数据,同时接受数据。3)3)STB信号是由外设发出,一般有效信号是由外设发出,一般有效300300ns。4)4)具备具备3 3个条件:个条件:STB为高,为高,IBF为高,为高,INTE为高,为高,82558255向向CPU发中断申请信号,通知发中断申请信号,通知CPU取走数据。取走数据。5)5)CPU接到中断申请后,响应中断,向接到中断申请后,响应中断,向82558255相应端口发相应端口发读信号,读信号,6)6)读信号的下降沿复位中断申请,读信号的下降沿复位中断申请,7)7)上升沿复上升沿复位位82558255向外设发的禁止输入信号,外设得以向向外设发的禁止输入信号,外设得以向82558255发送下发送下一数据。一数据。清华大学冯博琴微机原理并行接口8255Final(4)(4)RD外设外设8255CPU(1)(1)STB(2)(2)IBF(3)(3)INTR清华大学冯博琴微机原理并行接口8255Final3.3.方式方式1 1下下输出操作输出操作的联络信号线定义及时序的联络信号线定义及时序指定了端口指定了端口C的的3 3根线做其联络信号线。根线做其联络信号线。AOBF:Output Buffer Full,输出缓冲器满,输出缓冲器满,8255接到接到CPU送来的数据后,将数据连带这个信号一起送送来的数据后,将数据连带这个信号一起送往外设,往外设,这个信号相当于启动信号,通知外设开这个信号相当于启动信号,通知外设开始接收数据始接收数据。清华大学冯博琴微机原理并行接口8255FinalAACK:外设应答信号,外设送入外设应答信号,外设送入82558255,低有效。有效,低有效。有效时表示外设已接到数据,这个信号可以将时表示外设已接到数据,这个信号可以将OBF变变高,表示高,表示CPU可以进行下一次传输。可以进行下一次传输。INTR:中断请求信号,由中断请求信号,由82558255发发往往CPU,高有效,为高的条件是:高有效,为高的条件是:WR、OBF、ACK和和INTE均为高均为高电平,分别表示为:电平,分别表示为:WR为高:为高:CPU已写完已写完一个数据;一个数据;OBF为高:为高:输出缓冲器已空;输出缓冲器已空;ACK为高:为高:外设应答信号结束。表明外设收到数据;外设应答信号结束。表明外设收到数据;INTE为高:为高:82558255允许中断。允许中断。清华大学冯博琴微机原理并行接口8255FinalINTEA:Interrupt Enable,中断允许信号,设置中断允许信号,设置中断允许或屏蔽中断的信号。中断允许或屏蔽中断的信号。INTE没有外部引出没有外部引出端端,由软件对,由软件对C口某位进行置口某位进行置0 0或置或置1 1的操作实现。的操作实现。对对A口,中断允许端是口,中断允许端是PC6,对对B口,是口,是PC2。置置1 1允许中断,置允许中断,置0 0屏蔽中断。屏蔽中断。清华大学冯博琴微机原理并行接口8255Final端口端口B在在方式方式1 1输出输出下各个联络线的定义与端口下各个联络线的定义与端口A完完全一样,只是占用全一样,只是占用C口的联络线与端口口的联络线与端口A不同。其不同。其中,其中断屏蔽允许位是中,其中断屏蔽允许位是PC2。其占用的联络线与其占用的联络线与输入时一样,但联络线的定义不同。输入时一样,但联络线的定义不同。清华大学冯博琴微机原理并行接口8255FinalPC02属于属于B口联络线,口联络线,PC3,PC6,PC7属于属于A口联络线,口联络线,PC4,PC5没有被重新定义,没有被重新定义,仍可仍可作为基本作为基本I/O口使用口使用,属于,属于C口的高半部分,口的高半部分,在控制字中定义其输入输出特性。在控制字中定义其输入输出特性。清华大学冯博琴微机原理并行接口8255Final输出时序:输出时序:清华大学冯博琴微机原理并行接口8255Final1)1)CPU在在INTR为高的情为高的情况下况下WR信号有效,通过信号有效,通过DB向向82558255写入数据;写入数据;2)2)WR信号的上升沿使信号的上升沿使INTR为低,禁止为低,禁止CPU继续继续向向82558255发送数据;发送数据;3)3)WR信号的上升沿使信号的上升沿使OBF信号有效,通知外设取走信号有效,通知外设取走82558255端口的数据;端口的数据;同时,同时,CPU输入的数据也出现在输入的数据也出现在82558255相相应的端口上应的端口上;4)4)外设取走数据,向外设取走数据,向82558255发送应答信号,发送应答信号,5)5)其下降沿复其下降沿复位位OBF,6)其上升沿复位其上升沿复位INTR,使中断申请信号有效,使中断申请信号有效,82558255得以继续向得以继续向CPU申请中断,输出下一个数据。申请中断,输出下一个数据。清华大学冯博琴微机原理并行接口8255Final外设外设8255CPU(1)(1)WR(2)(2)OBF(3)(3)ACK(4)(4)INTR清华大学冯博琴微机原理并行接口8255FinalD7D6D5D4D3D2D1D0A组组B组组输入:输入:D7D6D5D4D3I/O I/OIBFAINTEAINTRA输出:输出:D7D6D5D4D3OBFAINTEAI/O I/O INTRAD2D1D0INTEBIBFBINTRBD2D1D0INTEBOBFBINTRB状态字中状态字中CPU可以查询的状态可以查询的状态输入是输入是IBF和和INTR,输出输出是是OBF和和INTR,但一般但一般INTR更可靠。如果中断允许更可靠。如果中断允许INTE为为0(0(禁止中断禁止中断),则,则INTR无效。无效。但如果但如果CPU禁止禁止82558255中断,一般在硬件上不接中断,一般在硬件上不接INTR管脚,管脚,而而INTE依然置依然置1 1,供,供CPU查询查询INTR。清华大学冯博琴微机原理并行接口8255Final4.4.方式方式1 1的状态字的状态字在方式在方式1 1下下82558255有固定的状态字,反应了有固定的状态字,反应了当前当前82558255正在工作的各种状态,正在工作的各种状态,即其内部各即其内部各寄存器的状态寄存器的状态,供,供CPU查询,查询,CPU通过读写通过读写82558255的端口的端口C可以获取状态字。可以获取状态字。状态字是状态字是82558255在输入输出过程中由内部自在输入输出过程中由内部自动产生的,动产生的,由由C口读取,与端口口读取,与端口C在芯片外部在芯片外部的引脚无关的引脚无关。清华大学冯博琴微机原理并行接口8255Final8255工作在方式工作在方式1 1控制微型打印机应用实例控制微型打印机应用实例打打印印机机DBSTBBUSYACK分析:分析:PA端口与打印机的数据线相连;端口与打印机的数据线相连;OBF(PC7)与打印机的与打印机的STB相连,启动打印机;相连,启动打印机;ACK(PC6)与打印机的与打印机的ACK相连,打印机取走数据;相连,打印机取走数据;ACK信号通知信号通知82558255数据已被取走,该信号自动使数据已被取走,该信号自动使OBF为高,但由于打印机速度很慢,因此在打印时,会为高,但由于打印机速度很慢,因此在打印时,会发出发出BUSY信号,此时,需查询信号,此时,需查询BUSY为低才可以完成一为低才可以完成一次数据传输。次数据传输。所以用所以用PC4接接BUSY,设置为输入。设置为输入。清华大学冯博琴微机原理并行接口8255Final打打印印机机DBSTBBUSY8255PA7PA0PC7PC4CPUACKPC682558255地址:地址:200200H206H控制字:控制字:1010 11010 1 A8HLEA SI,BUFMOV CX,100MOV DX,206HMOV AL,0A8HOUT DX,ALL1:MOV AL,SI MOV DX,200H OUT DX,AL MOV DX,204HL2:IN AL,DX AND AL,80H JZ L2 L3:IN AL,DX AND AL,10H JNZ L3 INC SI DEC CX JNZ L1 HLT;写控制字写控制字;A口输出数据口输出数据;读状态字读状态字;查看查看OBF是否为是否为高高;读读C口口;查看查看PC4清华大学冯博琴微机原理并行接口8255Final打打印印机机DBSTBBUSY8255PA7PA0PC7PC4CPUACKPC6利用中断申请利用中断申请INTR查询查询地址:地址:8080H83H,控制字控制字A8H允许中断,设置允许中断,设置PC6为为1 1控制字:控制字:0 0110110 1 1 0 0DHLEA SI,BUFMOV CX,100MOV AL,0A8HOUT 83H,ALMOV AL,0DHOUT 83H,ALL1:MOV AL,SI OUT 80H,ALL2:IN AL,82H AND AL,08H JZ L2 L3:IN AL,82 AND AL,10H JNZ L3 INC SI DEC CX JNZ L1 HLT;A口输出数据口输出数据;读状态字读状态字;查看查看INTR是否为高是否为高;读读C口口;查看查看PC4清华大学冯博琴微机原理并行接口8255Final三、方式三、方式2 2 双向应答式输入输出方式双向应答式输入输出方式该方式只能用于端口该方式只能用于端口A,指定指定A口既作入口既作入口又作输出口,可采用中断或查询方式与口又作输出口,可采用中断或查询方式与CPU交换数据,交换数据,C口用口用5 5个高位数位为个高位数位为A口提口提供应答信号。这时,供应答信号。这时,端口端口B仍可以方式仍可以方式0 0或方或方式式1 1工作。工作。清华大学冯博琴微机原理并行接口8255Final输出输出输入输入方式方式2 2的信号联络线实际上是方式的信号联络线实际上是方式1 1输入输出的组合。输入输出的组合。清华大学冯博琴微机原理并行接口8255FinalPA70PC6AACKPC7AOBFPC4ASTBPC5IBFAINTE1INTE2PC3INTRARDWR方方式式2(端端口口A)同样,方式同样,方式2 2的时序实际上也是方式的时序实际上也是方式1 1的输入与输出的时序的输入与输出的时序的组合。当一个外设既可以用作输入也可以用作输出时,的组合。当一个外设既可以用作输入也可以用作输出时,将其接口初始化为方式将其接口初始化为方式2 2,这样输入输出就不用再重新初,这样输入输出就不用再重新初始化了,具体某个时刻是输出操作还是输入操作由程序来始化了,具体某个时刻是输出操作还是输入操作由程序来控制,控制,CPU可以通过中断或查询状态字来控制程序进程。可以通过中断或查询状态字来控制程序进程。清华大学冯博琴微机原理并行接口8255FinalPA70PC6AACKPC7AOBFPC4ASTBPC5IBFAINTE1INTE2PC3INTRARDWR方方式式2(端端口口A)方式方式2 2的输入与输出是一个中断源,因此,在中断处理程的输入与输出是一个中断源,因此,在中断处理程序中还应该查询序中还应该查询82558255的状态字,进一步识别是输入申请中的状态字,进一步识别是输入申请中断还是输出申请中断,来启动不同的处理程序。断还是输出申请中断,来启动不同的处理程序。清华大学冯博琴微机原理并行接口8255Final方式方式2 2的状态字的状态字D7D6D5D4D3OBFAINTE1IBFAINTE2INTRA输入:输入:INTRAINTEAIBFAI/OI/OD3D4D5D6D7输出:输出:INTRAI/OI/OINTEAOBFAD3D4D5D6D7方式方式1 1输出输出输入输入两个中断允许位两个中断允许位INTE1和和INTE2要分别设置。在中服中要要分别设置。在中服中要查询查询OBF和和IBF两位,看是哪个操作在申请中断。两位,看是哪个操作在申请中断。清华大学冯博琴微机原理并行接口8255Final第三节第三节 键盘及键盘及LED显示显示清华大学冯博琴微机原理并行接口8255Final键盘及键盘及LED显示电路显示电路l键盘是微机系统最常使用的输入设备键盘是微机系统最常使用的输入设备l小键盘小键盘:适用于单板机或以微处理器为基础:适用于单板机或以微处理器为基础的仪器,实现数据、地址、命令及指令等的的仪器,实现数据、地址、命令及指令等的输入输入l独立键盘独立键盘:通过:通过5芯电缆与芯电缆与PC微机主机连接微机主机连接清华大学冯博琴微机原理并行接口8255Final简易键盘的工作原理简易键盘的工作原理+5V+5V+5Vp最简单的线性结构键盘最简单的线性结构键盘l每一个引脚连接一个键每一个引脚连接一个键l输入输入0/1反映键是否按下反映键是否按下清华大学冯博琴微机原理并行接口8255Final简易简易键盘的工作原理键盘的工作原理清华大学冯博琴微机原理并行接口8255Final1.扫描法扫描法l先使第先使第0行接低电平,其余行为高电平,然后看行接低电平,其余行为高电平,然后看第第0行是否有键闭合(通过检查列线电位实现)行是否有键闭合(通过检查列线电位实现)l此后,再将第此后,再将第1行接地,然后检测列线是否有变行接地,然后检测列线是否有变为低电位的线。如此往下为低电位的线。如此往下一行一行地扫描一行一行地扫描,直到,直到最后一行最后一行l在扫描过程中,当发现某一行有键闭合时,便在在扫描过程中,当发现某一行有键闭合时,便在扫描中途退出扫描中途退出l通过组合行线和列线可识别此刻按下的是哪一键通过组合行线和列线可识别此刻按下的是哪一键清华大学冯博琴微机原理并行接口8255FinalKEYMOVDX,pt;pt为为8255的控制寄存器地址的控制寄存器地址:MOVAL,82H;方式选择控制字;方式选择控制字OUTDX,ALWAITMOVAL,00H:MOVDX,PTA;所有行线输出低电平,;所有行线输出低电平,OUTDX,ALMOVDX,,PTB;PTB为列线所连接的端口为列线所连接的端口BINAL,DX;读取列值;读取列值ANDAL,0FFHCMPAL,0FFH;看是否有列线处于低电平;看是否有列线处于低电平JEWAIT;否,则没有键闭合,循环等待;否,则没有键闭合,循环等待CALL DELAY;是,则延迟;是,则延迟20ms去抖动去抖动清华大学冯博琴微机原理并行接口8255FinalSCAN:MOVBL,0;键号基值为;键号基值为0MOVDL,0FEH;送扫描初值,只有最低位为;送扫描初值,只有最低位为“0”MOVCL,8;行数计数值;行数计数值ROW:MOVAL,DLOUTPTA,AL;扫描一行;扫描一行ROLDL,1;修改扫描值,使之下一行为;修改扫描值,使之下一行为“0”INAL,PTB;读进列值;读进列值CMPAL,0FFHJNEKEYC;有列线为;有列线为“0”,则进一步取列位置,则进一步取列位置ADDBL,8;没有列线接地,则使键基值;没有列线接地,则使键基值=键基值键基值+列数列数DECCL;是否各行都扫完;是否各行都扫完JNEROW;未扫完,则扫下一行;未扫完,则扫下一行JMPWAIT;已经扫完,没有按键按下,转;已经扫完,没有按键按下,转WAIT等待等待清华大学冯博琴微机原理并行接口8255FinalKEYC:RCRAL,1JNCPROCE;若此列接地,则转至;若此列接地,则转至PROCEINCBL;键号;键号=键基值键基值+列号列号JMPKEYC;若未找到接地的列线,则转;若未找到接地的列线,则转KEYCODE继续继续PROCE;键命令处理,键值在;键命令处理,键值在BL寄存器中寄存器中:;后续处理程序;后续处理程序清华大学冯博琴微机原理并行接口8255Final2.反转法反转法p首先,将行线作为控制线接一个输出端口,将首先,将行线作为控制线接一个输出端口,将列线作为检测线接一个输入端口列线作为检测线接一个输入端口lCPU通过输出端口将行线(控制线)全部设置为通过输出端口将行线(控制线)全部设置为低电平,然后从输入端口读取列线(检测线)低电平,然后从输入端口读取列线(检测线)p然后,将行线和列线的作用互换,即将列线作然后,将行线和列线的作用互换,即将列线作为控制线接输出端口,行线作为检测线接输入为控制线接输出端口,行线作为检测线接输入端口端口l将刚才读得的列值从列线所接端口输出,再读取将刚才读得的列值从列线所接端口输出,再读取行线的输入值行线的输入值p这样,当一个键被按下时,必定可以读得一对这样,当一个键被按下时,必定可以读得一对唯一的行值和列值唯一的行值和列值清华大学冯博琴微机原理并行接口8255Final;设置行线接输出端口,列线接输入端口设置行线接输出端口,列线接输入端口KEY2:MOV AL,00MOV DX,ROWPORTOUT DX,AL;设置行线全为低设置行线全为低MOV DX,COLPORTIN AL,DX;读取列值读取列值CMP AL,0FFHJZ KEY2;无闭合键,循环等待无闭合键,循环等待PUSH AX;有闭合键,保存列值有闭合键,保存列值 PUSH AX清华大学冯博琴微机原理并行接口8255Final;设置行线接输入端口,列线接输出端设置行线接输入端口,列线接输出端MOV DX,COLPORTPOP AXOUT DX,AL;输出列值输出列值MOV DX,ROWPORTIN AL,DX;读取行值读取行值POP BX;组合行列值组合行列值MOV AH,BL;此时,此时,AL行值,行值,AH列值列值键盘扫描程序清华大学冯博琴微机原理并行接口8255FinalMOV SI,OFFSET TABLEMOV DI,OFFSET CHARMOV CX,64;CX键的个数键的个数KEY3:CMP AX,SI;与键值比较与键值比较 JZ KEY4;相同,说明查到相同,说明查到INC SI;不相同,继续比较不相同,继续比较INC SIINC DILOOP KEY3JMP KEY1;全部比较完,仍无相同,说明是重键全部比较完,仍无相同,说明是重键清华大学冯博琴微机原理并行接口8255FinalKEY4:MOV AL,DI;获取键代码送获取键代码送AL;判断按键是否释放,没有则等待判断按键是否释放,没有则等待CALL DELAY;按键释放,延时消除抖动按键释放,延时消除抖动;后续处理后续处理清华大学冯博琴微机原理并行接口8255Final;键盘的行列值表键盘的行列值表TABLEDW 0FEFEH;键键0的行列值(键值)的行列值(键值)DW 0FDFEH;键键1的行列值的行列值DW 0FBFEH;键键2的行列值的行列值;其他键的行列值其他键的行列值;键盘的键代码表键盘的键代码表CHARDB;键键0的代码值的代码值DB;键键1的代码值的代码值;其他键的代码值其他键的代码值清华大学冯博琴微机原理并行接口8255FinalLED数码管及其接口数码管及其接口l发光二极管发光二极管LED是是最简单的显示设备最简单的显示设备l由由7段段LED就可以组成的就可以组成的LED数码管数码管lLED数码管广泛用于单板微型机、微型机控制系数码管广泛用于单板微型机、微型机控制系统及数字化仪器中统及数字化仪器中lLED数码管可以显示内存地址和数据等数码管可以显示内存地址和数据等清华大学冯博琴微机原理并行接口8255Final1.LED数码管的工作原理数码管的工作原理l主要部分是主要部分是7段发光管段发光管l顺时针分别称为顺时针分别称为a、b、c、d、e、f、gl有的产品还附带有一个小数点有的产品还附带有一个小数点hl通过通过7个发光段的不同组合个发光段的不同组合l主要显示主要显示0-9l也可显示也可显示A-F(16进制数)进制数)l还可显示个别特殊字符:、还可显示个别特殊字符:、P hgfedcba清华大学冯博琴微机原理并行接口8255FinalLED数码管的结构数码管的结构共阳极共阳极阳极阳极+5Vabcdefgh阴极阴极abcdefgh共阴极共阴极清华大学冯博琴微机原理并行接口8255Final2.单个单个LED数码管的显示数码管的显示8255PA0PA1PA2PA3PA4PA5PA6PA7驱驱动动电电路路abcdefghhgfedcba清华大学冯博琴微机原理并行接口8255FinalLEDTB DB 3FH,06H,5BH,;显示代码表显示代码表MOV AL,1;AL要显示的数字要显示的数字MOV BX,OFFSET LEDTBXLAT;换码:换码:ALDS:BXALMOV DX,PORTOUT DX,AL;输出显示输出显示清华大学冯博琴微机原理并行接口8255Final3.多个多个LED数码管的显示数码管的显示l8个数码管:用个数码管:用2个个8位输出端口控制位输出端口控制l硬件上用公用的驱动电路来驱动各数码管硬件上用公用的驱动电路来驱动各数码管l软件上用扫描方法实现数码显示软件上用扫描方法实现数码显示清华大学冯博琴微机原理并行接口8255Final动态动态LED显示器原理显示器原理Com8255PA7hgfedcbaPA0PB0PB5ComComComComComhgfedcbahgfedcbahgfedcbahgfedcbahgfedcba清华大学冯博琴微机原理并行接口8255Final例:例:设计两个设计两个82558255,要求,要求:82558255(1 1)地址为)地址为80H-83H80H-83H,A A方式方式0 0、输入、输入、B B方式方式1 1,输出,输出,C7-4C7-4输出,输出,C3-0C3-0输入输入82558255(2 2)地址为)地址为84H-87H84H-87H。A A方式方式1 1、输出、输出、B B方式方式1 1,输入,输入,C7-4C7-4输入,输入,C3-0C3-0输出输出试绘制与试绘制与80888088的的连接电路图连接电路图并写出并写出初始化程序初始化程序清华大学冯博琴微机原理并行接口8255Final地址选择:地址选择:G1 G2B G2A C B A A1 A0A7 M/IO A5+A6 A4 A3 A2 A1 A01 0 0 0 0 0 0 01 0 0 0 0 0 0 11 0 0 0 0 0 1 01 0 0 0 0 0 1 18255(1)Y0=0A口口 80HB口口 81H C口口 82H控制口控制口 83H1 0 0 0 0 1 0 01 0 0 0 0 1 0 11 0 0 0 0 1 1 01 0 0 0 0 1 1 18255(2)Y1=0A口口 84HB口口 85H C口口 86H控制口控制口 87H清华大学冯博琴微机原理并行接口8255Final与与CPUCPU的硬件电路的硬件电路D0-7Y0Y1D0-7M/IOA7A6A5+A4A3A2ABCG2AG2BG1A1A0A1A0CSD0-7A1A0CSWRRDWRRDWRRDRESETRESETRESETA口口B口口A口口B口口C口口C口口 清华大学冯博琴微机原理并行接口8255Final对对8255(1)的工作方式要求:)的工作方式要求:A方式方式0、输入、输入、B方式方式1,输出,输出,C7-4输出,输出,C3-0输入输入控制字为控制字为95H,初始化程序:,初始化程序:MOV AL,95H OUT 83H,AL对对8255(2)的工作方式要求:)的工作方式要求:A方式方式1、输出、输出、B方式方式1,输入,输入,C7-4输入,输入,C3-0输出输出控制字为控制字为AEH,初始化程序:,初始化程序:MOV AL,AEH OUT 87H,AL清华大学冯博琴微机原理并行接口8255Final例:从例:从LED显示开关所拨通的数字显示开关所拨通的数字(00FH)清华大学冯博琴微机原理并行接口8255Final分析:分析:l要从要从A口读入键盘状态,必须为输入方式,口读入键盘状态,必须为输入方式,B口口为输出状态,工作方式为输出状态,工作方式0,所以,所以 控制字为:控制字为:l即为即为90H。l要从要从A口读出状态,向口读出状态,向B口输出数据,必须确定口输出数据,必须确定出端口的地址。出端口的地址。lPA口地址为:口地址为:8008H,PB口地址为:口地址为:800AH,PC口口地址为:地址为:800CH,控制口地址为:,控制口地址为:800EH清华大学冯博琴微机原理并行接口8255Final程序代码:程序代码:DATA SEGMENTTAB DB 3FH,06H,5BH,31HDATA ENDSCODESEGMENTASSUME CS:CODE,DS:DSTAMAIN PROC FARSTART:PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AX清华大学冯博琴微机原理并行接口8255Final程序代码:程序代码:MOV AL,90HMOV DX,800EHOUTDX,ALNEXT:MOV DX,8008HINAL,DXANDAL,0FHMOV BX,OFFSET TABXLATMOV DX,800AHOUTDX,ALMOV CX,0400HDELAY:LOOP DELAYJMPNEXTRETMAINENDPCODEENDSENDSTART 清华大学冯博琴微机原理并行接口8255Final
展开阅读全文