8255A的应用课件

上传人:cl****1 文档编号:569495804 上传时间:2024-07-30 格式:PPT 页数:125 大小:1.34MB
返回 下载 相关 举报
8255A的应用课件_第1页
第1页 / 共125页
8255A的应用课件_第2页
第2页 / 共125页
8255A的应用课件_第3页
第3页 / 共125页
8255A的应用课件_第4页
第4页 / 共125页
8255A的应用课件_第5页
第5页 / 共125页
点击查看更多>>
资源描述

《8255A的应用课件》由会员分享,可在线阅读,更多相关《8255A的应用课件(125页珍藏版)》请在金锄头文库上搜索。

1、第第 10 10 章章8255A的应用第第1010章章 并行接口并行接口教学重点n 8255A的工作方式和编程的工作方式和编程n 8255A的应用的应用n 简易键盘的扫描程序简易键盘的扫描程序n LED数码管的多位显示数码管的多位显示8255A的应用并行数据传输方式n以以计计算算机机的的字字长长,通通常常是是8位位、16位位或或32位为传输单位,一次传送一个字长的数据位为传输单位,一次传送一个字长的数据n适适合合于于外外部部设设备备与与微微机机之之间间进进行行近近距距离离、大量和快速的信息交换大量和快速的信息交换n例如:微机与并行接口打印机、磁盘驱动器例如:微机与并行接口打印机、磁盘驱动器n微

2、机系统中最基本的信息交换方法微机系统中最基本的信息交换方法n例例如如:系系统统板板上上各各部部件件之之间间,接接口口电电路路板板上上各部件之间各部件之间8255A的应用10.1 并行接口电路8255An具有多种功能的可编程并行接口电路芯片具有多种功能的可编程并行接口电路芯片n最基本的接口电路:三态缓冲器和锁存器最基本的接口电路:三态缓冲器和锁存器n与与CPU间间、与与外外设设间间的的接接口口电电路路:状状态态寄寄存存器和控制寄存器器和控制寄存器n还有端口的译码和控制电路、中断控制电路还有端口的译码和控制电路、中断控制电路n分分3个端口,共个端口,共24个外设引脚个外设引脚n共三种输入输出工作方

3、式共三种输入输出工作方式8255A的应用10.1.1 8255A的内部结构和引脚数据数据总线总线缓冲器缓冲器内部控制线内部控制线内部数据线内部数据线D0D7A组组控制控制A组组端口端口AA组组端口端口C上部上部B组组控制控制B组组端口端口BB组组端口端口C下部下部读写读写控制控制逻辑逻辑PC0PC3PB0PB7PC4PC7PA0PA7RDWRA0A1CSRESET8255A的应用1. 外设数据端口n端口端口A:PA0PA7nA组,支持工作方式组,支持工作方式0、1、2n端口端口B:PB0PB7nB组,支持工作方式组,支持工作方式0、1n端口端口C:PC0PC7n仅支持工作方式仅支持工作方式0n

4、A组控制高组控制高4位位PC4PC7nB组控制低组控制低4位位PC0PC3n端口端口A:PA0PA7n常作数据端口,功能最强大常作数据端口,功能最强大n端口端口B:PB0PB7n常作数据端口常作数据端口n端口端口C:PC0PC7n可作数据、状态和控制端口可作数据、状态和控制端口n分两个分两个4位,每位可独立操作位,每位可独立操作n控制最灵活,最难掌握控制最灵活,最难掌握8255A的应用2. 与处理器接口CS* A1 A0I/O地址地址读操作读操作RD* 写操作写操作WR*0 0 00 0 10 1 00 1 160H61H62H63H读端口读端口A读端口读端口B读端口读端口C非法非法写端口写端

5、口A写端口写端口B写端口写端口C写控制字写控制字nD0 D7数据线数据线A0 A1地址线地址线nRD*读信号读信号WR*写信号写信号nCS*片选信号片选信号RESET复位信号复位信号8255A的应用10.1.2 8255A的工作方式n方式方式0:基本输入输出方式基本输入输出方式n适用于无条件传送和查询方式的接口电路适用于无条件传送和查询方式的接口电路n方式方式1:选通输入输出方式选通输入输出方式n适用于查询和中断方式的接口电路适用于查询和中断方式的接口电路n方式方式2:双向选通传送方式双向选通传送方式n适用于与双向传送数据的外设适用于与双向传送数据的外设n适用于查询和中断方式的接口电路适用于查

6、询和中断方式的接口电路8255A的应用方式0输入时序datadata输入端口输入端口D0D7RD CS,A1,A0请体会这里请体会这里8255A8255A的数据缓冲作用的数据缓冲作用8255A的应用方式0输出时序WRdatadata输出端口输出端口D0D7 CS,A1,A08255A8255A对对CPUCPU通过它输出给外设的数据进行锁存通过它输出给外设的数据进行锁存8255A的应用方式1输入引脚:A端口数据选通信号表示外设已经准备好数据输入缓冲器满信号表示A口已经接收数据中断请求信号请求CPU接收数据PC4PC5PC3PA7PA0INTEAIBFAINTRASTBA中断允许触发器8255A的

7、应用方式1输入引脚:B端口PC2PC1PC0PB7PB0INTEBIBFBINTRBSTBB数据选通信号表示外设已经准备好数据输入缓冲器满信号表示A口已经接收数据中断请求信号请求CPU接收数据中断允许触发器方式方式1 1需借用端口需借用端口C C用做联络信号用做联络信号同时还具有中断请求和屏蔽功能同时还具有中断请求和屏蔽功能8255A的应用方式1输入联络信号nSTB*选通信号,低电平有效选通信号,低电平有效n由由外外设设提提供供的的输输入入信信号号,当当其其有有效效时时,将将输输入入设设备备送送来的数据锁存至来的数据锁存至8255A的输入锁存器的输入锁存器nIBF输入缓冲器满信号,高电平有效输

