单片机原理与接口技术第9章MCS51单片机的IO扩展_第1页
单片机原理与接口技术第9章MCS51单片机的IO扩展_第2页
单片机原理与接口技术第9章MCS51单片机的IO扩展_第3页
单片机原理与接口技术第9章MCS51单片机的IO扩展_第4页
单片机原理与接口技术第9章MCS51单片机的IO扩展_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MCS-51单片机的I/O扩展《单片机原理与接口技术》第9章核心原理与工程实践Contents课程目录MCS-51单片机的I/O扩展——从基础原理到现代总线系统设计的完整知识脉络。01I/O口基础与扩展需求分析02简单I/O扩展:基于74系列芯片03串行口移位寄存器扩展法04可编程并行接口芯片8255A应用05现代总线扩展与综合系统设计CHAPTER01I/O口基础与扩展需求分析剖析MCS-51内部I/O资源瓶颈与外部总线编址机制I/OArchitectureMCS-51并行I/O口内部结构与电气特性MCS-51的四个并行I/O口在内部电气结构上存在本质差异:P0口为开漏双向口,需外接上拉电阻;P1至P3口为准双向口,内部集成上拉电阻。MCS-51单片机DIP封装芯片实物01P0口·开漏结构—内部无上拉电阻,通用I/O输出高电平时必须外接10kΩ上拉电阻,否则无法驱动TTL负载。02P1–P3口·准双向口—内部集成约30kΩ上拉电阻,由输出转输入前须先写"1"以截止内部场效应管。03驱动能力差异—P0口可驱动8个LS型TTL负载,P1–P3口仅4个,扩展时需考虑扇出系数。RESOURCECONFLICTANALYSISI/O口资源冲突与第二功能占用分析在包含外部存储器或复杂外设的MCS-51系统中,I/O资源面临严重的"功能冲突"。P0口与P2口常被外部总线征用,P3口被关键第二功能占据,导致系统实际可用的通用并行I/O引脚锐减,这是触发I/O扩展的根本工程痛点。P0口:地址/数据复用在外部存储器扩展时被强制复用为低8位地址线与8位数据线,完全丧失通用I/O功能,需外接锁存器分离地址。74LS373P2口:高8位地址输出访问大于256字节的外部RAM或64KBROM时,自动输出高8位地址,导致其作为通用输出口的能力被严重削弱。64KBROMP3口:第二功能占用8个引脚分别承担外部中断、定时器、串行通信等关键第二功能,系统逻辑越复杂,可用于普通I/O的剩余位越少。8PinsSystemDesignChallenge为什么需要I/O扩展?系统复杂度与引脚矛盾单片机I/O扩展不仅是为了突破引脚数量的物理限制,更是为了满足大功率负载驱动、工业级电气隔离以及多外设并发控制的需求。它是单片机从'最小系统'走向'复杂工业控制系统'的桥梁与核心枢纽。突破数量瓶颈复杂人机交互(如矩阵键盘、多路LCD)与多通道数据采集系统所需的控制线远超单片机自带的32根引脚上限32根引脚增强驱动能力单片机I/O口吸/拉电流仅在毫安级别,必须通过扩展功率驱动芯片(如ULN2803)来控制继电器、步进电机等大功率负载ULN2803实现电气隔离工业现场存在强电磁干扰,需通过光耦或隔离变压器扩展I/O,切断地线环路,保护单片机弱电系统免受强电击穿光耦隔离ADDRESSINGMODEI/O扩展的编址方式:统一编址与独立编址MCS-51采用"存储器与I/O统一编址"机制,将外部扩展的I/O端口映射到64KB外部数据存储器地址空间中。这种设计复用了外部总线与控制信号,简化了指令系统,但代价是占用了部分外部RAM的物理地址资源。统一编址与独立编址技术特性对比技术维度统一编址(MCS-51采用)独立编址(x86架构采用)地址空间I/O与RAM共享64KB外部地址空间I/O拥有独立的64KB端口地址空间访问指令使用MOVX等访存指令,无需专用I/O指令必须使用专用的IN和OUT指令进行访问控制信号复用RD/WR控制线,硬件电路设计较简洁需要专门的IOR/IOW控制线,总线逻辑更复杂资源占用会占用外部数据存储器的部分地址资源不占用内存地址,但寻址范围受限于端口空间MCS-51的统一编址牺牲了部分地址空间,换取了硬件电路与指令系统的极简设计。Chapter02简单I/O扩展:基于74系列芯片利用TTL锁存器与缓冲器构建低成本的并行输入/输出通道I/OEXTENSION·COMPARISON74系列芯片在I/O扩展中的角色与选型策略74系列TTL逻辑芯片凭借"硬件即逻辑"的特性,在I/O扩展中扮演着"透明通道"的角色。它无需软件初始化即可工作,具有极低的延迟与成本,但扩展规模受限于地址译码电路的复杂度。90硬件极简,零软件依赖纯硬件逻辑,上电即用,无需初始化代码或驱动配置,系统延迟极低。30引脚占用率高并行扩展需地址线与数据线逐一连接,大量占用单片机有限的I/O引脚资源。90串行方案省引脚移位寄存器仅需2–3根信号线即可级联扩展多路I/O,大幅节省引脚。80级联可扩,时序复杂串行级联支持更大规模扩展,但软件时序要求严格,开发调试成本上升。四种主流I/O扩展方案综合能力评估注:硬件复杂度、引脚占用率、软件配置难度三项,数值越低表现越优ParallelI/OExpansion使用74LS273扩展并行输出口(锁存器原理)74LS273作为八D触发器,利用其边沿触发与锁存特性,在单片机总线数据稳定后保存输出状态。它有效解决了外部数据总线分时复用导致的信号冲突问题,是构建稳定并行输出通道的核心基础器件。74LS273八D触发器·DIP封装实物01内部结构与锁存机制74LS273内部包含8个带清零端的D触发器,在时钟端CLK的上升沿将数据输入端D的状态锁存至输出端Q并保持。02硬件连接方式硬件连接时,单片机的数据总线P0口接74LS273的D端,地址译码器的输出与WR信号相"或"后作为CLK锁存脉冲。03软件编程方法软件编程极为简便,只需使用MOVX@DPTR,A指令向对应地址写入数据,即可触发硬件锁存并更新外部设备状态。BUFFERPRINCIPLE使用74LS244扩展并行输入口(缓冲器原理)74LS244作为八路三态非反相缓冲器,通过高阻态机制实现外部输入信号与单片机数据总线的物理隔离。01三态缓冲机制内部集成两组4位三态缓冲器,OE低电平导通、高电平输出高阻态,实现与总线的电气断开02硬件接口设计拨码开关接入输入端,输出挂载P0总线,OE由地址译码与RD信号共同控制03软件读取流程执行MOVXA,@DPTR,自动拉低RD并输出地址,选通缓冲器将并行数据读入累加器AAddressDecoding使用74LS138译码器进行I/O端口寻址与片选74LS138作为3-8线译码器,将单片机的高位地址线转化为多个互斥的低电平片选信号。它以极少的地址线资源实现了对多个扩展芯片的精确寻址,是构建多端口统一编址I/O扩展系统的"地址分配枢纽"。Fan-out74LS138通过3个二进制输入端(A/B/C)产生8个互斥的低电平输出(Y0-Y7),实现地址空间的扇出分配,大幅提升引脚利用率3→8互斥输出EnableGate其使能端(G1/G2A/G2B)可接入单片机的高位地址线或控制信号(如ALE/IO/M),确保仅在访问外部I/O空间时译码器才被激活G1/G2A/G2BCascade通过级联多片74LS138或配合门电路,可灵活自定义每个扩展端口的物理地址,避免与外部RAM或ROM的地址空间发生重叠冲突多片级联扩展综合案例74系列扩展综合案例:多路数据采集与控制电路通过74LS244(输入)、74LS273(输出)与74LS138(译码)的组合,可构建完整的闭环采集控制系统。该系统将外部物理开关量映射为特定的外部RAM地址,使开发者能以"访问内存"的方式完成复杂的工业I/O控制逻辑。ARCHITECTURE硬件架构74LS138接收P2口高位地址进行译码,Y0选通74LS244读取传感器阵列,Y1选通74LS273驱动继电器与指示灯阵列。74LS138→Y0/Y1ADDRESSMAP地址映射通过电路设计将输入端口固定映射至外部地址0x7FFF,输出端口映射至0xBFFF,实现硬件逻辑的软件地址化。IN:0x7FFF·OUT:0xBFFFCIMPLEMENTATIONC语言实现利用绝对地址访问宏定义,实现指针级别的直接I/O读写操作,以"访问内存"方式完成工业控制。volatilexdata*0x7FFFChapter03串行口移位寄存器扩展法利用UART模式0与移位芯片实现"以少胜多"的极简I/O扩展SERIALPORT·MODE0串行口模式0的工作原理与移位寄存器机制MCS-51串行口在模式0下退化为同步移位寄存器接口,TXD引脚输出固定波特率的移位时钟,RXD引脚作为串行数据通道。这种机制牺牲了异步通信能力,但换取了仅需两根引脚即可实现并行数据串并转换的极简扩展能力。01配置SCON寄存器使SM0=0且SM1=0即进入模式0,此时波特率固定为单片机晶振频率的1/12,无需定时器参与时钟生成f/1202TXD引脚功能重塑为移位时钟输出端,为外部移位寄存器提供同步触发脉冲;RXD引脚重塑为串行数据的单一输入/输出通道TXD+RXD03数据收发由硬件自动完成,写入SBUF触发8位数据逐位移出,接收时启动REN后外部数据逐位移入,完成后置位TI或RI标志位8bitI/OEXPANSION·SERIALTOPARALLEL串入并出扩展:74LS164芯片原理与输出电路74LS164作为串入并出移位寄存器,将单片机RXD引脚的串行数据流在TXD时钟的驱动下转化为8位并行输出。其支持多芯片级联的特性,使得系统仅需两根I/O线即可实现理论上无限规模的并行输出端口扩展。74LS164串入并出移位寄存器·芯片实物0174LS164内部由8个主从RS触发器级联构成,数据从A/B端串行输入,在CLK引脚的每个上升沿触发内部数据向高位移动一位8-FF02硬件连接极简:单片机RXD接164的数据输入端,TXD接时钟端,多片级联时将前级的Q7输出连接至后级的数据输入端即可2I/O03典型应用场景为多位LED数码管的段码驱动或大规模LED点阵屏的行/列扫描控制,以极低的硬件成本解决多引脚占用问题LEDI/OExpansion·Parallel-to-Serial并入串出扩展:74LS165芯片原理与输入电路74LS165作为并入串出移位寄存器,通过LOAD引脚的并行加载与后续的串行移位,将外部多路开关量状态压缩为单线串行数据流。它为单片机提供了一种低成本、少引脚占用的大规模数字量输入采集方案。异步并行加载74LS165具备异步并行加载功能,当LOAD引脚为低电平时,外部8路并行输入数据(D0–D7)被直接锁存至内部触发器中。D0–D7时钟串行移位LOAD恢复高电平后,芯片进入移位模式,在TXD时钟脉冲作用下,内部数据从Q7端串行移出,经RXD引脚逐位读入单片机SBUF。Q7→SBUF多级级联扩展与74LS164类似,74LS165同样支持级联扩展,前级的串行输出接后级的串行输入,适用于采集数十个乃至上百个离散传感器状态。级联×NSERIALI/OEXPANSION·CPROGRAMMING串行扩展的时序分析与C语言软件编程实现串行口模式0的扩展编程核心在于"软硬时序的精确咬合"。发送时需监控TI标志位确保移位完成,接收时需先通过普通I/O触发并行锁存再启动串行移位,任何时序错位都将导致扩展数据的乱码或丢失。发送编程逻辑配置SCON=0x00进入模式0,向SBUF写入待发送字节,硬件自动启动移位,需轮询等待TI=1后软件清零TI以准备下次发送。TI=1接收编程逻辑先用普通I/O引脚向74LS165的LOAD端发送负脉冲锁存外部数据,随后置位REN启动接收,等待RI=1后从SBUF读取数据。74LS165时序瓶颈分析模式0波特率固定为fosc/12,在12MHz晶振下移位1位需1μs,扩展8位需8μs,不适用于对实时性要求极高的微秒级控制场景。8μsCHAPTER04可编程并行接口芯片8255A应用掌握Intel8255A的内部架构、控制字配置与三种工作模式ChipArchitecture8255A芯片内部结构与引脚功能详解Intel8255A作为经典的可编程并行接口芯片,内部集成A、B、C三个8位数据端口与复杂的读写控制逻辑。其独特的C口"按位控制"与"联络信号"复用机制,使其不仅能传输数据,更能协调复杂外设的时序握手。Intel8255A可编程并行接口芯片·DIP-40封装实物数据端口分配:PA口具备最强的驱动与锁存能力,PB口次之,PC口常被拆分为高4位和低4位,分别配合A组和B组进行控制信号输出读写控制逻辑:通过RD、WR、CS及A0/A1地址线,实现单片机对内部4个寄存器(3个数据口+1个控制口)的精确寻址与读写操作数据总线缓冲器:内部集成8位双向三态缓冲器,直接挂载至单片机P0数据总线,负责在CPU与8255A内部寄存器之间隔离并传输数据ControlWord&OperatingModes8255A的控制字配置与三种工作方式概述8255A通过向控制寄存器写入特定的8位控制字,动态定义各端口的输入/输出方向及工作模式。其提供的三种工作方式覆盖了从简单开关量控制到复杂外设握手机制的全场景需求,体现了"软件定义硬件"的设计哲学。8255A三种工作方式技术特性对比工作方式核心特性典型应用场景

