第七章 可编程接口芯片.ppt
《第七章 可编程接口芯片.ppt》由会员分享,可在线阅读,更多相关《第七章 可编程接口芯片.ppt(76页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第7 7章章可编程接口芯片可编程接口芯片v可编程接口概术v可编程并行输入输出接口芯片可编程并行输入输出接口芯片8255Av可编程定时计数器接口芯片可编程定时计数器接口芯片8253 v 可编程接口概术可编程接口概术 一个简单的具有输入功能和输出功能的可编程一个简单的具有输入功能和输出功能的可编程接口接口电路如下图,它包括一个输入接口,其组成主要电路如下图,它包括一个输入接口,其组成主要是八位的三态门;一个输出接口,其组成主要是八位是八位的三态门;一个输出接口,其组成主要是八位的锁存器;另外还有八位的多路转换开关及控制这个的锁存器;另外还有八位的多路转换开关及控制这个开关的寄存器开关的寄存器FF
2、。通过对寄存器通过对寄存器FF写入相应的命令字可使该写入相应的命令字可使该I/O口工作输入或输出方式口工作输入或输出方式CPU外外设设 用户对寄存器用户对寄存器FF写入的内容称为命令写入的内容称为命令字或方式控制字,而寄存器字或方式控制字,而寄存器FF称为命令寄称为命令寄存器,相应的端口称为命令端口或控制端存器,相应的端口称为命令端口或控制端口,口,对可编程芯片初始化过程实际上就是对可编程芯片初始化过程实际上就是对芯片的控制端口写入各种对芯片的控制端口写入各种命令字命令字的操作的操作过程。过程。v 目前常用的可编程芯片有如下几种:目前常用的可编程芯片有如下几种:v8255A 并行并行I/O接口
3、接口v8253计数器计数器/定时器定时器v8251串行串行I/Ov8259A 中断控制器中断控制器7.1可编程并行输入输出接口芯片可编程并行输入输出接口芯片8255A一、功能一、功能 8255A是是一一种种通通用用的的可可编编程程并并行行IO接接口口芯芯片片,广广泛泛用用于于几几乎乎所所有有系系列列的的微微型型机机系系统统中中,如如8086、MCS51、Z80CPU系系统统等等。8255A具具有有3个个带带锁锁存存或或缓缓冲冲的的数数据据端端口口,可可与与外外设设并并行行进进行行数数据据交交换换。用用户户可可用用程程序序来来选选择择多多种种操操作作方方式式,通通用用性性强强。使使用用灵灵活活,
4、可可为为CPU与与外外设设之之间间提提供供并行输入输出通道。并行输入输出通道。二、二、8255A的内部结构的内部结构并行输入输并行输入输出端口出端口 A组和组和B组组控制控制 数据总线缓数据总线缓冲器冲器 读写控制读写控制电路电路 图图728255A内部结构内部结构8255A8255A具有具有3 3个个带锁带锁存或存或缓缓冲的数据端口,可冲的数据端口,可进进行并行数据行并行数据传传送。送。8255A8255A内部内部结结构如构如图图7 72 2,基本,基本组组成成为为:A口:口:PA7PA0A组组C口高口高4位:位:PC7PC4CPU数据缓冲器数据缓冲器两组两组C口低口低4位:位:PC3PC0
5、B组组3种工作方式种工作方式B口:口:PB7PB0读读/写控制电路写控制电路 其中其中A口、口、B口分别为口分别为8位位I/O口,可进行数据输入口,可进行数据输入/输出,输出,C口即可作口即可作为为8位位I/O口,也可分别作为口,也可分别作为A口、口、B口与口与CPU或外设连接的状态联络线。或外设连接的状态联络线。8位位C口口三、三、8255A的管脚分配的管脚分配1、与外设连接的管脚、与外设连接的管脚 我们已经知道我们已经知道8255A8255A有三个数据端口,每个有三个数据端口,每个端口是端口是8 8位的,由此可推算与外设相连接的管位的,由此可推算与外设相连接的管脚共有脚共有2424位。其中
6、位。其中A A口有口有PAPA7 7PAPA0 0八个八个I/OI/O引脚,引脚,B B口有口有PBPB7 7PBPB0 0八个八个I/OI/O引脚,引脚,C C口有口有PCPC7 7PCPC0 0八八个个I/OI/O引脚。特别地对于引脚。特别地对于PCPC7 7PCPC0 0,其中可有若其中可有若干根复用线可用于干根复用线可用于“联络联络”信号或状态信号,信号或状态信号,其具体定义与端口的工作方式有关。其具体定义与端口的工作方式有关。与与I/O口有关的引脚(用于连接外设)口有关的引脚(用于连接外设)A口:口:8位,位,PA7PA0作输入作输入/输出口输出口B口:口:8位,位,PB7PB0C口
7、:口:8位,位,PC7PC0,作输入或输出口,作输入或输出口,或是或是A口、口、B口与口与CPU或外设连接的状态联络线。或外设连接的状态联络线。2、与、与CPU连接的管脚连接的管脚 包括数据线包括数据线D D7 7DD0 0,读写控制线和,复位读写控制线和,复位线线RESETRESET,以及和以及和CPUCPU地址线相连接的片选信地址线相连接的片选信号、端口地址控制线号、端口地址控制线A A0 0和和A A1 1。数据线:数据线:D7D0控制线:控制线:RDWRRESET8255A端口地址控制引脚端口地址控制引脚CS(片选片选)A1A0I/O口口000A口地址低口地址低2位位001B口地址低口
8、地址低2位位010C口地址低口地址低2位位011控制口地址低控制口地址低2位位3、电源线和地线、电源线和地线8255A8255A的电源引脚为的电源引脚为V VCCCC和和GNDGND。V VCCCC为电源线,为电源线,一般取一般取5V 5V。GNDGND为电源地线。为电源地线。四、四、8255A的工作方式及编程的工作方式及编程1、8255A的工作方式的工作方式8255A8255A有三种工作方式,它们是:有三种工作方式,它们是:(1)(1)方式方式0 0基本输入输出方式;基本输入输出方式;与与CPU同步传送,同步传送,A口、口、B口、口、C口均适用。口均适用。v(2)方式方式1 1选通输入输出方
9、式;选通输入输出方式;适用于适用于A口、口、B口,口,vC口作联络线。当外设速度慢于口作联络线。当外设速度慢于CPU时,可用查询或中断方时,可用查询或中断方式进行有条件异步传送。(需查询外设是否准备好)式进行有条件异步传送。(需查询外设是否准备好)v(3)方式方式2 2双向传送方式。双向传送方式。分时输入或输出,只有分时输入或输出,只有A口适用,口适用,需需PC7PC3提供提供“联络联络”信号,此时,信号,此时,B口可工作在方式口可工作在方式0或方式或方式1。2、8255A编程编程 所谓所谓8255A8255A编程,就是用户在使用编程,就是用户在使用82558255前,前,用户可用软件来定义端
10、口的工作方式,选择用户可用软件来定义端口的工作方式,选择所需要的功能。所需要的功能。与与8255A工作方式有关的工作方式有关的3个个“字字”(1)方式控制字:)方式控制字:8位位 (2)2)C C口置口置“1 1”清清“0 0”控制字控制字 置置“1”又称为置位操作,而清又称为置位操作,而清“0”称为复位操称为复位操作。作。(3)(3)读出状态字读出状态字当当8255A8255A由程序设定在方式由程序设定在方式1 1或方式或方式2 2工作工作时,时,C C口就根据不同的情况,产生或接收口就根据不同的情况,产生或接收“联络联络”信号。如果这时我们对信号。如果这时我们对C C口进行读操口进行读操作
11、,则读出的内容就包含两部分内容,一部作,则读出的内容就包含两部分内容,一部分是那些作为分是那些作为I/OI/O线上的内容,另一部分是线上的内容,另一部分是与与“联络联络”状态有关的内容。状态有关的内容。方式方式1的输入状态字的输入状态字五、五、8255A的的三种工作方式三种工作方式1 1、8255A工作在方式工作在方式0(重点掌握)重点掌握)例例1:8255A8255A的的A A口和口和B B口工作在方式口工作在方式0 0,A A口口为输入端口,接有四个开关。为输入端口,接有四个开关。B B口为输出端,口为输出端,接有一个七段发光二极管,连接电路如图所接有一个七段发光二极管,连接电路如图所示。
12、试编一程序要求七段发光二班管显示开示。试编一程序要求七段发光二班管显示开关所拨通的数字。关所拨通的数字。电路LED数码管段码表 分析分析题题意:意:(1 1)A A口方式口方式0 0输输入,入,B B口方式口方式0 0输输出出(2 2)将)将A A口口输输入信息从入信息从B B口口输输出出(3 3)8255A8255A工作需初始化,即写入相工作需初始化,即写入相应应的方式控制字的方式控制字(包括工作方式控制字和(包括工作方式控制字和C C口置位口置位/清清0 0控制字,控制字,写入同一控制口中,无写入同一控制口中,无顺顺序)序)(4 4)8255A8255A有有4 4个个I/OI/O口,口,应
13、应有有4 4个个对应对应的口地址的口地址(5 5)从)从图图7.57.5可知,可知,8255A8255A有有A1 A0A1 A0两个地址端,两个地址端,可接可接CPUCPU的的A2 A1A2 A1,得出,得出A A口、口、B B口、口、C C口及控制口的低口及控制口的低8 8位地址,位地址,高高8 8位由片位由片选选信号得出。信号得出。CPU CPU 的的A0A0端端应应作作为为奇偶口地址的奇偶口地址的选择选择端,可与片端,可与片选选信号信号组组合。合。由硬件可得:由硬件可得:A15A14A7A6A5A4A3A2A1A0I/O口口地址地址 10100000A口口8020H假设为假设为0010B
14、口口8022H100C 口口8024H110 控制口控制口8026H(6)8255A控制字为控制字为90H(C口没有用假设为口没有用假设为0)则:则:8255A初始化程序为初始化程序为;MOVDX,8026HMOVAL,90HOUTDX,AL(7)PA3PA0输入不同二进制,输入不同二进制,PB7PB0所接七段所接七段数码管,显示相应的十进制数,可用数码管,显示相应的十进制数,可用XLAT换码指令。换码指令。接接138译码器的译码器的CBAMOVAL,90H;设置设置8255方式字方式字MOVDX,8026HOUTDX,ALMOVDX,8020H;取取A口地址口地址INAL,DX;取键盘信息取
15、键盘信息ANDAL,0FH;屏蔽高屏蔽高4位位MOVBX,TABLE1;取段码表首地址取段码表首地址XLAT;查表得段码查表得段码MOVDX,8022H;取取B口地址口地址OUTDX,AL;输出显示输出显示例例2:已知:已知8255A的端口地址为的端口地址为02E1H02E7H,请实现对端口请实现对端口C的的PC2置位和置位和PC4复位。复位。解:解:MOVDX,02E7H;大于大于8位的端口地址送位的端口地址送DXMOVAL,05H;位操作控制字位操作控制字00000101OUTDX,AL;置位置位PC2MOVAL,08H;位操作控制字位操作控制字00001000OUTDX,AL;复位复位P
16、C4例例3:请在:请在8255A的的C端口的端口的PC7位输出一个正脉冲(设原来位输出一个正脉冲(设原来PC7=0)。)。解:程序段如下解:程序段如下MOVAL,0FH;置位置位PC7,操作控制字操作控制字00001111OUTCTRL_PORT,AL;写入控制端口写入控制端口MOVAL,0EH;复位复位PC7,操作控制字操作控制字00001110OUTCTRL_PORT,AL;写入控制端口写入控制端口注意:注意:端口端口C置位置位/复位控制字只对端口复位控制字只对端口C的某一个位进的某一个位进行操作,其他位不受影响。行操作,其他位不受影响。必须写入控制端口。必须写入控制端口。2 2、8255
17、A工作在方式工作在方式1输入输入A口的选通信号,当其有效时,口的选通信号,当其有效时,外设把数据打入外设把数据打入A A口的输入缓口的输入缓冲器冲器 A A口的输入缓冲器口的输入缓冲器“满满”信号,信号,当其有效时表示当其有效时表示A A口的输入缓口的输入缓冲器已暂存一个有效数据。冲器已暂存一个有效数据。A A口的中断请求信号。当其有口的中断请求信号。当其有效时,效时,8255A8255A的的A A口向口向CPUCPU申请申请中断,要求中断,要求CPUCPU从从A A口取数口取数 中断允许信中断允许信号。号。8255A工作在方式工作在方式1(输入)(输入)时时序序图图8255A工作在方式工作在
18、方式1(输入)(输入)当当A口已接受外设数据后,有两种方式口已接受外设数据后,有两种方式通知通知CPU取数:取数:其一用条件查询方式,通过查询缓其一用条件查询方式,通过查询缓冲器是否冲器是否“满满”,即,即IBFA是否为高电平是否为高电平来取数。来取数。其二用中断方式。其二用中断方式。在条件传送中,一般要有所谓的在条件传送中,一般要有所谓的“握手握手”信号来协调数据的传送。信号来协调数据的传送。“握手握手”信信号至少要有两位信号线,其中一位是由号至少要有两位信号线,其中一位是由接口电路发给外设,功能是向外设提供接口电路发给外设,功能是向外设提供接口电路的信息。另一位是由外设发给接口电路的信息。
19、另一位是由外设发给接口,功能是向接口提供外设的信息。接口,功能是向接口提供外设的信息。显然在显然在8255A的选通输入方式中的选通输入方式中STBASTBA和和IBFA是一对是一对“握手握手”信号。信号。例例2:8255A8255A的的A A口和口和B B口口分别工作在分别工作在方式方式1 1和方式和方式0 0,A A口为输入口为输入端口,接有端口,接有8 8个开个开关。关。B B口为输口为输出出端,接有端,接有8 8个发光二极管,连接电路如图所个发光二极管,连接电路如图所示。现要求用方式示。现要求用方式1 1把改变后的键信息输入到把改变后的键信息输入到CPUCPU并通过并通过B B口口显示。
20、显示。例题例题2电路图电路图这个系统的工作过程如下:这个系统的工作过程如下:1、用户通过改变、用户通过改变K0K7,产生新的,产生新的键信息;键信息;2、按下开关、按下开关K,产生选通信号,产生选通信号,数据进入数据进入A口的缓冲器,口的缓冲器,3、IBFA有效使有效使LED点亮。这里含点亮。这里含有两个信息,有两个信息,一个是一个是8255A通知通知CPU其其A口来了一个新数据,口来了一个新数据,另一另一个是告诉用户个是告诉用户CPU尚未取走这个尚未取走这个这个数据,用户不得再送其他数这个数据,用户不得再送其他数据;据;(是一个(是一个A口的口的“忙忙”信息)信息)4、CPU取走这个数据,取
21、走这个数据,LED熄灭;熄灭;5、转步骤、转步骤1。设设8255的的I/O地址分布为地址分布为88H8EH,相应的程序段如下:相应的程序段如下:moval,10111001b;命令字设置命令字设置A口为方式口为方式1的输入的输入out8eh,al;命令字送入控制口命令字送入控制口loop1:inal,8ch;取取C口的状态线口的状态线testal,00100000b;测试测试IBFA信息(高为信息(高为“忙忙”)jzloop1;等待用户设定新的键值等待用户设定新的键值movcx,0ffffh;延时,延时,LED灯亮(相对于步骤灯亮(相对于步骤3)loop2:looploop2;(为了使用户看清
22、楚)(为了使用户看清楚)inal,88h;取数。取数。LED灯灭(相对于步骤灯灭(相对于步骤4)out8Ah,al;更新更新B口的显示口的显示jmploop1;重复重复8255A初初始化始化3 3、8255A工作在方式工作在方式1输出输出外设回答信号。由外设发出。外设回答信号。由外设发出。当其有效时,表示外设已接当其有效时,表示外设已接收数据。收数据。A A口的输出缓冲器口的输出缓冲器“满满”信号,信号,当其有效时表示当其有效时表示A A口的输出缓口的输出缓冲器已暂存一个有效数据。冲器已暂存一个有效数据。A A口的中断请求信号。当其有口的中断请求信号。当其有效时,效时,8255A8255A的的
23、A A口向口向CPUCPU申请申请中断,要求中断,要求CPUCPU送数给送数给A A口口 中断允许信中断允许信号。号。8255A工作在方式工作在方式1(输出)时序图(输出)时序图 例如:当例如:当A口已接受外设数据后,有两种方式口已接受外设数据后,有两种方式通知通知CPU取数:其一用条件查询方式,通过取数:其一用条件查询方式,通过查询缓冲器是否查询缓冲器是否“满满”,即,即IBFA是否为高电是否为高电平来取数。其二用中断方式。平来取数。其二用中断方式。在这种方式下,在这种方式下,OBFA和和ACKA是一对是一对“握手握手”信号。信号。OBFA是是8255A产生,当其产生,当其有效时,告诉外设有
24、效时,告诉外设A口已有一个新数据。口已有一个新数据。ACKA是外设产生,当其有效时,通知是外设产生,当其有效时,通知A口外口外设已把数据取走。设已把数据取走。例例3:8255A的的A口口工工作作在在方方式式1的的输输出出,接接有有8个个发发光光二二极极管管,现现要要求求把把内内存存中中的的10个个数数,通通过过A口口发发送送给给发发光光二二极极管管以以二二进进制制的的形形式式供供用户抄录。用户抄录。例题例题3电路图电路图这个系统的工作过程如下:这个系统的工作过程如下:1、CPU把内存中的一个数据把内存中的一个数据写入写入A口;口;2、LED灯亮,告诉用户灯亮,告诉用户LED显示的是新数据;显示
25、的是新数据;3、用户抄录数据;用户抄录数据;4、用户按下开关用户按下开关K,发,发ACK信号,告诉信号,告诉CPU数据已取走;数据已取走;5、转第一步继续。、转第一步继续。设设8255的的I/O地址分布为地址分布为88H8EH,相应的程序段如下:,相应的程序段如下:moval,10100000;命令字定义命令字定义A口方式口方式1输出输出out8eh,almovcx,10;送送10个数个数movbx,offsetxx;数组指针送数组指针送bxloop1:moval,bx;取数取数out88h,al;送数到送数到A口口loop2:inal,8ch;取;取C口状态线口状态线andal,80h;测试
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七章 可编程接口芯片 第七 可编程 接口 芯片
限制150内