
51 MCU IO端口应用详细说明MCS-51是标准的40引脚双列直插式集成电路芯片. 有关引脚分配,请参考MCU引脚图: 这四个I / O端口具有不同的功能,每个人都可以学得很好. 尽管还有其他书籍,但是它们太深了,初学者很难理解. 我已经按照自己的表情写了它们. 我相信你能理解它们. P0端口具有三个功能: 1.当外部扩展存储器用作数据总线时(图1中的D0〜D7是数据总线接口)2.当外部扩展存储器用作地址总线时(在图1中,A0〜A7图1)(它是地址总线接口)3.当不扩展但内部没有上拉电阻时,可用于通用I / O,应在外部将其连接到上拉电阻作为输入或输出. 端口P1仅用作I / O端口: 内部有一个上拉电阻. P2端口具有两个功能: 1.用作扩展外部存储器时的地址总线. 2.用作通用I / O端口,其内部具有上拉电阻; P3端口具有两个功能: 除了用作I / O(内部具有上拉电阻)外,还有一些特殊功能,这些特殊功能由特殊寄存器设置. 有关特定功能,请参考我们后面的引脚说明. 具有内部EPROM(例如8551)的单片机芯片需要提供特殊的编程脉冲和编程能力来编写程序. 这些信号也以信号引脚的形式提供,即: 编程脉冲: 30英尺(ALE / PROG)编程电压(25V): 引脚31(EA / Vpp)在介绍这四个I时提到了“上拉电阻” / O端口. 那么上拉电阻是什么?他扮演什么角色?据说电阻当然是电阻. 当用作输入时,上拉电阻会将其电位拉高. 如果输入为低电平,则可以提供电流源. 因此51单片机io口编程,如果将P0端口用作输入,则它处于高电平. 在阻抗状态下,只有一个外部上拉电阻才有效.
ALE地址锁存器控制信号: 扩展系统时,ALE用于控制P0端口低8位地址到锁存器的输出以锁存它,以实现低位地址和数据的隔离. 请参见图2(8051扩展的2KB EEPROM电路. 在该图中,ALE连接到4LS373锁存器的G. 当CPU访问外部时,它用于锁定地址的低地址,即P0端口). 由于ALE是正向脉冲输出,固定频率为晶体振荡器的六分之一,因此,当系统中不使用外部存储器时,ALE引脚也具有固定频率的六分之一输出,因此可以用作外部时钟或外部定时脉冲程序存储器读选通信号: 读取外部ROM时PSEN为低电平有效,以实现外部ROM单元的读取操作1.读取内部ROM时PSEN不起作用; 2.读取外部ROM时每台机器中的ROM循环将执行两次; 3.读取外部RAM时,两个PSEN脉冲将被跳过并且将不输出; 4.当连接外部ROM时,它将连接到ROM的OE引脚. ROM. 参见图2-(8051扩展的2KB EEPROM电路,在图中,PSEN为c连接到扩展ROM的OE引脚)EA / VPP访问和顺序存储器控制信号1.连接到高电平时: CPU读取内部程序存储器(ROM)扩展外部ROM: 当读取内部程序存储器时0FFFH(8051 )自动访问外部ROM 1FFFH(8052).

2. 连接到低电平时: CPU读取外部程序存储器(ROM). 3.当通过8751对内部EPROM进行编程时,请使用此引脚输入21V的编程电压. RST复位信号: 当输入信号连续超过2个机器周期为高电平时有效,并且用于完成单片机的复位初始化操作. XTAL1和XTAL2连接到外部晶振引脚. 当使用芯片的内部时钟时,这两个引脚用于连接石英晶体和微调电容器. 使用外部时钟时,它们用于连接外部时钟脉冲信号. VCC: 电源+ 5V输入VSS: GND地. 8031每个端口的工作原理解释了并行端口P0端口总线I / O端口,双向,三态,数据地址时分多路复用,除了数据输入/输出外,当8031时该端口也被划分微控制器连接到程序存储器. 时间输出/输入地址/命令. 从Po端口输出的信号未锁存,输入信息分为读取端口引脚和读取端口锁存器. 下图显示了8位P0端口的: 从上图可以看出,P0端口由一个锁存器,一个输入缓冲器,一个开关,一个相应的控制电路和一个磁场组成. 效果管驱动电路. 在输出状态下,当开关MUX下降时,来自内部总线的数据被锁存器和FET T2反相,并输出到端口引脚线. 此时,场效应晶体管T1截止,因此该输出方法应为带外部上拉电阻的开漏型.
当开关MUX接通时,地址/数据信号的一部分以分时方式输出到端口线. 此外,T1和T2的开关组合形成了高电平,低电平和高阻抗浮动三态输出. 在输入状态下,从锁存器和引脚读取的信号通常相同,但也有例外. 例如,当从内部总线输出低电平时,锁存器Q = 0,Q = 1,场效应晶体管T2导通,并且端口线处于低电平状态. 此时,无论端口线上的外部信号是低电平还是高电平,从引脚读取到,从端口引脚线读取其他信号. 读-修改-写指令的特征是从端口输入(读取)信号,然后在微控制器中执行操作(修改),然后输出(写入)端口. 这是一些读-修改-写指令的例子. 这样做的原因是read-modify-write命令需要获取端口的原始输出状态,然后在修改后将其输出. 读取锁存器而不是读取引脚可以避免由于错误导致的原始端口状态错误到外部电路.

