打印
[51单片机]

C8051F系列单片的端口疑惑

[复制链接]
2517|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lyj317|  楼主 | 2014-4-16 21:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个单片机我有点迷惑的一点就是:
之前的单片机都是有方向寄存器如:P1DIR(0为输出,1为输入)这样很好理解
现在C8051F这个系列的单片机有一个P1MDOUT寄存器和一个P1MDIN寄存,这就把我搞糊涂了假如现在什么都不配置,那么P1MDPOUT默认值是0x00,P1MDIN的默认值是0xFF,也就是开漏输出,数字输入,那么这个口到底是输入还是输出啊?

相关帖子

沙发
airwill| | 2014-4-16 22:39 | 只看该作者
开漏输出,数字输入
可以这样理解, 不管输出什么电平, 端口同时也连接在输入电路上, 可以通过输入电路检测输出的状态.
那么, 开漏输出时输出1, 就是输出高阻, 不影响引脚电平, 这就等同于纯粹的输入端口了

使用特权

评论回复
板凳
ayb_ice| | 2014-4-17 06:05 | 只看该作者
没有输入输出之分,随时可以输入,输出

使用特权

评论回复
地板
lyj317|  楼主 | 2014-4-17 08:27 | 只看该作者
ayb_ice 发表于 2014-4-17 06:05
没有输入输出之分,随时可以输入,输出

这如何理解?

使用特权

评论回复
5
lyj317|  楼主 | 2014-4-17 08:30 | 只看该作者
airwill 发表于 2014-4-16 22:39
开漏输出,数字输入
可以这样理解, 不管输出什么电平, 端口同时也连接在输入电路上, 可以通过输入电路检测 ...

如果我要用一个引脚做检测脚(低电平有效),此时P1MDIN设置为1,P1MDOUT设置为推挽输出,并且P1为0,那这个检测岂不是无用了

使用特权

评论回复
6
ayb_ice| | 2014-4-17 09:00 | 只看该作者
lyj317 发表于 2014-4-17 08:30
如果我要用一个引脚做检测脚(低电平有效),此时P1MDIN设置为1,P1MDOUT设置为推挽输出,并且P1为0,那 ...

读就返回0嘛(正确输入要先把输出置高)

推挽不适合做输入模式,输出信号太强了

但MCU确实也可以正确读取引脚状态

使用特权

评论回复
7
popeye021| | 2014-4-17 09:03 | 只看该作者
lyj317 发表于 2014-4-17 08:30
如果我要用一个引脚做检测脚(低电平有效),此时P1MDIN设置为1,P1MDOUT设置为推挽输出,并且P1为0,那 ...

引脚做输入电平检测的话,把P1MOUT设置位开漏输出即可。上电默认P1DIN应该是数字输入。
引脚作为模拟输入的话,要考虑设置P1DIN。
引脚做数字输出的话,把P1MOUT设置为推挽输出即可。

使用特权

评论回复
8
ningling_21| | 2014-4-17 09:10 | 只看该作者
lyj317 发表于 2014-4-17 08:27
这如何理解?

开漏输出时,可以检测按键之类的(也可以输出),需加上拉...
推挽输出时,可控制外部电路(也可以做输入),不需上拉...

模拟输入时,输出功能被禁止...

使用特权

评论回复
9
大秦正声| | 2014-4-17 09:31 | 只看该作者
双向的i/o!

使用特权

评论回复
10
Harvard| | 2014-4-17 11:54 | 只看该作者
默认输入啊 是你的理解不太深入

使用特权

评论回复
11
遇从灵来| | 2014-4-17 20:03 | 只看该作者
那是配置的,有专门的配置软件

使用特权

评论回复
12
xuyaqi| | 2014-4-17 21:47 | 只看该作者
看IO口的原理图应该好理解一些。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

17

帖子

0

粉丝