微机接口8255_第1页
微机接口8255_第2页
微机接口8255_第3页
微机接口8255_第4页
微机接口8255_第5页
已阅读5页,还剩107页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 并行接口并行接口教学重点n 8255A的工作方式和编程的工作方式和编程n 8255A的应用的应用n 简易键盘的扫描程序简易键盘的扫描程序n LED数码管的多位显示数码管的多位显示并行数据传输方式n计算机的字长,通常是8位、16位或32位为传输单位,一次传送一个字长的数据。并行接口电路中每个信息位有自己的传输线,一个数据各位可并行传送,速度快,控制简单。n由于电气特性的限制,传输距离不能太长。适合于外部设备与微机之间进行近距离、大量和快速的信息交换n例如:微机与并行接口打印机、磁盘驱动器n微机系统中最基本的信息交换方法n例如:系统板上各部件之间,接口电路板上各部件之间 并行接口芯片8255An

2、具有多种功能的可编程并行接口芯片具有多种功能的可编程并行接口芯片n最基本的接口电路:三态缓冲器和锁存器最基本的接口电路:三态缓冲器和锁存器n与与CPU间、与外设间的接口电路:状态寄存间、与外设间的接口电路:状态寄存器和控制寄存器器和控制寄存器n还有端口的译码和控制电路、中断控制电路还有端口的译码和控制电路、中断控制电路n分分3个端口,共个端口,共24个外设引脚个外设引脚n共三种输入输出工作方式共三种输入输出工作方式基本特性:n三个独立的8位I/O端口: A口、B口、C口。nA口有输入、输出锁存器及输出缓冲器。n三种工作方式nC口的8条线分为两组,每组4条线,分别作为A口与B口在方式1、2时的控

3、制信号线。nC口的8条线可独立进行置1/置0的操作。nA口、B口、C口及控制字共占4个端口号。 8255A的内部结构和引脚数据数据总线总线缓冲器缓冲器内部控制线内部控制线内部数据线内部数据线D0D7A组组控制控制A组组端口端口AA组组端口端口C上部上部B组组控制控制B组组端口端口BB组组端口端口C下部下部读写读写控制控制逻辑逻辑PC0PC3PB0PB7PC4PC7PA0PA7RDWRA0A1CSRESET1. 外设数据端口n端口端口A:PA0PA7n支持工作方式支持工作方式0、1、2n常作数据端口,功能最强大常作数据端口,功能最强大n端口端口B:PB0PB7n支持工作方式支持工作方式0、1n常

4、作数据端口常作数据端口n端口端口C:PC0PC7n仅支持工作方式仅支持工作方式0nA组控制高组控制高4位位PC4PC7nB组控制低组控制低4位位PC0PC3n可作数据、状态和控制端口可作数据、状态和控制端口n分两个分两个4位,每位可独立操作位,每位可独立操作n控制最灵活,最难掌握控制最灵活,最难掌握2. 面向系统总线的接口信号CS* A1 A0读操作读操作RD*写操作写操作WR*0 0 00 0 10 1 00 1 1读端口读端口A读端口读端口B读端口读端口C非法非法写端口写端口A写端口写端口B写端口写端口C写控制字写控制字nD0 D7数据线数据线A0 A1地址线地址线nRD*读信号读信号WR

5、*写信号写信号nCS*片选信号片选信号RESET复位信号复位信号nPA0PA7:端口端口A的输入输出线的输入输出线nPB0PB7:端口端口B的输入输出线的输入输出线nPC0PA7:端口端口C的输入输出线的输入输出线3. 面向I/O设备的接口信号 8255A的编程命令n初始化编程:一个方式控制字初始化编程:一个方式控制字nI/O地址:地址:A1A011n工作过程中:通过数据端口对外设数据工作过程中:通过数据端口对外设数据进行读写进行读写n数据读写利用端口数据读写利用端口A、B和和C的的I/O地址,地址,A1A0依次等于依次等于00、01、10nIBM PC/XT机上,端口机上,端口A、B、C和控

