文档详情

清华大学冯博琴微机原理第8章并行接口8255Final

M****1
实名认证
店铺
PPT
1.18MB
约83页
文档ID:575532108
清华大学冯博琴微机原理第8章并行接口8255Final_第1页
1/83

第第8章章 并行接口并行接口8255及应用及应用 第一节第一节 可编程并行接口可编程并行接口82558255 并行接口概念并行接口概念 并行通信就是把一个字符的各数位用几条线并行通信就是把一个字符的各数位用几条线同时进行传输同时进行传输,并行通信的信息传输速度快并行通信的信息传输速度快,信息信息率高用于数据传输要求较高,距离较短的场合率高用于数据传输要求较高,距离较短的场合 并行通信没有对同步和异步传输的严格定义并行通信没有对同步和异步传输的严格定义如果如果CPU用一个时序信号来管理接口和设备的动用一个时序信号来管理接口和设备的动作,这样的并行传输称为作,这样的并行传输称为同步传输同步传输;如果;如果CPU和和接口设备之间只用应答信号联系,这样的传输称接口设备之间只用应答信号联系,这样的传输称为为异步传输异步传输 1.8255的内部结构的内部结构8255是是Intel系列的并行接口芯片,它是可编程的,可以用系列的并行接口芯片,它是可编程的,可以用来设置其工作方式,不需要再附加外部电路来设置其工作方式,不需要再附加外部电路 1.数据端口数据端口 A, B, C::3个个8bit数据端口,有各自的特点数据端口,有各自的特点1) 端口端口A2)1个个8bit的数据的数据输入锁存输入锁存,,一个一个8bit的数据的数据输出锁存输出锁存;;2) 端口端口B3)1个个8bit的数据的数据输入缓冲输入缓冲,,一个一个8bit的数据的数据输出锁存输出锁存;; 3) 端口端口C1个个8bit的数据的数据输入缓冲输入缓冲,一个,一个8bit的数据的数据输出锁存输出锁存;;端口端口C常常被常常被分成分成2个个4位端口位端口,分别作为端口,分别作为端口A和端口和端口B的输入输出的输入输出控制线和状态信号线控制线和状态信号线,与端口,与端口A、、端口端口B配配合使用。

合使用 2. A组控制和组控制和B组控制组控制接受接受CPU对控制端口的命令对控制端口的命令(控制字控制字),可以独立地设置,可以独立地设置8255中中3个端口的工作方式个端口的工作方式3. 数据总线缓冲器数据总线缓冲器双向三态双向三态8bit数据缓冲器,与数据缓冲器,与CPU的数据总线相连,同时的数据总线相连,同时与与8255的内部数据总线相连,接受从的内部数据总线相连,接受从CPU发出的控制字发出的控制字, 输入输出数据输入输出数据, 同时也向同时也向CPU传输传输8255的状态字的状态字4. 读写控制逻辑电路读写控制逻辑电路接受接受CPU发送的读写信号,其中发送的读写信号,其中A0 , A1寻址寻址8255内部寄内部寄存器,共有存器,共有3个数据端口,个数据端口,1个控制端口个控制端口 2. 8255的引脚信号的引脚信号PA7~PA0, PB7~PB0, PC7~PC0与外设相连的独立地址的与外设相连的独立地址的并行扩展口并行扩展口D7~D0::与与CPU的数据总的数据总线相连,传输线相连,传输8255的命令的命令字或字或I/O数据RESET::高有效高有效, 8255内部寄内部寄存器清零存器清零, 3个端口均为输入。

个端口均为输入 ::片选信号片选信号,为低,为低8255开始工作开始工作:为:为低低,读有效读有效,,CPU可以从可以从3个端口读入数据个端口读入数据为:为低低,写有效写有效,,CPU可以向可以向3个端口输出数据,个端口输出数据,同时利用写信号可以向同时利用写信号可以向8255的控制口写控制命的控制口写控制命令,设置令,设置8255的工作方式的工作方式 3. 8255的控制字的控制字控制字分两类,一类是控制并行口的工作方式的命令,控制字分两类,一类是控制并行口的工作方式的命令,一类是专门对一类是专门对C口各位的设置这两类控制字占用一个地口各位的设置这两类控制字占用一个地址,用命令的最高位址,用命令的最高位D7位进行区分位进行区分, 所以控制字的最高位所以控制字的最高位D7称为控制字标志位称为控制字标志位为为1为方式选择字为方式选择字,为为0为端口为端口C设设置字D7D6D5D4D3D2D1D0格式字格式字A组工作组工作方式方式A口口I/OC口高半字口高半字节节I/OB组工作组工作方式方式B口口I/OC口低半字口低半字节节I/O100 方式方式001 方式方式110 方式方式21输入输入0输出输出1 输入输入0 输出输出0 方式方式01 方式方式11 输入输入0 输出输出1 输入输入0 输出输出 A 方式选择控制字方式选择控制字 A1 , A0::8255内部寄存器地址寻址信号,内部寄存器地址寻址信号,8255内部有内部有4个个端口端口,,A,B,C与控制口。