8、入缓冲器满信号,高电平有效n8255A输输出出的的联联络络信信号号。当当其其有有效效时时,表表示示数数据据已已锁锁存在输入锁存器存在输入锁存器nINTR中断请求信号,高电平有效中断请求信号,高电平有效n8255A输输出出的的信信号号,可可用用于于向向CPU提提出出中中断断请请求求,要要求求CPU读取外设数据读取外设数据8255A的应用方式1输入时序dataINTRIBF data输入端口输入端口D0D7STBRDSTB*STB*和和IBFIBF是外设和是外设和8255A8255A间间的一对应答联络信号,的一对应答联络信号,为的是可靠地输入数据为的是可靠地输入数据8255A的应用方式1中断控制n

9、8255A的中断由中断允许触发器的中断由中断允许触发器INTE控制控制n置位允许中断,复位禁止中断置位允许中断,复位禁止中断n对对INTE的的操操作作通通过过写写入入端端口口C的的对对应应位位实实现现,INTE触触发发器器对对应应端端口口C的的位位是是作作应应答答联联络络信信号号的的输输入入信信号号的的哪哪一一位位,只只要要对对那那一位置位一位置位/复位就可以控制复位就可以控制INTE触发器触发器n选通输入方式下选通输入方式下n端口端口A的的INTEA对应对应PC4n端口端口B的的INTEB对应对应PC28255A的应用方式1输出引脚:A端口外设响应信号表示外设已经接收到数据输出缓冲器满信号表

10、示CPU已经输出了数据中断请求信号请求CPU再次输出数据PC6PC7PC3PA7PA0INTEAOBFAINTRAACKA中断允许触发器8255A的应用方式1输出引脚:B端口PC2PC1PC0PB7PB0INTEBOBFBINTRBACKB外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据中断允许触发器8255A的应用方式1输出联络信号nOBF*输出缓冲器满信号,低有效输出缓冲器满信号,低有效n8255A输输出出给给外外设设的的一一个个控控制制信信号号,当当其其有有效效时时,表表示示CPU已把数据输出给指定的端口,外设可以取走已把数据输

11、出给指定的端口,外设可以取走nACK*响应信号,低有效响应信号,低有效n外外设设的的响响应应信信号号,指指示示8255A的的端端口口数数据据已已由由外外设设接接受受nINTR中断请求信号,高有效中断请求信号,高有效n当当输输出出设设备备已已接接受受数数据据后后,8255A输输出出此此信信号号向向CPU提出中断请求,要求提出中断请求,要求CPU继续提供数据继续提供数据端口端口A A的的INTEAINTEA对应对应PCPC6 6端口端口B B的的INTEBINTEB对应对应PCPC2 28255A的应用方式1输出时序 INTR datadata输出端口输出端口D0D7WROBFACK OBF*OB

12、F*和和ACK*ACK*是外设和是外设和8255A8255A间间的一对应答联络信号,的一对应答联络信号,为的是可靠地输出数据为的是可靠地输出数据8255A的应用方式2双向方式n方方式式2将将方方式式1的的选选通通输输入入输输出出功功能能组组合合成成一一个个双向数据端口,可以发送数据和接收数据双向数据端口,可以发送数据和接收数据n只只有有端端口口A可可以以工工作作于于方方式式2,需需要要利利用用端端口口C的的5个信号线,其作用与方式个信号线,其作用与方式1相同相同n方式方式2的数据输入过程与方式的数据输入过程与方式1的输入方式一样的输入方式一样n方方式式2的的数数据据输输出出过过程程与与方方式式

13、1的的输输出出方方式式有有一一点点不不同同:数数据据输输出出时时8255A不不是是在在OBF*有有效效时时向向外外设设输输出出数数据据,而而是是在在外外设设提提供供响响应应信信号号ACK*时才送出数据时才送出数据8255A的应用方式2双向引脚PC6PC7PC3PA7PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用PC6设置INTE1(输出)用PC4设置INTE2(输入)输入和输出中断通过或门输出INTRA信号8255A的应用方式2双向时序data-out INTR data-outdata-indata-inPA0PA7D0D7IBF WROBFACKSTBR

14、D8255A的应用10.1.3 8255A的编程n初始化编程:一个方式控制字初始化编程:一个方式控制字n采用控制采用控制I/O地址:地址:A1A011n工工作作过过程程中中:通通过过数数据据端端口口对对外外设设数数据据进行读写进行读写n数数据据读读写写利利用用端端口口A、B和和C的的I/O地地址址,A1A0依次等于依次等于00、01、10nIBM PC/XT机机上上,端端口口A、B、C和和控控制制端口的端口的I/O地址为地址为60H、61H、62H和和63H8255A的应用1. 写入方式控制字:控制字格式8255A的应用1. 写入方式控制字:示例n要求:要求:nA端口:方式端口:方式1输入输入

15、nC端口上半部:输出,端口上半部:输出,C口下半部:输入口下半部:输入nB端口:方式端口:方式0输出输出n方式控制字:方式控制字:10110001B或或B1Hn初始化的程序段:初始化的程序段:mov dx,0fffeh;假设控制端口为假设控制端口为FFFEHmov al,0b1h ;方式控制字方式控制字out dx,al;送到控制端口送到控制端口8255A的应用2. 读写数据端口n初始化编程后:初始化编程后:n当当数数据据端端口口作作为为输输入入接接口口时时,执执行行输输入入IN指指令将从输入设备得到外设数据令将从输入设备得到外设数据n当当数数据据端端口口作作为为输输出出接接口口时时,执执行行

