8 通用输入输出口

为君一笑 提交于 2020-01-12 23:48:58

    NuMicro M051微控制器共有40个通用I/O口,并可复用为特殊功能引脚,如串行口输入输出接口、外部中断触发、PWM输出等功能。这40个引脚分别分配在P0P1P2P3P4这五个端口上,每个端口最多有8个引脚,且各引脚之间都是相互独立的,可通过相应的寄存器来控制引脚的工作模式和读取当前引脚的数据。

    每个I/O引脚上的I/O类型都能够通过软件独立地配置为输入、输出、开漏或准双向模式。当MCU复位时,端口数据寄存器Px_DOUT[7:0]的值为0x000_00FF。每个I/O引脚配有110K~300K欧的非常弱的上拉电阻到输入电源(VDD)上,输入电源可为5V~2.5V

 

8.1 通用I/O模式的设置

通用I/O工作模式可分为输入模式、输出模式、开漏模式、准双向模式这四种模式,模式的选择需要对I/O模式控制寄存器Px_PMD[1:0]进行编程,当P0/1/2/3/4被设置为推挽模式或准双向模式时,源电流和灌电流的参数如下表8.1-18.1-2

8.1-1 源电流参数

参数

最小值

典型值

最大值

单位

测试条件

P0/1/2/3/4

源电流(推挽模式

-20

-24

-28

mA

VDD = 4.5V, 

VSS = 2.4V 

-4

-6

-8

mA

VDD = 2.7V, 

VSS = 2.2V 

-3

-5

-7

mA

VDD = 2.5V, 

VSS = 2.0V 

 

8.1-2 灌电流参数

参数

最小值

典型值

最大值

单位

测试条件

P0/1/2/3/4

灌电流(准双向模式和推挽模式)

10

16

20

mA

VDD = 4.5V, 

VSS = 0.45V 

7

10

13

mA

VDD = 2.7V, 

VSS = 0.45V 

6

9

12

mA

VDD = 2.5V, 

VSS = 0.45V 

 

注:P0/1/2/3/4管脚被外部由1驱动到0时, 可作来输出电流的源端,在VDD=5.5V当输入电压范围接近2V时,输出电流达到最大值

 

 

l 输入模式

设置 Px_PMD(PMDn[1:0])00bPx[n]为输入模式,I/O引脚为三态(高阻态),没有输出驱动能力。Px_PIN的值反映相应端口引脚的状态。

 

 

l 输出模式

设置Px_PMD(PMDn[1:0])0x01Px[n]为输出模式,I/O引脚支持数字输出功能,有拉电流/灌电流能力。Px_DOUT[0:7]相应位的值被送到相应引脚上。

 

图8.2-1 推挽输出

 

l 开漏模式

设置Px_PMD(PMDn [1:0])为 2’b10Px[n]为开漏模式,I/O支持数字输出功能,但仅有灌电流能力,为了把I/O引脚拉到高电平状态,需要外接一颗上拉电阻。如果Px_DOUT相应位bit [n]的值为“0”,引脚上输出低电平。如果Px_DOUT相应位bit [n]的值为“1”,该引脚输出为高电平,由内部上拉电阻或外部上拉电阻控制。

 

图8.2-2 开漏模式

l 准双向模式

设置Px_PMD(PMDn[1:0]) 为 2’b11Px[n]引脚为准双向模式,I/O同时支持数字输出和输入功能,但拉电流仅达数百uA.。要实现数字输入,需要先将Px_DOUT 相应位置1。准双向输出是80C51及其派生产品所共有的模式。若Px_DOUT相应位bit[n]”0”, 引脚上输出为低电平。若Px_DOUT相应位bit[n]”1”, 该引脚将核对引脚值若引脚值为高,没有任何动作,若引脚值为低,该引脚置为强高2个时钟周期,然后禁用强输出驱动,引脚状态由内部上拉电阻控制。

准双向模式的拉电流能力仅有200uA30uA(相应 VDD的电压从5.0V2.5V)

 

图8.2-3 准双向I/O模式

 

 

 

书籍下载地址(复制到下载工具进行下载):

 

http://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part1.rar

 

http://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part2.rar

 

 

 

注:书籍内容会不定期进行更新!

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!