微机原理与控制技术卢晓红897io接口及过程通道应用final.ppt
《微机原理与控制技术卢晓红897io接口及过程通道应用final.ppt》由会员分享,可在线阅读,更多相关《微机原理与控制技术卢晓红897io接口及过程通道应用final.ppt(97页珍藏版)》请在三一办公上搜索。
1、1,第八章:I/O接口及输入输出通道应用,2,第八章:I/O接口及输入输出通道应用,8.0可编程并行接口芯片8255A8.1 8255与简单开关量输入输出控制8.2 8255与步进电机控制8.3可编程中断控制器8259A应用8.4可编程串行接口芯片8251A 应用8.5 8253与电子发声控制8.6 A/D与D/A转换器,3,8.0 可编程并行接口芯片8255A,8.0 可编程并行接口芯片8255A,4,CPU,外设,8.0 可编程并行接口芯片8255A,5,8255A的工作方式与控制字8255A的工作方式8255A在使用前要先写入一个工作方式控制字,以指定A、B、C三个端口各自的工作方式。8
2、255A共有三种工作方式:方式0基本输入输出方式,即无须联络就可以直接进行8255A与外设之间的数据输入或输出操作。方式1选通输入输出方式,此时8255A的A口和B口与外设之间进行输入或输出操作时,需要C口的部分I/O线提供联络信号。方式2双向输入输出方式,即同一端口的I/O线既可以输入也可以输出,只有A口可工作于方式2。,端口A可处于三种工作方式(方式0,方式1,方式2),端口B可处于两种工作方式(方式0,方式1),端口C常常被分成高4位和低4位两部分,可分别用来传送数据或控制信息。,8.0 可编程并行接口芯片8255A,6,8255A的控制字(定义工作方式控制字和C口置位/复位控制字)(1
3、)工作方式选择控制字8255A的工作方式可由CPU写一个工作方式选择控制字到8255A的控制端口实现。可以分别选择端口A、端口B和端口C上下两部分的工作方式。注意8255A工作方式选择控 制字的最高位D7(特征位)应为1。,8.0 可编程并行接口芯片8255A,7,(2)C口置位/复位控制字,8255A的C口按位置位/复位控制字的最高位D7(特征位)应为0。,无关位,D3,D1,D5,D0位操作,D2PC口位选择,D7特征位,D6,D4,D7=0标明是C口位操作控制字,例如:使端口C的PC4置位的控制字为00001001B(09H)使PC4复位的控制字为00001000B(08H),当端口A定
4、义为方式1或方式2或将端口B定义为方式1时,要求使用端口C的某些位作控制用,这时需要一个置位/复位控制字对控制端口C的各位进行置位/复位操作。,8,各种工作方式的功能方式0基本输入输出方式方式0无须联络就可以直接进行8255A与外设之间的数据输入或输出操作。它适用于无须应答(握手)信号的简单的无条件输入/输出数据的场合,即输入/输出设备始终处于准备好状态。在此方式下,A口、B口、C口的高4位和低4位可以分别设置为输入或输出,即8255A的这四个部分都可以工作于方式0。输入或输出的定义是相对于8255A芯片而言的。当数据从外设送往8255A时为输入,反之,数据从8255A送往外设则为输出。,8.
5、0 可编程并行接口芯片8255A,9,各种工作方式的功能方式0基本输入输出方式,如果三个端口均处于工作方式0,则可由工作方式控制字定义16种工作方式的组合。此时,CPU与三个端口之间交换数据可以直接由CPU执行IN或OUT指令来完成。,8.0 可编程并行接口芯片8255A,方式0也可以用于查询方式的输入或输出接口电路,此时端口A和B分别作为一个数据端口,而用端口C的某些位作为这两个数据端口的控制和状态信息。例如右图就是一个A口和B口工作在方式0时利用C口某些位作为联络信号的接口电路。在此例中将8255A设置为:A口输出,B口输入,C口高4位输入(现仅用PC7、PC6两位输入外设的状态),C口低
6、4位输出(现仅用PC1、PC0两位输出选通及清除信号)。此时8255A的工作方式控制字为10001010B(8AH)。,选通准备好准备好清除,A口PC1PC78255APC6PC0B口,输出设备输入设备,D7,D6,D5,D4,D3,D2,D1,PC74方向,B方式,B方向,D0,特征,A方式,A方向,PC30方向,10,1,0,1,0,1,0,0,0,8.0 可编程并行接口芯片8255A,11,8.0 可编程并行接口芯片8255A,12,方式1选通输入输出方式:这种工作方式下,数据输入输出操作要在选通信号控制下完成与方式0相比,它的主要特点是当A口、B口工作于方式1时,C口的某些I/O线被定
7、义为A口和B口在方式1下工作时所需的联络信号线,这些线已经定义,不能由用户改变。,1)-STB:选通信号。由外设送给8255A,低电平有效-STB有效时,将外部输入的8位数据锁存到所选端口的输入锁存器。对于A组来说,指定端口C的PC4用来接收向端口A输入的STB信号;对于B组来说,指定端口C的PC2位用来接收向端口B输入的-STB信号。2)IBF:输入缓冲器满信号,向外部输出,高电平有效IBF有效时,表示由输入设备输入的数据已占用该端口的输入锁存器,它实际是对-STB信号的回答信号,待CPU执行IN指令时,-RD有效,将输入数据读入CPU,其后沿将IBF置0,表示输入缓冲器已空,外设可继续输入
8、后续数据。对A组来说,指定端口C的PC5作为从端口A输出的IBF信号;对B组来说,指定端口C的PC1作为从端口B输出的IBF信号。3)INTR:中断请求信号,向CPU输出,高电平有效A组和B组向CPU发中断请求信号。A组的INTRA通过PC3送出;B组的INTRB通过PC0送出。,(1)采用工作方式1进行输入操作时,需要使用的控制信号如下:,8.0 可编程并行接口芯片8255A,13,方式1选通输入输出方式:,PC4 STB,方式1输入,PC5 IBF,PC3 INTR,A组,PC1 IBF,PC0 INTR,B组,PC2 STB,8255A中的端口A和端口B均可工作于工作方式1完成输入操作功
9、能。(1)当端口A和B同时被定义为方式1完成输入操作时,端口C的PC0PC5被用作控制信号,只有PC7和PC6位可用来完成数据输入或输出操作,因此实际上构成两种组合状态:,1)端口A、B输入,PC7和PC6输入;2)端口A、B输入,PC7和PC6输出。,中断允许或屏蔽(C口置位或复位操作):1)A端口(PC4)=1处于中断允许;=0,处于中断屏蔽状态;2)B端口(PC2)=1处于中断允许;=0,处于中断屏蔽状态;,8.0 可编程并行接口芯片8255A,14,方式1选通输入输出方式,1)-OBF:输出缓冲器满信号。向外部输出,低电平有效-OBF有效时,表示CPU已将数据写入该端口正等待输出。当C
10、PU执行OUT指令,-WR有效时,表示将数据锁存到数据输出缓冲器,由-WR的上升沿将-OBF置为有效。对于A组来说,指定端口C的PC7用来作为从端口A输出的-OBF信号;对于B组,指定端口C的PC1位用作从端口B输出的-OBF信号。2)-ACK:外部应答信号。由外部输入,低电平有效-ACK有效时,表示外部设备已经收到由8255A输出的8位数据,它实际是对-OBF信号的回答信号。对A组来说,指定端口C的PC6用来接收向端口A输入的-ACK信号;对B组来说,指定端口C的PC2用来接收向端口B输入的-ACK信号。3)INTR:中断请求信号,向CPU输出,高电平有效A组和B组向CPU发中断请求信号。A
11、组的INTRA通过PC3送出;B组的INTRB通过PC0送出。,(2)采用工作方式1进行输出操作时,需要使用的控制信号如下:,8.0 可编程并行接口芯片8255A,15,方式1选通输入输出方式:,8255A中的端口A和端口B均可工作于工作方式1完成输出操作功能。(2)当端口A和B同时被定义为方式1完成输出操作时,端口C的PC6,PC7和PC3PC0被用作控制信号,只有PC4和PC5位可用来完成数据输入或输出操作,因此实际上构成两种组合状态:,1)端口A、B输出,PC4和PC5输入;2)端口A、B输出,PC4和PC5输出。,中断允许或屏蔽(C口置位或复位操作):1)A端口(PC6)=1处于中断允
12、许;=0,处于中断屏蔽状态;2)B端口(PC2)=1处于中断允许;=0,处于中断屏蔽状态;,8.0 可编程并行接口芯片8255A,16,方式1选通输入输出方式,(3)端口A输入,端口B输出当被定义为方式1端口A输入,端口B输出时,端口C的PC5PC0被用作控制信号,只有PC6和PC7位可用来完成数据输入或输出操作,这又构成两种组合状态:,1)端口A输入,端口B输出,PC6和PC7输入;2)端口A输入,端口B输出,PC6和PC7输出。,8.0 可编程并行接口芯片8255A,17,方式1选通输入输出方式,(4)端口A输出,端口B输入当被定义为方式1端口A输出,端口B输入时,端口C的PC6和PC7,
13、PC3PC0被用作控制信号,只有PC4和PC5位可用作数据输入/输出用,这又构成两种组合状态:,1)端口A输出,端口B输入,PC4和PC5输入;2)端口A输出,端口B输入,PC4和PC5输出。,8.0 可编程并行接口芯片8255A,8255A中的端口A和B工作在方式1时,可构成8种不同的状态,端口C的低四位总是作控制用,而高四位中总是保持有两位仍然可作数据输入/输出用,因此控制字中的D0位可为任意值,由D1,D3,D4位的不同取值构成八种不同的状态组合方式。(也允许A/B口为方式0,与另一端口的方式1配合工作),8.0 可编程并行接口芯片8255A,19,8.0 可编程并行接口芯片8255A,
14、例:编一初始化程序,使8255A的PC5端输出一个负跳变。如果要求PC5端输出一个负脉冲程序又怎样的?控制口地址为83H。,D3,D1,D5,D0位操作,D2PC口位选择,D7特征位,D6,D4,1 0 1,8.0 可编程并行接口芯片8255A,21,8.0 可编程并行接口芯片8255A,22,00:A口;01:B口;10:C口;11:控制口,8.0 可编程并行接口芯片8255A,8.1 8255与简单开关量输入输出控制,23,利用8255A对按键进行查询输入设图中8255A的A口和控制寄存器的地址分别为80H和83H,试编写8255A的初始化程序。,24,8.1 8255与简单开关量输入输出
15、控制,实验硬件连接,8.1 8255与简单开关量输入输出控制,26,8255编程例1情形1code segmentstart:mov al,80Hout 83H,almov al,83Hout 82H,alhltcode endsend start,1000,0011;对应的C口的第1,2和8个发光二极管亮,8.1 8255与简单开关量输入输出控制,27,code segmentstart:mov al,81Hout 83H,almov al,83Hout 82H,alhltcode endsend start,1,AM1,AM0,AIO,CHIO,BM,BIO,CLIO,情形2,1000,0
16、011;对应的C口的第8个发光二极管亮,8.1 8255与简单开关量输入输出控制,28,1,AM1,AM0,AIO,CHIO,BM,BIO,CLIO,8255编程例2,code segmentstart:mov al,80Hout 83H,almov al,01Hlp:out 82H,alcall delayror al,1jmp lp,delay procpush cxmov cx,0010Hdly:loop dlypop cxretdelay endpcode endsend start,二极管:PC0-PC7-PC6-PC5-依次循环顺序点亮,8.1 8255与简单开关量输入输出控制,2
17、9,1,AM1,AM0,AIO,CHIO,BM,BIO,CLIO,code segmentstart:mov al,90Hout 83H,alin al,80Hout 82H,aljmp startcode endsend start,8255编程例3,读A口的开关状态,将A口开关状态输出到C口去,8.1 8255与简单开关量输入输出控制,30,1,AM1,AM0,AIO,CHIO,BM,BIO,CLIO,code segmentstart:mov al,90Hout 83H,alin al,80Hnot alout 82H,aljmp startcode endsend start,读A口的
18、开关状态,将A口开关状态取反输出到C口去,8.1 8255与简单开关量输入输出控制,31,8.1.5 8255编程例4数码显示,8.1 8255与简单开关量输入输出控制,将十进制数字(09)翻译成七段显示码的译码表,如下:,a,十六进制,8.1 8255与简单开关量输入输出控制,33,datadigitdata,segmentdb 3fH,06H,5bH,4fH,66H,6dH,7dH,07H,7fH,6fHends,code segmentstart:mov ax,datamov ds,axmov al,90Hout 83H,almov si,offset digitlp1:mov bx,0
19、lp2:mov al,bx+siout 81H,alcall delayinc bxcmp bx,10,jc lp2jmp lp1delay procpush cxmov cx,0050Hdly:loop dlypop cxretdelay endpcode endsend start,;数字09,;A口方式0入,B、;C口方式0出,;B口出,B口输出对应的数码管依次循环显示09,8.1 8255与简单开关量输入输出控制,34,TD-PITE 8255基本I/O实验实验内容1使8255 端口A 工作在方式0 并作为输入口,端口B工作在方式0 并作为输出口。用一组开关信号接入端口A,端口B 输出
20、线接至一组数据灯上,然后通过对8255 芯片编程来实现输入输出功能。,8.1 8255与简单开关量输入输出控制,35,CODE SEGMENTASSUME CS:CODE,SS:SSTACK,START:MOV DX,0646HMOV AL,90HOUT DX,ALAA1:MOV DX,0640HIN AL,DXCALL DELAYMOV DX,0642HOUT DX,ALJMP AA1,DELAY:PUSH CXMOV CX,0F00HAA2:PUSH AXPOP AXLOOP AA2POP CXRETCODE ENDSEND START,SSTACKSSTACK,SEGMENT STACK
21、DW 32 DUP(?)ENDS,实验源程序,A口:0640H;B口:0642H;控制口:0646H;,8.1 8255与简单开关量输入输出控制,36,TD-PITE 8255流水灯实验实验内容2使8255 的A 口和B 口均为输出,数据灯D7D0 由左向右,每次仅亮一个灯,循环显示,D15D8 与D7D0 正相反,由右向左,每次仅点亮一个灯,循环显示。,8.1 8255与简单开关量输入输出控制,37,SSTACK,SEGMENT STACK,SSTACK,DW 32 DUP(?)ENDS,CODE SEGMENT,ASSUME CS:CODE,SS:SSTACKSTART:MOV DX,06
22、46HMOV AL,80HOUT DX,ALMOV BX,8001H,AA1:,MOV DX,0640HMOV AL,BHOUT DX,ALROR BH,1MOV DX,0642HMOV AL,BLOUT DX,ALROL BL,1,CALL DELAYCALL DELAYJMP AA1DELAY:PUSH CX,MOV CX,0F000HAA2:PUSH AXPOP AXLOOP AA2POP CXRETCODE ENDSEND START,实验源程序,8.1 8255与简单开关量输入输出控制,A口:0640H;B口:0642H;控制口:0646H;,38,更多的8255简单I/O编程练习练
23、习1,每次亮相邻两盏灯,按照C口PC0,PC1-PC1,PC2-PC2,PC3循环顺序点亮,8.1 8255与简单开关量输入输出控制,39,练习2,每次亮相邻两盏灯,按照C口PC0,PC1-PC2,PC3-PC4,PC4-循环顺序点亮,8.1 8255与简单开关量输入输出控制,40,练习3,交替点亮,8.1 8255与简单开关量输入输出控制,41,8.1 8255与简单开关量输入输出控制,练习4,1,3,5,7,8,6,4,2顺序循环依次点亮,42,8.2 8255与步进电机控制,使用开环控制方式能对步进电机的转动方向、速度和角度进行调节。所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕
24、组的通电顺序就改变一次,即电机转动一次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。本实验系统所采用的步进电机为四相电机。,单四拍ABCDA,双四拍:ABBCCDDAAB,四相八拍:AABBBCCCDDDA A,8255A:A口方式0输入;B口方式0输出。用PB0PB3来驱动控制四相步进电机;控制字为:数据输出1时通电,0断电,四相八拍的控制方式输出字表如下,01H,03H,02H,06H,04H,0CH,08H,09H,四相八拍方式输出字表,90H,四相八拍:AABBBCCCDDDA A,实验1:采用四相八拍方式控制步进电机正转,;四相八拍方式输出字表,;8255A初始化,送控
25、制字到控制口,A口:0600H;B口:0602H;控制口:0606H;,实验2:采用四相八拍控制方法,由拨动开关(K7)控制步进电机正转和反转。,需要判断通过8255A的A口读入的PA7是否等于1,等于1反转,A口:0600H;B口:0602H;控制口:0606H;,实验3:采用双四拍控制方法,由拨动开关(K7)控制步进电机正转和反转。,A口:0600H;B口:0602H;控制口:0606H;,03H,06H,0CH,09H,输出字表,用PB0PB3来驱动控制步进电机,OUT的八位只用低四位,双四拍:ABBCCDDAAB,48,24,8.5 8253与电子发声控制,CEH,CEL,(1)3个独
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 控制 技术 卢晓红 897 io 接口 过程 通道 应用 final
链接地址:https://www.31ppt.com/p-6327191.html