与控制口A1 A0 端口端口00A口口01B口口10C口口11控制口控制口 说明:说明:1) A口有口有3种工作方式种工作方式方式方式0:基本:基本I/O方式;方式;方式方式1:单向选通:单向选通I/O方式,输入或输出只能选一种;方式,输入或输出只能选一种;方式方式2:双向选通:双向选通I/O方式,一次设置后通道既可以做输入方式,一次设置后通道既可以做输入又可以做输出又可以做输出2) 端口端口B有两种工作方式有两种工作方式 即方式即方式0与方式与方式13) A口和口和B口工作在方式口工作在方式0时,时,C口也可同时工作在方式口也可同时工作在方式0,,且且C口高半字节和低半字节可以分别独立工作口高半字节和低半字节可以分别独立工作 4) A口工作在方式口工作在方式1时,时,C口的部分位成为口的部分位成为A口的信号联络口的信号联络线,但线,但B口仍可以独立工作不要求口仍可以独立工作不要求A,B同为输入或输同为输入或输出B口工作于方式口工作于方式1也是一样也是一样5) A口工作于方式口工作于方式2,,C口的大部分位线用于口的大部分位线用于A口的信号联口的信号联络线,络线,B口仍可以独立工作于方式口仍可以独立工作于方式0或方式或方式1。

D7D6D5D4D3D2D1D0格式格式字字A组工作组工作方式方式A口口I/OC口高半字口高半字节节I/OB组工作组工作方式方式B口口I/OC口低半字口低半字节节I/O100 方式方式001 方式方式110 方式方式21输入输入0输出输出1 输入输入0 输出输出0 方式方式01 方式方式11 输入输入0 输出输出1 输入输入0 输出输出一系统采用一系统采用8255作作I/O接口,其控制口的地址为接口,其控制口的地址为8BH,,将将端口端口A设置为方式设置为方式0输入,端口输入,端口B B设置为方式设置为方式1 1输出,则输出,则A口口的地址为的地址为_____ ,,B口地址为口地址为_____,控制字为,控制字为_____8BH 1000 1011 1000 1000 88H 1000 1001 89H88H89HD7D6D5D4D3D2D1D01001010094H J1::A口,方式口,方式0,输出,输出 B口,方式口,方式0,输入,输入 C口高,输出;口高,输出; C 口低,输入口低,输入 J2::A口,方式口,方式0,输入,输入 B口,方式口,方式1,输出,输出 C口高,输出口高,输出 J1,,J2地址地址A7A6A5A4A3A2A1A0J1J21×0010088H~8EH1×0000080H~86H00 D7D6D5D4D3D2D1D0格式格式字字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,输出,输出; B口,方式口,方式0,输入,输入; C口高,输出口高,输出 ; C 口低,输入口低,输入 地址地址: 88H-8EH控制字:控制字:D7D6D5D4D3D2D1D01000001183H D7D6D5D4D3D2D1D0格式格式字字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,输入输入; B口口,方式方式1, 输出输出; C口高口高,输出输出 地址:地址:80H-86H控制字:控制字:D7D6D5D4D3D2D1D01001010×94H J1::A口,方式口,方式0,输出,输出 B口,方式口,方式0,输入,输入 C口高,输出口高,输出 C 口低,输入口低,输入地址:地址:88H-8EH,,控制字:控制字:83H J2::A口,方式口,方式0,输入,输入 B口,方式口,方式1,输出,输出 C口高,输出口高,输出 地址:地址:80H-86H,,控制字:控制字:94HMOV AL, 83HOUT 8EH, AL ;J1控制口控制口MOV AL, 94HOUT 86H, AL ;J2控制口控制口 B 端口端口C口各位设置字口各位设置字D7D6D5D4D3D2D1D0格式字格式字×××位选择位选择数值数值0000 PC0001 PC1010 PC2011 PC3100 PC4101 PC5110 PC6111 PC71/0例:例:07H 00000111,,即将即将 PC3置置1。

