C8051单片机基础 第四章 输入输出端口
C8051单片机基础 第四章 输入输出端口

第四章 端口输入/输出 主讲:吴国东
第四章 端口输入/输出 C8051F020/1/2/3 MCU 是高集成度的 混合信号片上系统,有按 8 位端口组织的 64个数字I/O引脚(C8051F020/2)或32个数 字 I/O 引脚 (C8051F021/3) 。低端口 (P0 、 P1、P2 和P3)既可以按位寻址也可以按字 节寻址。高端口 (P4 、 P5 、 P6 和 P7) 只能 按字节寻址。所有引脚都耐 5V 电压,都 可以被配置为漏极开路或推挽输出方式和 弱上拉。
4.1 端口和优先权交叉开关 7) 外部存储器接口引脚分配
如果外部存储器接口被设置在低端口, XBR2.1=1,使交叉开关不将P0.7 (/WR)、 P0.6 (/RD)和P0.5 (/ALE)(复用方式)分配给 外设。如果外部存储器接口被设置在低端口并 且发生一次片外MOVX 操作,则在该MOVX 指令执行期间外部存储器接口将控制有关端口 引脚的输出状态,而不管交叉开关寄存器和端 口数据寄存器的设置如何。
第四章 端口输入/输出 C8051F020/1/2/3器件有大量的数字资 源需要通过 4 个低端 I/O 端口 P0 、 P1 、 P2 和P3才能使用。P0-P3的每个引脚可定义 为通用的端口I/O(GPIO)引脚,又可以 分配给一个数字外设或功能(例如: UART0 或/INT1)。系统设计者控制数字 功能的引脚分配,只受可用引脚数的限 制。这种资源分配的灵活性是通过使用 优先权交叉开关译码器实现的。
4.1 端口和优先权交叉开关 2) 配置端口引脚的输出方式 例外情况: 连接到SDA、SCL、RX0(如果UART0 工作于方式0)、RX1(如果UART1工作 于方式0)的端口引脚总是被配置为漏 极开路输出,而与PnMDOUT寄存器中的 对应位的设置值无关。
C8051F410单片机的端口配置

精选课件
优先权交叉开关译码器
如果一个端口引脚已经被分配,则交叉开关在 为下一个被选择的资源分配引脚时将跳过该引 脚。此外,交叉开关还将跳过在PnSKIP寄存 器中被置1的那些位所对应的引脚。PnSKIP寄 存器允许软件跳过那些被用作模拟输入、特殊 功能或GPIO的引脚。
8
精选课件
优先权交叉开关译码器
(skip),此时我们可以参考图18.3(ppt第11 页)。 第一个例子,我们驱动一个LED。
20
精选课件
Example 1
21
精选课件
Example 1
P2MDIN |= 0x02; //设置P2.1为数字输入 P2MDOUT |= 0x02; //设置P2.1为推挽输出 P2SKIP |= 0x02; //CrossBar跳过P2.1
比如要对一个单片机外的脉冲进行计数,普通 的单片机会有一个端口作为脉冲的输入端口, 假设是P1.0,这个引脚是固定的,但由于某种 原因(比如PCB布线),我们希望这个外部脉 冲可以接到P2.3引脚,这时普通单片机就做不 到了,而C8051F410单片机就可以做到。
5
精选课件
和普通单片机I/O的不同
注意:如果一个端口引脚被一个外设使用而不 经过交叉开关,则该引脚在PnSKIP寄存器中 的对应位应被置1。
9
精选课件
优先权交叉开关译码器
这种情况适用于P1.0和/或P1.1(如果外部振荡 器电路被使能)、P1.2(如果使用VREF)、 P0.6(如果使用外部转换启动信号NVSTR)、 P0.0(如果使用IDA0)、P0.1(如果使用 IDA1)、以及任何被选择为ADC或比较器输 入的引脚。交叉开关跳过那些被选择的引脚 (如同将它们已分配),移向下一个未被分配 的引脚。
单片机中级教程4第四章80C51单片机的功能

17
第四章80C51单片机的功能单元
因此,S6P2时写入端口锁存器的 新数值直到下一个周期的P1时被采样到, 即只有在下一个机器周期的S1P1时,才 真正出现在引脚上。 5 P1口的多功能线 在80C52中,P1.0和P1.1口线是多 功能的,即除作一般双向I/O口线之外, 这两根口线还具有下列功能:
第四章80C51单片机的功能单元
基本内容 4.1 并行I/O接口 4.1.1 P1口 4.1.2 P3口 4.1.3 P2口 4.1.4 P0口 4.2 定时器/计数器 4.2.1概述 4.2.2定时器/计数器T0、T1
1
第四章80C51单片机的功能单元
4.2.3定时器/计数器T2 4.2.4看门狗 4.2.5定时器/计数器的编程和使用 4.3 串行接口 4.4 中断系统 4.4.1中断、中断源及中断优先级 4.4.2中断的控制和操作 4.4.3中断的响应过程和中断矢量地址
18
第四章80C51单片机的功能单元
P1.0——定时器/计数器2的外部输入端T2; P1.1——定时器/计数器2的外部控制端 T2EX。 这时,该两位的结构与P3口 的位结构相当。 关于P1.0和P1.1的功能 在定时器/计数器2中叙述。
19
第四章80C51单片机的功能单元
4.1.2 P3口 P3口是一个多功能的8位口,可以字节访问 也可位访问,其字节访问地址为B0H,位访问地 址为B0H~B7H。 1 位结构与工作过程分析 (1) 位结构 P3口的位结构 如图4---2所示。从P3口的位结构 图中可以看出,它与P1的口位结构之间的区 别在于:
第四章80C51单片机的功能单元
①
在响应CPU输出的读引脚信号时,端口 本身引脚的电平值通过缓冲器 BUF1 进 入内部总线。这种类型的指令,执行之 前必须先将端口锁存器置1,使A点处于 高电平,否则会损坏引脚,而且也使信 号无法读出,已于前述。 这种类型的指令有: MOV A,P1 ;(A)←(P1) MOV direct,P1 ;(direct)←(P1)
单片机输入输出接口