16、输输出出OUT指令将把指令将把CPU的数据送给输出设备的数据送给输出设备n8255A具有锁存输出数据的能力具有锁存输出数据的能力n对输出方式的端口同样可以输入对输出方式的端口同样可以输入n不是读取外设数据不是读取外设数据n读取的是上次读取的是上次CPU给外设的数据给外设的数据8255A的应用2. 读写数据端口:示例n利利用用8255A的的输输出出锁锁存存能能力力,可可实实现现按按位位输出控制输出控制 n对输出端口对输出端口B的的PB7位置位的程序段:位置位的程序段:mov dx,0fffah;B端口假设为端口假设为FFFAHin al,dx;读出读出B端口原输出内容端口原输出内容or al,8

17、0h;使使PB71out dx,al;输出新的内容输出新的内容8255A的应用3. 读写端口C:归纳1nC端端口口被被分分成成两两个个4位位端端口口,两两个个端端口口只只能能以以方方式式0工工作作,可可分分别别选选择择输入或输出输入或输出n在在控控制制上上,C端端口口上上半半部部和和A端端口口编编为为A组,组,C端口下半部和端口下半部和B端口编为端口编为B组组8255A的应用3. 读写端口C:归纳2n当当A和和B端端口口工工作作在在方方式式1或或方方式式2时时,C端端口口的的部部分分或或全全部引脚将部引脚将被征用被征用n其余引脚仍可设定工作在方式其余引脚仍可设定工作在方式08255A的应用3.

18、 读写端口C:归纳3n对端口对端口C的数据输出有两种办法的数据输出有两种办法n通通过过端端口口C的的I/O地地址址:向向C端端口口直直接接写写入入字字节节数数据据。这这一一数数据据被被写写进进C端端口口的的输输出出锁锁存存器器,并并从从输输出出引引脚脚输输出出,但但对对设设置置为为输入的引脚无效输入的引脚无效n通通过过控控制制端端口口:向向C端端口口写写入入位位控控字字,使使C端端口口的的某某个个引引脚脚输输出出1或或0,或或置置位位复复位位内内部的中断允许触发器部的中断允许触发器8255A的应用端口C的位控制字n位控制字写入控制端口位控制字写入控制端口n特特别别便便于于置置位位复复位位内内部

19、部中断允许触发器中断允许触发器INTE8255A的应用3. 读写端口C:归纳4n读取的读取的C端口数据有两种情况端口数据有两种情况n未未被被A和和B端端口口征征用用的的引引脚脚:将将从从定定义义为为输输入入的的端端口口读读到到引引脚脚输输入入信信息息;将将从从定定义义为为输出的端口读到输出锁存器中的信息输出的端口读到输出锁存器中的信息n被被A和和B端端口口征征用用作作为为联联络络线线的的引引脚脚:将将读读到反映到反映8255A状态的状态的状态字状态字8255A的应用D D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 0方式方式1输入输入I/OI/OIB

20、FAINTEA INTRAINTEBIBFBINTRB方式方式1输出输出OBFAINTEAI/OI/OINTRAINTEBOBFBINTRB方式方式2双向双向OBFAINTE1IBFAINTE2INTRA端口C的状态字A组组B组组8255A的应用10.2 8255A的应用作作为为通通用用的的并并行行接接口口电电路路芯芯片片,825A具有广泛的应用具有广泛的应用n应用在应用在IBM PC/XT微机上微机上n应用于打印机接口电路应用于打印机接口电路n连接简易键盘连接简易键盘n驱动驱动LED数码管数码管n8255A的应用10.2.1 8255A在IBM PC/XT上的应用n工作在基本输入工作在基本输

21、入/输出方式输出方式0n端口端口A为方式为方式0输入,用来读取键盘扫描码输入,用来读取键盘扫描码n端口端口B工作于方式工作于方式0输出,例如输出,例如控制扬声器控制扬声器等等n端口端口C为方式为方式0输入,读取系统状态和配置输入,读取系统状态和配置n系统的初始化编程:系统的初始化编程:mov al,10011001b;方式控制字方式控制字99Hout 63h,al8255A的应用打印机接口的信号与时序BUSYDATA07ACKSTROBEn主机把数据送给引脚主机把数据送给引脚DATA0DATA7n同时送出数据选通信号同时送出数据选通信号STROBE*n打印机在打印机在BUSY信号线上发出忙信号

22、信号线上发出忙信号n打印机处理好输入的数据时打印机处理好输入的数据时n撤消忙信号撤消忙信号n同时又送出一个响应信号同时又送出一个响应信号ACK*8255A的应用10.2.2 用8255A方式0与打印机接口BUSY DATA078255APC7PC2PA0PA7打印机打印机STROBE8255A的应用8255A的初始化mov dx,0fffeh;控制端口地址:控制端口地址:FFFEHmov al,10000001B;方式控制字:方式控制字:91Hout dx,al;A端口方式端口方式0输出,输出,C端口上输出、下输入端口上输出、下输入mov al,00001111B;端口端口C的复位置位控制字,

23、使的复位置位控制字,使PC71out dx,al例10.18255A的应用打印子程序:查询printcprocpush axpush dxprn: mov dx,0fffch ;读取端口读取端口Cin al,dx;查询打印机状态查询打印机状态and al,04h;PC2BUSY0?jnz prn;PC21,打印机忙,则循环等待,打印机忙,则循环等待例10.18255A的应用打印子程序:输出mov dx,0fff8h;PC20,打印机不忙,则输出数据,打印机不忙,则输出数据mov al,ahout dx,al;将打印数据从端口将打印数据从端口A输出输出例10.18255A的应用打印子程序:打印m

