单片机的I/0口输入和输出,1和0是怎么回事。

2019-07-15 20:27发布

本帖最后由 pk670986 于 2014-3-26 21:37 编辑

本人自己编过一个时钟程序,用过中断,如不入门就不知道,但现在实习了,遇到I/0口的问题,以前编程都没注意过,我一直以为1就是输出,0就是输入,是不是?今天我百了一下,置1是输入,0是输出,那么和0,1是什么关系?一个是状态一个是电平么?电平又是怎么回事?怎么说呢,那你输出0就是低电平,接一个发光二极管会亮吧,那换成输入的话会亮吗?我也看过内部结构,什么集电极开路,输入是高阻态吗?是不是就不亮了,如果高阻态单片机怎么检测输入电平的?
如果觉得懒得解析,请告诉我知识点,等我自己看看也好。。。。谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
pk670986
1楼-- · 2019-07-17 19:08
 精彩回答 2  元偷偷看……
djs1968
2楼-- · 2019-07-17 20:25
输出1的时候,不仅是对地的mos管断开,上拉的mos管还要接通(除OC外),为外电路提供单片机设计要求的驱动电流(一般为数mA),所以不是高阻态,上拉电阻的作用是提高端口输出1时对外部电路的驱动能力(单片机端口输出高电平的能力没有输出低电平的能力强)。高阻态通常用于作为输入(可并联输入)的场合,输出并联时常用OC态,一般情况下不能直接并联。
单片机端口与外部电路的连接通常称为接口电路,是一门学问。总的原则是输出端主导输入端,反之则会破坏整个系统的逻辑性。
ntmusic
3楼-- · 2019-07-17 22:18
pk670986 发表于 2014-3-27 15:33
是置1是为输入状态吧?这就能读取外部电平了,那你说的置0为输出状态,端口电平不随外接电平改变,就等于 ...

对于51单片机,实际上根本没有实际的输入输出寄存器,不是说你将端口置1就是将端口置为输入,这是很多初学者容易犯的大误区。51单片机是根据指令来识别输出还是输入的:Px.x=?,这就是输出;?=Px就是读取了。那为什么我们在读端口状态前要将端口置1呢?现在你应该先找本书看看51 IO口的结构了,空想没用。提醒一下:不是高阻态才是输入(高阻态一般用于模拟信号输入),上拉或下拉均可作为数字信号输入端。那51什么时候端口会处于上拉或下拉状态呢?只有51输出为1时端口处于上拉状态。端口输出0时呢?是不是下拉?看看IO结构可知,此时端口被MOS管短接到地,不管你端口接什么电位都被短接到地,也就没法读出正确的端口电位了。说得这么清楚了,还不懂的话,你应该重学电子技术基本知识了。
tujunjie
4楼-- · 2019-07-18 01:22
ntmusic 发表于 2014-3-28 17:10
对于51单片机,实际上根本没有实际的输入输出寄存器,不是说你将端口置1就是将端口置为输入,这是很多初 ...

讲的很清楚了、、、、、、、、、、

一周热门 更多>