P3.4/T0 14
P3.5/T1 15
P3.6/WR 16
P3.7/RD 17
XTAL2 18
XTAL1 19
GND 20
40 Vcc 39 P0.0 38 P0.1 37 P0.2 36 P0.3 35 P0.4 34 P0.5 33 P0.6 32 P0.7 31 EA 30 ALE 29 PSEN 28 P2.7 27 P2.6 26 P2.5 25 P2.4
/*“HELLO”的段码, 最高位送
uchar i; uint j; while(1) { P3=0x01; for(i=0;i<5;i++) { if(P17==1)P1=tab1[i]; else P1=tab2[i]; P3<<=1; for(j=0;j<=25000;j++);
}}} 课本习题5.8 *关于液晶显示
归纳四个并行口使用的注意事项如下:
1。如果单片机内部有程序存贮器,不需要扩展外 部存贮器和I/O接口,单片机的四个口均可作 I/O口使用。
2。四个口在作输入口使用时,均应先对其写 “1”,以避免误读。
3。P0口作I/O口使用时应外接10K的上拉电阻,其 它口则可不必。
4。P2可某几根线作地址使用时,剩下的线不能作 I/O口线使用。
用作地址/数据复用总线时,多路开关的控制 信号为1,输出与上方的地址/数据线反向器的输出 相连,由于控制信号为1,上面的场效应管受地址/ 数据信号控制,与下面的场效应管成为推挽输出 形态。外部不再需要上拉电阻,P0口为真正的双 向I/O口。
操作过程:假如要读外部程序存储器中 0x1245单元的指令,首先从P0口输出45H,P2口 输出12H,控制器输出ALE地址锁存信号,再发出 指令输出允许信号PSEN,外部程序存储器 0x1245单元的内容出现在总线上,由CPU读入程 序指令寄存器,译码执行。
第5章 80C51单片机中的输入输出口

一、并行I/O口的功能结构
作为I/O口应用的一个实例,下面介绍80C31 单片机的最小应用系统如下图所示:
80C31
一、并行I/O口的功能结构
二、产生接口控制信号的指令
80C51指令系统中能与接口打交道的指令 大体可分两类:
1、一般的输入/输出指令 2、“读-修改-写”指令
二、产生接口控制信号的指令
发送缓冲器和接收缓冲器共用一个地址,但它 们是独立的物理空间。
二、80C51单片机的串行通信接口
1、 功能特点 3)可用程序控制
内部有专用寄存器SCON(98H)和PCON(87H) 用于控制串行通信,包括方式的选择、接收控制、 多机通信控制、波特率是否加倍等;定时器T1可作 为串行口的波特率发生器,可改变串行口通信的定 时。
P1口一位的结构如下图所示:
一、并行I/O口的功能结构
(一)P1口
1、接口结构
锁存器起输出锁存作用,8位锁存器组成 特殊功能寄存器P1;
场效应管和上拉电阻组成输出驱动器,以 增大负载能力;
三态门1和三态门2分别用于控制输入引脚 和锁存器的状态。
一、并行I/O口的功能结构
2、接口功能
(一)P1口
P1口只有一种功能——通用输入输出接口, 有以下三种工作方式:输出、输入和端口操 作。 (1)输出方式:
二、80C51单片机的串行通信接口
1、功能特点 4)有四种工作方式能适应不同用途 (1)方式0 为移位寄存器I/O方式,数据从RXD端串行输入 或输出,以8位为一帧,按先低位后高位依次传送; 同步信号从TXD端输出,波特率固定为fosc/12。
二、80C51单片机的串行通信接口
1、功能特点 4)有四种工作方式能适应不同用途 (2)方式1 为8位的异步通信接口,传送一帧信息为10位,其 中,1位起始位(0),8位数据位(低位在前),1 位停止位(1)。
C8051F410单片机的端口配置PPT课件

7
精选ppt课件2021
优先权交叉开关译码器
如果一个端口引脚已经被分配,则交叉开关在 为下一个被选择的资源分配引脚时将跳过该引 脚。此外,交叉开关还将跳过在PnSKIP寄存 器中被置1的那些位所对应的引脚。PnSKIP寄 存器允许软件跳过那些被用作模拟输入、特殊 功能或GPIO的引脚。
17
精选ppt课件2021
端口初始化步骤的注意事项
2)某个端口使用者有特殊的用处(而不是希 望用做PCA,UART,ECI等用途),比如你想将 P1.3用来驱动一个LED,此时你就要让交叉开 关译码器跳过P1.3,这样CrossBar在为内部数 字资源(比如PCA,UART,ECI等)分配端口时, 就会跳过P1.3。
13
精选ppt课件2021
优先权交叉开关译码器
此外,假如你希望某个端口用作普通的I/O端 口(至于干什么,由你自己决定),而不是特 殊的功能,比如PCA,SPI等,你也可以将 PnSKIP中相应的位置1,这样交叉开关译码器 在为内部数字资源(比如SPI,ECI,PCA登)分 配端口时,就会跳过这些端口,傻呼呼的认为 这些端口已经有某种用途了。
2
端口输入/输出
精选ppt课件2021
3
端口输入/输出
精选ppt课件2021
从图18.1可以看出,C8051F410单片机之所以 可以实现内部数字资源的灵活分配,是通过优 先级交叉开关译码器实现,即图中的Priority Crossbar Decoder。
单片机输入输出口课件

串行输出口的应用
串行输出口常用于与外部设备进 行通信,如串口通信、I2C通信 等,实现数据的传输和控制等功
能。
串行输出口的配置
串行输出口的输出数据格式、波 特率等参数可以通过编程进行配 置,以满足不同的通信协议和数
据传输需求。
04
单片机输入输出口编 程
编程语言的选择
C语言
C语言是一种通用编程语言,具有高效、可移植性 强的特点,适用于单片机编程。
单片机输入输出口 课件
目录
• 单片机输入输出口概述 • 单片机输入口详解 • 单片机输出口详解 • 单片机输入输出口编程 • 单片机输入输出口应用实例
01
单片机输入输出口概 述
输入输出口的定义
输入输出口是单片机中用于与 外部设备进行通信的接口。
输入输出口可以接收外部设备 的数据,并将其传输到单片机 内部进行处理。
模拟输入口的精度和范围取决于ADC 的特性和位数,常见的有8位、10位 、12位和16位等。
模拟输入口通常需要一个模拟-数字 转换器(ADC)来将模拟信号转换为 数字信号,以便单片机进行处理。
模拟输入口在数据采集、智能传感器 等领域应用广泛。
数字输入口
01
数字输入口是单片机中 用于接收数字信号的接 口,如开关状态、脉冲 信号等。
02
数字输入口可以直接接 收高低电平信号,并通 过内部逻辑电路进行处 理。
03
数字输入口的响应速度 较快,适用于高速数字 信号的采集和传输。
04
数字输入口在工业控制 、智能仪表等领域应用 广泛。
串行输入口
01
02
03
04
串行输入口是单片机中用于接 收串行数据信号的接口,如
I2C、SPI等通信协议。
51单片机IO端口的四种输入输出模式知识讲解

51单片机I O端口的四种输入输出模式51单片机IO端口的四种输入输出模式 (by wuleisly)单片机I O口的使用对所有单片机玩家来说都是“家常便饭”,但是你真的了解I O口吗?你真的能按你的需要配置I O口吗?一、准双向口输出准双向口输出类型可用作输出和输入功能而不需重新配置口线输出状态。
这是因为当口线输出为1时驱动能力很弱,允许外部装置将其拉低。
当引脚输出为低时,它的驱动能力很强,可吸收相当大的电流。
(准双向口有3个上拉晶体管适应不同的需要)准双向口读外部状态前,要先锁存为‘1’,才可读到外部正确的状态.二、强推挽输出推挽输出配置的下拉结构与开漏输出以及准双向口的下拉结构相同,但当锁存器为1时提供持续的强上拉。
推挽模式一般用于需要更大驱动电流的情况。
三、仅为输入(高阻)输入口带有一个施密特触发输入以及一个干扰抑制电路。
四、开漏输出配置(若外加上拉电阻,也可读)当口线锁存器为0时,开漏输出关闭所有上拉晶体管。
当作为一个逻辑输出时,这种配置方式必须有外部上拉,一般通过电阻外接到V cc。
如果外部有上拉电阻,开漏的I/O口还可读外部状态,即此时被配置为开漏模式的I/O口还可作为输入I/O口。
这种方式的下拉与准双向口相同。
开漏端口带有一个施密特触发输入以及一个干扰抑制电路。
关于I/O口应用注意事项:1.有些是I/O口由低变高读外部状态时,读不对,实际没有损坏,软件处理一下即可。
因为1T的8051单片机速度太快了,软件执行由低变高指令后立即读外部状态,此时由于实际输出还没有变高,就有可能读不对,正确的方法是在软件设置由低变高后加1到2个空操作指令延时,再读就对了.有些实际没有损坏,加上拉电阻就O K了有些是外围接的是NP N三极管,没有加上拉电阻,其实基极串多大电阻,I/O口就应该上拉多大的电阻,或者将该I/O口设置为强推挽输出. 2.驱动L E D发光二极管没有加限流电阻,建议加1K以上的限流电阻,至少也要加470欧姆以上做行列矩阵按键扫描电路时,实际工作时没有加限流电阻,实际工作时可能出现2个I/O口均输出为低,并且在按键按下时,短接在一起,我们知道一个C MO S电路的2个输出脚不应该直接短接在一起,按键扫描电路中,此时一个口为了读另外一个口的状态,必须先置高才能读另外一个口的状态,而8051单?片机的弱上拉口在由0变为1时,会有2时钟的强推挽高输出电流输出到另外一个输出为低的I/O口,就有可能造成I/O口损坏.建议在其中的一侧加1K限流电阻,或者在软件处理上,不要出现按键两端的I/O口同时为低.一种典型三极管控制电路:如果用弱上拉控制,建议加上拉电阻R1(3.3K~10K),如果不加上拉电阻R1(3.3K~10 K),建议R2的值在15K以上,或用强推挽输出。
单片机输入输出口接的使用

功率驱动输出口的应用实例
控制大功率设备
功率驱动输出口可以用 来控制大功率设备的开 关状态,例如,控制一 个大功率电机的启动和 停止。
控制舵机
功率驱动输出口可以用 来控制舵机的旋转角度 和方向,例如,控制舵 机来操作机械臂或机器 人的关节。
控制电磁阀
功率驱动输出口可以用 来控制电磁阀的开关状 态,例如,控制电磁阀 来控制气动设备的动作。
中断触发条件ห้องสมุดไป่ตู้
设置中断触发条件,如电平变化、脉冲等。
中断处理程序
编写中断处理程序,在中断发生时执行相应 的操作。
中断优先级
设置中断优先级,以便在多个中断同时发生 时进行优先处理。
中断使能/禁用
控制是否允许中断发生,以便在需要时关闭 中断。
05 单片机输入输出口的应用 实例
数字输入口的应用实例
读取开关状态
处理程序。
03 单片机输出口的使用
数字输出口的使用
数字信号输出
单片机可以通过数字输出口输出高低电平信号,用于控制外部电路 的开关状态。
驱动LED灯
数字输出口可以驱动LED灯,实现LED的亮灭控制。
控制继电器
数字输出口可以控制继电器的工作状态,通过继电器实现大电流或高 电压设备的控制。
模拟输出口的使用
模拟输入口的应用实例
读取模拟传感器
模拟输入口可以用来读取模拟传感器的输出 信号,例如,读取温度传感器、湿度传感器 、压力传感器等。
读取电位器
模拟输入口可以用来读取电位器的输出电压,例如 ,读取一个电位器以获取一个连续变化的模拟信号 。
读取光敏电阻
模拟输入口可以用来读取光敏电阻的输出电 压,例如,读取一个光敏电阻以获取环境光 的强度。
c8051f单片机原理及应用

c8051f单片机原理及应用C8051F单片机是由Silicon Laboratories公司推出的一款高性能、低功耗、集成度高的8位单片机系列,它采用了高速8051内核,具有快速的执行速度和高效的计算能力,适用于各种应用领域。
本文将详细介绍C8051F单片机的原理和应用。
一、C8051F单片机原理1.8051内核C8051F单片机采用了高速的8051内核,它包含了一个中央处理器(CPU)、存储器、输入/输出端口、定时器/计数器、串行接口等模块。
8051内核具有简单易学、易于控制和可靠性高等特点,被广泛应用于各种嵌入式系统中。
2.存储器C8051F单片机的存储器包括闪存、RAM和EEPROM。
其中,闪存用于存储程序代码,RAM用于存储数据,EEPROM用于存储非易失性数据。
C8051F单片机的存储器容量从4KB到128KB不等,可以满足不同应用的需求。
3.输入/输出端口C8051F单片机的输入/输出端口包括数字输入/输出端口和模拟输入/输出端口。
数字输入/输出端口用于连接数字设备,模拟输入/输出端口用于连接模拟设备。
C8051F单片机的输入/输出端口可以通过软件配置,实现各种功能。
4.定时器/计数器C8051F单片机的定时器/计数器包括多个独立的定时器和计数器,它们可以通过软件配置,实现各种计时和计数功能。
5.串行接口C8051F单片机的串行接口包括SPI接口、I2C接口和UART接口。
它们可以用于与外部设备进行通信,实现数据交换和控制。
二、C8051F单片机应用C8051F单片机广泛应用于各种嵌入式系统中,例如:工业控制、智能家居、医疗设备、电子仪器等。
1.工业控制C8051F单片机可以用于各种工业控制系统中,如温度控制、湿度控制、压力控制等。
它具有高速的运算能力和丰富的输入/输出端口,可以实现复杂的控制算法和实时控制。
2.智能家居C8051F单片机可以用于智能家居系统中,如智能灯光控制、智能窗帘控制、智能门锁控制等。
51单片机IO端口的四种输入输出模式知识讲解

51单片机I O端口的四种输入输出模式51单片机IO端口的四种输入输出模式 (by wuleisly)单片机I O口的使用对所有单片机玩家来说都是“家常便饭”,但是你真的了解I O口吗?你真的能按你的需要配置I O口吗?一、准双向口输出准双向口输出类型可用作输出和输入功能而不需重新配置口线输出状态。
这是因为当口线输出为1时驱动能力很弱,允许外部装置将其拉低。
当引脚输出为低时,它的驱动能力很强,可吸收相当大的电流。
(准双向口有3个上拉晶体管适应不同的需要)准双向口读外部状态前,要先锁存为‘1’,才可读到外部正确的状态.二、强推挽输出推挽输出配置的下拉结构与开漏输出以及准双向口的下拉结构相同,但当锁存器为1时提供持续的强上拉。
推挽模式一般用于需要更大驱动电流的情况。
三、仅为输入(高阻)输入口带有一个施密特触发输入以及一个干扰抑制电路。
四、开漏输出配置(若外加上拉电阻,也可读)当口线锁存器为0时,开漏输出关闭所有上拉晶体管。
当作为一个逻辑输出时,这种配置方式必须有外部上拉,一般通过电阻外接到V cc。
如果外部有上拉电阻,开漏的I/O口还可读外部状态,即此时被配置为开漏模式的I/O口还可作为输入I/O口。
这种方式的下拉与准双向口相同。
开漏端口带有一个施密特触发输入以及一个干扰抑制电路。
关于I/O口应用注意事项:1.有些是I/O口由低变高读外部状态时,读不对,实际没有损坏,软件处理一下即可。
因为1T的8051单片机速度太快了,软件执行由低变高指令后立即读外部状态,此时由于实际输出还没有变高,就有可能读不对,正确的方法是在软件设置由低变高后加1到2个空操作指令延时,再读就对了.有些实际没有损坏,加上拉电阻就O K了有些是外围接的是NP N三极管,没有加上拉电阻,其实基极串多大电阻,I/O口就应该上拉多大的电阻,或者将该I/O口设置为强推挽输出. 2.驱动L E D发光二极管没有加限流电阻,建议加1K以上的限流电阻,至少也要加470欧姆以上做行列矩阵按键扫描电路时,实际工作时没有加限流电阻,实际工作时可能出现2个I/O口均输出为低,并且在按键按下时,短接在一起,我们知道一个C MO S电路的2个输出脚不应该直接短接在一起,按键扫描电路中,此时一个口为了读另外一个口的状态,必须先置高才能读另外一个口的状态,而8051单?片机的弱上拉口在由0变为1时,会有2时钟的强推挽高输出电流输出到另外一个输出为低的I/O口,就有可能造成I/O口损坏.建议在其中的一侧加1K限流电阻,或者在软件处理上,不要出现按键两端的I/O口同时为低.一种典型三极管控制电路:如果用弱上拉控制,建议加上拉电阻R1(3.3K~10K),如果不加上拉电阻R1(3.3K~10 K),建议R2的值在15K以上,或用强推挽输出。
MCS-51单片机输入输出口

MCS-51单片机输入输出口【1 】8051有4组8位I/O口:P0.P1.P2和P3口,P1.P2和P3为准双向口,P0口则为双向三态输入输出口,下面我们分离介绍这几个口线:·P0口和P2口:右图为P0口和P2口个中一位的电路图,由图可见,电路中包含一个数据输出锁存器和两个三态数据输入缓冲器,别的还有一个数据输出的驱动和掌握电路.这两组口线用来作为CPU与外部数据存储器.外部程序存储器和I/O扩大口,而不克不及象P1.P3直接用作输出口.它们一路可以作为外部地址总线,P0口身兼两职,既可作为地址总线,也可作为数据总线.参考图2.P2口作为外部数据存储器或程序存储器的地址总线的高8位输出口AB8-AB15,P0口由ALE选通作为地址总线的低8位输出口AB0-AB7.外部的程序存储器由PSEN旌旗灯号选通,数据存储器则由WR和RD读写旌旗灯号选通,因为216=64k,所以8051最大可外接64kB的程序存储器和数据存储器.·P1口:右图为P1口个中一位的电路图,P1口为8位准双向口,每一位均可单独界说为输入或输出口,当作为输进口时,1写入锁存器,Q(非)=0,T2截止,内上拉电阻将电位拉至"1",此时该口输出为1,当0写入锁存器,Q(非)=1,T2导通,输出则为0.作为输进口时,锁存器置1,Q(非)=0,T2截止,此时该位既可以把外部电路拉成低电平,也可由内部上拉电阻拉成高电平,正因为这个原因,所以P1口常称为准双向口.须要解释的是,作为输进口运用时,有两种情形,其一是:起首是读锁存器的内容,进行处理后再写到锁存器中,这种操纵即读—修正—写操纵,象JBC(逻辑断定).CPL(取反).INC(递增).DEC(递减).ANL(与逻辑)和ORL(逻辑或)指令均属于这类操纵.其二是:读P1口线状况时,打开三态门G2,将外部状况读入CPU.·P3口:P3口的电路如上图所示,P3口为准双向口,为顺应引脚的第二功效的须要,增长了第二功效掌握逻辑,在真正的运用电路中,第二功效显得更为主要.因为第二功效旌旗灯号有输入输出两种情形,我们分离加以解释.P3口的输入输出及P3口锁存器.中止.准时/计数器.串行口和特别功效存放器有关,P3口的第一功效和P1口一样可作为输入输出端口,同样具有字节操纵和位操纵两种方法,在位操纵模式下,每一位均可界说为输入或输出.我们侧重评论辩论P3口的第二功效,P3口的第二功效各管脚界说如下:·P3.0 串行输进口(RXD)·P3.1 串行输出口(TXD)·P3.2 外中止0(INT0)·P3.3 外中止1(INT1)·P3.4 准时/计数器0的外部输进口(T0)·P3.5 准时/计数器1的外部输进口(T1)·P3.6 外部数据存储器写选通(WR)·P3.7 外部数据存储器读选通(RD)对于第二功效为输出引脚,当作I/O口运用时,第二功效旌旗灯号线应保持高电平,与非门开通,以保持从锁存器到输出口数据输出通路疏浚无阻.而当作第二功效口线运用时,该位的锁存器置高电平,使与非门对第二功效旌旗灯号的输出是疏浚的,从而实现第二功效旌旗灯号的输出.对于第二功效为输入的旌旗灯号引脚,在口线上的输入通路增设了一个缓冲器,输入的第二功效旌旗灯号即从这个缓冲器的输出端取得.而作为I/O口线输入端时,取自三态缓冲器的输出端.如许,不管是作为输进口运用照样第二功效旌旗灯号输入,输出电路中的锁存器输出和第二功效输出旌旗灯号线均应置“1”.。
第4章 80C51单片机的IO口及扩展

一、I/O口应用实例
1、点亮如图所示的8 个发光二极管
一、I/O口应用实例
2、让上图中的8个发 光二极管一起闪烁, 闪烁周期为1秒。
一、I/O口应用实例
3、流水灯实验 (1)放光二极管从左到右,第一个先亮,0.5秒后,第 放光二极管从左到右,第一个先亮,0.5秒后, 秒后 一个熄灭,第二个亮,……… 循环。 循环。 一个熄灭,第二个亮, (2)放光二极管从左到右,第一个先亮,0.5秒后,第 放光二极管从左到右,第一个先亮,0.5秒后, 秒后 二个亮, 个发光二极管全亮之后, 二个亮,……… ,8个发光二极管全亮之后,一起熄 灭。间隔1秒,重复上面的过程。 间隔1 重复上面的过程。
二、I/O口的结构(略)
1、P0口的结构 P0口的结构
二、I/O口的结构(略)
2、P1口的结构 P1口的结构
二、I/O口的结构(略)
3、P2口的结4、P3口的结构 P3口的结构
二、I/O口的结构(略)
P0口的每一位可驱动 口的每一位可驱动8 LSTTL负载 P0既可作I/O端口使用 负载。 既可作I/O端口使用, (1) P0口的每一位可驱动8个LSTTL负载。P0既可作I/O端口使用,又可 作为地址/数据总线使用。当把它作通用I/O口输出时, 作为地址/数据总线使用。当把它作通用I/O口输出时,输出级是开漏 I/O口输出时 电路,在驱动NMOS或其他拉电流负载时,只有外接上拉电阻, 电路,在驱动NMOS或其他拉电流负载时,只有外接上拉电阻,才有高 NMOS或其他拉电流负载时 电平输出;作地址/数据总线时,无须外接电阻,此时不能再作I/O口 电平输出;作地址/数据总线时,无须外接电阻,此时不能再作I/O口 I/O 使用。 使用。 P0~P3口输出级接有内部上拉电阻 每位可驱动4 LSTTL负载 口输出级接有内部上拉电阻, 负载。 (2) P0~P3口输出级接有内部上拉电阻,每位可驱动4个LSTTL负载。 P0~P3口都是准双向I/O口 作输入时, 口都是准双向I/O (3) P0~P3口都是准双向I/O口,作输入时,必须先在相应端口锁存器 上写1 使驱动场效应管(FET)截止。P0口输入时呈高阻状态, P1~ 上写1,使驱动场效应管(FET)截止。P0口输入时呈高阻状态,而P1~ (FET)截止 口输入时呈高阻状态 P3口则有上拉负载电阻。系统复位时,端口锁存器全为1 P3口则有上拉负载电阻。系统复位时,端口锁存器全为1。 口则有上拉负载电阻
MCS-51单片机的8位并行输入输出端口(课堂PPT)

14
凡是这种“读—修改—写”操作,读到的数据都 是锁存器的数据而不是读引脚数据。 而真正读引脚的指令只有 MOV A,P0
8
(一)输出操作: MOV P0,A
数据经内总线送到锁存器的“D”端,经“/Q”端送 场效管应输出极。 ①总线送“0”时:锁存器的/Q=1,使下端的FET 导通(上面的FET截止),端口呈现“0”电平; ②总线送“1”时:锁存器/Q=“0”,使下端的FET截 止,输出极的两个FET全部截止。在这种情况下, 必须通过上拉电阻的作用使端口为高电平。
19
P0口特点小结:
1. 做通用数据I/O端口并与MOS器件连接时,必须外 接“上拉电阻”,否则不能正确的输出高电平;
2. 在输入操作(读引脚)前, 必须先向端口写1; 3. “读引脚”与“读锁存器”是不同的两个数据通道; 4. 在总线方式时,P0口不能再做通用的I/O端口。它
分时输出地址、数据总线的信息(此时引脚不用外 接上拉电阻)。
6
P0口的工作原理
1. 普通I/O模式下的输出与输入原理; 2. 扩展(总线)方式下的工作原理
7
1. P0口的I/O操作(通用I/O端口)
在P0口作为通用I/O端口时,控制电路中的“控 制”端为“0”电平: 1. 此时多路开关MUX接入下方的锁存器的/Q端。 2. 因与门的一个输入端为“0”,所以它使上端的 FET截止。这就是P0口在做I/O口时输出为“漏极 开路” 结构的原因。
20
4.2 P1口
特点:单纯的通用I/O端口,负载能力为3个TTL输入。与P0口的 区别在于内部具有上拉电阻,所以输出时不用外接上拉电阻。
(优选)单片机的端口配置

优先权交叉开关译码器
这种情况适用于P1.0和/或P1.1(如果外部振荡 器电路被使能)、P1.2(如果使用VREF)、 P0.6(如果使用外部转换启动信号NVSTR)、 P0.0(如果使用IDA0)、P0.1(如果使用 IDA1)、以及任何被选择为ADC或比较器输入 的引脚。交叉开关跳过那些被选择的引脚(如 同将它们已分配),移向下一个未被分配的引 脚。
比如要对一个单片机外的脉冲进行计数,普通 的单片机会有一个端口作为脉冲的输入端口, 假设是P1.0,这个引脚是固定的,但由于某种 原因(比如PCB布线),我们希望这个外部脉 冲可以接到P2.3引脚,这时普通单片机就做不 到了,而C8051F410单片机就可以做到。
和普通单片机I/O的不同
此外, C8051F410单片机的I/O端口在使用前 都要进行输入/输出的设置。
优先权交叉开关译码器
此外,假如你希望某个端口用作普通的I/O端 口(至于干什么,由你自己决定),而不是特 殊的功能,比如PCA,SPI等,你也可以将 PnSKIP中相应的位置1,这样交叉开关译码器 在为内部数字资源(比如SPI,ECI,PCA登)分配 端口时,就会跳过这些端口,傻呼呼的认为这 些端口已经有某种用途了。
端口输入/输出
从图18.1可以看出,C8051F410单片机之所以 可以实现内部数字资源的灵活分配,是通过优 先级交叉开关译码器实现,即图中的Priority Crossbar Decoder。
和普通单片机I/O的不同
那么C8051F410单片机的I/O配置和普通的单片 机差别在哪里呢?我们用一个例子说明。
对于端口初始化中的第4步,其实就是把你需 要的功能模块激活。比如,你希望PCA的CEX0 输出到P0.0,而且交叉开关译码器已经把CEX0 分配到P0.0,这时候千万记得将XBR1中的相应 位设置好,即激活这个功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.1 端口和优先权交叉开关
4.1 端口和优先权交叉开关 2) 配置端口引脚的输出方式 在 XBARE ( XBR2.6 ) 被设置为逻辑 ‘1’之前,端口0-3 的输出驱动器保持 禁止状态。每个端口引脚的输出方式都 可被配置为漏极开路或推挽方式,缺省 状态为漏极开路。
4.1 端口和优先权交叉开关 2) 配置端口引脚的输出方式 在推挽方式,向端口数据寄存器中 的相应位写逻辑‘0’将使端口引脚被驱 动到 GND ,写逻辑‘ 1’将使端口引脚被 驱动到VDD。在漏极开路方式,向端口数 据寄存器中的相应位写逻辑‘0’将使端 口引脚被驱动到 GND ,写逻辑‘ 1’将使 端口引脚处于高阻状态。
第四章 端口输入/输出 注意:不管引脚被分配给一个数字外设或 是作为通用I/O,总是可以通过读相应的 数据寄存器得到端口I/O引脚的状态。端 口1的引脚可以用做ADC1的模拟输入。 在执行目标地址为片外XRAM 的MOVX 指令时,外部存储器接口可以在低端口或 高端口有效。 高端口(存在于C8051F020/2 中) 按字节访问。
4.1 端口和优先权交叉开关 2) 配置端口引脚的输出方式 例外情况: 连接到SDA、SCL、RX0(如果UART0 工作于方式0)、RX1(如果UART1工作 于方式0)的端口引脚总是被配置为漏 极开路输出,而与PnMDOUT寄存器中的 对应位的设置值无关。
4.1 端口和优先权交叉开关 3) 配置端口引脚为数字输入 通过设置输出方式为“漏极开路” 并向端口数据寄存器中的相应位写‘1’ 将端口引脚配置为数字输入。 例如,设置P3MDOUT.7 为逻辑‘0’ 并设置P3.7 为逻辑‘1’即可将P3.7 配 置为数字输入。
第四章 端口输入/输出 C8051F020/1/2/3器件有大量的数字资 源需要通过 4 个低端 I/O 端口 P0 、 P1 、 P2 和P3才能使用。P0-P3的每个引脚可定义 为通用的端口I/O(GPIO)引脚,又可以 分配给一个数字外设或功能(例如: UART0 或/INT1)。系统设计者控制数字 功能的引脚分配,只受可用引脚数的限 制。这种资源分配的灵活性是通过使用 优先权交叉开关译码器实现的。
4.1 端口和优先权交叉开关 5) 弱上拉
每个端口引脚都有一个内部弱上拉部件, 在引脚与VDD 之间提供阻性连接(约100 kΩ),在缺省情况下该上拉器件被使能。弱 上拉部件可以被总体禁止,通过向弱上拉禁止 位(WEAKPUD,XBR2.7)写‘1’实现。当 任何引脚被驱动为逻辑‘0’时,弱上拉自动取 消;即输出引脚不能与其自身的上拉部件冲突。 对于端口1 的引脚,将引脚配置为模拟输入时 上拉部件也被禁止。
4.2 端口4-7 5) 外部存储器接口 如果外部存储器接口被设置在高端 口并且发生一次片外MOVX操作,则在该 MOVX指令执行期间外部存储器接口将控 制有关端口引脚的输出状态,而不管端 口数据寄存器的设置如何。端口引脚的 输出配置不受EMIF 操作的影响,但读 操作将禁止数据总线上的输出驱动器。
4.1 端口和优先权交叉开关 4) 外部中断(IE6 和IE7)
除了外部中断/INT0和/INT1之外,P3.6和 P3.7可被配置为边沿触发的中断源,用IE6CF (P3IF.2)和IE7CF(P3IF.3)位可以将这两 个中断源配置为下降沿或上升沿触发。 当检测到P3.6或P3.7下降沿或上升沿发生 时,P3IF寄存器中对应的外部中断标志将被置 ‘1’。如果对应的中断允许,将产生一个中断。
第四章 端口输入/输出
第四章 端口输入/输出 4.1 端口0-3和优先权交叉开关译码器 优先权交叉开关译码器,或称为“交 叉开关”,按优先权顺序将端口0-3的引 脚分配给器件上的数字外设 ( UART 、 SMBus 、PCA 、定时器等)。端口引脚的 分配顺序是从P0.0 开始,可以一直分配 到P3.7。UART0具有最高优先权,而 CNVSTR具有最低优先权。
4.1 端口和优先权交叉开关 1) 交叉开关引脚分配 注意: 当选择了串行通信外设(即SMBus、 SPI或UART)时,交叉开关将为所有相 关功能分配引脚。 例 如 , 不 能 为 UART0 功 能 只 分 配 TX0 引脚而不分配 RX0 引脚。被使能的外设 的每种组合导致唯一的器件引脚分配。
4.2 端口4-7
端口的配置较复杂,寄存器较多, 对设置带来一些麻烦,芯片制造商提供 了端口配置软件,利用软件可以方便进 行端口配置。 国内新华龙网站即可下载: /
1.2 C8051F系列单片机分类
4.1 端口和优先权交叉开关 8) 交叉开关引脚分配示例 4.设置XBARE = 1 以使能交叉开关: XBR2= 0x46。 5.将UART0 的TX 引脚(TX0,P0.0)、 UART1 的TX 引脚(TX1,P0.4)、ALE、 /RD、/WR(P0.[7:3])的输出设置为推 挽方式,通过设置P0MDOUT = 0xF1 来 实现。
4.1 端口和优先权交叉开关 7) 外部存储器接口引脚分配
如果外部存储器接口被设置在低端口, XBR2.1=1,使交叉开关不将P0.7 (/WR)、 P0.6 (/RD)和P0.5 (/ALE)(复用方式)分配给 外设。如果外部存储器接口被设置在低端口并 且发生一次片外MOVX 操作,则在该MOVX 指令执行期间外部存储器接口将控制有关端口 引脚的输出状态,而不管交叉开关寄存器和端 口数据寄存器的设置如何。
4.2 端口4-7 1) 配置无引出脚的端口 P4-P7在C8051F021/3 中没有对应的 引脚,但端口数据寄存器仍然存在并可 为软件所用。由于数字输入通路保持活 动状态,所以建议不要将这些引脚处于 “浮空”状态,以避免因输入浮空为一 个无效逻辑电平而导致不必要的功率消 耗。
4.2 端口4-7 1) 配置无引出脚的端口 下面任何一种措施可防止这种情况出现: 1. 设置为弱上拉。 2. 配置为推挽方式。 3. 向端口数据寄存器写‘0’
4.2 端口4-7 2) 配置端口引脚的输出方式 每个端口的输出方式都可被配置为 漏极开路或推挽方式。在推挽方式,向 端口的相应位写逻辑‘0’将使端口引脚 被驱动到GND,写逻辑‘1’将使端口引 脚被驱动到VDD。在漏极开路方式,向 端口的相应位写逻辑‘0’将使端口引脚 被驱动到GND,写逻辑‘1’将使端口引 脚处于高阻状态。
4.1 端口和优先权交叉开关 8) 交叉开关引脚分配示例 2.将外部存储器接口配置为复用方式并 使用低端口,PRTSEL = 0,EMD2 = 0 (外部存储器接口配置EMI0CF ) P131 3.将作为模拟输入的端口1 引脚配置为 模拟输入方式:设置P1MDIN 为0xE3 (P1.4、P1.3 和P1.2 为模拟输入,所以 它们的对应P1MDIN 被设置为逻辑 ‘0’)。
4.1 端口和优先权交叉开关
4.2 端口4-7 4.2 端口4-7(仅C8051F020/2) 端口4-7 的所有端口引脚都可用作通 用I/O,通过读和写相应的端口数据寄存 器访问每个端口,这些端口数据寄存器 是一组按字节寻址的特殊功能寄存器。 读端口数据寄存器时,返回的是端口引 脚本身的逻辑状态。
C8051F系列 SOC单片机原理及应用
第四章 端口输入/输出 主讲:吴国东
第四章 端口输入/输出 C8051F020/1/2/3 MCU 是高集成度的 混合信号片上系统,有按 8 位端口组织的 64个数字I/O引脚(C8051F020/2)或32个数 字 I/O 引脚 (C8051F021/3) 。低端口 (P0 、 P1、P2 和P3)既可以按位寻址也可以按字 节寻址。高端口 (P4 、 P5 、 P6 和 P7) 只能 按字节寻址。所有引脚都耐 5V 电压,都 可以被配置为漏极开路或推挽输出方式和 弱上拉。
4.1 端口和优先权交叉开关 6) 配置端口1 的引脚为模拟输入 (AIN.[7:0]) 注意: 被配置为模拟输入的引脚的输出驱 动器并没有被明确地禁止。因此被配置 为模拟输入的引脚所对应的P1MDOUT 位 应被设置为逻辑‘0’(漏极开路方 式),对应的端口数据位应被设置为逻 辑‘1’(高阻态)。
4.1 端口和优先权交叉开关
1) 交叉开关引脚分配 当交叉开关配置寄存器 XBR0、XBR1 和 XBR2 中外设的对应使能位被设置为逻辑‘1’ 时,交叉开关将端口引脚分配给外设。 例如,如果 UART0EN 位( XBR0.2 )被设置 为逻辑‘1’,则TX0 和RX0 引脚将分别被分 配到P0.0 和P0.1。因为UART0有最高优先权, 所以当UART0EN 位被设置为逻辑‘1’时其引 脚将总是被分配到P0.0 和P0.1。
4.2 端口4-7 3) 配置端口引脚为数字输入 通过设置输出方式为“漏极开路” 并向端口数据寄存器中的相应位写‘1’ 将端口引脚配置为数字输入。 例如,设置P4OUT.7 为逻辑‘0’并 设置P7.7 为逻辑‘1’即可将P7.7 配置为 数字输入。
4.2 端口4-7 4) 弱上拉 每个端口引脚都有一个内部弱上拉 部件,在缺省情况下该上拉器件被使能, 在引脚与VDD之间提供阻性连接(约 100 kΩ)。弱上拉部件可以被总体禁止, 当任何引脚被驱动为逻辑‘0’时,弱上 拉自动取消;即输出引脚不能与其自身 的上拉部件冲突。
4.1 端口和优先权交叉开关 6) 配置端口1的引脚为模拟输入 (AIN.[7:0]) 端口1的引脚可以用作ADC1模拟多路开关 的模拟输入。通过向P1MDIN寄存器中的 对应位写‘0’即可将端口引脚配置为 模拟输入。缺省情况下端口引脚为数字 输入方式。
4.1 端口和优先权交叉开关 6) 配置端口1 的引脚为模拟输入 (AIN.[7:0]) 配置为模拟输入的过程如下: 1.禁止引脚的数字输入路径。 2.禁止引脚的弱上拉部件。 3.使交叉开关在为数字外设分配引脚 时跳过该引脚。
4.1 端口和优先权交叉开关 8) 交叉开关引脚分配示例 配置步骤如下: 1.按UART0EN = 1、UART1E = 1、 SMB0EN = 1、INT0E = 1、INT1E = 1 和EMIFLE =1设置XBR0、XBR1 和 XBR2,则有:XBR0 = 0x05,XBR1 = 0x14,XBR2 = 0x06。