博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
8 通用输入输出口
阅读量:4984 次
发布时间:2019-06-12

本文共 1693 字,大约阅读时间需要 5 分钟。

    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模式

 

 

 

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

 

原理与应用实践.part1.rar

 

原理与应用实践.part2.rar

 

 

 

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

 

转载于:https://www.cnblogs.com/wenziqi/archive/2012/02/18/2357218.html

你可能感兴趣的文章
数据结构之【排序】复习题
查看>>
程序中怎样限制使用时间
查看>>
oc继承,实现,分类
查看>>
vs2010 快捷键大全 (转)
查看>>
oracle环境变量详解
查看>>
程序的组成部分
查看>>
解决Ubuntu的root账号无法登录SSH问题-Permission denied, please try again.
查看>>
查看oracle 用户执行的sql语句历史记录
查看>>
iptables--白名单配置
查看>>
创建一个Hello World模块
查看>>
python中精确输出JSON浮点数的方法
查看>>
大数据未来将呈现的八大发展趋势
查看>>
监听器实现的主要设计模式是观察者模式,
查看>>
[Java学习] Java异常类型
查看>>
${sessionScope.user}的使用方法
查看>>
IOS断点下载
查看>>
Steal 偷天换日 题解(From luoguBlog)
查看>>
Hadoop HDFS学习总结
查看>>
shell脚本 监控ps 不存在则重启
查看>>
C#wxpay和alipay
查看>>