6、制和控制端口的端口的I/O地址为地址为60H、61H、62H和和63H1. 工作方式控制字: 写入方式控制字:示例n要求:要求:nA端口:方式端口:方式1输入输入nC端口上半部:输出,端口上半部:输出,C口下半部:输入口下半部:输入nB端口:方式端口:方式0输出输出n方式控制字:方式控制字:10110001B或或B1Hn初始化的程序段:初始化的程序段:mov dx,0ffffh;假设控制端口为假设控制端口为FFFFHmov al,0b1h;方式控制字方式控制字out dx,al;送到控制端口送到控制端口练习题:n 设设8255A的的4个地址号为个地址号为60H63H,试编写下列,试编写下列各种

7、情况下的初始化程序。各种情况下的初始化程序。n(1) 将将A组和组和B组设置成方式组设置成方式0,A口,口,B口为输入,口为输入,C口为输出。口为输出。n(2) 将将A组工作方式设置成方式组工作方式设置成方式2,B组为方式组为方式1,B口作为输出。口作为输出。n(3) 将将A口,口,B口均设置成方式口均设置成方式1输入,输入,PC6和和PC1为输出为输出n(4) A口工作在方式口工作在方式1,输入;,输入;B口工作在方式口工作在方式0,输出;输出;C口高口高4位配合位配合A口工作,低口工作,低4位为输入。位为输入。(1)MOV AL,10010010BOUT 63H,AL(2)MOV AL,1

8、1000100BOUT 63H,AL(3)MOV AL,10110110BOUT 63H,AL(4)MOV AL,10110001BOUT 63H,AL2.端口C的位控制字n位控制字写入控制端口位控制字写入控制端口n特别便于置位特别便于置位/复位复位8255内部中断允许触发内部中断允许触发器器INTE 8255A的工作方式n方式方式0:基本输入输出方式基本输入输出方式n适用于无条件传送和查询方式的接口电路适用于无条件传送和查询方式的接口电路n方式方式1:选通输入输出方式选通输入输出方式n适用于查询和中断方式的接口电路适用于查询和中断方式的接口电路n方式方式2:双向选通传送方式双向选通传送方式n

9、适用于与双向传送数据的外设适用于与双向传送数据的外设n适用于查询和中断方式的接口电路适用于查询和中断方式的接口电路方式0例题1n已知已知8255的的A口外接口外接8个发光二极管,个发光二极管,B口的口的PB0外接一个按键,外接一个按键,A,B组均工作在方式组均工作在方式0,试编写一段程序,循环检测按键是否按下,试编写一段程序,循环检测按键是否按下,若按下(低电平有效),则把若按下(低电平有效),则把8个二极管点亮,个二极管点亮,否则全灭。否则全灭。 接口电路如图所示接口电路如图所示 解:解:端口地址分别为端口地址分别为60H,61H,62H,63H。 8255方式控制字为方式控制字为10000

10、010B=82H编程:MOV AL,82HOUT 63H,AL;写控制字AAA:IN AL,61HTEST AL,01H;查询PB0JNZ BBB;PB0=则转BBBMOV AL,0FFHOUT 60H,AL;发光管亮JMP AAABBB:MOV AL,00H;发光管不亮OUT 60H,ALJMP AAA例题2n已知已知8255的的A口外接口外接8个发光二极管,个发光二极管,A,B组均工作在方式组均工作在方式0,试编写一段程序,使,试编写一段程序,使8个个二极管循环点亮。二极管循环点亮。MOV AL,80H;写方式控制字写方式控制字OUT 63H,ALMOV AL,01H;PA0亮亮P: OU

11、T 60H,ALCALL DELAYROL AL,1; 轮流点亮轮流点亮JMP P例题3n已知已知8255的的A口外接口外接8个发光二极管,个发光二极管,B口的口的PB0外接外接8 8个开关,个开关,A,B组均工作在方式组均工作在方式0,试编写一段程序,采集开关的状态,通过试编写一段程序,采集开关的状态,通过8个个二极管显示出来。开关合上(二极管显示出来。开关合上(=0=0),发光二),发光二极管亮(极管亮(=1=1)。)。 MOV AL,82HOUT 63H,AL ;写控制字AAA:IN AL,61H;采集开关状态NOT AL ;反相OUT 60H,AL ;显示发光管JMP AAA例题4n编