24、ov dx,0fffeh;从从PC7送出控制低脉冲送出控制低脉冲mov al,00001110B ;置置STROBE*0out dx,alnop;产生一定宽度的低电平产生一定宽度的低电平nopmov al,00001111B ;置置=1out dx,al;最终,最终,STROBE*产生低脉冲信号产生低脉冲信号例10.18255A的应用打印子程序:返回pop dxpop axretprintcendp例10.18255A的应用10.2.3 用8255A方式1与打印机接口1000pf2K15321441LS123单稳单稳电路电路+5VDATA078255APC6INTRPC3PC7PA0PA7打印

25、机打印机ACKACKOBFSTROBE8255A的应用8255A方式1与打印机接口时序配合PA0PA7(DATA07)ACKOBFSTROBE方式方式1 1时序时序打印机时序打印机时序8255A的应用8255A的初始化mov dx,0fffehmov al,0a0hout dx,almov al,0ch;使使INTEA(PC6)为)为0,禁止中断,禁止中断out dx,almov cx,counter;打印字节数送打印字节数送CXmov bx,offset buffer ;取字符串首地址取字符串首地址call prints;调用打印子程序调用打印子程序例10.28255A的应用打印子程序:输出

26、printsprocpush ax;保护寄存器保护寄存器push dxprint1:mov al,bx;取一个数据取一个数据mov dx,0fff8hout dx,al;从端口从端口A输出输出 例10.28255A的应用打印子程序:查询mov dx,0fffchprint2:in al,dxtest al,80h;检测(检测(PC7)为)为1否否?jz print2;为为0,说明打印机没有响应,继续检测,说明打印机没有响应,继续检测 例10.28255A的应用打印子程序:返回inc bx;为为1,说明打印机已接受数据,说明打印机已接受数据loop print1;准备取下一个数据输出准备取下一个

27、数据输出pop dx;打印结束,恢复寄存器打印结束,恢复寄存器pop axret;返回返回printsendp例10.28255A的应用10.2.4 双机并行通信接口PA0PA7PC4PC08255A甲方(发送)甲方(发送)PA0PA7PC7PC68255A已方(接收)已方(接收)8255A的应用甲机的初始化mov dx,0fffehmov al,0a0hout dx,al;工作方式字:端口工作方式字:端口A方式方式1输出输出mov al,0dh;使使PC6(INTEA)1,允许中断,允许中断out dx,al例10.38255A的应用甲机发送程序trsmt: mov dx,0fffchin

28、al,dx;查询查询PC3(INTRA)1?and al,08hjz trsmtmov dx,0fff8h ;发送数据发送数据mov al,ahout dx,al例10.38255A的应用乙机的初始化mov dx,0fffehmov al,98hout dx,al;工作方式字:端口工作方式字:端口A方式方式0输入输入mov al,01h;使使PC0(ACK*)1,因尚未收到数据,因尚未收到数据out dx,al例10.38255A的应用乙机:查询接收receive: mov dx,0fffchin al,dx;查询查询PC4(OBF*)0?and al,10hjnz receivemov dx

29、,0fff8h ;接收数据接收数据in al,dxmov ah,al例10.38255A的应用乙机:接收响应mov dx,0fffehmov al,00h;使使PC0(ACK*)0out dx,alnop;适当延时,产生一定宽度的低脉冲适当延时,产生一定宽度的低脉冲nopmov al,01h;使使PC0(ACK*)1out dx,al;产生低脉冲产生低脉冲ACK*信号信号例10.38255A的应用实验实验5 5 并行接口实验并行接口实验n 要求要求类似习题类似习题10.8n 要求要求对应例题对应例题10.2n 请请在在对对比比过过程程中中,掌掌握握例例题题、习题和完成实验要求习题和完成实验要求

30、 提提示示8255A的应用10.3 键盘及其接口n键盘是微机系统最常使用的输入设备键盘是微机系统最常使用的输入设备n小小键键盘盘:适适用用于于单单板板机机或或以以微微处处理理器器为为基基础础的的仪仪器器,实实现现数数据据、地地址址、命命令令及及指指令令等的输入等的输入n独独立立键键盘盘:通通过过5芯芯电电缆缆与与PC微微机机主主机机连连接接8255A的应用10.3.1 简易键盘的工作原理+5V+5V+5Vn最简单的线性结构键盘最简单的线性结构键盘n每一个引脚连接一个键每一个引脚连接一个键n输入输入0/1反映健是否高低反映健是否高低8255A的应用10.3.1 简易键盘的工作原理+5V+5V控制

31、线控制线检检测测线线n常用的常用的矩阵结构矩阵结构键盘键盘n每行连接一个引脚每行连接一个引脚n每列连接一个引脚每列连接一个引脚n利利 用用 控控 制制 线线 为为 低低 、读取检测线来识别闭合键读取检测线来识别闭合键8255A的应用1. 扫描法n先先使使第第0行行接接低低电电平平,其其余余行行为为高高电电平平,然然后后看看第第0行是否有键闭合(通过检查列线电位实现)行是否有键闭合(通过检查列线电位实现)n此此后后,再再将将第第1行行接接地地,然然后后检检测测列列线线是是否否有有变变为为低低电电位位的的线线。如如此此往往下下一一行行一一行行地地扫扫描描,直直到到最最后一行后一行n在在扫扫描描过过

