单片机的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条回答
ntmusic
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管短接到地,不管你端口接什么电位都被短接到地,也就没法读出正确的端口电位了。说得这么清楚了,还不懂的话,你应该重学电子技术基本知识了。

一周热门 更多>