12、写程序,使编写程序,使8255的的PC2产生一串方波。产生一串方波。R:MOV AL,05H; PC2置置1OUT 63H,ALCALL DELAYMOV AL,04H; PC2置置0OUT 63H,ALCALL DELAYJMP R方式1输入引脚:A端口数据选通信号表示外设已经准备好数据输入缓冲器满信号表示A口已经接收数据等待CPU取走数据中断请求信号请求CPU接收数据PC4PC5PC3PA7PA0INTEAIBFAINTRASTBA中断允许触发器PC4=1允许中断方式1输入联络信号nSTB*选通信号,低电平有效选通信号,低电平有效n由外设提供的输入信号,当其有效时,将输入设备送由外设提供的

13、输入信号,当其有效时,将输入设备送来的数据锁存至来的数据锁存至8255A的输入锁存器的输入锁存器nIBF输入缓冲器满信号,高电平有效输入缓冲器满信号,高电平有效n8255A输出的联络信号。当其有效时,表示数据已输出的联络信号。当其有效时,表示数据已存在输入缓冲器存在输入缓冲器nINTR中断请求信号,高电平有效中断请求信号,高电平有效n8255A输出的信号,可用于向输出的信号,可用于向CPU提出中断请求,提出中断请求,要求要求CPU读取外设数据读取外设数据方式1输入过程 (3)INTR (1)STB*CPU 8255A I/O设备设备 (4)RD* (2)IBF 方式方式1 1需借用端口需借用端

14、口C C用做联络信号用做联络信号同时还具有中断请求和屏蔽功能同时还具有中断请求和屏蔽功能方式1输入时序dataINTRIBF data输入端口输入端口D0D7STBRDSTBSTB* *和和IBFIBF是外设和是外设和8255A8255A间间的一对应答联络信号,的一对应答联络信号,为的是可靠地输入数据为的是可靠地输入数据方式1输入引脚:B端口PC2PC1PC0PB7PB0INTEBIBFBINTRBSTBB数据选通信号表示外设已经准备好数据输入缓冲器满信号表示A口已经接收数据中断请求信号请求CPU接收数据中断允许触发器PC2=1允许中断举例:n8255的的A口工作在方式口工作在方式1,输入,允

15、许中断,输入,允许中断请求;请求;B口工作在方式口工作在方式1,输入,不允许中断,输入,不允许中断请求。写出初始化程序。请求。写出初始化程序。MOV AL,10110110B;OUT 63H,AL;MOV AL,00001001B; PC4=1OUT 63H,AL;MOV AL,00000100B;PC2=0OUT 63H,AL;方式1输出引脚:A端口外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据PC6PC7PC3PA7PA0INTEAOBFAINTRAACKA中断允许触发器PC6=1方式1输出引脚:B端口PC2PC1PC0PB7P

16、B0INTEBOBFBINTRBACKB外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据中断允许触发器PC2=1方式1输出联络信号nOBF*输出缓冲器满信号,低电平有效输出缓冲器满信号,低电平有效n8255A输出给外设的一个控制信号,当其有效时,输出给外设的一个控制信号,当其有效时,表示表示CPU已把数据输出给指定的端口,外设可以取走已把数据输出给指定的端口,外设可以取走nACK*响应信号,低有效响应信号,低有效n外设的响应信号,指示外设的响应信号,指示8255A的端口数据已由外设的端口数据已由外设接受接受nINTR中断请求信号,高有

17、效中断请求信号,高有效n当输出设备已接受数据后,当输出设备已接受数据后,8255A输出此信号向输出此信号向CPU提出中断请求,要求提出中断请求,要求CPU继续提供数据继续提供数据方式1输出过程 (1)WR* (2)OBF*CPU 8255A I/O设备设备 (4)INTR (3)ACK* 方式1输出时序 INTR datadata输出端口输出端口D0D7WROBFACK 方式1中断控制位总结n8255A的中断由中断允许触发器的中断由中断允许触发器INTE控制控制n置位置位1允许中断,复位允许中断,复位0禁止中断禁止中断n对对INTE的操作通过端口的操作通过端口C的对应位实现的对应位实现n输入方

18、式输入方式1下下n端口端口A的的INTEA对应对应PC4=1,允许中断,允许中断n端口端口B的的INTEB对应对应PC2=1,允许中断,允许中断输出方式输出方式1下下n端口端口A的的INTEA对应对应PC6=1,允许中断,允许中断n端口端口B的的INTEB对应对应PC2=1,允许中断,允许中断D D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 0方式方式1输入输入I/OI/OIBFAINTEA INTRAINTEBIBFBINTRB方式方式1输出输出OBFAINTEAI/OI/OINTRAINTEBOBFBINTRB方式方式2双向双向OBFAINTE1