32、程程中中,当当发发现现某某一一行行有有键键闭闭合合时时,便便在在扫描中途退出扫描中途退出n通过组合行线和列线可识别此刻按下的是哪一键通过组合行线和列线可识别此刻按下的是哪一键8255A的应用第1段:是否有键按下key1:mov al,00mov dx,rowportout dx,al ;使所有行线为低电平使所有行线为低电平 mov dx,colport in al,dx;读取列值读取列值cmp al,0ffh;判定是否有列线为低电平判定是否有列线为低电平jz key1;无闭合键,循环等待无闭合键,循环等待call delay ;有,延迟有,延迟20ms清除抖动清除抖动键盘扫描程序8255A的应

33、用第2段:识别按键(扫描)mov cx,8 ;行数送行数送CXmov ah,0feh;扫描初值送扫描初值送AHkey2:mov al,ahmov dx,rowportout dx,al ;输出行值(扫描值)输出行值(扫描值)mov dx,colportin al,dx;读进列值读进列值键盘扫描程序8255A的应用第2段:识别按键(判断)cmp al,0ffh;判断有无低电平的列线判断有无低电平的列线jnz key3;有,则转下一步处理有,则转下一步处理rol ah,1;无,则移位扫描值无,则移位扫描值loop key2;准备下一行扫描准备下一行扫描jmp key1;所有行都没有键按下,则返回继

34、续检测所有行都没有键按下,则返回继续检测key3: ;此时,此时,al列值,列值,ah行值行值键盘扫描程序8255A的应用2. 反转法n首首先先,将将行行线线作作为为控控制制线线接接一一个个输输出出端端口口,将将列列线作为检测线接一个输入端口线作为检测线接一个输入端口nCPU通通过过输输出出端端口口将将行行线线(控控制制线线)全全部部设设置置为为低低电电平,然后从输入端口读取列线(检测线)平,然后从输入端口读取列线(检测线)n然然后后,将将行行线线和和列列线线的的作作用用互互换换,即即将将列列线线作作为为控制线接输出端口,行线作为检测线接输入端口控制线接输出端口,行线作为检测线接输入端口n将将

35、刚刚才才读读得得的的列列值值从从列列线线所所接接端端口口输输出出,再再读读取取行行线线的输入值的输入值n这这样样,当当一一个个键键被被按按下下时时,必必定定可可以以读读得得一一对对唯唯一的行值和列值一的行值和列值条件条件:连接行线和列线的接口电路:连接行线和列线的接口电路必须支持必须支持动态改变输入、输出方式动态改变输入、输出方式8255A的应用第1段:是否有键按下;设置行线接输出端口,列线接输入端口设置行线接输出端口,列线接输入端口key2:mov al,00mov dx,rowportout dx,al;设置行线全为低设置行线全为低mov dx,colportin al,dx;读取列值读取

36、列值cmp al,0ffhjz key2;无闭合键,循环等待无闭合键,循环等待push ax;有闭合键,保存列值有闭合键,保存列值 push ax键盘扫描程序8255A的应用第2段:识别按键(反转法);设置行线接输入端口,列线接输出端设置行线接输入端口,列线接输出端mov dx,colportpop axout dx,al;输出列值输出列值mov dx,rowportin al,dx;读取行值读取行值pop bx;组合行列值组合行列值mov ah,bl;此时,此时,al行值,行值,ah列值列值键盘扫描程序8255A的应用行列值表和键代码表;键盘的行列值表键盘的行列值表tabledw 0fefe

37、h;键键0的行列值(键值)的行列值(键值)dw 0fdfeh;键键1的行列值的行列值dw 0fbfeh;键键2的行列值的行列值;其他键的行列值其他键的行列值;键盘的键代码表键盘的键代码表chardb ;键键0的代码值的代码值db ;键键1的代码值的代码值;其他键的代码值其他键的代码值键盘扫描程序8255A的应用第3段:查找键代码mov si,offset tablemov di,offset charmov cx,64;CX键的个数键的个数key3:cmp ax,si ;与键值比较与键值比较 jz key4;相同,说明查到相同,说明查到inc si;不相同,继续比较不相同,继续比较inc si

38、inc diloop key3jmp key1;全部比较完,仍无相同,说明是重键全部比较完,仍无相同,说明是重键键盘扫描程序8255A的应用第4段:等待按键释放key4:mov al,di;获取键代码送获取键代码送AL;判断按键是否释放,没有则等待判断按键是否释放,没有则等待call delay;按键释放,延时消除抖动按键释放,延时消除抖动;后续处理后续处理键盘扫描程序8255A的应用3. 抖动和重健问题n机械按键存在机械按键存在抖动现象抖动现象n当当按按下下或或释释放放一一个个键键时时,往往往往会会出出现现按按键键在在闭闭合合位位置置和断开位置之间跳几下才稳定到闭合状态和断开位置之间跳几下才

39、稳定到闭合状态n抖动的持续时间通常不大于抖动的持续时间通常不大于10msn采用采用硬件消抖电路硬件消抖电路或软件延时方法解决或软件延时方法解决n重键指两个或多个键同时闭合重键指两个或多个键同时闭合n出现重键时,读取的键值必然出现有一个以上的出现重键时,读取的键值必然出现有一个以上的0n是否给予识别和识别哪一个键是否给予识别和识别哪一个键8255A的应用重健问题的处理n简单情况:不予识别,认为是错误的按键简单情况:不予识别,认为是错误的按键n通常情况:只承认先识别出来的键通常情况:只承认先识别出来的键n连锁法:直到所有键都释放后,读入下一个键连锁法:直到所有键都释放后,读入下一个键n巡巡回回法法