说明:说明:1) 端口端口C置置0/置置1控制字尽管是对端口控制字尽管是对端口C进行操作,但此控进行操作,但此控制字必须写入控制口,而不是写入端口制字必须写入控制口,而不是写入端口C2) 一个控制字只能对一位进行操作一个控制字只能对一位进行操作J1::A口,方式口,方式0,输出,输出 B口,方式口,方式0,输入,输入 C口高口高, 输出输出,C 口低口低,输入输入 地址地址: 88H-8EH, 控制字控制字: 83H C口口PC7置置1,, PC3置置0MOV AL, 0FH ;00001111OUT 8EH, AL MOV AL, 06H ;00000110OUT 8EH, AL 第二节第二节 82558255的工作方式的工作方式 一、方式一、方式0 基本输入输出方式基本输入输出方式实际上是实际上是4个端口,个端口,A、、B、、C高、高、C低,可以独立地任意低,可以独立地任意组合,一共可有组合,一共可有16种种组合方式组合方式输入时序输入时序 1) CPU在发出读信号在发出读信号前,先发出地址信号,前,先发出地址信号,使使8255的片选及各寄的片选及各寄存器有效。

存器有效2) 在在CPU发出读信号之前,外设已将欲输入的数据送入发出读信号之前,外设已将欲输入的数据送入8255的数据总线缓冲器的数据总线缓冲器3) 8255数据总线缓冲器中的数据必须保持到读信号消失数据总线缓冲器中的数据必须保持到读信号消失后才结束后才结束4) 读脉冲宽度至少大于读脉冲宽度至少大于300ns5) 在整个输入数据期间,地址信号保持有效在整个输入数据期间,地址信号保持有效 输出时序输出时序1) 地址信号必须先有效;地址信号必须先有效;2) 写脉冲大于写脉冲大于400ns;;3) 数据在写信号结束前有效,且能在写信号结束后保持数据在写信号结束前有效,且能在写信号结束后保持一段时间;一段时间;4) 在写信号结束后,不超过在写信号结束后,不超过350ns,,数据出现在数据出现在8255的输的输出锁存器中出锁存器中 在方式在方式0中,可利用中,可利用C口的各位信号线做应答信号,配合口的各位信号线做应答信号,配合A, B口的输入输出操作口的输入输出操作图中图中, 8255地址为地址为02A0H~02A6H根据开关情况来控制根据开关情况来控制LED开关闭合灯亮开关闭合灯亮),写出控制程序。

写出控制程序分析:分析:A口输入,方式口输入,方式0;;B口输出,方式口输出,方式0控制字:控制字:1 00 1 × 0 0 × 90HMOV DX, 2A6HMOV AL, 90H OUT DX, AL MOV DX, 2A0HIN AL, DXMOV DX, 2A2H OUT DX, AL 打印机工作顺序打印机工作顺序(过程过程)1) 数据与数据与STB信号一起送入打印机,信号一起送入打印机,STB相当于启动信相当于启动信号,启动打印机接受数据;号,启动打印机接受数据;2) 打印机处理数据,这时打印机处理数据,这时BUSY为高,表示为高,表示“忙忙”;;3) 处理完数据,处理完数据,BUSY为为0,且,且ACK为低,应答主机为低,应答主机 CPU经经8255与打印机连接,与打印机连接,8255地址:地址:80H~83H,,打印从打印从BUF缓冲区开始的缓冲区开始的100个字符个字符分析:分析:8255A口方式口方式0输出,输出,C口高半位输出,口高半位输出,C口低半位口低半位输入,控制字:输入,控制字:1 00 0 0 × ×181H步骤:步骤:1) 查看查看PC2;; 2) 发送发送PA; 3) 发送发送PC7。