19、IBFAINTE2INTRA端口C的状态字(与C口的引脚无关),供查询A组组B组组使用状态字时要注意的几个问题n通过读通过读C端口取得,与端口取得,与C的外部引脚无关的外部引脚无关n查询输入:查询输入:IBF 和和 INTRn查询输出:查询输出:OBF 和和 INTRn一般查一般查INTR位位nINTE位是通过按位置位位是通过按位置位/复位来设置的复位来设置的方式2:双向方式n方式方式2将方式将方式1的选通输入输出功能组合成一个的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据双向数据端口,可以发送数据和接收数据n只有端口只有端口A可以工作于方式可以工作于方式2,需要利用端口,需

20、要利用端口C的的5个信号线,其作用与方式个信号线,其作用与方式1相同相同n方式方式2的数据输入过程与方式的数据输入过程与方式1的输入方式一样的输入方式一样n方式方式2的数据输出过程与方式的数据输出过程与方式1的输出方式有一的输出方式有一点不同:数据输出时点不同:数据输出时8255A不是在不是在OBF*有效时有效时向外设输出数据,而是在外设提供响应信号向外设输出数据,而是在外设提供响应信号ACK*时才送出数据时才送出数据方式2双向引脚PC6PC7PC3PA7PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用PC6设置INTE1(输出)用PC4设置INTE2(输入)

21、输入和输出中断通过或门输出INTRA信号方式2双向时序data-out INTR data-outdata-indata-inPA0PA7D0D7IBF WROBFACKSTBRD8255工作方式0举例n已知已知8255的的A口外接口外接8个发光二极管,个发光二极管,B口的口的PB0外接外接8 8个开关,个开关,A,B组均工作在方式组均工作在方式0,试编写一段程序,采集开关的状态,通过试编写一段程序,采集开关的状态,通过8个个二极管显示出来。开关合上(二极管显示出来。开关合上(=0=0),发光二),发光二极管亮(极管亮(=1=1)。)。 MOV AL,82HOUT 63H,AL ;写控制字AA

22、A:IN AL,61H;采集开关状态NOT AL ;反相OUT 60H,AL ;显示发光管JMP AAA8255工作方式1举例n按图所示接线,编写程序,使按图所示接线,编写程序,使8255端口端口A工作在方式工作在方式0并作为输出口,端口并作为输出口,端口B工作于工作于方式方式1并作为输入口,则端口并作为输入口,则端口C的的PC2成为成为选通信号输入端选通信号输入端STBB ,PC0为中断请求信为中断请求信号输出端号输出端INTRB 。当。当B口数据就绪后,通口数据就绪后,通过发过发STBB 信号来请求信号来请求CPU读取端口读取端口B数据数据并送端口并送端口A输出显示。输出显示。nCODE

23、SEGMENTnASSUME CS:CODEnSTART:CLI;初始化初始化8255n MOV AL,86Hn OUT 63H,AL;写工作方式命令字;写工作方式命令字n MOV AL,05Hn OUT 63H,AL;使;使PC2=1,允许中断,允许中断n PUSH DS;填中断向量;填中断向量n MOV AX,0000Hn MOV DS,AXn MOV AX,OFFSET IRQ7n MOV SI,003CHn MOV SI,AXn MOV AX,0000Hn MOV SI,003EHn MOV SI,AXn POP DSn IN AL,21H;读;读OCW1内容内容n AND AL,7F

24、Hn OUT 21H,AL;开放中断请求;开放中断请求IRQ7nA1: STI;开中断;开中断n HLT;停机等待中断;停机等待中断n JMP A1中断服务程序中断服务程序nIRQ7:IN AL,61H;读数据口;读数据口Bn OUT 60H,AL;将;将B口数据写入口数据写入A口口n MOV AL,20Hn OUT 20H,AL;发;发EOIn IRETn CODE ENDSn END START读写端口C:归纳1nC端口被分成端口被分成两个两个4位端口位端口,两个端,两个端口只能以方式口只能以方式0工工作,可分别选择作,可分别选择输入或输出输入或输出n在控制上,在控制上,C端口上半部和端口