P0端口是8031单片机的总线端口. 分时数据D7-D0、8位地址A7-AO和三态用于连接低级存储器,外部电路和外部设备. P0端口是使用最广泛的I / O端口. P1端口: 通用I / 0端口,准双向静态端口. 输出信息被锁存,输入分为读引脚和读锁存器. P1端口的位结构如下图所示. 从图中可以看出,P1端口与P0端口之间的主要区别在于P1端口使用内部上拉电阻R代替P0端口的FET T1,并且输出信息仅来自内部总线. 从内部总线输出的数据在被锁存器反相并被FET反相后,被锁存在端口线中,因此P1端口是带有输出锁存器的静态端口. 从下图可以看出,要正确地从引脚读取外部信息,必须先关闭场效应管,以便可以通过外部输入信息确定引脚的状态. 因此,在读入引脚之前,必须先将l写入端口. 具有这种工作特性的输入/输出端口称为准双向I / O端口. 8031 MCU的P1,P2,P3是准双向端口. 由于P0端口的输出具有三态功能,因此端口线在输入之前已经处于高阻抗状态,并且在读取之前无需写入1. 重置MCU后,每个端口已自动写入1. 这时,它可以直接用于输入操作.
如果在应用端口期间P1至P3端口线已输出0,则要输入,必须在读取引脚之前写1以获得正确的信息. 另外,根据输入命令,H端口还具有读取锁存器和读取引脚. Pl端口是51 MCU中唯一的单功能I / O端口,没有特定的专用功能,并且输出信号锁定在该引脚上. P2端口: 下图为P2端口的位结构: 从图中可以看出,P2端口在芯片中既有上拉电阻又有开关MUX,因此P2端口具有P0的特性端口和P1端口正常工作. 这主要体现在输出功能上. 当开关MUX在左侧时,内部总线输出的一些数据被反相器和场效应管反相,并且输出在端口引脚线上. 当MUX在右边时,输出的一位地址信号也被反相器和场效应管反相,然后在端口引脚线上输出. 由于8031 MCU必须连接到程序存储器以形成应用电路,并且P2端口用于定期输出从外部存储器获取的指令的地址(高8位地址),因此,开关P2端口的MUX始终处于切换状态,分时从内部总线输出数据,并从地址信号线输出地址. 因此,P2端口是动态I / O端口. 尽管输出数据被锁存,但它并不能稳定地显示在端口线上.

