51单片机 我要检查IO外接输入的电平状态,
检查IO外接输入的时候,IO本身的电平怎么设置,假如我给某一个IO置0。外接高电平,那么软件检查IO是高电平还是低电平。当然如果我把IO设置为1,外接低电平又是怎么状态,...
检查IO外接输入的时候,IO本身的电平怎么设置,假如我给某一个IO置0。外接高电平,那么软件检查IO 是高电平还是低电平。当然 如果我把IO设置为1,外接低电平 又是怎么状态, 综上 IO该怎么设置
展开
3个回答
展开全部
方法:
把引脚设置为输入状态,输出一个1就行。这是单片机的设计者、生产厂家所规定的。
在这个前提下,外界,只有输入低电平,才会改变引脚的状态;输入高电平,是没有反应的。如果,外设一定要送来高电平,那就必须加上一个反相器,再连接到单片机的引脚即可。
其中的 P0口 为总线式设计 电路形式 为 集电极开路 也就是说它的内部开关只能将 P0的IO连接到GND上 而不能连接到 VCC上 当向P0 写“0”时 IO口将连接到 GND 而向P0写“1”时 IO将变成高阻状态 也就是相当于断开 什么都没连接 *此时若需要输出 则必须增加外部上拉电阻 来实现高电平的 *此时若需要实现输入(IO读取) 则直接读取P0即可得到外部输入的电平状态。
至于 P1 2 3 其内部有上拉电阻 但一般情况下 都要在外部也配上上拉电阻 以实现稳定的 高电平输出。
综上所述 实际上 默认状态输出高 可以认为是输出状态 但P0是由外部上拉电阻实现的 “输出” p123 是由内部上拉 和外部上拉同时实现的输出 也就是说 P123 内部来看是真正的输出 而P0内部的状态是高阻。
至于为何要高阻 是因为 P0 用于总线的数据交换 高阻结构 是总线端口必须的一种状态。
把引脚设置为输入状态,输出一个1就行。这是单片机的设计者、生产厂家所规定的。
在这个前提下,外界,只有输入低电平,才会改变引脚的状态;输入高电平,是没有反应的。如果,外设一定要送来高电平,那就必须加上一个反相器,再连接到单片机的引脚即可。
其中的 P0口 为总线式设计 电路形式 为 集电极开路 也就是说它的内部开关只能将 P0的IO连接到GND上 而不能连接到 VCC上 当向P0 写“0”时 IO口将连接到 GND 而向P0写“1”时 IO将变成高阻状态 也就是相当于断开 什么都没连接 *此时若需要输出 则必须增加外部上拉电阻 来实现高电平的 *此时若需要实现输入(IO读取) 则直接读取P0即可得到外部输入的电平状态。
至于 P1 2 3 其内部有上拉电阻 但一般情况下 都要在外部也配上上拉电阻 以实现稳定的 高电平输出。
综上所述 实际上 默认状态输出高 可以认为是输出状态 但P0是由外部上拉电阻实现的 “输出” p123 是由内部上拉 和外部上拉同时实现的输出 也就是说 P123 内部来看是真正的输出 而P0内部的状态是高阻。
至于为何要高阻 是因为 P0 用于总线的数据交换 高阻结构 是总线端口必须的一种状态。
展开全部
假如我给某一个IO置0。外接高电平,--这样做,IO引脚极有可能烧毁。
如果我把IO设置为1,外接低电平--这是可以的,IO引脚就是低电平。
总之:
想用引脚输入,就先把引脚设置成1。引脚就能随着外部变化。
想用引脚输出,置成1、0均是输出,但是外部就不要再送来信号。
如果我把IO设置为1,外接低电平--这是可以的,IO引脚就是低电平。
总之:
想用引脚输入,就先把引脚设置成1。引脚就能随着外部变化。
想用引脚输出,置成1、0均是输出,但是外部就不要再送来信号。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
假如我给某一个IO置0。外接高电平,那么软件检查IO 是高电平还是低电平。
会读回0。
我把IO设置为1,外接低电平 又是怎么状态。
也会读回0
IO该怎么设置 --读引脚上的电平,先把相应管脚置为1,再读就能读回正确的电平。
会读回0。
我把IO设置为1,外接低电平 又是怎么状态。
也会读回0
IO该怎么设置 --读引脚上的电平,先把相应管脚置为1,再读就能读回正确的电平。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询