25、上半部和A端口编为端口编为A组,组,C端口下半部和端口下半部和B端口编为端口编为B组组 读写端口C:归纳2n当当A和和B端口工作端口工作在方式在方式1或方式或方式2时,时,C端口的部分或全端口的部分或全部引脚将部引脚将被征用被征用n其余引脚仍可设定工作在方式其余引脚仍可设定工作在方式0 读写端口C:归纳3n对端口对端口C的数据输出有两种办法的数据输出有两种办法n通过端口通过端口C的的I/O地址:地址:向向C端口直接端口直接写入写入字节数据字节数据。这一数据被写进。这一数据被写进C端口的输出端口的输出锁存器,并从输出引脚输出,但对设置为锁存器,并从输出引脚输出,但对设置为输入的引脚无效输入的引脚

26、无效n通过控制端口:通过控制端口:向向C端口端口写入位控字写入位控字,使,使C端口的某个引脚输出端口的某个引脚输出1或或0,或置位复位,或置位复位内部的中断允许触发器内部的中断允许触发器 读写端口C:归纳4n读取的读取的C端口数据有两种情况端口数据有两种情况n未被未被A和和B端口征用的引脚端口征用的引脚:将从定义为:将从定义为输入的端口读到引脚输入信息;将从定义输入的端口读到引脚输入信息;将从定义为输出的端口读到输出锁存器中的信息为输出的端口读到输出锁存器中的信息n被被A和和B端口征用作为联络线的引脚端口征用作为联络线的引脚:将:将读到反映读到反映8255A状态的状态的状态字状态字 8255A

27、的应用作为通用的并行接口电路芯片,作为通用的并行接口电路芯片,825A具有广泛的应用具有广泛的应用n应用在应用在IBM PC/XT微机上微机上n应用于打印机接口电路应用于打印机接口电路n连接简易键盘连接简易键盘n驱动驱动LED数码管数码管n应用1 并行打印机接口n一般采用一般采用Centronics标准接口或其简化接口标准接口或其简化接口nCentronics接口是一个并行接口协议接口是一个并行接口协议n这个协议规定了这个协议规定了36脚簧式插头座和信号含义脚簧式插头座和信号含义n其中前其中前11条线是关键信号,是条线是关键信号,是8条数据线、条数据线、3条条联络线(选通、响应和打印机忙)联络

28、线(选通、响应和打印机忙)n还有一些特殊控制线、状态线还有一些特殊控制线、状态线nPC系列机的并行打印机接口是一个系列机的并行打印机接口是一个25针插口针插口1. 控制打印机的输入信号n36 SLCTIN*允许打印机工作允许打印机工作n31 INIT*打印机复位成初始状态打印机复位成初始状态n14 AUTOFEEDXT*打印一行后自动打印一行后自动走纸走纸n1 STROBE*数据选通信号。负脉冲的数据选通信号。负脉冲的宽度在接收端应大于宽度在接收端应大于0.5 s,数据才可靠,数据才可靠地存入打印机数据缓冲区地存入打印机数据缓冲区2. 反映打印机状态的输出信号n11 BUSY表示打印机表示打印

29、机忙,忙,不能接收数据不能接收数据n10 ACK*打印机接收一个数据字节后就回送打印机接收一个数据字节后就回送一个响应负脉冲信号(脉宽约为一个响应负脉冲信号(脉宽约为5 s),表示打),表示打印机已准备好接收新数据印机已准备好接收新数据n12 PE说明打印机无纸说明打印机无纸n13 SLCT表示处于联机选中状态表示处于联机选中状态n32 ERROR*当打印机处于无纸、脱机或错当打印机处于无纸、脱机或错误状态之一时,这个信号变为低电平误状态之一时,这个信号变为低电平3. 数据线nDATA0DATA78位并行数据信号线位并行数据信号线n打印数据通过它们送至打印机打印数据通过它们送至打印机n8位数据