实际上,这里输出的数据通常也是一个地址,但仅是外部RAM的高8位. 在输入功能方面,P2端口与P0和H端口相同,带有读引脚和读锁存器,并且P2端口也是准双向端口. 可以看出,P2端口的主要功能包括: ①无法输出静态数据; ②输出外部程序存储器本身的高8位地址; ②当执行MOVX指令时,它还输出外部RAM的高位地址,因此P2端口称为动态地址端口. (这是针对8031的. P2端口的描述与8051的描述不同. 8051具有内部ROM,不需要附加的ROM,因此8051的P51可以输出静态数据. 它也可以用作P3端口: 双功能静态I / O端口P3端口的位结构如下图所示. 从上图可以看出,P3端口和P1端口的结构相似,唯一的区别是P3端口的每条端口线都有两个功能选项. 在第一个功能中,第二条输出功能线为1时,此时,内部总线信号通过锁存器和场效应管输入/输出,其作用与P1端口的作用相同,即也是静态的准双向I / O端口. 当处于第二功能时,锁存器输出1,特定的嵌入式信号通过第二输出功能线输出. 在输入侧,可通过缓冲器读取引脚信号,也可通过备用存储器读取芯片输入功能. 在特定的第二功能信号内.
由于输出信号被锁存并具有双重功能,因此P3端口是静态双重功能端口. P3端口的特殊功能(即第二功能): 使第二功能的P3终端产品的每一条线的条件为: 1 \串行I / O处于运行状态(RXD,TXD); 2 \打开本地中断(INT0,INT1); 3 \定时器/计数器处于外部计数状态(T0,T1)4 \执行指令以读写外部RAM(RD,WR)在应用中,如果未设置P3端口的每个位的第二功能(WR,RD不需要设置信号生成),则P3端口线自动处于第一个功能状态,这是静态I / O端口的工作状态. 在更多情况下,根据应用的需要将多条端口线设置为第二功能,而其他端口线则处于第一功能运行状态. 在这种情况下,建议不要在P3端口上执行字节操作,而需要进行位操作. 端口负载容量和输入/输出操作: P0端口可驱动8个LSTTL负载. 如果需要增加负载容量,可以在P0总线上添加总线驱动器. P1,P2和P3端口可分别驱动4个LSTTL负载. 如上所述,由于P0-P3端口已映射到特殊功能寄存器中的P0-P3端口寄存器,因此对这些端口寄存器的读/写操作实现了来自相应端口的信息输入/输出.

例如: MOV A,P1;在Pl端口线上输入信息到A MoV P1,A;从P1端口MOV P3输出A的内容,#0FFH;使P3端口线的每个位置l串行端口: MCS-51系列单片机中有一个串行I / O端口,通过引脚RXD(P3.0)和TXD(P3.1),可以执行与电路的全双工串行异步通信. 1.串口的基本特性8031 MCU的串口有4种基本工作模式. 通过编程可以将其设置为以任何模式工作,以满足不同应用程序的需求. 其中,模式0主要用于电路的通信;模式2、3除了模式1的功能外,还可以用作多计算机通信以形成分布式多微计算机系统. 串行端口有两个控制寄存器,用于设置工作模式,发送或接收状态,功能位,数据传输的波特率(每秒传输的位数)以及作为中断标志. 串行端口有一个数据寄存器SBUF(特殊功能寄存器中的字节地址为99H),这对于发送和接收站是公用的. 发送时,只能写,不能读;接收时51单片机io口编程,只能读而不能写. 在某些情况下,将数据写入襄阳用友会开始发送过程;读取SBUf将开始接收过程.
可以设置串行通讯的波特率. 在不同的工作模式下,它由时钟振荡频率的分频值或定时器T1的定时溢出时间决定,使用非常方便灵活. 2.串口的工作模式①模式0 8位移位寄存器输入/输出模式. 通常用于外部移位寄存器来扩展I / O端口. 波特率固定为fosc /12. 其中,fosc是时钟频率. 在模式0下,当串行端口用作输出时,只要将一个字节的数据写入串行缓冲器SBUF,串行端口就以相同的波特率从RXD引脚逐位输出8位数据. (从低位到高位);此时,TXD输出频率为fosc / 12的同步移位脉冲. 在发送数据之前,即使不使用中断,也必须清除中断标志TI. 发送8位数据后,TI会自动设置为1. 要再次发送,必须通过软件清除TI. 当使用串口作为输入时,RXD为数据输入端,TXD仍为同步信号输出端,输出频率为fosc / 12的同步移位脉冲,使外部数据移位为RxD逐一. 接收到8位数据(一帧)时,中断标志RI被自动设置. 如果再次收到,则必须先通过软件清除RI. 串行模式0下图显示了发送和接收的时序过程. ②方法1 10位异步通信方法. 其中有1个起始位(0),8个数据位(从低位到高位)和1个停止位(1).
波特率由定时器T1的溢出率和SMOD位的状态决定. 写入SBUF指令可以启动数据传输过程. 与传输移位时钟(由波特率确定)同步,首先从TxD发送起始位,然后从8位数据位发出,最后从停止位发出. 发送了这样一帧10位数据后,中断标志TI置位. 在允许接收的条件下(REN = 1),当RXD显示从1到O的负跳变时,它被视为串行发送的数据帧的起始位,从而开始接收过程. 当接收到8位数据并检测到高功率停止位时,将接收到的8位数据加载到SBUF中,并设置RI,完成一帧数据的接收过程. 模式1的数据传输波特率可以通过编程设置,使用范围广. 计算公式为: 波特率= 2SMOD / 32×(定时器T1的溢出率)其中,SMOD是控制寄存器PCON中的程序控制位,其值具有0和l两个状态. 显然,当SMOD = 0时,波特率= 1/32(定时器T1溢出率),而当SMOD = 1时,波特率= 1/16(定时器T1溢出率). 所谓定时器溢出率,是指一秒内定时器溢出的次数. 稍后将详细讨论需要特定波特率时的波特率算法和计时器初始值的计算方法.
有关串行模式1发送和接收过程的时序,请参见下图. ③模式2、3 11位异步通信模式. 其中有1个起始位(0),8个数据位(从低位到高位),另外的第9位和1个停止位(1). 模式2和模式3的性能相同,但波特率不同. 模式2和3的发送和接收时序请参见下图. 从图中可以看出,模式2和模式3的操作过程与模式1的操作过程基本相同,主要区别在于模式2 ,3具有第9个数据. 发送时,的第九个数据来自机器SCON中的TB8,将接收到的第九个数据发送到本地SCON中的RB8. 数据的第9位通常用作数据的奇偶校验位,或用作多机通信中的地址/数据特征位. 模式2和模式3的波特率的计算公式如下: 模式2的波特率= 2SMOD / 64×fosc模式3的波特率= 2SMOD / 32×定时器T1的溢出率,可以是从晶振时钟频率看,在某些情况下,模式2只有两个波特率,而模式3可以通过编程设置为各种波特率. 这正是两种模式之间的区别. 3.串行端口控制寄存器串行端口有两个控制寄存器SCON和PCON,用于设置串行端口的工作模式,接收/发送的工作状态,接收/发送数据的特性,大小等. 波特率和操作中断标志等. (来源: ,由本网站整理)
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-171620-1.html
让我们知道你一直记得海浪的好