微机原理及应用第八章可编程通用接口芯片重点掌握内容:可编程并行接口8255A的基本结构、工作方式、在PC机中的应用及应用编程(能设计和分析由8255A组成的简单电路,并进行程控)可编程定时/计数器8253的基本结构、工作方式、在PC机中的应用及应用编程(能分析包含8253的简单电路,并进行初始化编程)有关串行通信和串行接口的基本概念几个重要概念:并行通信、同步串行通信、异步串行通信、波特率了解内容:8255A的工作时序8253的各种工作方式和输出波形EIARS-232标准和可编程异步串行接口芯片8250的工作原理及在PC机中的应用微机原理及应用第八章主要内容§8.1接口芯片的功能及分类§8.2可编程并行接口芯片8255A§8.3可编程计数/定时器8253§8.48255、8253在PC机中的应用§8.5串行通信及接口简介微机原理及应用§8.1接口芯片的功能及分类接口芯片的功能寻址功能信息交换功能接口芯片的分类按用途分类按控制方式分微机原理及应用寻址功能与信息交换功能芯片内部可以有多个寄存器,通过不同的端口地址进行读/写访问:写控制字到控制口,用来设置芯片功能;从状态口读状态字;读/写数据,以实现CPU与数据口之间的信息交换。芯片有片选信号/CS及片内端口选择信号:系统高位地址线经译码产生片选线/CS;在/CS有效的前提下,由系统低位地址线选择片内寄存器,由此确定芯片内各端口的地址微机原理及应用按用途分类通用接口芯片74LS373、8282(锁存器)、8286、74LS245(双向数据收/发器)、8255A(并行接口)、8250(串行接口)、8253(定时/计数)……专用接口芯片DMA控制器8237A;中断控制器8259A……微机原理及应用按控制方式分类不可编程控制芯片(芯片功能固定)74LS373、74LS245、8282、8286可编程控制芯片(芯片功能可变)8255A、8253、8259A、8237A、8250微机原理及应用§8.2可编程并行接口芯片8255A8255A的基本功能8255A的内部结构8255A的引脚特性8255A的控制命令字8255A的工作方式应用实例微机原理及应用一、8255A的基本功能有三个相互独立的8位双向输入/输出通道:A端口、B端口、C端口。C端口可以用作两个独立的4位口;输入/输出与TTL电平兼容;三种工作方式,适用于进行同步、查询、中断I/O控制方式;通用性强、使用灵活。微机原理及应用二、8255A的内部结构A组控制逻辑B组控制逻辑A组(A口,8位)A组(C口上半部,4位)B组(B口,8位)B组(C口下半部,4位)读/写控制逻辑/RD/WRA1A0RESET/CS8位内部数据总线数据总线缓冲器双向数据总线D0~D7PA0~PA7PC4~PC7PB0~PB7内部逻辑与系统总线的接口与外设的接口PC0~PC3微机原理及应用三、8255A的引脚特性8255A与外设的接口:8位双向A端口——PA0~PA78位双向B端口——PB0~PB78位双向C端口——PC0~PC78255A与CPU的接口:8位数据线D0~D7:接数据总线的D0~D7片内寄存器端口选择线A0、A1片选线/CS读写控制线/RD、/WR复位控制线RESET微机原理及应用8255A的地址写控制字地址:A1=1、A0=1A端口读写地址:A1=0、A0=0B端口读写地址:A1=0、A0=1C端口读写地址:A1=1、A0=0控制字仅允许写操作,其余端口可读可写微机原理及应用四、8255A的控制(命令)字共两个控制命令字:工作方式控制字C口置/复位控制字一址两字的识别位:最高位=1时,写入工作方式控制字最高位=0时,写入C口置/复位控制字微机原理及应用控制字1特征位A口工作方式00:方式001:方式11x:方式2A口输入/出0:输出1:输入PC7~PC4输出0:输出1:输入B口方式0:方式01:方式1PC3~PC0输入/出0:输出1:输入D7D6D5D4D3D2D1D0B口输入/出0:输出1:输入置位/复位0特征位XC口置位/复位8位编码000-111XXD7D6D5D4D3D2D1D0C口置位/复位0:复位1:置位微机原理及应用1.工作方式控制字b7b6b5b4b3b2b1b01•特征识别位:b7=1•A端口工作方式:b6、b5•A端口输入/输出:b4•B端口工作方式:b2•B端口输入/输出:b1•C端口上半部分输入/输出:b3•C端口下半部分输入/输出:b0微机原理及应用1.A端口的可编程工作方式定义A端口工作方式的定义位b6b5=00——方式0,A端口用作基本输入/输出b6b5=01——方式1,A端口用作选通输入/输出b6b5=1x——方式2,A端口用作双向数据传送A端口输入、输出方向的选择位b4=0——A端口用作输出b4=1——A端口用作输入A端口为方式2时,b4位无意义微机原理及应用B端口的可编程工作方式定义B端口工作方式的定义位b2=0——方式0,B端口用作基本输入/输出b2=1——方式1,B端口用作选通输入/输出B端口无方式2!B端口输入、输出方向的选择位b1=0——A端口用作输出b1=1——A端口用作输入微机原理及应用C端口的工作方式定义当A、B端口均为方式0时,C端口全部用作I/O口;当A、B端口工作在方式1或2时,C端口中的某些特定位有固定含义,仅剩余的位可做普通I/O口。C端口输入/输出方向选择b3=0——PC4~PC7用作输出b3=1——PC4~PC7用作输入b0=0——PC1~PC3用作输出b0=1——PC1~PC3用作输入微机原理及应用2.C端口置/复位控制字b7b6b5b4b3b2b1b00———•特征识别位:b7=0•C端口8位的编码:b3、b2、b1(000~111)•置/复位控制位:b0=0,对应PCn位输出低电平b0=1,对应PCn位输出高电平•b6、b5、b4位无意义微机原理及应用C端口的位选择编码b3b2b1PCn编码b0=0b0=1000PC0对应的PCn位置为低电平对应的PCn位置为高电平001PC1010PC2011PC3100PC4101PC5110PC6111PC7微机原理及应用设8255A的A口工作于方式1输入,B口工作于方式0输出,置PC4=H(8255A的地址为60H~63H):工作方式控制字C口置/复位控制字MOVAL,0B0H;1011000XBOUT63H,AL;写方式控制字MOVAL,09H;0XXX01001BOUT63H,AL;写置/复位控制字b7b6b5b4b3b2b1b01011000xb7b6b5b4b3b2b1b00xxx1001微机原理及应用五、8255A的工作方式A端口可工作于方式0、方式1、方式2B端口可工作于方式0、方式1C端口仅能工作于方式0方式0:基本输入/输出(无条件传送)方式1:选通输入/输出(查询/中断)方式2:双向数据传送(方式1输入与输出的综合)微机原理及应用方式0——基本输入输出功能:A口、B口及C口的上、下半部分均可单独工作于方式0的输入或输出,共有十六种组态电特性:输出锁存,输入无锁存应用:A、B、C端口均传送数据信息,因而适合于无条件传送方式;也可通过程序控制实现查询传送方式,此时可用任一端口传送状态信息微机原理及应用方式1——选通输入输出功能:A、B端口用于进行数据输入或输出,C端口的特定位作为A、B端口的状态位和控制位。电特性:输出锁存,输入时缓冲。应用:A、B端口传数据。C端口的特定位传送状态信息,适于查询方式;C端口其它特定位发中断请求,也适于中断方式。微机原理及应用方式2——双向输入输出功能:仅A端口具有双向数据传送功能,C端口的特定位用作A端口输入、输出时的状态信息和控制信息。电特性:A端口双向锁存和缓冲。应用:A端口双向传送数据。集合了在方式1下分别用于A口输入、输出状态和控制的全部C端口特定位,可以实现查询或中断方式的传送。微机原理及应用A端口——方式1输入方式控制字:C端口特定位的作用PC4:/STBA外设送给8255A的状态信号,表示外设的输入数据已锁存到A端口PC5:IBFA8255A向CPU方向送出的状态信号,表示A端口输入缓冲器已满(查询方式下的查询位)PC3:INTRA8255A向CPU发出的中断请求信号1011?XXX微机原理及应用INTRA的中断允许及中断屏蔽产生INTRA信号的逻辑表达式:INTRA=IBFA&INTEA若输入数据已送A端口锁存,则IBFA(PC5)自动变高若INTEA=“0”,则INTRA(PC3)=“0”→中断屏蔽若INTEA=“1”,则INTRA(PC3)=“1”→中断允许INTEA的控制:对PC4进行置/复位方式操作中断屏蔽,则置PC4=“0”→中断允许,则置PC4=“1”→0XXX10000XXX1001微机原理及应用B端口——方式1输入1XXX?11X方式控制字:C端口特定位的作用PC2:/STBB外设送给8255A的状态信号,表示外设的输入数据已锁存到B端口PC1:IBFB8255A向CPU方向送出的状态信号,表示B端口输入缓冲器已满(查询方式下的查询位)PC0:INTRB8255A向CPU发出的中断请求信号微机原理及应用INTRB的中断允许及中断屏蔽0XXX01000XXX0101产生INTRB信号的逻辑表达式:INTRB=IBFB&INTEB若输入数据已送B端口锁存,则IBFB(PC1)自动变高若INTEB=“0”,则INTRB(PC0)=“0”→中断屏蔽若INTEB=“1”,则INTRB(PC0)=“1”→中断允许INTEB的控制:对PC2进行置/复位方式操作中断屏蔽,则置PC2=“0”→中断允许,则置PC2=“1”→微机原理及应用A端口——方式1输出方式控制字:C端口特定位的作用PC7:/OBFA8255A向外设送出的信号,表示数据已写入A端口,输出缓冲器满PC6:/ACKA外设送给8255A的信号,表示已从A端口将数据取走,同时将/OBFA置为高电平PC3:INTRA8255A向CPU发出的中断请求信号1010?XXX微机原理及应用INTRA的中断允许及中断屏蔽产生INTRA信号的逻辑表达式:INTRA=/OBFA&INTEA若输出数据已从A端口取走,则/OBFA(PC7)自动变高若INTEA=“0”,则INTRA(PC3)=“0”→中断屏蔽若INTEA=“1”,则INTRA(PC3)=“1”→中断允许INTEA的控制:对PC6进行置/复位方式操作中断屏蔽,则置PC6=“0”→中断允许,则置PC6=“1”→0XXX11000XXX1101微机原理及应用B端口——方式1输出1XXX?10X方式控制字:C端口特定位的作用PC1:/OBFB8255A向外设送出的信号,表示数据已写入B端口,输出缓冲器满PC2:/ACKB外设送给8255A的信号,表示已从B端口将数据取走,同时将/OBFB置为高电平PC0:INTRB8255A向CPU发出的中断请求信号微机原理及应用INTRB的中断允许及中断屏蔽产生INTRB信号的逻辑表达式:INTRB=/OBFB&INTEB若输出数据已从B端口取走,则/OBFB(PC1)自动变高若INTEB=“0”,则INTRB(PC0)=“0”→中断屏蔽若INTEB=“1”,则INTRB(PC0)=“1”→中断允许INTEB的控制:对PC2进行置/复位方式操作中断屏蔽,则置PC2=“0”→中断允许,则置PC2=“1”→0XXX01000XXX0101微机原理及应用A端口——方式2(双向数据传送)方式控制字:C端口特定位的作用输入:同A端口方式1输入,使用PC3、PC4、PC5输出:同A端口方式1输出,使用PC3、PC6、PC7中断允许与中断屏蔽输入:中断方式同A端口方式1输入,置/复位PC4输出:中断方式同A