30、的可靠输出通过选通位数据的可靠输出通过选通STROBE*、响应响应ACK*和忙和忙BUSY三个联络信号控制三个联络信号控制打印时序打印时序打印机时序BUSYDATA07ACKSTROBE打印机时序n首先查询首先查询BUSY,是是1等待等待,是是0则送数据则送数据n主机把数据送给引脚主机把数据送给引脚DATA0DATA7n再送出数据选通信号再送出数据选通信号STB*n打印机收到数据后打印机收到数据后,发出发出BUSY(=1)忙信号忙信号n打印机处理好输入的数据时打印机处理好输入的数据时n撤消忙信号撤消忙信号(BUSY=0)n送出响应信号送出响应信号ACK*,表示可以送下一个数据表示可以送下一个数

31、据 例1 用8255A方式0与打印机接口BUSY DATA078255APC7PC2PA0PA7打印机打印机STBmov dx,0ffffh;控制端口地址:控制端口地址:FFFFHmov al,10000001B;方式控制字:方式控制字:81Hout dx,al;A口方式口方式0输出,输出,C口上输出、下输入口上输出、下输入mov al,00001111B;端口端口C复位置位控制字,复位置位控制字,PC71out dx,alprn: mov dx,0fffeh ;读取端口读取端口Cin al,dx ;查询打印机状态查询打印机状态and al,04h;PC2BUSY0?jnz prn;PC21,

32、打印机忙,循环等待,打印机忙,循环等待例1mov dx,0fffch ;A 口口;PC20,打印机不忙,则输出数据,打印机不忙,则输出数据mov al,ah ;假设数据放在假设数据放在AH寄存器中寄存器中out dx,al;将打印数据从端口将打印数据从端口A输出输出例1mov dx,0ffffh;从从PC7送出控制低脉冲送出控制低脉冲mov al,00001110B ;置置STB*0out dx,alnop;产生一定宽度的低电平产生一定宽度的低电平nopmov al,00001111B ;置置STB* =1out dx,al;最终,最终,STB*产生低脉冲信号产生低脉冲信号例1例2 8255A

33、方式1与打印机接口(查询)1000pf2K15321441LS123单稳单稳电路电路+5VDATA078255APC6INTR(未用)(未用)PC3PC7PA0PA7打印机打印机ACKACKOBFSTROBE8255A的初始化mov dx,0ffffhmov al,0a0h;8255控制字控制字out dx,almov al,0ch;使使INTEA(PC6)为)为0,禁止中断,禁止中断out dx,almov cx,counter;打印字节数送打印字节数送CXmov bx,offset buffer ;取字符串首地址取字符串首地址例2打印子程序:输出print1:mov al,bx;取第一个数

34、据取第一个数据mov dx,0fffchout dx,al;从端口从端口A输出输出 mov dx,0fffehprint2:in al,dxtest al,80h;检测检测C口状态字(口状态字(PC7=OBF)为为1? jz print2;为为0,打印机没有响应,继续检测,打印机没有响应,继续检测 inc bx;为为1,打印机已接受数据,打印机已接受数据loop print1;准备取下一个数据准备取下一个数据例2mov dx,0ffffhmov al,0a0h;8255控制字控制字out dx,almov al,0dh;使使INTEA(PC6)为)为1,允许中断,允许中断out dx,almo

35、v cx,counter;打印字节数送打印字节数送CXmov bx,offset buffer;取字符串首地址取字符串首地址例3 8255A方式1与打印机接口(中断)主程序:PUSH DS;填中断向量;填中断向量 MOV AX,0000H MOV DS,AX MOV AX,OFFSET IRQ7 MOV SI,003CH MOV SI,AX MOV AX,0000H MOV SI,003EH MOV SI,AX POP DSIN AL,21H;读;读OCW1内容内容 AND AL,7FH OUT 21H,AL;开放中断请求;开放中断请求IRQ7mov dx,0fffchmov al,0ah ;

36、发送一个换行命令发送一个换行命令out dx,alA1: STI;开中断;开中断 HLT;停机等待中断;停机等待中断 inc bxLOOP A1 JMP A1中断服务子程序mov dx,0fffch; 输出数据输出数据mov al,bxout dx,alsti ;开中断开中断MOV AL,20HOUT 20H,AL;发;发EOIIRET应用2 双机并行通信接口PA0PA7PC4PC08255A甲方(发送)甲方(发送)PA0PA7PC7PC68255A乙方(接收)乙方(接收)mov dx,303hmov al,0a0hout dx,al;工作方式字:端口工作方式字:端口A方式方式1输出输出mov

