
《第9章 微机原理》由会员分享,可在线阅读,更多相关《第9章 微机原理(43页珍藏版)》请在文档大全上搜索。
1、第八章第八章 可编程外围接口芯片可编程外围接口芯片8255A8255A及其应用及其应用 并行通信并行通信/ /并行接口并行接口 串行通信串行通信/ /串行接口串行接口1 1、并行通信、并行通信 就是把一个字符的各数位用几条连线同时进就是把一个字符的各数位用几条连线同时进行传输的过程。行传输的过程。优点:优点:传输速度快、信息率高;传输速度快、信息率高;缺点:缺点:随着传输距离的增加,电缆的开销会成为突随着传输距离的增加,电缆的开销会成为突 出的问题;出的问题;应用场合:应用场合:要求传输率高,传输距离较短的场合。要求传输率高,传输距离较短的场合。并行通信并行通信/ /并行接口并行接口2 2、并
2、行接口、并行接口 能实现并行通信的接口。能实现并行通信的接口。并行的类型:并行的类型: 单独的输入接口单独的输入接口 如:读卡机接口如:读卡机接口 单独的输出接口单独的输出接口 如:打印机接口如:打印机接口 输入输入/ /输出接口输出接口 如:磁盘接口如:磁盘接口3 3、并行接口的组成、并行接口的组成并行输入并行输入/ /输出接口分类输出接口分类硬接线型硬接线型可编程型可编程型 _工作方式和功能是可以软件编程加以改变。工作方式和功能是可以软件编程加以改变。 8 8位三态单向缓冲器(位三态单向缓冲器(LS244LS244) 8 8位三态双向缓冲器(位三态双向缓冲器(LS245LS245) 8 8
3、位三态数据锁存器(位三态数据锁存器(LS273LS273)常用芯片常用芯片电路包括:电路包括:具有缓冲的输入具有缓冲的输入/ /输出寄存器输出寄存器可供可供CPUCPU访问的控制和状态寄存器访问的控制和状态寄存器与外设进行交换数据的控制与联络信号线等与外设进行交换数据的控制与联络信号线等 硬接线型硬接线型_工作方式和功能是由硬线连接固定的,不能工作方式和功能是由硬线连接固定的,不能 用软件编程加以改变。用软件编程加以改变。 8255A 8255A的工作原理的工作原理 一、一、82558255的结构和功能的结构和功能82558255的内部结构的内部结构3个个8位数据端口:位数据端口:A口、B口、
4、C口RESET复位后控制寄存器内容都被清零复位后控制寄存器内容都被清零所有端口均被置成输入方式所有端口均被置成输入方式 8255A 的的基基本本操操作作 A1 A0 RD WR CS 操操 作作 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 端端口口 A 数数据据总总线线 端端口口 B 数数据据总总线线 端端口口 C 数数据据总总线线 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 0 数数据据总总线线 端端口口 A 数数据据总总线线 端端口口 B 数数据据总总线线 端端口口 C 数数据据总总线线 控控制制字字寄寄存存器器 X X X X 1 1 1
5、0 1 0 X X 1 1 0 数数据据总总线线三三态态 非非法法状状态态 数数据据总总线线三三态态 ( (读端口读端口A)A)( (读端口读端口B)B)( (读端口读端口C)C)( (写端口写端口A)A)( (写端口写端口B)B)( (写端口写端口C)C)( (写控制字写控制字) )方式选择控制字方式选择控制字 置位置位/ /复位控制字复位控制字 82558255的控制字的控制字 方式选择控制字方式选择控制字_用来定义各端口的工作方式用来定义各端口的工作方式 置位置位/ /复位控制字复位控制字_用于对端口用于对端口C C的位(任意)的位(任意) 进行置位或复位进行置位或复位 工作方式工作方式
6、方式方式0 0 _基本输入基本输入/ /输出方式输出方式方式方式1 1 _选通输入选通输入/ /输出方式输出方式方式方式2 2 _双向总线双向总线I/OI/O方式方式二、二、82558255的控制字的控制字C C口低四口低四位位I/OI/O D7D6D5D4D3 D2D1D0D7=1 D7=1 标志位标志位A A口方式口方式0000:方式:方式0 00101:方式:方式1 11X1X:方式:方式2 2A A口口I/OI/O1 1:输入:输入0 0:输出:输出C C口高四口高四位位I/OI/O1 1:输入:输入0 0:输出:输出B B口方式口方式0 0:方式:方式0 01 1:方式:方式1 1B
7、 B口口I/OI/O1 1:输入:输入0 0:输出:输出1 1:输入:输入0 0:输出:输出例如例如 若要求若要求8255A各端口为下列工作状态:各端口为下列工作状态: A口:方式口:方式0输出口输出口 B口:方式口:方式1输入口输入口上上C口:方式口:方式0输入口输入口下下C口输出:此时为口输出:此时为B口的联络线口的联络线则相应的控制字为则相应的控制字为:10001110B(8EH)例一:设例一:设8255A的的4个寻址地址号为个寻址地址号为60H63H,试编写出,试编写出下列各种情况的初始化程序。下列各种情况的初始化程序。将将A组和组和B组设置成方式组设置成方式0,A口、口、B口为输入,
8、口为输入,C口为口为输出口。输出口。将将A组工作方式设置成方式组工作方式设置成方式2,B组为方式组为方式1,B口作为口作为输出口。输出口。解:解:MOV ALMOV AL,10010010B10010010BOUT 63HOUT 63H,ALAL MOV ALMOV AL,11000100B11000100BOUT 63HOUT 63H,ALAL D7D6D5D4D3 D2D1D0 D7=0D7=0标志位标志位任意值任意值位选择位选择000 000 选中选中 PC0PC0001 001 选中选中 PC1PC1111 111 选中选中 PC7PC71 1 置位置位0 0 复位复位 D7D6D5D
9、4D3 D2D1D0 D7=0D7=0标志位标志位任意值任意值1 1 置位置位0 0 复位复位位选择位选择000 000 选中选中 PC0PC0001 001 选中选中 PC1PC1111 111 选中选中 PC7PC7端口端口C C的的PC7PC7位要求置位要求置1 1,PC3PC3位置位置0 0,控制口地址为,控制口地址为00EEH00EEH,根据要求控制字,根据要求控制字应设为应设为 00001 111PC7PC7置置1 1 00000 110PC3PC3置置0 0程序:程序: MOV ALMOV AL,OFH OFH ;调入控制字内容调入控制字内容 MOV DXMOV DX,00EEH
10、 00EEH ;调入控制口地址调入控制口地址 OUT DXOUT DX,ALAL MOV AL MOV AL,06H06H OUT DX OUT DX,ALAL例二:设有例二:设有2片片8255A芯片,在系统中的连芯片,在系统中的连接如图所示。当接如图所示。当8255A D0D7数据线数据线与数据总线低与数据总线低8位相连位相连时,其时,其4个端口的地址个端口的地址号为何值号为何值? 若与数据若与数据总线高总线高8位相连时,又位相连时,又为何值?为何值?1#:28H,2AH,2CH,2EH2#:30H,32H,34H,36H如接高位1#:29H,2BH,2DH,2FH2#:31H,33H,35
11、H,37H三三、82558255的工作方式和的工作方式和C C口状态字口状态字 利用利用8255A检测开关的开与关,图如下,要求检测开关的开与关,图如下,要求A口开关闭口开关闭合相应合相应B口数码管发光,编制初始化程序段和检测程序。口数码管发光,编制初始化程序段和检测程序。例三、例三、 解:解: 端口地址:端口地址:0F0H,0F2H,0F4H,0F6H0F0H,0F2H,0F4H,0F6H MOV AL MOV AL,10010000B ;10010000B ;初始化初始化 OUT 0F6HOUT 0F6H,ALAL A1 A1:IN ALIN AL,0F0H0F0H ; ;检测程序检测程序
12、 NOT ALNOT AL OUT 0F2H OUT 0F2H,ALAL JMP A1 JMP A1 例四、 8255A作为连接打印机的接口,工作于方式0,设端口A、 B、C、控制口地址分别是00D0H、00D2H、00D4H、00D6H,电路接线如下图,编制初始化程序段并将DI 的一个字符发送给打印机。(C口的PC2与打印机的BUSY相连,为1代表打印机忙,PC6通过一个反相器与打印机的STB相连,上升沿是STB的选通信号,选通打印机进行相应操作)CPU80868255A打印机打印机STBBUSYPC6PC2PA7-PA0D7-D0D7-D0解:解: 端口地址:端口地址:00D0H、00D2
13、H、00D4H、00D6H MOV AL,10000001B ;8255初始化初始化 MOV DX, 00D6H OUT DX,AL A1:MOV DX,0D4H ;检测检测PC2是否为是否为0 IN AL,DX TEST AL,04H JNZ A1 MOV DX,0D0H ;送字符到;送字符到A口口 MOV AL,DI OUT DX,AL INC DI MOV DX,0D6H ;PC6产生上升沿产生上升沿 MOV AL,00001101B OUTDX,AL DEC AL OUT DX,AL JMP A1&PC4INTEAPA7-PA0RDPC5PC3PC6,7STBA(选通)选通)I
14、BFA(输入缓冲器满输入缓冲器满)INTRA(中断请求)中断请求)端口端口A A方式方式1 1输入输入&INTEBPB7-PB0RDPC2PC1PC0STBBIBFBINTRB端口端口B B方式方式1 1输入输入I/OPC6,7I/O中断允许中断允许方式方式1选通输入时序选通输入时序INTRIBFSTB输入数据输入数据RDB APC0PC2PC1PC3PC5PC4PC7PC6图图I/O I/O&INTEAPA7-PA0WRPC4,5端口端口A A方式方式1 1输出输出PC7PC6PC3OBFAACKAINTRAI/O&INTEBPB7-PB0WR端口端口B B方式方式1
15、 1输出输出PC1PC2PC0OBFBACKBINTRBB APC2PC1PC0PC6PC7PC3PC5PC4WROBFINTRACK输出数据输出数据方式方式1选通输出时序选通输出时序图图I/O I/OPA7-PA0PB7-PB0WRRDPC4STBAPC5IBFAPC3INTRAPC6,7I/OPC1PC2PC0OBFBACKBINTRBPA7-PA0PB7-PB0WRPC2PC1PC0STBBIBFBINTRBPC7PC6OBFAACKAPC3INTRAI/OPC4,5RDA A口输入口输入B B口输出口输出A A口输出口输出B B口输入口输入=1PC3PC7PC6PC4PC5INTE 2
16、INTE 1PA7-PA0&PC2-PC0INTRA(输入输出联络信号)(输入输出联络信号)OBFAACKASTBAIBFAI/OWRRD输出联络信号输出联络信号输入联络信号输入联络信号 当当82558255工作在方式工作在方式0 0时,时,C C口各位用于输入或输出。口各位用于输入或输出。 当当82558255工作在方式工作在方式1 1时,时,C C口各位用于产生联络信号。口各位用于产生联络信号。 当当82558255工作在方式工作在方式2 2时,时,C C口各位用于产生联络信号口各位用于产生联络信号。方式方式1状态字:状态字:I/OI/OINTRAINTEAIBFAINTEBIBF
17、BINTRBA A组状态字组状态字B B组状态字组状态字方式方式1状态字:状态字:A A组状态字组状态字B B组状态字组状态字OBFAINTRAI/OI/OINTEBOBFBINTRBINTEA方式方式2状态字:状态字:A A组状态字组状态字B B组状态字组状态字OBFAINTRAIBFA X X XINTE1INTE2方式方式1 1时,作时,作B B口状态字用口状态字用方式方式0 0时,作输入输出用时,作输入输出用9.2 8255的应用例五:编写例五:编写8253初始化程序段。要求;计数器初始化程序段。要求;计数器0工作工作在方式在方式0,二进制计数,计数初值为,二进制计数,计数初值为8位;
18、计数器位;计数器1工工作在方式作在方式3,BCD计数,计数初值为计数,计数初值为4位十进制计数;位十进制计数;计数器计数器2工作作在方式工作作在方式2,二进制计数,计数初值为,二进制计数,计数初值为16位二进制数。(位二进制数。( 8253的的4个寻址地址号为个寻址地址号为40H一一43H)解:解:MOV ALMOV AL,00010000B00010000B OUT 43H OUT 43H,ALAL MOV AL MOV AL,01110111B01110111B OUT 43H OUT 43H,ALAL MOV AL MOV AL,10110100B10110100B OUT 43H OU
19、T 43H,ALAL8253 8253 控制字格式:控制字格式:SC1SC0RL1RL0M2M0M1BCD00 选择通道选择通道001 选择通道选择通道110 选择通道选择通道211 无效无效00 计数器锁存,供计数器锁存,供CPU读读01 只读只读/写计数器低字节,高自动置写计数器低字节,高自动置010 只读只读/写计数器高字节,低自动置写计数器高字节,低自动置011 先读先读/写计数器低字节,后读写计数器低字节,后读/写高写高 字节字节000 方式方式0001 方式方式1X10 方式方式2X11 方式方式3100 方式方式4101 方式方式51 BCD码计数码计数0 2进制计数进制计数例六
20、、图为开关状态检测电路和继电器控制电路。当开关K闭合时,将驱动对应的继电器(即动作);若开关处于断开状态,则无电流流过继电器线圈,继电器不动作。若每隔10ms检测一次开关状态和对继电器作相应控制,定时控制由8253完成,试编写对8255A的初始化程序(初始态时应保证继电器不动作)和完成上述功能的检测、控制程序。解:定时采用查询方式解:定时采用查询方式CPU主频为主频为5MHZ,PCLK=2.5MHZ(T=400ns)8253的初始化(端口的初始化(端口40H-43H)N0=10ms/800ns=12500=30D4H MOV AL,00110010B;0#计方式计方式1 OUT 43H,AL
21、MOV AL,0D4H;30D4H送送0#计计 OUT 40H,AL MOV AL,30H OUT 40H, AL8255的初始化(端口的初始化(端口60H-63H)MOV AL,10000011B;A口方式口方式0输出,输出, PC0输入输入OUT 63H,AL ; B口方式口方式0,输入,输入PC7输出,输出,MOV AL,00001110B;PC7置置0OUT 63H,ALMOV AL,0FFH ;初试;初试A口,继电器不动作口,继电器不动作OUT 60H, AL检测控制程序检测控制程序L1:MOV AL,00001111B;PC7置置1OUT 63H,ALDEC ALOUT 63H,A
22、LL2:IN AL,62H ;读;读PC0是否为高是否为高TEST AL,01H;延时;延时10msJZ L2 IN AL,61H ;读;读B口口NOT ALOUT 60H,AL JMP L1例例 七、七、8255A的端口的端口A经过反相驱动器连接一共阴极的七段发光二极经过反相驱动器连接一共阴极的七段发光二极管显示器;端口管显示器;端口B是中断方式的输入口。设是中断方式的输入口。设8255A的中断类型码是的中断类型码是30H。试画出电路,。试画出电路, (中断接中断接8259)编写)编写8255A和中断初始化程序,和中断初始化程序,并编写中断服务程序,用来实现,当并编写中断服务程序,用来实现,
23、当CPU从端口从端口B输入的输入的8位码是偶位码是偶数个数个1时,时,LED上显示上显示E,否则显示,否则显示0。(。(8255口地址为口地址为60H63H ,8259A为一片,端口地址为为一片,端口地址为20H、21H)。)。十进制数与十进制数与十六进制数十六进制数对应表对应表8255A、8259A和中断向量表的初始化 CLI;CPU关中断MOV AL,10000110B ;A口方式0输出,B口方式1输入OUT 63H,ALMOV AX,0;设中断向量MOV DS,AXMOV AX,offset INTERMOV 00C0H,AXMOV AX,seg INTERMOV 00C2H,AXMOV
24、 AL,00000101B ;PC2置1,允许8255A中断OUT 63H,ALMOV AL,00011011B ;8259A初始化OUT 20H,ALMOV AL,30H ;中断类型码OUT 21H, ALMOV AL,00000001B ;非缓冲OUT 21H, ALSTI ;CPU开中断中断服务子程序INTER proc farpush axstiin al,61H ;读B口add al,0jp L1 mov al,01000000B;奇数O送A口jmp L2L1:mov al,00000110B;偶数E送A口L2:out 60H,AL mov al,20h out 20h,al; 中断
25、EOI结束 pop ax iretINTER endpICWICW1 1-芯片控制初始化命令字(必须写入偶地址端口)芯片控制初始化命令字(必须写入偶地址端口)格式:格式:0XX1LTIM0SNGLIC4X 8086/80888086/8088系统中不使用系统中不使用1 1:电平触发(高电平):电平触发(高电平)0 0:边沿触发(上升沿):边沿触发(上升沿)1 1:单级使用:单级使用0 0:级联使用:级联使用1 1:需要设置:需要设置ICW4ICW40 0:不需要设置:不需要设置ICW4ICW4ICW4ICW4方式控制初始化方式控制初始化8259初始化命令字初始化命令字ICWICWICW2 2-
26、设置中断类型号初始化命令字设置中断类型号初始化命令字(必须写入奇地址端口)(必须写入奇地址端口)对应对应IR0-IR7中响应中响应哪级中断(哪级中断(000-111)1T6T5T4T3000T7用户自己设定用户自己设定格格 式:式: ICW4ICW4-方式控制初始化命令字(必须写入奇地址端口方式控制初始化命令字(必须写入奇地址端口) ) 说明说明: ICW1: ICW1的的IC4=1IC4=1时时, ,要求预置要求预置ICW4,8086/8088ICW4,8086/8088系统必须预置系统必须预置 1000SFNMBUFM/SAEOIuPM1:1:特殊完全嵌套方式特殊完全嵌套方式0:0:非特殊
27、完全嵌套方式非特殊完全嵌套方式1:1:与与86/8886/88配合配合0:0:与与80/8580/85配合配合1:1:自动自动EOIEOI方式方式0:0:非自动非自动EOIEOI方式方式非缓冲方式非缓冲方式 0 X0 X缓冲方式缓冲方式 从从8259 1 08259 1 0 主主8259 1 18259 1 1格式格式: :例八、用例八、用8255A控制一组红、绿、黄灯,如图示。具体要求如控制一组红、绿、黄灯,如图示。具体要求如下:当下:当K1闭合,闭合,K2闭合时,黄灯亮;当闭合时,黄灯亮;当K1闭合,闭合,K2断开时,断开时,红灯亮;当红灯亮;当K1断开,断开,K2闭合时,绿灯亮;当闭合时
28、,绿灯亮;当K1断开,断开,K2断断开时,黄灯亮。已知开时,黄灯亮。已知8255A的端口地址为的端口地址为60H63H,试编写,试编写初始化程序及控制程序实现。初始化程序及控制程序实现。初始化程序及控制程序如下:初始化程序及控制程序如下: . MOV AL,10010000B OUT 63H,ALLOP:IN AL,60H CMP AL,00H JZ L3 ;K1、K2均合均合 CMP AL,03H JE L3 ;K1、K2均断均断 CMP AL,02H JE L2;K1合、合、K2断断 CMP AL,01H JE L1;K1断、断、K2合合 JMP LOPL1:MOV AL,02H OUT 62H,AL;亮绿灯;亮绿灯 JMP LOPL2:MOV AL,01H OUT 62H,AL;亮红灯;亮红灯 JMP LOPL3:MOV AL,04H OUT 62H,AL;亮黄灯;亮黄灯 JMP LOP .