8255地址地址80H~83H,,控制字控制字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;下一个字符下一个字符; 忙忙, 等待等待 二、方式二、方式1 选通输入输出方式选通输入输出方式(应答方式应答方式)1. 特点特点1) A口或口或B口工作在方式口工作在方式1时,时,C口各位做联络应答信号线,口各位做联络应答信号线,其其各位的含义是固定的各位的含义是固定的,不可用软件改变;,不可用软件改变;2) 各位联络信号都有固定的时序各位联络信号都有固定的时序(自动进行自动进行)3) 在输入输出操作中,产生固定格式的状态字,这些状态在输入输出操作中,产生固定格式的状态字,这些状态信息可供信息可供CPU查询或向查询或向CPU申请中断。

申请中断CPU从端口从端口C中读中读取状态字取状态字4) 方式方式1为单向传送,初始化后只能向一个方向上传送,为单向传送,初始化后只能向一个方向上传送,若要反方向传送必须再次初始化若要反方向传送必须再次初始化 2. 方式方式1下下输入操作输入操作的联络信号线定义及时序的联络信号线定义及时序指定了指定了C口的口的3根线作为根线作为A口的联络线口的联络线 外设送入的外设送入的选通信号选通信号,与外设数据一起送入,相,与外设数据一起送入,相当于当于8255的的启动信号启动信号IBFA: Input Buffer Full,输入输入缓冲器满,高有效,缓冲器满,高有效,由由8255发发往外设往外设,表示,表示8255收到数据,收到数据,但未被但未被CPU取走,取走,通知外设不通知外设不可再送数据;可再送数据;当其为当其为低时,表示低时,表示CPU已取已取走数据,允许外设送新的数据走数据,允许外设送新的数据 INTRA: 8255向向CPU申请中断,高有效,请求申请中断,高有效,请求CPU中断INTR为高有为高有3个条件个条件: 1) STB为高为高,即数据已打入,即数据已打入8255;; 2) IBF为高为高,即,即8255已收到数据;已收到数据;3) INTE(中断请求允许中断请求允许)为高为高,即,即8255允许以中断方式应答。

允许以中断方式应答 INTRA为高,通知为高,通知CPU可以取可以取8255口中的数口中的数 INTEA: Interrupt Enable,,中断允许信号,设置中断允许信号,设置中断允许或屏蔽中断的信号中断允许或屏蔽中断的信号INTE没有外部引出没有外部引出端端,由软件对,由软件对C口某位进行置口某位进行置0或置或置1的操作实现的操作实现对对A口,中断允许端是口,中断允许端是PC4,,对对B口,是口,是PC2置置1允许中断,置允许中断,置0屏蔽中断屏蔽中断 端口端口B在在方式方式1输入输入下各个联络线的定义与端口下各个联络线的定义与端口A完完全一样,只是占用全一样,只是占用C口的联络线与端口口的联络线与端口A不同其中,其中断屏蔽允许位是中,其中断屏蔽允许位是PC2 PC0~2属于属于B口联络线,口联络线,PC3~5属于属于A口联络线,口联络线,PC6,,PC7没有被重新定义,没有被重新定义,仍可作为基本仍可作为基本I/O口使用口使用,属于,属于C口的高半部分,在控制字口的高半部分,在控制字中定义其输入输出特性中定义其输入输出特性 工作时序工作时序 1) 数据与数据与STB由外设进入由外设进入8255,,STB为低,通知为低,通知8255接受数据。

接受数据2) 8255收到收到STB信号,将信号,将IBF置为置为1,通知外设禁止再,通知外设禁止再送入数据,同时接受数据送入数据,同时接受数据3) STB信号是由外设发出,一般有效信号是由外设发出,一般有效300ns4) 具备具备3个条件:个条件:STB为高,为高,IBF为高,为高,INTE为高,为高,8255向向CPU发中断申请信号,通知发中断申请信号,通知CPU取走数据取走数据5) CPU接到中断申请后,响应中断,向接到中断申请后,响应中断,向8255相应端口发读相应端口发读信号,信号,6) 读信号的下降沿复位中断申请,读信号的下降沿复位中断申请,7) 上升沿复位上升沿复位8255向外设发的禁止输入信号,外设得以向向外设发的禁止输入信号,外设得以向8255发送下一发送下一数据 (4) RD外设外设8255CPU(1) STB(2) IBF(3) INTR 3. 方式方式1下下输出操作输出操作的联络信号线定义及时序的联络信号线定义及时序指定了端口指定了端口C的的3根线做其联络信号线根线做其联络信号线 Output Buffer Full,输出缓冲器满,输出缓冲器满,8255接到接到CPU送来的数据后,将数据连带这个信号一起送送来的数据后,将数据连带这个信号一起送往外设,往外设,这个信号相当于启动信号,通知外设开这个信号相当于启动信号,通知外设开始接收数据始接收数据。

