单片机原理与应用Principle&ApplicationofMCU第7章I显示器接口技术1教学内容及要求教学内容显示器概述LED显示器(八段数码管)显示原理并行I/O口扩展八段数码管接口应用实例教学要求掌握单片机与八段数码管显示器的接口方法、动态扫描显示的原理及程序设计方法。熟悉8255实现51单片机并行I/O扩展的方法。了解LCD显示器的显示原理。27.1单片机扩展I/O接口简介一、为什么要扩展I/O接口?1、单片机本身接口功能及数量有限2、单片机控制应用中接口电路复杂(1)速度不匹配:速度远低于CPU(2)时序不匹配:无法与CPU的时序取得统一。(3)信息格式不匹配:如串行和并行;二进制格式、ACSII和BCD等。(4)信息类型不匹配:有数字信号,有模拟信号,有正逻辑和负逻辑。(5)信号电平不匹配:CMOS电平,TTL电平等。二、接口电路功能1、速度协调2、输出数据锁存3、数据总线隔离4、数据格式转换5、提供地址译码或设备选择信号6、增强驱动能力锁存功能接口电路用数据锁存器,解决双方速度匹配问题。隔离作用CPU既可以与存储器交换数据,也可以与任一外设交换数据。但任一时刻,只能与其中的一个设备交换数据。变换作用当外设的电平幅度不符合计算机要求时,需要接口电路进行电平转换。联络作用只有在外设准备就绪时,才能与CPU交换数据,既可避免出错,又可提高CPU的工作效率。外设准备就绪状态,通过接口电路与计算机进行联系。因此,接口电路必需具有联络作用。什么是接口接口电路(interface):单片机与外部设备之间的连接硬件电路称为接口电路(I/O接口电路)端口(port):接口电路中已编址并能进行读或(和)写操作的寄存器称为端口一个接口电路中可以包括多个端口(数据口、状态口和命令口)78CPU数据总线控制总线数据接口状态接口控制接口译码地址总线I/0接口数据总线控制总线状态总线CPU与外设连接图三、I/O端口编址技术1、端口与主存储器单元统一编址统一编址,把主存储器的一部分地址空间分给端口,把每一个端口作为一个存储单元。2、端口单独编址对端口单独编址时,端口不占主存地址空间,但必需设置专门的输入/输出指令访问端口。端口的编址方法线选法:就是直接以系统的地址作为存储芯片的片选信号,为此只需把高位地址线与存储芯片的片选信号直接连接即可译码法:就是使用译码器对系统的高位地址进行译码,以其译码输出作为存储芯片的片选信号10四、CPU与外设之间的数据传送方式CPU与外设之间的数据传送方式通常有3种方式:1、无条件传送方式(同步程序传送)2、查询传送方式(CPU主动)3、中断传送方式(CPU被动)1、无条件传送方式(同步程序传送或直接传送方式):无需测试设备的状态,可以根据需要随时进行I/O操作。例:驱动指示灯、继电器、启动电机等2、查询传送方式(CPU主动):在I/O操作前要检测设备的状态,确认I/O设备准备好时执行I/O操作例:水池水位自动控制系统要求:水位A放水;水位B停放1)输出:P1.0=1时,M放水;P1.0=0时,M关2)输入:水位A,T1、T2截止→P1.1=1,P1.2=1水位B,T1、T2导通→P1.1=0,P1.2=0A水位B,T1止,T2通→P1.1=1,P1.2=03、中断传送方式(CPU被动)CPU不主动查询外设,只执行自己的程序,当外设准备好需要传送数据时,提出申请,若CPU准与请求,放下正在执行的程序,去传送外设的数据。一个芯片可扩展多个并行I/O口可用软件改变接口的功能可直接与单片机连接,进行并行数据传送可编程并行I/O口的扩展8255A是常用的可编程并行I/O口的扩展芯片,优点是:单片机8255A外设8255A是Intel系列的可编程并行接口芯片,扩展一片可获得3个8位的并行I/O口,是一种单片机与外设之间的接口电路。8255A的结构及引脚功能8255A为40引脚的双列直插式(DIP)封装(1)引脚功能①D0~D7为数据线,与单片机的数据总线连接,传数据、命令等。②PA0~PA7(PA口)、PB0~PB7(PB口)、PC0~PC7(PC口)为3个8位并行I/O口,用于8255A与外设之间传数据。③读写控制逻辑线CSRDWR——片选信号,接单片机的地址总线——读信号,接单片机的读信号——写信号,接单片机的写信号RESET——复位信号,接单片机的复位A1、A0——端口选择信号,接单片机的地址总线,与片选/CS一起,确定8255A访问的端口地址。CSD034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710RD5WR36A09A18RESET3568255A端口A上半部(4)(8)(8)A组B组数据总线缓冲I/OI/OI/OI/ORDWRA0A1RESETCSD0-D7PA0-PA7PC4-PC7PC0-PC3PB0-PB7读写控制逻辑控制控制A组A组端口CB组端口C下半部(4)B组端口B(2)内部结构A组控制B组控制PA口PC口高四位PB口PC口低4位③读/写控制逻辑接收CPU传来的控制信号,以控制8255A的操作CSWRA1、A0、RESET④数据总线缓冲器双向三态8位缓冲器,与单片机的数据总线直接相连①并行I/O端口有3个8位并行I/O口,PA、PB、PC它们可以被设置成输入或输出②A、B组控制电路A、B两组控制电路将三个端口分成A、B两组。一片8255A占4个端口地址:PA口、PB口、PC口、控制口,由/CS、A1、A0决定。2.8255A端口的寻址CS控制口110PC口100PB口010PA口000选择A1A0CS、A1、A0接单片机的地址总线,构成单片机访问8255A的16位地址。、A1、A0与地址总线的连接方案不同,端口地址不同。CS片选地址片内地址16位总线访问地址=片选地址+片内地址PA=FF7CHPB=FF7DHPC=FF7EH控制口=FF7FHCS接A7,A1、A0接CPU的A1、A0,则端口地址:CSA1A08255A没接的地址线设为1,则4个端口地址为:8031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P2.4P0.3P0.2P0.1P0.0A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0PA口:××××××××0×××××00PB口:××××××××0×××××01PC口:××××××××0×××××10控制口:××××××××0×××××11例如8255A端口地址的确定片内地址片选地址CS接A15,A1、A0接CPU的A1、A0,则端口地址:CSA1A08255A没接的地址线设为1,则4个端口地址为:8031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P2.4P0.3P0.2P0.1P0.0A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0PA口:0×××××××××××××00PB口:0×××××××××××××01PC口:0×××××××××××××10控制口:0×××××××××××××11例如8255A端口地址的确定片内地址片选地址PA=7FFCHPB=7FFDHPC=7FFEH控制口=7FFFH3.8255A的控制字8255A有两个控制字:工作方式控制字PC口置/复位控制字这两个控制字都写到8255A的控制口,用同一个端口地址采用特征位识别。D7=1,表示是工作方式控制字D7=0,表示是PC口置/复位控制字D7D6D5D4D3D2D1D0B组C口低4位B口方式选择0:输出0:输出1:输入1:输入1:方式10:方式0A口01:方式100:方式01X:方式2特征位,为1D7D3D2D1D00:复位1:置位000001010PC0位选择011100101110111PC1PC2PC3PC4PC5PC6PC7A组C口高4位0:输出1:输入0:输出1:输入特征位为0方式选择D5D6D4不用置000D7D6D5D4D3D2D1D0B组C口低4位B口方式选择0:输出0:输出1:输入1:输入1:方式10:方式0A口01:方式100:方式01X:方式2特征位,为1D7D3D2D1D00:复位1:置位000001010PC0位选择011100101110111PC1PC2PC3PC4PC5PC6PC7A组C口高4位0:输出1:输入0:输出1:输入特征位为0方式选择D5D6D4不用置000工作方式控制字PC置/复位控制字D7D6D5D4D3D2D1D0B组C口低4位B口方式选择0:输出0:输出1:输入1:输入1:方式10:方式0A口01:方式100:方式01X:方式2特征位,为1D7D3D2D1D00:复位1:置位000001010PC0位选择011100101110111PC1PC2PC3PC4PC5PC6PC7A组C口高4位0:输出1:输入0:输出1:输入特征位为0方式选择D5D6D4不用置000①工作方式控制字作用是用来设置3个并行口作输入口还是作输出口、设置8255A的工作方式PA口有3种工作方式,PB口有2种工作方式,PC口只有一种工作方式0在方式1或方式2,PC口自动作为PA口、PB口的控制信号位为0,为输出口;为1,为输入口8255A有三种工作方式:方式0——基本输入/输出方式方式1——选通输入/输出方式方式2——双向输入/输出方式工作方式控制字标志位A组方式设置A口C上口B组方式B口C下口11/01/01/01/01/01/01/0含义方式0、1、2输入/输出输入/输出方式0、1输入/输出输入/输出工作方式控制字C口置/复位控制字标志位不使用位C口位地址编码位状态0×××1/01/01/01/0含义一般取简码000选择PC7~PC0位置位/复位②PC口置/复位控制字其作用是用来设置PC口某位输出高电平或低电平。实现某些位控制,如启/停外设、开关的通/断、继电器的吸合/释放等例设8255A的控制口地址为FF7FH,试编程设置:PA口为工作方式0输入,PB口为工作方式0输出,PC4~PC7为输出,PC0~PC3为输入。则工作方式控制字为10010001B,其初始化程序:MOVDPTR,#0FF7FH;控制口地址MOVA,#91H;工作方式控制字MOVX@DPTR,A;写控制字到控制口D7D6D5D4D3D2D1D0B组C口低4位B口方式选择0:输出0:输出1:输入1:输入1:方式10:方式0A口01:方式100:方式01X:方式2特征位,为1D7D3D2D1D00:复位1:置位000001010PC0位选择011100101110111PC1PC2PC3PC4PC5PC6PC7A组C口高4位0:输出1:输入0:输出1:输入特征位为0方式选择D5D6D4不用置000PC置/复位控制字4.8255A的工作方式8255A有3种工作方式:方式0、方式1、方式2①方式0——基本输入/输出方式2个8位I/O口(PA、PB),2个4位I/O口(PC口高4位、低4位)任意一个口可作输入口或输出口两种数据传送方式:无条件传送方式不需任何应答联络信号。认为外设随时是准备好的,如键盘,显示器查询传送方式需要联络信号,这时,PA、PB作数据口,PC口作控制信号提供外设状态、外设选通信号,可设置为4位作输入、4位作输出②方式1——选通输入/输出方式PA口、PB口作输入/输出口,PC口自动提供固定关系的选通信号和应答信号A组:B组:PA口为数据口PC口高四位作联络信号PB口为数据口PC口低四位作联络信号③方式2——双向输入/输出方式只有PA口能够设定为方式2,PA口为8位双向数据口,能读能写PC