40、:等等被被识识别别的的键键释释放放以以后后,就就可可以以对对其其他闭合键作识别,而不必等待全部键释放他闭合键作识别,而不必等待全部键释放n正常的组合键:都识别出来正常的组合键:都识别出来8255A的应用DBPB6PB7PAIRQ1T1P10P21P11P22P204 GND1 CLOCK2 DATA5 +5V3 RESETPC机键盘机键盘系统板系统板80488255A8259ALS322串串并并转转换换器器键键盘盘阵阵列列按键按键选通选通10.3.2 PC机键盘的工作原理8255A的应用1. PC机键盘的工作过程n键盘电路正常工作时不断地扫描键盘矩阵键盘电路正常工作时不断地扫描键盘矩阵n有有按

41、按键键,则则确确定定按按键键位位置置之之后后以以串串行行数数据据形式发送给系统板键盘接口电路形式发送给系统板键盘接口电路n键按下时,发送该键的接通扫描码键按下时,发送该键的接通扫描码n键松开时,发送该键的断开扫描码键松开时,发送该键的断开扫描码n若若一一直直按按住住某某键键,则则以以拍拍发发速速率率(每每秒秒230次)连续发送该键的接通扫描码次)连续发送该键的接通扫描码接通接通扫描码扫描码反映该键在键盘上的位置反映该键在键盘上的位置断开扫描码(接通扫描码最高位置断开扫描码(接通扫描码最高位置1 1)接通扫描码接通扫描码80H80H8255A的应用2. 键盘接口电路的工作过程n接收一个串行形式字

42、符以后,进行串并转换接收一个串行形式字符以后,进行串并转换n然后产生键盘中断然后产生键盘中断IRQ1请求,等待读取键盘数据请求,等待读取键盘数据nCPU响应中断,则进入响应中断,则进入09H键盘中断服务程序键盘中断服务程序: 读取键盘扫描码:用读取键盘扫描码:用IN AL,60H即可即可 响应键盘:系统使响应键盘:系统使PB71 允许键盘工作:系统使允许键盘工作:系统使PB70 处理键盘数据处理键盘数据 给给8259A中断结束中断结束EOI命令,中断返回命令,中断返回8255A的应用3. PC机键盘中断服务程序n09H号中断服务程序(号中断服务程序(kbint过程)过程)n完成常规的操作完成常

43、规的操作n处处理理键键盘盘数数据据:将将获获取取的的扫扫描描码码通通过过查查表表转转换换为为对对应应的的ASCII码码送送缓缓冲冲区区。对对于于不不能能显显示示的的按键,则转换为按键,则转换为0,且不再送至缓冲区,且不再送至缓冲区n键盘键盘I/O功能程序(功能程序(kbget子程序)子程序)n从缓冲区中读取转换后的从缓冲区中读取转换后的ASCII码码n功能调用(主程序)功能调用(主程序)n循环显示键入的字符循环显示键入的字符8255A的应用键盘缓冲区n中断服务程序与子程序之间传递参数中断服务程序与子程序之间传递参数n先进先出循环队列先进先出循环队列n队列空队列空n进队列进队列n出队列出队列n队

44、列满队列满buffer0129队列始端队列始端队列末端队列末端8255A的应用键盘缓冲区bufferdb 10 dup(0)bufptr1dw 0;队列头指针队列头指针bufptr2dw 0;队列尾指针队列尾指针例10.4buffer0129队列始端队列始端队列末端队列末端bufptr1bufptr28255A的应用键盘代码表scantbdb 0,1,1234567890-=,08h;键盘第键盘第1排的按键,从排的按键,从ESC到退格到退格db 0,qwertyuiop,0dh;键盘第键盘第2排的按键,从排的按键,从Tab到回车到回车db 0,0,789-456+1230.;右边小键盘,从右边

45、小键盘,从Num Lock到到Del例10.48255A的应用设置中断向量1mov ax,3509hint 21hpush espush bx;保存保存09H号原中断向量号原中断向量cli;关中断关中断push ds;设置设置09H号新中断向量号新中断向量mov ax,seg kbintmov ds,axmov dx,offset kbint例10.48255A的应用设置中断向量2mov ax,2509hint 21hpop dsin al,21h;允许允许IRQ1中断,其他不变中断,其他不变push axand al,0fdhout 21h,alsti;开中断开中断例10.48255A的应用

46、调用并显示start1:call kbget ;获取按键的获取按键的ASCII码码cmp al,1jz start2;是是ESC键,则退出键,则退出push ax;保护字符保护字符mov dl,al ;显示字符显示字符mov ah,2int 21hpop ax;恢复字符恢复字符例10.48255A的应用处理回车符cmp al,0dh;该字符是回车符吗?该字符是回车符吗?jnz start1;不是,取下一个按键字符不是,取下一个按键字符mov dl,0ah;是回车符,则再进行换行是回车符,则再进行换行mov ah,2int 21hjmp start1;继续取字符继续取字符例10.48255A的应

47、用恢复中断向量start2:clipop axout 21h,alpop dxpop dsmov ax,2509hint 21hstimov ax,4c00h;返回返回DOSint 21h例10.48255A的应用子程序:判断缓冲区空否kbgetprockbget1: push bx;保护保护BXclimov bx,bufptr1 ;取头指针取头指针cmp bx,bufptr2 ;与尾指针相等否?与尾指针相等否?jnz kbget2;不相等,说明缓冲区有字符,转移不相等,说明缓冲区有字符,转移sti;相等,说明缓冲区空相等,说明缓冲区空pop bx jmp kbget1;等待缓冲区有字符等待缓

48、冲区有字符例10.48255A的应用子程序:获取按键字符kbget2: mov al,bufferbx;取字符送取字符送ALinc bx;队列头指针增量队列头指针增量cmp bx,10;是否指向队列末端是否指向队列末端jc kbget3;没有,转移没有,转移mov bx,0;指针指向队列末端,则指针指向队列末端,则循环循环,指向始端,指向始端kbget3: mov bufptr1,bx ;设定新队列头指针设定新队列头指针stipop bxretkbgetendp例10.48255A的应用中断服务程序:响应键盘kbintprocsti;开中断开中断push ax;保护寄存器保护寄存器push b

49、xin al,60h;读取键盘扫描码读取键盘扫描码push axin al,61h;使使PB71,响应键盘,响应键盘or al,80hout 61h,aland al,7fh;使使PB70,允许键盘,允许键盘out 61h,al例10.48255A的应用中断服务程序:数据处理pop axtest al,80h;是断开扫描码是断开扫描码?jnz kbint2;是,则退出是,则退出mov bx,offset scantb;是接通扫描码,取表首地址是接通扫描码,取表首地址 xlat;将扫描码转换成将扫描码转换成ASCII码码cmp al,0;是否为合法的是否为合法的ASCII码?码?jz kbint

50、2;不是,则退出不是,则退出例10.48255A的应用中断服务程序:指针增量mov bx,bufptr2mov bufferbx,al;将将ASCII码存入缓冲区队列尾码存入缓冲区队列尾inc bx;队列尾指针增量队列尾指针增量cmp bx,10;是否指向队列末端?是否指向队列末端?jc kbint1;没有,转移没有,转移mov bx,0;指针指向队列末端,则指针指向队列末端,则循环循环,指向始端,指向始端例10.48255A的应用中断服务程序:判断缓冲区满否kbint1: cmp bx,buffptr1jz kbint2 ;若队列满,则退出若队列满,则退出mov bufptr2,bx;队列不

51、满,设置新的队列尾指针队列不满,设置新的队列尾指针例10.4bufptr1bufptr2buffer41H031H132H239H9队列始端队列始端队列末端队列末端8255A的应用中断服务程序:中断返回kbint2:mov al,20h;向向8259A发送普通中断结束命令发送普通中断结束命令out 20h,alpop bx;恢复寄存器恢复寄存器pop axiret ;中断返回中断返回kbintendp例10.48255A的应用实验实验6 6 小键盘实验小键盘实验n认认真真阅阅读读教教材材中中扫扫描描法法和和反反转转法识别按键的程序段法识别按键的程序段n 延延时时子子程程序序可可以以采采用用软软

52、件件延延时程序(教材时程序(教材P245)n 延延时时子子程程序序也也可可以以采采用用实实时时时时钟钟的的硬硬件件延延时时(教教材材P201),它更精确它更精确 提提示示8255A的应用10.4 LED数码管及其接口n发光二极管发光二极管LED是是最简单的显示设备最简单的显示设备n由由7段段LED就可以组成的就可以组成的LED数码管数码管nLED数数码码管管广广泛泛用用于于单单板板微微型型机机、微微型型机机控制系统及数字化仪器中控制系统及数字化仪器中nLED数码管可以显示内存地址和数据等数码管可以显示内存地址和数据等8255A的应用1. LED数码管的工作原理n主要部分是主要部分是7段发光管段

53、发光管n顺时针分别称为顺时针分别称为a、b、c、d、e、f、gn有的产品还附带有一个小数点有的产品还附带有一个小数点hn通过通过7个发光段的不同组合个发光段的不同组合n主要显示主要显示09n也可显示也可显示AF(16进制数)进制数)n还可显示个别特殊字符:、还可显示个别特殊字符:、P hgfedcba8255A的应用LED数码管的结构共阳极共阳极阳极阳极+5Vabcdefgh阴极阴极abcdefgh共阴极共阴极8255A的应用2. 单个LED数码管的显示8255APA0PA1PA2PA3PA4PA5PA6PA7驱驱动动电电路路abcdefgh8255A的应用单个数码管的显示LEDtb db 3

54、fh,06h,5bh,;显示代码表显示代码表mov al,1;AL要显示的数字要显示的数字mov bx,offset LEDtbxlat;换码:换码:ALDS:BXALmov dx,portout dx,al;输出显示输出显示软件译码8255A的应用3. 多个LED数码管的显示n8个数码管:用个数码管:用2个个8位输出端口控制位输出端口控制n硬件上用公用的驱动电路来驱动各数码管硬件上用公用的驱动电路来驱动各数码管n软件上用扫描方法实现数码显示软件上用扫描方法实现数码显示8255A的应用位控制端口电路D7D6D5D4D3D2D1D0阳极阳极位位0位位1位位2D0D7位控制位控制反反相相寄寄存存驱

55、驱动动bitport, IOW8255A的应用位控制端口作用n控制哪个(控制哪个(位位)数码管显示)数码管显示n当当位位控控制制端端口口的的控控制制码码某某位位为为低低电电平平时时,经经反反相相驱驱动动,便便在在相相应应数数码码管管的的阳阳极极加加上上了高电平,这个数码管就可以显示数据了高电平,这个数码管就可以显示数据位控制:位控制:Di0,相应位发光,相应位发光D7D6D5D4D3D2D1D0位位7位位6位位5位位4位位3位位2位位1位位08255A的应用段控制端口电路D0D1D2D3D4D5D6D7阳极阳极位位0a b c d e f g h位位1位位2D0D7段控制段控制正正相相寄寄存存

56、驱驱动动segport, IOW8255A的应用段控制端口作用n控制哪个控制哪个段段显示,决定具体显示什么数码显示,决定具体显示什么数码n段控制端口送出显示代码到数码管相应段段控制端口送出显示代码到数码管相应段n此端口由此端口由8个数码管共用个数码管共用段控制:段控制:Di0,相应段发光,相应段发光D7D6D5D4D3D2D1D0hgfedcba通过位、段控制端口的共同作用通过位、段控制端口的共同作用才能确定才能确定哪个数码管哪个数码管显示显示什么数码什么数码8255A的应用数码缓冲区;数据段数据段LEDdtdb 8 dup(0);数码缓冲区数码缓冲区;主程序主程序mov si,offset

57、LEDdtcall LEDdisp;调用显示子程序调用显示子程序例10.48255A的应用获取显示代码LEDdisp procpush axpush bxpush dxmov bx,offset LEDtbmov ah,0feh;指向最左边数码管指向最左边数码管LED1: lodsb;取出要显示的数字取出要显示的数字xlat cs:LEDtb;得到显示代码:得到显示代码:ALCS:BXAL例10.48255A的应用数码显示mov dx,segport;segport为段控制端口为段控制端口out dx,al;送出段码送出段码mov al,ah;取出位显示代码取出位显示代码 mov dx,bit

58、port;bitport为位控制端口为位控制端口out dx,al;送出位码送出位码call delay;实现数码管延时显示实现数码管延时显示例10.48255A的应用显示下位数码rol ah,1;指向下一个数码管指向下一个数码管 cmp ah,0feh ;最右边的数码管?最右边的数码管?jnz LED1;显示下一个数字显示下一个数字pop dxpop bxpop axret;8位数码管都显示位数码管都显示LEDtbdb 0c0h,0f9h, LEDdisp endp例10.48255A的应用软件延时timer= 10 ;延时常量延时常量delayprocpush bxpush cxmov b

59、x,timer;外循环:外循环:timer确定的次数确定的次数delay1:xor cx,cxdelay2:loop delay2;内循环:内循环:216次循环次循环例10.48255A的应用软件延时dec bxjnz delay1pop cxpop bxretdelayendp例10.4通过控制重复频率和延时时间通过控制重复频率和延时时间就可以得到各种显示效果就可以得到各种显示效果8255A的应用实验实验7 LED7 LED数码管显示实验数码管显示实验n 请请认认真真阅阅读读教教材材中中8位位数数码码管管显示子程序显示子程序n 延延时时子子程程序序可可以以采采用用软软件件延延时程序(教材时程

60、序(教材P245)n 延延时时子子程程序序建建议议采采用用实实时时时时钟钟的的硬硬件件延延时时(教教材材P201),它更精确,也便于控制时间它更精确,也便于控制时间 提提示示8255A的应用10.5 并行打印机接口n一般采用一般采用Centronics标准接口或其简化接口标准接口或其简化接口nCentronics接口是的一个并行接口协议接口是的一个并行接口协议n这个协议规定了这个协议规定了36脚簧式插头座和信号含义脚簧式插头座和信号含义n其其中中前前11条条线线是是关关键键信信号号,他他们们是是8条条数数据据线线、3条联络线(选通、响应和打印机忙)条联络线(选通、响应和打印机忙)n还有一些特殊

61、控制线、状态线还有一些特殊控制线、状态线nPC系列机的并行打印机接口是一个系列机的并行打印机接口是一个25针插口针插口8255A的应用1. 控制打印机的输出信号nSLCTIN*选择输入选择输入相当于打印机选中信号相当于打印机选中信号nINIT*初始化初始化使打印机被复位成初始状态使打印机被复位成初始状态nAUTOFEEDXT*自自动动走走纸纸使使打打印印机机打打印印后后自动走纸一行自动走纸一行nSTROBE*选选通通用用于于使使打打印印机机接接收收数数据据的的选选通通信信号号。负负脉脉冲冲的的宽宽度度在在接接收收端端应应大大于于0.5 s,数据才可靠地存入打印机数据缓冲区数据才可靠地存入打印机

62、数据缓冲区8255A的应用2. 反映打印机状态的输入信号nBUSY忙忙表示打印机不能接收数据表示打印机不能接收数据nACK*响响应应打打印印机机接接收收一一个个数数据据字字节节后后就就回回送送一一个个响响应应的的负负脉脉冲冲信信号号(脉脉宽宽约约为为5 s),表示打印机已准备好接收新数据表示打印机已准备好接收新数据nPE纸用完纸用完说明打印机无纸说明打印机无纸nSLCT选择选择表示处于联机选中状态表示处于联机选中状态nERROR*错错误误当当打打印印机机处处于于无无纸纸、脱脱机机或或错错误状态之一时,这个信号变为低电平误状态之一时,这个信号变为低电平8255A的应用3. 输出数据线nDATA0

63、DATA78位并行数据信号线位并行数据信号线n打印数据通过它们送至打印机打印数据通过它们送至打印机n8位位数数据据的的可可靠靠输输出出通通过过选选通通STROBE*、响应响应ACK*和忙和忙BUSY三个联络信号控制三个联络信号控制打印时序打印时序8255A的应用打印机时序BUSYDATA07ACKSTROBE8255A的应用第第1010章教学要求章教学要求1. 掌掌握握8255A的的结结构构特特点点和和引引脚脚功能功能2. 掌掌握握8255A的的各各种种工工作作方方式式、编程及方式编程及方式0/1的应用的应用3. 理理解解简简易易键键盘盘的的工工作作原原理理、抖抖动和重键问题及解决方法动和重键问题及解决方法4. 掌掌握握键键盘盘扫扫描描程程序序(扫扫描描法法、行反转法)的编写行反转法)的编写8255A的应用第第1010章教学要求章教学要求(续)(续)5. 了解了解PC机键盘的工作原理机键盘的工作原理6. 掌掌握握LED数数码码管管的的工工作作原原理理和和多多位位显显示方法示方法7. 了了解解并并行行打打印印机机接接口口的的引引脚脚定定义义和和接接口时序口时序习题习题10(第(第252页)页)10.4 10.7 10.8 10.10 10.11 11.158255A的应用

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号