方式0

基本I/O

基本输入/输出,无联络信号,电平直接锁存或读取LED显示驱动、拨码开关状态读取、简单继电器控制

方式1

选通I/O

选通输入/输出,借用PC口引脚作为STB/ACK握手与INTR中断微型打印机接口、A/D转换器数据采集、矩阵键盘扫描

方式2

双向总线

双向总线传输,仅PA口支持,具备完整的5根联络控制线多单片机共享数据总线通信、双向数据缓冲与交换系统方式0适合简单外设,方式1解决时序同步,方式2专攻双向总线共享。HARDWAREINTERFACE8255A与MCS-51单片机的硬件接口电路设计8255A与MCS-51的硬件连接遵循"外部数据存储器统一编址"原则。通过复用P0口数据线、借用P3口控制线,并利用高位地址线进行片选与端口内寻址,将8255A的四个内部端口无缝映射至单片机的外部地址空间。P0·P3数据与控制线连接8255A的D0-D7接P0数据总线,RD/WR直接连接单片机P3.7(RD)与P3.6(WR),RESET接系统硬件复位电路。这种连接方式实现了数据的双向传输与控制信号的直接映射。关键要点:数据线复用·控制线直连·复位同步A0/A1端口内寻址设计将单片机低位地址线(如P2.0/P2.1)接入8255A的A0/A1,用于在PA/PB/PC及控制口这4个寄存器中进行片内选择。地址编码00-11分别对应四个独立端口。寻址范围:00=PA口·01=PB口·10=PC口·11=控制口CS片选信号生成利用高位地址线(如P2.7)或74LS138译码器输出连接8255A的CS端,确保仅在访问特定地址段时8255A才被激活响应。译码方式可灵活选择线选或全译码。片选方式:线选法·译码法·地址空间隔离MCS-51I/OEXPANSION8255A方式0的基本输入/输出编程实例方式0的编程逻辑分为"初始化配置"与"数据读写"两步。通过向控制口写入特定的方式选择字,确立各端口的数据流向;随后即可利用MOVX指令或C语言指针,对映射后的数据口地址进行直接的字节级读写操作。控制字计算若设定PA口方式0输出、PB口方式0输入、PC口全输出,则方式选择字D7=1,D6D5=00,D4=1,D3=0,D2=0,D1=1,D0=10x91HC语言指针映射利用xdata指针定义四个端口地址,如#defineCTRL指向控制口地址0x7FFF,PA_PORT/PB_PORT/PC_PORT分别映射数据端口0x7FFF业务逻辑实现初始化时执行CTRL=0x91;运行时通过PA_PORT=0xFF驱动外设,通过sensor_val=PB_PORT读取外部开关量,逻辑清晰且执行效率高MOVXAPPLICATION·8255A8255A在复杂外设驱动中的应用在面对打印机、A/D转换器等具备独立时序的复杂外设时,8255A的方式1通过PC口提供的硬件握手信号,实现了异步速度匹配,彻底解决了快慢设备间的数据丢失问题。打印机接口设计PA口工作于方式1输出,PC7作为OBF信号通知打印机取数据,PC6接收ACK应答,PC3产生INTR中断请求。硬件握手确保数据可靠传输,避免打印丢码。PA·OBF·ACK·INTRA/D采集同步PB口工作于方式1输入,PC0接收EOC作为STB信号,将转换结果锁存入8255A内部,通过PC3向单片机申请中断。自动锁存机制保证采样精度。PB·EOC·STB·锁存矩阵键盘扫描PA口输出行扫描码,PC口高4位读取列状态,结合软件消抖算法,高效实现16×16矩阵键盘按键坐标识别。分时扫描降低IO占用。16×16·行列扫描·消抖ChipComparison8155芯片简介及其与8255A的对比优势Intel8155是一款高度集成的多功能接口芯片,在提供可编程并行I/O口的基础上,内部额外嵌入了256字节SRAM与14位硬件定时器。它在资源受限的单片机最小系统中,能以单芯片方案同时解决I/O扩展、数据存储与脉冲生成的三重需求。8255A与8155芯片核心资源与技术特性对比技术维度8255A(纯I/O扩展)8155(综合接口芯片)I/O端口配置3个8位并行端口(PA/PB/PC)2个8位端口+1个6位端口内部存储资源无内部RAM,纯寄存器映射集成256字节静态RAM(SRAM)定时/计数功能无硬件定时器,需依赖单片机内部资源内置14位可编程减法计数器,可输出方波/脉冲地址锁存需求需外接74LS373锁存低8位地址内部集成地址锁存器,直接连接ALE即可8155以高集成度取胜,适合紧凑型系统;8255A以I/O专业性见长,适合复杂外设控制。CHAPTER05现代总线扩展与综合系统设计从并行总线走向I2C/SPI串行总线,构建完整的工业级采集系统SERIALBUSI/OEXPANSIONI2C与SPI总线在I/O扩展中的应用现代I/O扩展正从"并行地址映射"向"串行协议寻址"演进。以PCF8574为代表的I2CI/O扩展器,仅需两根信号线即可实现多节点的并行端口扩展,极大简化了PCB布线难度,成为物联网节点与紧凑型嵌入式系统的首选方案。I2CBUSI2C总线优势:仅凭SDA(数据)与SCL(时钟)两根线即可寻址最多128个外设,彻底摆脱了并行扩展对地址线与数据总线的重度依赖。PCF8574PCF8574工作机制:内部集成8位准双向I/O口与I2C接口电路,单片机通过发送器件地址与1字节数据,即可远程控制其8个引脚的高低电平状态。SPIBUSSPI总线对比:SPI采用四线制(MOSI/MISO/SCK/CS),全双工通信且速率可达数十Mbps,适用于需要高速数据吞吐的ADC/DAC或大容量存储器扩展。PCF8574I2CIO扩展模块实物I/OEXPANSION·LEDDISPLAY基于I/O扩展的LED点阵屏与多位数码管动态扫描动态扫描技术是突破I/O数量限制驱动大规模显示阵列的核心算法。通过"段码并联、位码轮询"的硬件拓扑与高频软件刷新的配合,利用人眼视觉暂留效应,以极少的I/O资源实现了多位数码管或点阵屏的稳定显示。01硬件拓扑设计8位数码管同名段码引脚并联至74LS273输出端,8个公共极由74LS138译码器独立控制02视觉暂留原理人眼光信号保留约0.1s,单管刷新率须大于50Hz(全屏扫描周期<20ms)消除闪烁03软件消影处理切换位码前必须先输出"段码全灭"空白数据,防止残影"鬼影"到下一位数码管LED点阵屏与多位数码管单片机开发板实物—动态扫描显示硬件平台Isolation&Protection基于I/O扩展的继电器阵列与电机驱动隔离电路工业级I/O扩展的核心诉求之一是"强弱电隔离"。通过引入光耦隔离器与达林顿功率驱动阵列,在单片机低压逻辑电路与外部高压感性负载之间建立物理屏障,彻底阻断电气干扰与反向电动势对微电子系统的致命破坏。光耦隔离机制采用PC817等光耦芯片,单片机I/O口驱动内部红外LED,通过光信号耦合控制输出端光敏三极管,实现输入输出间的千欧级电气绝缘。kΩ感性负载保护继电器线圈在断电瞬间会产生数百伏的反向电动势,必须在扩展电路的线圈两端反向并联续流二极管(如1N4148)以吸收浪涌能量。1N4148功率驱动放大单片机I/O口输出电流不足以直接驱动继电器,需使用ULN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论