: 外设应答信号,外设送入外设应答信号,外设送入8255,低有效有效,低有效有效时表示外设已接到数据,这个信号可以将时表示外设已接到数据,这个信号可以将OBF变变高,表示高,表示CPU可以进行下一次传输可以进行下一次传输INTR::中断请求信号,由中断请求信号,由8255发发往往CPU,,高有效,为高的条件是:高有效,为高的条件是:WR、、OBF、、ACK和和INTE均为高均为高电平,分别表示为:电平,分别表示为:WR为高:为高:CPU已写完已写完一个数据;一个数据;OBF为高:为高:输出缓冲器已空;输出缓冲器已空;ACK为高:为高:外设应答信号结束表明外设收到数据;外设应答信号结束表明外设收到数据;INTE为高:为高:8255允许中断允许中断 INTEA: Interrupt Enable,,中断允许信号,设置中断允许信号,设置中断允许或屏蔽中断的信号中断允许或屏蔽中断的信号INTE没有外部引出没有外部引出端端,由软件对,由软件对C口某位进行置口某位进行置0或置或置1的操作实现的操作实现对对A口,中断允许端是口,中断允许端是PC6,,对对B口,是口,是PC2置置1允许中断,置允许中断,置0屏蔽中断。

屏蔽中断 端口端口B在在方式方式1输出输出下各个联络线的定义与端口下各个联络线的定义与端口A完完全一样,只是占用全一样,只是占用C口的联络线与端口口的联络线与端口A不同其中,其中断屏蔽允许位是中,其中断屏蔽允许位是PC2其占用的联络线与其占用的联络线与输入时一样,但联络线的定义不同输入时一样,但联络线的定义不同 PC0~2属于属于B口联络线,口联络线,PC3,,PC6,,PC7属于属于A口联络线,口联络线,PC4,,PC5没有被重新定义,没有被重新定义,仍可仍可作为基本作为基本I/O口使用口使用,属于,属于C口的高半部分,口的高半部分,在控制字中定义其输入输出特性在控制字中定义其输入输出特性 输出时序:输出时序: 1) CPU在在INTR为高的情况为高的情况下下WR信号有效,通过信号有效,通过DB向向8255写入数据;写入数据;2) WR信号的上升沿使信号的上升沿使INTR为低,禁止为低,禁止CPU继续继续向向8255发送数据;发送数据;3) WR信号的上升沿使信号的上升沿使OBF信号有效,通知外设取走信号有效,通知外设取走8255端口的数据;端口的数据;同时,同时,CPU输入的数据也出现在输入的数据也出现在8255相应的相应的端口上端口上;;4) 外设取走数据,向外设取走数据,向8255发送应答信号,发送应答信号,5) 其下降沿复位其下降沿复位OBF,,6) 其上升沿复位其上升沿复位INTR,,使中断申请信号有效,使中断申请信号有效,8255得以继续向得以继续向CPU申请中断,输出下一个数据。

申请中断,输出下一个数据 外设外设8255CPU(1)WR(2) OBF(3) ACK(4) INTR D7D6D5D4D3D2D1D0A组组B组组输入:输入:D7D6D5D4D3I/O I/OIBFAINTEAINTRA输出:输出:D7D6D5D4D3OBFAINTEAI/O I/O INTRAD2D1D0INTEBIBFBINTRBD2D1D0INTEBOBFBINTRB状态字中状态字中CPU可以查询的状态可以查询的状态输入是输入是IBF和和INTR,,输出输出是是OBF和和INTR,,但一般但一般INTR更可靠如果中断允许更可靠如果中断允许INTE为为0(禁止中断禁止中断),则,则INTR无效但如果但如果CPU禁止禁止8255中断,一般在硬件上不接中断,一般在硬件上不接INTR管脚,管脚,而而INTE依然置依然置1,供,供CPU查询查询INTR 4. 方式方式1的状态字的状态字在方式在方式1下下8255有固定的状态字,反应了有固定的状态字,反应了当前当前8255正在工作的各种状态,正在工作的各种状态,即其内部各即其内部各寄存器的状态寄存器的状态,供,供CPU查询,查询,CPU通过读写通过读写8255的端口的端口C可以获取状态字。

