您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 西南交通大学微机原理与微机接口教案2016版
西南交通大学信息科学与技术学院第9章可编程接口芯片第9章可编程接口芯片本章主要内容可编程接口芯片概述1可编程并行接口芯片8255A2可编程定时器/计数器82533可编程串行通信接口芯片8251A4第9章可编程接口芯片9.1可编程接口芯片概述可编程接口芯片,通过软件编程来设置芯片的工作方式,使一个芯片具有灵活的多种工作方式,从而提高每个芯片的功能。本章主要介绍几种常用可编程接口芯片:可编程并行接口芯片8255A可编程定时器/计数器8253可编程串行通信接口芯片8251A第9章可编程接口芯片①在输入/输出为并行数据方式的外设与CPU之间可靠的中转数据②扩展微机挂接并口外设数量的能力9.2.1通用并行接口1.通用并行接口的主要作用:9.2可编程并行接口芯片8255A第9章可编程接口芯片第9章可编程接口芯片2.通用并行接口的一般结构:①多个可编程并行数据通道(端口)。每个端口内含一个并行数据输入缓冲器(暂存外设送给CPU的数据)和一个并行数据输出缓冲器(暂存CPU送给外设的数据)②控制寄存器(存放CPU命令字)③状态寄存器(记录外设或并口本身的工作状态)④内部地址译码电路第9章可编程接口芯片第9章可编程接口芯片3.并行接口芯片的主要引脚第9章可编程接口芯片(1)与外设一侧相连的引脚:与外设传送数据的数据线(通常为多组8位的双向I/O引脚线)用于协调并行端口与外设数据交换速度的联络线:从外设输入数据时需要:“外设数据已送出”信号(外设送并口)“输入寄存器空”信号(并口送外设)向外设输出数据时需要:“输出寄存器满”信号(并口送外设)“外设接收就绪”信号(外设送并口)第9章可编程接口芯片(2)CPU(系统总线)一侧相连的引脚与CPU(数据总线)传送数据的数据线(通常为8位:D7~D0)并口工作状态引脚READY或中断请求引脚INTRCPU对并口的读/写信号引脚并口芯片的片选信号引脚(由CPU高位地址线经译码后给出)并口内部寄存器选择引脚线(通常由CPU低位地址线给出)使并口芯片复位的引脚第9章可编程接口芯片9.2.28255A的内部结构及引脚功能1.8255A的内部结构8255A是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口,共24位,其各端口工作方式由软件编程设定。CS第9章可编程接口芯片含3个独立的8位并行输入/输出端口,各端口均具有数据的输出和输入能力可通过编程,设置各端口工作在某一确定状态下特点A组B组端口A端口C的高4位结构端口B端口C的低4位第9章可编程接口芯片8255A由数据总线缓冲器,数据端口A、端口B和端口C,A组和B组控制电路和读/写控制逻辑四部分组成。第9章可编程接口芯片2.8255A的引脚功能并口A:8根引脚(PA7~PA0)并口B:8根引脚(PB7~PB0)并口C:8根引脚(PC7~PC0)第9章可编程接口芯片数据线:8根(D7~D0)片内寄存器选择线:2根(A1,A0)读/写信号线:2根(RD和WR)片选信号线:1根(CS)复位信号线:1根(RESET)电源线:1根(VCC)地线:1根(GND)第9章可编程接口芯片3.8255内部端口的寻址第9章可编程接口芯片8255与系统的连接示意图D0~D7WRRDA1A0CSDBIOWIORA1A0译码器8255A口B口C口D0~D7外设第9章可编程接口芯片6.2.28255的工作方式:方式0——基本输入/输出方式方式1——单项选通工输入/输出方式方式2——双向传送方式9.2.38255A的工作方式A口可工作于方式0、方式1、方式2B口可工作于方式0、方式1C口只能工作于方式0其中:第9章可编程接口芯片方式0:相当于三个独立的8位简单接口各端口既可设置为输入口,也可设置为输出口,但不能同时实现输入及输出C端口可以是一个8位的简单接口,也可以分为两个独立的4位端口常用于连接简单外设(适于无条件或查询方式)方式0的应用:常使A端口和B端口作为8位数据的输入或输出口,使C口的某些位作状态输入第9章可编程接口芯片方式1:三个数据端口分为A、B两组,分别称为A组控制和B组控制。端口A、端口B作数据输入或输出口,端口C作为联络控制信号,被分成两部分,一部分作为端口A和端口B的联络信号,另一部分仍可作为基本的输入输出口。A口、B口在作为输入和输出时的选通控制信号不同。第9章可编程接口芯片方式1:三个数据端口分为A、B两组,分别称为A组控制和B组控制。端口A、端口B作数据输入或输出口,端口C作为联络控制信号,被分成两部分,一部分作为端口A和端口B的联络信号,另一部分仍可作为基本的输入输出口。A口、B口在作为输入和输出时的选联络制信号不同。方式1的应用:方式1主要用于中断控制方式下的输入输出C口的8位除用作选通信号外,其余位可工作于方式0下,作为输入或输出口第9章可编程接口芯片1)方式1输入方式1输入时序第9章可编程接口芯片2)方式1输出方式1输出时序第9章可编程接口芯片方式2:双向输入输出方式——可以既作为输入口,又作为输出口只有A端口可工作在方式2下方式2的应用:用于可采用查询方式或中断控制方式当A口工作于方式2时,B口可工作于方式1(此时C口的所有位都用作选通控制信号的输入输出),也可工作于方式0(此时C口的剩余位也可工作于方式0)第9章可编程接口芯片当端A口方式2和端口B方式1时,端口C各位的功能如图所示,PC7~PC3作为端口A的联络信号,PC2~PC0作为端口B的联络信号。当端口A工作于方式2,端口B工作于方式0时,PC7~PC3作为端口A的联络信号,PC2~PC0可工作于方式0。第9章可编程接口芯片D7=1:对控制寄存器设置;D7=0:用于对C端口状态进行设定。9.2.48255A的编程8255只有一个控制寄存器,如何写入两个控制字?通过8位命令字的最高位加以区分:方式控制字:设置A口和B口的工作方式,指定它们作为输入口还是输出口。端口C的状态控制字:设置C口指定位置“1”或请“0”。第9章可编程接口芯片1.8255A的控制字1)方式选择控制字第9章可编程接口芯片2)端口C置位/复位控制字第9章可编程接口芯片【例9-1】在8086系统中,设8255A的A口输出,B口输入,PC1置位,PC2复位。已知:8255端口地址为60H~63H,试编程对8255A进行初始化。解:根据题意,8255工作方式控制字为:8255A初始化程序如下:MOVAL,82H;方式控制字10000010B=82HOUT63H,AL;将控制字送入8255A控制端口,即控制寄存器中MOVAL,03H;C口置位控制字00000011B=03H,设置PC1=1OUT63H,AL;将控制字送入8255A控制端口,即控制寄存器中MOVAL,04H;C口置位控制字00000100B=04H,设置PC2=0OUT63H,AL;将控制字送入8255A控制端口,即控制寄存器中001000012.8255A的初始化编程第9章可编程接口芯片9.2.58255A的应用举例【例9-2】设8255A的A口和B口工作在方式0,A口作为输入端口,接有2个开关;B口为输出端口,接有8个发光二极管。系统硬件电路如图所示,不断扫描开关Ki,当开关K0闭合时,点亮LED0、LED2、LED4、LED6,其它LED暗;当开关K1闭合时,点亮LED1、LED3、LED5、LED7,其它LED暗;当开关K0和K1同时闭合时退出。设8255A端口A、端口B、端口C及控制端口的地址分别为200H~203H。试编写程序。第9章可编程接口芯片第9章可编程接口芯片解:首先确定工作方式控制字。根据题意,A口为输入端口,B口输出端口,均工作在方式0下,端口C没使用,设没有用到的控制字中对应位设置为0,所以8255A的控制字为:CODESEGMENTASSUMECS:CODESTART:MOVAL,90H;8255初始化MOVDX,203HAGAIN:MOVDX,200HINAL,DXTESTAL,03H;检测K0K1JZEXITTESTAL,01H;检测K0JZDISP_000101000第9章可编程接口芯片TESTAL,02H;检测K1JZDISP_1JMPAGAINDIAP_0:MOVAL,55H;偶位上LED亮,奇位上LED暗MOVDX,201HOUTDX,ALJMPAGAINDIAP_1:MOVAL,0AAH;奇位上LED亮,偶位上LED暗MOVDX,201HOUTDX,ALJMPAGAINEXIT:MOVAH,4CHINT21HCODEENDSENDSTART第9章可编程接口芯片【例9-3】硬件电路连线如图所示,8086CPU通过8255A同键盘相连,试编程序,扫描键盘按键,将按键对应的数值显示在七段LED上。设8255A的端口地址为80H~83H。第9章可编程接口芯片解:通过硬件电路图,可以判断出8255A口工作于方式0输出,B口未用,C口低4位输入,C口高4位输出,工作方式控制字是:共阴极LED七段数码管显示的字符0~F的段码如表9-1所示:00110000显示字符0123456789ABCDEF段码(H)3F065B4F666D7D077F6F777C395E7971第9章可编程接口芯片程序流程如图扫描键盘防抖动逐列扫描键盘逐行扫描键盘第9章可编程接口芯片A_PORTEQU80HB_PORTEQU81HC_PORTEQU82HCT_PORTEQU83HDATASEGMENTTAB1DB3FH,06H,5BH,4FH,66H,6DH;定义段码表DB7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,81H;8255初始化MOVDX,CT_PORTOUTDX,ALAGAIN:MOVDX,C_PORTMOVAL,0;输出列信号OUTDX,AL第9章可编程接口芯片NO_KEY:MOVDX,C_PORTINAL,DXANDAL,0FHCMPAL,0FHJZNO_KEYCALLDELAY2MSINAL,DXANDAL,0FHCMPAL,0FHJZNO_KEYMOVBL,0;置初始列值为0MOVCH,0EFHLOOP1:MOVAL,CHMOVDX,C_PORTOUTDX,AL第9章可编程接口芯片INAL,DX;读取行信号PUSHCXMOVBH,0;设置初始行值0MOVCX,4LOOP3:SHRAL,1JNCLOOP2;该行有按键INCBHLOOPLOOP3POPCXROLCH,1CMPCH,0FEHJZNO_KEYINCBLJMPLOOP1第9章可编程接口芯片LOOP2:SHLBH,1;BH中是行,BL中是列,BH*4获得行值SHLBH,1ADDBH,DL;键值=值行+列值MOVAL,BH;键值换码后显示到数码管PUSHBXLEABX,TAB1XLATPOPBXMOVDX,A_PORTOUTDX,ALJMPAGAIN第9章可编程接口芯片DELAY2MSPROCNEAR;延时子程序PUSHBX;现场保护PUSHCXMOVBX,2WAIT0:MOVCX,2801;内循环次数,大小由单位时间定WAIT1:LOOPWAIT1;延时2MSDECBXJNZWAIT0POPCX;现场恢复POPBXRETDELAY2MSENDPCODEENDSENDSTART第9章可编程接口芯片【例9-4】要求:设定8255端口A和B工作于方式1,并采用A、B口提供的中断信号(状态信号)实现从端口B到端口A的数据可靠传输。CPU将数据区ABC的100字节数据经端口B输出到A口,再由A口读入到数据区CDE。设8255起始口地址为300H。第9章可编程接口芯片实现电路第9章可编程接口芯片①CPU向B口写数据→OBF有效(B)→STB有效(A)并将数据写入A口→IBF有效(A)、ACK有效(B)→INTR(PC3)有效(A)→(等待CPU读入数据)②CPU从A口读入数据→
本文标题:西南交通大学微机原理与微机接口教案2016版
链接地址:https://www.777doc.com/doc-2035238 .html