第八章常用可编程通用接口芯片

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第八章常用可编程通用接口芯片•第六章介绍了一些基本的输入输出接口,是不可编程的.随着大规模集成技术的发展,接口电路常被集成在一块硅芯片上.可用编程方式设定其工作方式,以适用于多种功能的要求----可编程接口芯片.•PC微机除CPU控制核心外,还有一些大规模可编程接口芯片(外围芯片)的支持:•8级中断优先权控制器8259以控制8个外部中断源(如时间基准8253的Ch0,键盘,硬磁盘,软磁盘,打印机).•三端口的并行接口8255以控制外部简单接口及DIP配置开关(如磁带机,扬声器)..16位三通道定时/计数器8253以控制时间基准、动态刷新、扬声器发声.•四通道DMA控制器8237以控制动态RAM刷新、磁盘数据交换.•可编程异步通信接口8250以控制串行通信,完成发送时的并-串转换和接收时的串-并转换及相应的控制功能.§8.1可编程并行接口8255A•8255是最通用的并行I/O接口芯片.可用程序改变功能,通用性强,使用灵活,通过它可直接将CPU总线接向外设.广泛用作各种并行外设的接口.一.8255的结构与接口信号8255的结构框图P261、图8-1。因作为外设接口,既要与CPU打交道,又要和外设打交道,内部亦需控制,所以由三部分组成:1.外设接口部分----端口A,端口B,端口C.即三个输入输出通道,用来和外设相连,都是8位双向端口,所以有口线:PA7~PA0,PB7~PB0,PC7~PC0.•A、B、C三个口都可以作为输入/输出口.•在A、B口作为选通方式操作时,C口作为状态控制信号.•C口可分成两个4位口.2.内部控制逻辑电路----A组,B组控制电路.根据CPU的命令控制8255的工作方式.•A组控制端口A和端口C的上半部分(PC7~PC4).•B组控制端口B和端口C的下半部分(PC3~PC0).3.CPU接口部分(1).数据总线缓冲器----它是8位双向三态缓冲器,是与CPU数据总线的接口.8位数据线D7~D0.所有数据的输入/输出,CPU发出的命令控制字及输入的外设状态,都是通过该缓冲器传送.(2).读写控制逻辑----控制8255内部的各种操作.管理数据,控制字,状态的传送.接收CPU的地址,控制信号以控制各端口的工作状态.所以有6根控制线.•A1,A0端口选择:00A口,01B口,10C口,11控制口.•CS片选信号----以启动CPU与8255之间的通信.•RD读信号----从8255中读数据或状态信号.•WR写信号----向8255中写数据或状态信号.•RESET复位信号----高电平有效,清除控制寄存器,置A、B、C三个口为输入方式.二、8255的工作方式与控制字1、8255有三种工作方式,方式由方式选择控制字来选择:(1)、方式0基本输入/输出方式(基本I/O)。A、B、C三口均可工作于方式0。(2)、方式1选通输入/输出方式(选通I/O)。A、B二口可工作于方式1;此时C口作控制。(3)、方式2双向数据传送方式。仅有A口可工作于方式2。C口作控制。•A口可工作于方式0、1、2三种方式。•B口可工作于方式0、1二种方式。•C口只能工作于方式0。2、方式选择控制字•8255的工作方式,是由CPU用一条输出指令把控制字送到8255的控制寄存器来实现的。•方式选择控制字的格式P262、图8-2。·由控制字可知:•A口可工作于方式0、1、2三种方式;•B口只有方式0、1二种方式;•C口只能工作于方式0,但C口可分成两部分:上半部分随A口,下半部分随B口;A、B口要作为一个整体确定工作方式,C口可分成两个4位口分别确定其工作方式(输入或输出)。如:控制字90H10010000标志A口A口C口上B口B口C口下方式0输入输出方式0输出输出·即控制字90H,设定了8255的A口为方式0输入,B口为方式0输出,C口为方式0输出。•用下面程序段设定:MOVDX,PORT3控制口MOVAL,90HOUTDX,AL3、按位置位/复位控制字指定C口的某一位为高电平或低电平,仅有C口可按位置位/复位。•当通道A、B工作在方式1、2时,常用通道C的某些位作为同外设的联络控制线,通道C的8位中的任一位都可用输出指令使其置位/复位,从而人为控制联络线。•置位/复位控制字格式P261、图8-3:.一般视无关位D6D5D4=000,则通道C的每一位的置位复位控制字如下:•PCi位置位控制字复位控制字PC001H00HPC103H02HPC205H04HPC307H06HPC409H08HPC50BH0AHPC60DH0CHPC70FH0EH•如PC3置位:MOVDX,PORT3;控制端口MOVAL,7OUTDX,AL•如PC3复位:MOVDX,PORT3MOVAL,6OUTDX,AL•C端口的按位置位复位字须跟在方式选择控制字之后,所以,仅使用C口的按位置位复位字时,也应先送一方式控制字。•8255的两个控制字是以D7位作为区别标志:D7=1为方式控制字,D7=0为置位复位字;所以方式字≧80H,置位复位字<80H。•P263例:8255的C口接8只LED,用置位复位字,使8只LED轮流亮灭。设端口地址为380H--383H。硬件如下:与系统总线的连接MOVDX,383HMOVAL,80HOUTDX,ALMOVAL,1;PC0置位字AGN:OUTDX,AL;PC0灯亮MOVAH,11LOOP$;延时INT21HANDAL,0FEH;复位字INCALOUTDX,AL;灯灭POPAXADDAL,3;指向下一位JNZAGNANDAL,0FH;控制置位/复位字范围PUSPAX设方式控制字:C口方式0输出•程序中,送置位字,则灯亮;送复位字,则灯灭。由前一位的复位字到后一位的置位字之差为3,加3则指向下一位。•思考:若将LED反接,程序如何修改:送复位字,则灯亮;送置位字,则灯灭。由前一位的置位字到后一位的复位字之差为1,加1则指向下一位。MOVDX,383H;方式字ADDAL,01H;指向下一位MOVAL,80HANDAL,0FH;D7位为0OUTDX,ALPUSHAXMOVAL,0;PC0复位字MOVAH,11AGN:OUTDX,AL;灯亮INT21HLOOP$INCALXORAL,1;置位字POPAXOUTDX,AL;灯灭JNZAGN作业:P311、1、2、三、三种方式的功能及应用1、方式0基本功能基本单向I/O方式。•A,B,C三个端口都可作8位输入/输出端口。•C端口可作为两个4位端口(C口上,C口下)。•输出有锁存,使用时可理解为273;输入有三态缓冲,使用时可理解为244。•此方式下,只要用IN/OUT指令即可读/写;一般用于无条件传送方式。•此方式下,也可用于查询方式,A,B口为数据口,C口的某些位作控制和状态信息。但值得注意的是无固定联络线。•244-273程序·8255程序AG:MOVDX,380HMOVDX,383HINAL,DXMOVAL,90HNOTALOUTDX,ALOUTDX,ALNE:MOVDX,380HMOVAH,11INAL,DX;A口输入INT21HNOTALCMPAL,0INCDXJZAGOUTDX,AL;B口输出…JZNE8255初始化A口方式0输入B口方式0输出•注:凡是244可用8255的A,B,C三个口的方式0输入代替;273可用8255的A,B,C三个口的方式0输出代替。•8个开关可表示8个不同的数字或8个不同的字符;LED也可以是7段LED显示器。•例:用一片8255实现8个7段LED显示器与64个按键的键盘/显示器接口设计。•参见P·212显示器设计,段码输出用273,位码输出用273;参见P·214键盘设计,行扫描码输出用273,列读入值用244。因为都采用动态扫描方式显示和扫描键盘,所以显示器的位显和键的行扫描端口可以合并。即用2片273和1片244即可实现。可用8255的3个端口代替。如选用A,B口为方式0输出(代替273),C口方式0输入(代替244)即可。MOVDX,383HMOVAL,89HOUTDX,AL•由于键盘和显示器做成一个接口电路,所以软件应合并考虑键盘查询和动态显示。作业:P311.4.▲5.•第四题参见实验教材P149,只画出流程图。2.方式1•基本功能是选通I/O方式,也是单向I/O。•端口A,B作为数据口输入或输出,但同时规定C口的某些位作为控制或状态信息,用于联络和中断,提供中断逻辑,其C口各位的功能是固定的,不能由程序设定。(1)、方式1输入将三个端口分为A、B两组;端口A和端口C的PC3--PC5为一组,端口B和端口C的PC0--PC2为一组,端口C剩余的PC6--PC7仍可作为一般I/O。P265、图8-5·A口方式1输入·B口方式1输入•控制信号:•STB选通信号,低电平有效;这是外设发来的输入信号,前沿(下降沿)把输入装置送来的数据送入输入缓冲器;而后沿(上升沿)使INTR有效。•IBF输入缓冲器满信号,高电平有效;这是8255输出给外设的回答信号;外设将数据送入缓冲器后,该信号有效;RD信号的上升沿将数据送数据总线后,又使其复位。•INTR中断请求信号,高电平有效;这是8255的输出信号,可用作向CPU申请中断的请求信号,以要求CPU服务;当IBF为高和INTE中断允许为高时,STB为高时(即STB的后沿)使INTR为高;由RD信号清除。•INTE中断允许信号:•端口A的INTEA可由用户对PC4的按位置位/复位控制字来控制,PC4=1,允许A口中断;•端口B的INTEB可由用户对PC2的按位置位/复位控制字来控制,PC2=1,允许B口中断;操作时序:(1)外设把数据送给8255后,发STB信号,使IBF有效;(2)STB后沿引发INTR;(3)CPU响应中断;(4)CPU发RD信号,使INTR失效;(5)CPU取走数据,使IBF失效,可输入新的数据。•P266例:用选通方式(中断方式)从A口输入100个8位二进制数IBF。8255的使用步骤:•硬件连接将8255和CPU的有关信号连接,又要和外设连接,此处的外设输入装置为8个开关,用发光二极管标志输入缓冲器满的状态,以作为外设回答信号,用去抖动开关作为外设的选通信号。•软件中对8255进行初始化,以设定其工作方式。•在程序控制下实现数据的输入/输出操作。BUFDB100DUP(?)MOVES,AX;设置0段..MOVDX,38FH;置控制口地址MOVAL,0B0H;A口方式1输入OUTDX,ALMOVAL,9PC4置1,允许A口中断OUTDX,ALMOVAX,SEGIS8255MOVES:01C6H,AX填写向量表MOVAX,0FFSETIS8255MOVES:01C4H,AXMOVCX,100;计100次MOVBX,0;计缓冲偏移地址MOVDX,38CH;A口地址INAL,0A1HANDAL,0FDH;修改8259从片屏蔽字OCW1OUT0A1H,AL;允许IRQ9中断ROTT:JMP$;等待中断,等STB信号LOOPROTT;中断100次INAL,0A1HORAL,02H;还原屏蔽字禁止IRQ9中断OUT0A1H,ALRETIS8255:INAL,DX;读A囗数据BUFMOVBUF[BX],AL;产生RD,撤消INTRINCBX;修改缓冲区地址MOVAL,61HOUT0A0H,AL主从8259均结束中断MOVAL,62HOUT20H,ALPOPAXINCAXINCAX修改返回地址,跳过JMP$PUSHAXIRET作业:P311.3.(2)方式1输出将三端口分为A组,B组;端口A和C口的PC3,PC6~PC7为一组,端口B和C口的PC0~PC2为一组,C口剩余PC4~PC5可作一般I/O.控制信号:1)OBF(OutputBufferFull)---输出缓冲器满信号,高电平有效,这是8255给外设的一个联络信号.当CPU把数据写入端口后,该信号有效.表示外设可以把数据取走。WR信号置成有效,由ACK的有效(下降沿)使其恢复

1 / 92
下载文档,编辑使用

©2015-2020 m.111doc.com 三一刀客.

备案号:赣ICP备18015867号-1 客服联系 QQ:2149211541

×
保存成功