可以获取状态字状态字是状态字是8255在输入输出过程中由内部自在输入输出过程中由内部自动产生的,动产生的,由由C口读取,与端口口读取,与端口C在芯片外部在芯片外部的引脚无关的引脚无关 8255工作在方式工作在方式1控制微型打印机应用实例控制微型打印机应用实例分析:分析:PA端口与打印机的数据线相连;端口与打印机的数据线相连;OBF(PC7)与打印机的与打印机的STB相连,启动打印机;相连,启动打印机;ACK(PC6)与打印机的与打印机的ACK相连,打印机取走数据;相连,打印机取走数据;ACK信号通知信号通知8255数据已被取走,该信号自动使数据已被取走,该信号自动使OBF为高,但由于打印机速度很慢,因此在打印时,会为高,但由于打印机速度很慢,因此在打印时,会发出发出BUSY信号,此时,需查询信号,此时,需查询BUSY为低才可以完成一为低才可以完成一次数据传输次数据传输所以用所以用PC4接接BUSY,,设置为输入设置为输入 8255地址:地址:200H~206H控制字:控制字:1010 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 利用中断申请利用中断申请INTR查询查询地址:地址:80H~83H, 控制字控制字A8H允许中断,设置允许中断,设置PC6为为1控制字:控制字:0×××110 1 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 三、方式三、方式2 双向应答式输入输出方式双向应答式输入输出方式该方式只能用于端口该方式只能用于端口A,,指定指定A口既作入口既作入口又作输出口,可采用中断或查询方式与口又作输出口,可采用中断或查询方式与CPU交换数据,交换数据,C口用口用5个高位数位为个高位数位为A口提口提供应答信号。

这时,供应答信号这时,端口端口B仍可以方式仍可以方式0或方或方式式1工作 输出输出输入输入方式方式2的信号联络线实际上是方式的信号联络线实际上是方式1输入输出的组合输入输出的组合 同样,方式同样,方式2的时序实际上也是方式的时序实际上也是方式1的输入与输出的时序的输入与输出的时序的组合当一个外设既可以用作输入也可以用作输出时,的组合当一个外设既可以用作输入也可以用作输出时,将其接口初始化为方式将其接口初始化为方式2,这样输入输出就不用再重新初,这样输入输出就不用再重新初始化了,具体某个时刻是输出操作还是输入操作由程序来始化了,具体某个时刻是输出操作还是输入操作由程序来控制,控制,CPU可以通过中断或查询状态字来控制程序进程可以通过中断或查询状态字来控制程序进程 方式方式2的输入与输出是一个中断源,因此,在中断处理程的输入与输出是一个中断源,因此,在中断处理程序中还应该查询序中还应该查询8255的状态字,进一步识别是输入申请中的状态字,进一步识别是输入申请中断还是输出申请中断,来启动不同的处理程序断还是输出申请中断,来启动不同的处理程序 方式方式2的状态字的状态字D7D6D5D4D3OBFAINTE1IBFAINTE2INTRA输入:输入:INTRAINTEAIBFAI/OI/OD3D4D5D6D7输出:输出:INTRAI/OI/OINTEAOBFAD3D4D5D6D7方式方式1输出输出输入输入两个中断允许位两个中断允许位INTE1和和INTE2要分别设置。

在中服中要要分别设置在中服中要查询查询OBF和和IBF两位,看是哪个操作在申请中断两位,看是哪个操作在申请中断 第三节第三节 键盘及键盘及LED显示显示 键盘及键盘及LED显示电路显示电路l键盘是微机系统最常使用的输入设备键盘是微机系统最常使用的输入设备l小键盘小键盘:适用于单板机或以微处理器为基础:适用于单板机或以微处理器为基础的仪器,实现数据、地址、命令及指令等的的仪器,实现数据、地址、命令及指令等的输入输入l独立键盘独立键盘:通过:通过5芯电缆与芯电缆与PC微机主机连接微机主机连接 简易键盘的工作原理简易键盘的工作原理+5V+5V+5Vp最简单的线性结构键盘最简单的线性结构键盘l每一个引脚连接一个键每一个引脚连接一个键l输入输入0/1反映键是否按下反映键是否按下 简易简易键盘的工作原理键盘的工作原理 1. 扫描法扫描法l先使第先使第0行接低电平,其余行为高电平,然后看行接低电平,其余行为高电平,然后看第第0行是否有键闭合(通过检查列线电位实现)行是否有键闭合(通过检查列线电位实现)l此后,再将第此后,再将第1行接地,然后检测列线是否有变行接地,然后检测列线是否有变为低电位的线。