37、 al,0dh;PC6(INTEA)1,允许中断,允许中断out dx,al mov cx,400H;发送发送1K个数据个数据 mov si,offset bufs;设置发送缓冲区首址设置发送缓冲区首址 mov dx,300h ; mov al,si;发送第一个数发送第一个数,产生产生OBF*信号信号 out dx,al inc si dec cx甲机发送程序甲机发送程序trsmt: mov dx,302hin al,dx;查询查询PC3(INTRA)1?and al,08hjz trsmtmov dx,300h;发送数据发送数据A口口mov al,siout dx,alinc si ;下一个

38、数据下一个数据loop trsmt乙机接收程序mov dx,303hmov al,98hout dx,al;工作方式字:端口工作方式字:端口A方式方式0输入输入mov al,01h;使使PC0(ACK*)1,因尚未收到数据,因尚未收到数据out dx,almov cx,400H;接收接收1K个数据个数据mov di,offset bufc;设置接收缓冲区首址设置接收缓冲区首址 例10.3乙机:查询接收receive: mov dx,302hin al,dx;查询查询PC4(OBF*)0?and al,10hjnz receivemov dx,300h ;接收数据接收数据A口口in al,dxm

39、ov di,al乙机:接收响应mov dx,303hmov al,00h;使使PC0(ACK*)0out dx,alnop;适当延时,产生一定宽度的低脉冲适当延时,产生一定宽度的低脉冲nopmov al,01h;使使PC0(ACK*)1out dx,al;产生低脉冲产生低脉冲ACK*信号信号inc diloop receive应用3 键盘及其接口n键盘是微机系统最常使用的输入设备键盘是微机系统最常使用的输入设备n小键盘小键盘:适用于单板机或以微处理器为基:适用于单板机或以微处理器为基础的仪器,实现数据、地址、命令及指令础的仪器,实现数据、地址、命令及指令等的输入等的输入n独立键盘独立键盘:通过

40、:通过5芯电缆与芯电缆与PC微机主机连微机主机连接接1 简易键盘的工作原理+5V+5V+5Vn最简单的线性结构键盘最简单的线性结构键盘n每一个引脚连接一个键每一个引脚连接一个键n输入输入0/1反映键是否接通反映键是否接通1 简易键盘的工作原理+5V+5V控制线控制线检检测测线线n常用的常用的矩阵结构矩阵结构键盘键盘n每行连接一个引脚每行连接一个引脚n每列连接一个引脚每列连接一个引脚n利 用 控 制 线 为 低 、利 用 控 制 线 为 低 、读取检测线来识别闭合键读取检测线来识别闭合键1.检测是否所有的键都松开检测是否所有的键都松开2.检测是否有键按下(检测是否有键按下(扫描法)扫描法)3.消

41、抖消抖4.对压下的键编码对压下的键编码扫描法扫描法:n先使第先使第0行接低电平,其余行为高电平,然后看行接低电平,其余行为高电平,然后看第第0行是否有键闭合(通过检查列线电位实现)行是否有键闭合(通过检查列线电位实现)n此后,再将第此后,再将第1行接地,然后检测列线是否有变行接地,然后检测列线是否有变为低电位的线。如此往下为低电位的线。如此往下一行一行地扫描一行一行地扫描,直到,直到最后一行最后一行n通过组合行线和列线可识别此刻按下的是哪一键通过组合行线和列线可识别此刻按下的是哪一键第1段:是否有键按下wait_open :mov al,00 ;判定是否所有的键松开判定是否所有的键松开mov

42、dx,port_Aout dx,al;使所有行线为低电平使所有行线为低电平 mov dx,port_B in al,dx ;读取列值读取列值and al,0fhcmp al,0fhjne wait_openwait_pres :in al,dx ;读取列值,判断是否有键按下读取列值,判断是否有键按下and al,0fhcmp al,0fhje wait_pres;无键;无键call delay;有键,延迟有键,延迟20ms清除抖动清除抖动in al,dx ;再读取列值,再读取列值, ,判断是否有键按下,判断是否有键按下and al,0fhcmp al,0fhje wait_pres;无键;无键

