找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2190|回复: 7
打印 上一主题 下一主题
收起左侧

MCU准双向io口置1的问题

[复制链接]
跳转到指定楼层
楼主
ID:339320 发表于 2019-5-6 11:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
教程中写,准双向口要使其能接收输入信号,要先将其锁存器置1。也就是将这个io口赋值为1,它才能判断输入信号。可是这个io口都被赋值为1了,外部没有输入或者输入1,它都会被测到是1.只有外部输入0的时候,io口才能检测到0,请问是这样吗?
也就是说,准双向口只能准确检测低电平0,是这样吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

来自 4#
ID:213173 发表于 2019-5-6 13:00 | 只看该作者
aiwenxue999 发表于 2019-5-6 11:15
大佬们,求教。。。。

首先纠正:端口是寄存器不是锁存器。
由于IO口的特殊结构,其内部输入和输出电路其实是两条通道,只不过对外呈现一个端点。准双向口要使其能接收输入信号先将其寄存器置1,当外部输入信号为0将会拉低端口电平,此时读端口电平即为0,当外部输入信号为1,与端口电平相等,不影响端口预置电平状态,此时读端口电平即为1。不能理解为准双向口只能准确检测低电平0,其实同样也准确检测高电平1。除非有故障,不存在外部设备没有输入的说法,否则就不叫外部设备了。
回复

使用道具 举报

来自 5#
ID:47286 发表于 2019-5-6 13:09 | 只看该作者
看你测什么信号 如果信号是低有效就置位 如果是高有效就清零

比如开关 可以端口置高 外接上拉 按下是低 也可以端口清零 接下拉 按下是高 根据自己的需求设定 不是死的 开关我就喜欢高有效 这样写程序时可以写成if(key==1) 个人习惯而已
回复

使用道具 举报

沙发
ID:339320 发表于 2019-5-6 11:15 | 只看该作者
大佬们,求教。。。。
回复

使用道具 举报

板凳
ID:345562 发表于 2019-5-6 12:09 | 只看该作者
数字电路就是检测0,1.就好那,
回复

使用道具 举报

6#
ID:339320 发表于 2019-5-6 15:00 | 只看该作者
wulin 发表于 2019-5-6 13:00
首先纠正:端口是寄存器不是锁存器。
由于IO口的特殊结构,其内部输入和输出电路其实是两条通道,只不过 ...

谢谢大佬纠正我的“寄存器”的错误。那个,我说得不准确,我想要问的情况是这样的,我这个单片机上电引脚默认置1,当外部没接设备的时候,程序检测到P1.0引脚为1,则灯L0亮;当P1.0接地的时候,即程序检测到P1.0引脚为0的时候,灯L0灭;当P1.0接VCC时,灯L0亮。而如果程序设计为该引脚为高电平触发,那么,不论外部设备是输入1,还是外部设备与该引脚断开,程序都会触发运行。这样不是很不符合实际应用吗?
回复

使用道具 举报

7#
ID:339320 发表于 2019-5-6 15:37 | 只看该作者
wulin 发表于 2019-5-6 13:00
首先纠正:端口是寄存器不是锁存器。
由于IO口的特殊结构,其内部输入和输出电路其实是两条通道,只不过 ...

哦哦,可以外接上拉下拉电阻。看来我还要在多去看看资料再发问,免得总是问一些基础问题。谢谢回答。
回复

使用道具 举报

8#
ID:339320 发表于 2019-5-6 16:07 | 只看该作者
dzbj 发表于 2019-5-6 13:09
看你测什么信号 如果信号是低有效就置位 如果是高有效就清零

比如开关 可以端口置高 外接上拉 按下是低  ...

谢谢。以后我会多了解再来问问题,免得问的都是些简单问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表