输入/输出接口扩展什么是输入/输出扩展MCS-51单片机为什么要扩展常用的扩展方法扩展实际应用什么是扩展单片机本身资源不足以满足应用需求的情况下,必须借助外部器件对系统进行扩展主要介绍:并口、RAM、ROM、键盘、LED、DAC、ADC等接口的扩展与应用,其中涉及到6264、2764、74LS373、74LS244、74LS245、8255、8155、8279、8253、DAC0832、ADC0809等芯片。问题的提出MCS-51系列单片机内部有4个双向的8位并行I/O端口:P0、P1、P2和P3口。在实际的应用系统中,P0、P2、P3口往往用来代替系统总线使用,数据口仅剩下P1口了。另外,单片机内部I/O口的功能也过于简单,只有数据锁存和缓冲功能,而没有状态寄存和命令寄存功能,难以满足复杂的I/O操作的要求。鉴于单片机的I/O资源比较有限,在实际应用中不得不使用扩展的方法,以增加I/O口的数量,强化I/O的功能。常用的I/O扩展方法常用的I/O扩展有以下两种形式:简单I/O接口芯片的扩展可编程I/O接口电路的扩展常用的I/O扩展方法简单芯片:是指那些虽具有数据缓冲或锁存功能,但自身仅有数据的输入或输出及选通端或时钟端,却没有地址线和读写控制线,如采用TTL或CMOS数字集成电路构成的三态门、寄存器、三态缓冲寄存器等中小规模的集成电路芯片。可编程逻辑器件:不仅具有数据的输入或输出、具有选通端或时钟端,而且还具有地址线和读写控制线的芯片,他们一般具有片内的状态字寄存器、命令字寄存器,允许通过软件编程来改变它的接口功能或状态。如:Intel8255、8155、8253、8279.简单I/O接口芯片的扩展简单的I/O口扩展通常是采用TTL或CMOS电路锁存器、三态门等作为扩展芯片(74LS244、74LS245、74LS273、74LS373、74LS377等),通过P0口来实现扩展的一种方案。它具有电路简单、成本低、配置灵活的特点。简单的I/O口扩展主要包括:缓冲器扩展输入口(三态门:74LS244、74LS245等)输入接口的主要功能:解决数据输入的缓冲问题,如74ls244(具有三态缓冲功能,这样才可以和数据总线相连)。锁存器扩展输出口(锁存器:74LS273、74LS373、74LS377等)输出接口的主要功能:进行数据的保持(数据锁存)。概述一、I/O系统的组成I/O系统I/O设备输入:键盘、磁盘、光盘、扫描仪…输出:显示、打印机、笔绘仪、磁盘…I/O接口:8155、8255、8253、8251、8279…I/O管理部件:IOP8089、DMAC8237I/O软件BIOS(基本I/O系统)CPU若没有一个强大的I/O系统的支持,CPU的高速度高性能就发挥不出来。苏青制作常用的接口器件有:8255:可编程通用并行接口电路8253/8254:可编程定时/计数器8155/8156:可编程多功能扩展芯片8251:可编程串行接口电路8279:可编程键盘显示接口电路Intel8155是一个具有RAM、I/O和计数器的通用可编程接口多功能芯片。其具有的资源为256B的静态RAM;两个可编程的8位并行I/O口PA和PB;一个可编程的6位并行I/O口PC;一个可编程14位减计数器TC;8位地址锁存器。可编程多功能芯片8155的扩展8155的引脚封装图AD012PA021AD113PA122AD214PA223AD315PA324AD416PA425AD517PA526AD618PA627AD719PA728PB029CE8PB130RD9PB231WR10PB332IO/M7PB433ALE11PB534PB635PB736TMROUT6PC037PC138TMRIN3PC239PC31PC42RESET4PC558155定时/计数器输入端PA1PA2PA3PA4PA5PA6PA7PA0PB1PB2PB3PB4PB5PB6PB7PB0PC1PC2PC3PC4PC5PC0AD1AD2AD3AD4AD5AD6AD7AD0TIMEINTIMEOUTALEIO/MRESETRDWRCE芯片引脚功能:RAM及IO选择地址锁存线三态地址/数据复用线端口A,I/O线端口B,I/O线端口C,I/O线读选通信号线写选通信号线片选线定时/计数器输出端复位端1IO0MCPU外设CBA256字节静态RAM14位定时计数器TIMERINTIMEROUTVCC(+5V)VSS(GND)PA0~PA7IO/MCEALERDWRRESETAD0~AD7PB0~PB7PC0~PC78155的内部结构8155各引脚的功能为:地址/数据线AD0~AD7(8条):是低8位地址线和数据线的共用输入总线,常和单片机的P0口相连,用于分时传送地址和数据;PA0~PA7、PB0~PB7:为A、B口线,用于和外设之间传递数据;PC0~PC5为C端口线,既可与外设传送数据,也可以作为A、B口的控制联络线;CS:片选线,低电平有效。8155的各引脚的功能8155的各引脚的功能RESET:复位线,通常与单片机的复位端相连。ALE:地址锁存线,高电平有效。IO/M:RAM或I/O口的选择线。当为0时,选中8155的256BRAM;当为1时,选中8155片内3个I/O端口以及命令/状态寄存器和定时/计数器。RD和WR:读/写线,控制8155的读、写操作。TMRIN(TI):定时/计数器的脉冲输入端。TMROUT(TO):定时/计数器的输出信号端。VCC:电源端。GND:接地端。8155当IO/M为0时,单片机对8155的RAM进行操作,共256B,低八位的地址为:00H—0FFH。8155当IO/M为1时,单片机对8155的I/O口进行操作。低八位地址I/O口xxxxx000B命令/状态口xxxxx001BPA口xxxxx010BPB口xxxxx011BPC口xxxxx100B定时器/计数器低字节寄存器xxxxx101B定时器/计数器高字节寄存器8155的RAM和I/O口地址编码芯片8155的I/O口和定时器/计数器的工作方式可以通过对8155的命令寄存器写入控制字来实现。8155的命令寄存器和状态寄存器使用同一个地址。8155的命令字命令字主要规定了8155的I/O口和定时器的工作方式。8255的状态字状态字的内容包含8155的I/O口的工作状态标志。8155的命令字和状态字TM1TM2IEBIEAPC2PC1PAPAPBA口方式B口方式B口A口计数器方式00:空操作01:停止计数10:计满后停止11:开始计数0:输入1:输出0:禁止中断1:允许中断00110110方式1:A、B口基本I/O;C口输入方式2:A、B口基本I/O;C口输出方式3:A口选通I/O;B口基本I/O方式4:A、B口选通I/O8155的命令字格式8155的命令字格式D7D6D5D4D3D2D1D0TM2TM1IEBIEAPC2PC1PBPA0输入1输出1开中断D0PAD1PBD3D20输入1输出PC2PC1A、B、C口为基本I/O口A、B入/出由D1D0确定,C口入00A、B、C口为基本I/O口A、B入/出由D1D0确定,C口出1101A口为选通方式,B口为基本I/OPC0~PC2口为PA口联络线PC3~PC5为基本I/O口10A口、B口为选通I/OPC0~PC2口为PA口联络线PC3~PC5为PB口联络线0关中断00空操作01停止计数10时间到,停止计数11置入方式控制字和计数初值后,立即启动计数。若正在计数,溢出后则按新的方式和初值计数。由CPU写入基本I/O方式:联络线由程序指定,对计数器输入输出不起控制作用,没有中断能力,输出联络线由软件程序来控制。选通I/O方式:由PC口的低三位作联络线使用,其余位作I/O线;输入联络线可以起选通数据锁存作用;中断时有中断请求信号产生;各个联络线为:INTRA:中断请求输出标志。BFA:PA口缓冲器/空输出信号。STBA:数据选通输入信号。8155的I/O的工作方式1,8155基本I/O方式8I/O8I/O6I/O外设CPU8155PAPBPCAD0~AD7WRRDALEIO/MCE8基本输入时序MOVXA,@DPTRRDDB数据有效WR基本输出时序MOVX@DPTR,A88端口数据线8端口数据线AINTRABFASTBBINTRBBFBSTB至CPU至外设自外设至CPU至外设自外设8155PAPBAD0~AD7WRRDALEIO/MCEPC0PC1PC2PC3PC4PC52,8155选通I/O方式逻辑结构CPUINPUT端口数据BFINTRRDSTBMOVXA,@DPTR缓冲器满缓冲器空选通输入时序:A口外设B口外设打入缓冲器联络线联络线CPU外设88端口数据线8端口数据线AINTRABFASTBBINTRBBFBSTB至CPU至外设自外设至CPU至外设自外设8155PAPBAD0~AD7WRRDALEIO/MCEPC0PC1PC2PC3PC4PC5逻辑结构CPU选通输出时序:A口外设B口外设OUTPUT端口数据BFINTRWRSTBMOVX@DPTR,A缓冲器满缓冲器空MOVX@DPTR,A端口数据打入外设带联络信号的应答式输出时序CPU外设TM1TM2IEBIEAPC2PC1PAPAPBA口方式B口方式B口A口计数器方式00:空操作01:停止计数10:计满后停止11:开始计数0:输入1:输出0:禁止中断1:允许中断00110110方式1:A、B口基本I/O;C口输入方式2:A、B口基本I/O;C口输出方式3:A口选通I/O;B口基本I/O方式4:A、B口选通I/O8155的状态字格式0无中断1有中断D7D6D5D4D3D2D1D00空TIMER1满未用中断标志由CPU读出AAAINTRBFINTEBBBINTRBFINTE缓冲器满空标志中断允许0关中断1开中断定时器中断标志1计数溢出时0读出状态或复位时“只读不写”8155的状态字格式8155片内的定时器/计数器是一个14位的减计数器。计数器分为高6位和低8位寄存器,它的计数初值有程序预置。它的格式为:8155的定时器/计数器TIMERIN:定时器时钟输入端TIMEROUT:为定时器输出,输出各种波形可接系统时钟,作定时器AD012PA021AD113PA122AD214PA223AD315PA324AD416PA425AD517PA526AD618PA627AD719PA728PB029CE8PB130RD9PB231WR10PB332IO/M7PB433ALE11PB534PB635PB736TMROUT6PC037PC138TMRIN3PC239PC31PC42RESET4PC558155M2M1T13T12T11T10T9T8T7T6T5T4T3T2T1T0高字节寄存器低字节寄存器8155的定时器/计数器(M2和M1是工作方式码,T0—T13为计数器的初值)M2M1方式波形00011011单次方波连续方波单个脉冲连续脉冲8155定时器/计数器四种操作方式和输出波形8155内部定时器定时器14位计数器由04H和05H两个地址组成。输出四种波形:a单次方波b连续方波c单次脉冲d连续脉冲e连续方波若常数为奇数,则方波不对称。例如954首先将计数常数及定时器输出方式送入定时器口计数常数在0002H~3FFFH之间D7D6D5D4D3D2D1D0T13T12T11T10T9T8T7T6T5T4T3T2T1T000单次方波01连续方波10单次脉冲11连续脉冲D7D6D5D4D3D2D1D004H计数器低8位TL05H计数器高6位TH工作方式M2M1地址04H地址05H8155内部定时器MCS-51与8155的接口方法和应用实例例1:8031与8155接口并确定RAM和I/O口地址8031的P0.0~P0.7与8155的AD0~AD7相连51单片机与8155接口连接,不需要任何附