如此往下为低电位的线如此往下一行一行地扫描一行一行地扫描,直到,直到最后一行最后一行l在扫描过程中,当发现某一行有键闭合时,便在在扫描过程中,当发现某一行有键闭合时,便在扫描中途退出扫描中途退出l通过组合行线和列线可识别此刻按下的是哪一键通过组合行线和列线可识别此刻按下的是哪一键 KEYMOVDX,,pt;;pt为8255的控制寄存器地址的控制寄存器地址::MOVAL,,82H;方式;方式选择控制字控制字OUTDX,,ALWAITMOVAL,,00H:MOVDX,,PTA;所有行;所有行线输出低出低电平,平,OUTDX,,ALMOVDX,,,PTB;;PTB为列列线所所连接的端口接的端口BINAL,,DX;;读取列取列值ANDAL,,0FFHCMPAL,,0FFH;看是否有列;看是否有列线处于低于低电平平JEWAIT;否,;否,则没有没有键闭合,循合,循环等待等待CALL DELAY;是,;是,则延延迟20ms去抖去抖动 SCAN: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等待等待 KEYC:RCRAL,,1JNCPROCE;若此列接地,;若此列接地,则转至至PROCEINCBL;;键号号=键基基值+列号列号JMPKEYC;若未找到接地的列;若未找到接地的列线,,则转KEYCODE继续PROCE…;;键命令命令处理,理,键值在在BL寄存器中寄存器中:…;后;后续处理程序理程序 2. 反转法反转法p首先,将行线作为控制线接一个输出端口,将首先,将行线作为控制线接一个输出端口,将列线作为检测线接一个输入端口列线作为检测线接一个输入端口lCPU通过输出端口将行线(控制线)全部设置为通过输出端口将行线(控制线)全部设置为低电平,然后从输入端口读取列线(检测线)低电平,然后从输入端口读取列线(检测线)p然后,将行线和列线的作用互换,即将列线作然后,将行线和列线的作用互换,即将列线作为控制线接输出端口,行线作为检测线接输入为控制线接输出端口,行线作为检测线接输入端口端口l将刚才读得的列值从列线所接端口输出,再读取将刚才读得的列值从列线所接端口输出,再读取行线的输入值行线的输入值p这样,当一个键被按下时,必定可以读得一对这样,当一个键被按下时,必定可以读得一对唯一的行值和列值唯一的行值和列值 ……;设置行线接输出端口,列线接输入端口设置行线接输出端口,列线接输入端口KEY2:MOV AL,00MOV DX,ROWPORTOUT DX,AL;设置行线全为低设置行线全为低MOV DX,COLPORTIN AL,DX ;读取列值读取列值CMP AL,0FFHJZ KEY2;无闭合键,循环等待无闭合键,循环等待PUSH AX ;有闭合键,保存列值有闭合键,保存列值 PUSH AX ……;设置行线接输入端口,列线接输出端设置行线接输入端口,列线接输出端MOV DX,COLPORTPOP AXOUT DX,AL;输出列值输出列值MOV DX,ROWPORTIN AL,DX;读取行值读取行值POP BX ;组合行列值组合行列值MOV AH,BL;此时,此时,AL=行值,=行值,AH=列值=列值键盘扫描程序 MOV SI,OFFSET TABLEMOV DI,OFFSET CHARMOV CX,64;CX=键的个数=键的个数KEY3:CMP AX,[SI] ;与键值比较与键值比较 JZ KEY4;相同,说明查到相同,说明查到INC SI;不相同,继续比较不相同,继续比较INC SIINC DILOOP KEY3JMP KEY1;全部比较完,仍无相同,说明是重键全部比较完,仍无相同,说明是重键 KEY4:MOV AL,[DI];获取键代码送获取键代码送AL……;判断按键是否释放,没有则等待判断按键是否释放,没有则等待CALL DELAY;按键释放,延时消除抖动按键释放,延时消除抖动…… ;后续处理后续处理 ;键盘的行列值表键盘的行列值表TABLEDW 0FEFEH;键键0的行列值(键值)的行列值(键值)DW 0FDFEH;键键1的行列值的行列值DW 0FBFEH;键键2的行列值的行列值…… ;其他键的行列值其他键的行列值;键盘的键代码表键盘的键代码表CHARDB ……;键键0的代码值的代码值DB ……;键键1的代码值的代码值…… ;其他键的代码值其他键的代码值 LED数码管及其接口数码管及其接口l发光二极管发光二极管LED是是最简单的显示设备最简单的显示设备l由由7段段LED就可以组成的就可以组成的LED数码管数码管lLED数码管广泛用于单板微型机、微型机控制系数码管广泛用于单板微型机、微型机控制系统及数字化仪器中统及数字化仪器中lLED数码管可以显示内存地址和数据等数码管可以显示内存地址和数据等 1. LED数码管的工作原理数码管的工作原理l主要部分是主要部分是7段发光管段发光管l顺时针分别称为顺时针分别称为a、、b、、c、、d、、e、、f、、gl有的产品还附带有一个小数点有的产品还附带有一个小数点hl通过通过7个发光段的不同组合个发光段的不同组合l主要显示主要显示0-9l也可显示也可显示A-F((16进制数)进制数)l还可显示个别特殊字符:-、还可显示个别特殊字符:-、P hgfedcba LED数码管的结构数码管的结构共阳极共阳极阳极阳极+5Vabcdefgh阴极阴极abcdefgh共阴极共阴极 2. 单个单个LED数码管的显示数码管的显示8255PA0PA1PA2PA3PA4PA5PA6PA7驱驱动动电电路路abcdefghhgfedcba LEDTB DB 3FH,06H,5BH,……;显示代码表显示代码表……MOV AL,1;AL←要显示的数字要显示的数字MOV BX,OFFSET LEDTBXLAT ;换码:换码:AL←DS:[BX++AL]MOV DX,PORTOUT DX,AL;输出显示输出显示 3. 多个多个LED数码管的显示数码管的显示l8个数码管:用个数码管:用2个个8位输出端口控制位输出端口控制l硬件上用公用的驱动电路来驱动各数码管硬件上用公用的驱动电路来驱动各数码管l软件上用扫描方法实现数码显示软件上用扫描方法实现数码显示 动态动态LED显示器原理显示器原理Com8255PA7hgfedcbaPA0PB0PB5ComComComComComhgfedcbahgfedcbahgfedcbahgfedcbahgfedcba 例:例:设计两个设计两个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的的连接电路图连接电路图并写出并写出初始化程序初始化程序 地址选择:地址选择: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 与与CPUCPU的硬件电路的硬件电路D0-7Y0Y1D0-7M/IOA7A6A5+A4A3A2ABCG2AG2BG1A1A0A1A0CSD0-7A1A0CSWRRDWRRDWRRDRESETRESETRESETA口口B口口A口口B口口C口口C口口 对对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 例:从例:从LED显示开关所拨通的数字显示开关所拨通的数字(0~0FH) 分析:分析:l要从要从A口读入键盘状态,必须为输入方式,口读入键盘状态,必须为输入方式,B口口为输出状态,工作方式为输出状态,工作方式0,所以,所以 控制字为:控制字为: l10010000  即为10010000  即为90H。

l要从要从A口读出状态,向口读出状态,向B口输出数据,必须确定口输出数据,必须确定出端口的地址出端口的地址lPA口地址为:口地址为:8008H,,PB口地址为:口地址为:800AH ,,PC口口地址为:地址为:800CH,控制口地址为:,控制口地址为:800EH 程序代码:程序代码:DATA SEGMENTTAB DB 3FH,,06H,,5BH,,…31HDATA ENDSCODESEGMENTASSUME CS:CODE,,DS:DSTAMAIN PROC FARSTART::PUSH DSMOV AX,,0PUSH AXMOV AX,,DATAMOV DS,,AX 程序代码:程序代码:MOV AL,,90HMOV DX,,800EHOUTDX,,ALNEXT :MOV DX,,8008HINAL,,DXANDAL,,0FHMOV BX,,OFFSET TABXLATMOV DX,,800AHOUTDX,,AL MOV CX,,0400HDELAY::LOOP DELAYJMPNEXTRETMAINENDPCODEENDSENDSTART 。

下载提示
相似文档
正为您匹配相似的精品文档
相关文档