43、键盘扫描程序第2段:识别按键(扫描)mov al 0feh;有键,确定哪一个有键,确定哪一个mov cl,al;扫描初值送扫描初值送alnext_row :mov dx,port_aout dx,al;输出行值(输出行值(a口)口)mov dx,port_bin al,dx;读进列值(读进列值(b口)口)and al,0fhcmp al,ofh;是否均为是否均为1?jne encoderol cl,01 ;a口下一行输出口下一行输出0 mov al,cljmp next_row键盘扫描程序第2段:识别按键(判断)cmp al,0ffh;判断有无低电平的列线判断有无低电平的列线jnz key3;

44、有,则转下一步处理有,则转下一步处理rol ah,1;无,则移位扫描值无,则移位扫描值loop key2;准备下一行扫描准备下一行扫描jmp key1;所有行都没有键按下,则返回继续检测所有行都没有键按下,则返回继续检测key3: ;此时,此时,al列值,列值,ah行值行值键盘扫描程序2. 抖动和重键问题n机械按键存在机械按键存在抖动现象抖动现象n当按下或释放一个键时,往往会出现按键在闭合位置当按下或释放一个键时,往往会出现按键在闭合位置和断开位置之间跳几下才稳定到闭合状态和断开位置之间跳几下才稳定到闭合状态n抖动的持续时间通常不大于抖动的持续时间通常不大于10msn采用采用硬件消抖电路硬件消

45、抖电路或软件延时方法解决或软件延时方法解决n重键指两个或多个键同时闭合重键指两个或多个键同时闭合n出现重键时,读取的键值必然出现有一个以上的出现重键时,读取的键值必然出现有一个以上的0n是否给予识别和识别哪一个键是否给予识别和识别哪一个键重键问题的处理n简单情况:不予识别,认为是错误的按键简单情况:不予识别,认为是错误的按键n通常情况:多键出现时通常情况:多键出现时n双键锁定:只把最后释放的键当作有效键双键锁定:只把最后释放的键当作有效键nN键连锁:只产生最先按下键的编码键连锁:只产生最先按下键的编码nN键轮回:根据发现的先后顺序依次识别键轮回:根据发现的先后顺序依次识别应用4 LED数码管及

46、其接口n发光二极管发光二极管LED是是最简单的显示设备最简单的显示设备n由由7段段LED就可以组成的就可以组成的LED数码管数码管nLED数码管广泛用于单板微型机、微型机数码管广泛用于单板微型机、微型机控制系统及数字化仪器中控制系统及数字化仪器中nLED数码管可以显示内存地址和数据等数码管可以显示内存地址和数据等1. LED数码管的工作原理n主要部分是主要部分是7段发光管段发光管n顺时针分别称为顺时针分别称为a、b、c、d、e、f、gn有的产品还附带有一个小数点有的产品还附带有一个小数点hn通过通过7个发光段的不同组合个发光段的不同组合n主要显示主要显示09n也可显示也可显示AF(16进制数)

47、进制数)n还可显示个别特殊字符:、还可显示个别特殊字符:、P hgfedcbaLED数码管的结构共阳极共阳极阳极阳极+5Vabcdefgh阴极阴极abcdefgh共阴极共阴极2. 单个LED数码管的显示8255APA0PA1PA2PA3PA4PA5PA6PA7驱驱动动电电路路abcdefgh单个数码管的显示tabledb 3fh,06h,5dh,;显示段码表显示段码表mov al,1 ;AL要显示的数字要显示的数字mov bx,offset tablexlat ;换码:换码:ALDS:BXALmov dx,60h ;A端口端口out dx,al ;输出显示输出显示3. 多个LED数码管的显示n8个数码管:用个数码管:用2个个8位输出端口控制位输出端口控制n硬件上用公用的驱动电路来驱动各数码管硬件上用公用的驱动电路来驱动各数码管n软件上用扫描方法实现数码显示软件上用扫描方法实现数码显示位控制端口电路D7D6D5D4D3D2D1D0阳极阳极位位0位位1位位2D0D7位控制位控制反反相相寄寄存存驱驱动动bitport, IOW位控制端口作用n控制哪个(控制哪个(位位)数码管显示)数码管显示n当位控制端口的控制码某位为低电平时,当位控制端口的控制码某位为低电平时,经反相驱动,便在相应数码管的阳极加上经反相驱动,便在相应数码管的阳极加上了高电平,这个数码

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论