单片机的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条回答
我爱玩单片机
1楼-- · 2019-07-16 02:07
置1和置0不是自己规定的吗?输入输出都可是1和0 啊?
948413534
2楼-- · 2019-07-16 05:38
看你外设啊
Hugo801122
3楼-- · 2019-07-16 09:13
 精彩回答 2  元偷偷看……
ntmusic
4楼-- · 2019-07-16 09:55
作为输入端口,前提条件就是端口的状态能随外部电平变化而变化,如果外部拉低,端口应该被拉低,如果外部拉高,端口应该被拉高。再看一下51端口的结构,你会发现,如果内部将端口置0,那么端口直接被内部MOS管强拉到0电位,这时外部端口即使接了高电平也不会被拉高(相当于端口被一根线接到了地,你怎么也无法拉高地电位吧),所以此时你当然可以读端口,但读到的只会是0.但是,如果你将端口置1,那么相当于端口接了个上拉电阻,此时端口的电平是随外部信号变化而变化的,这样就能读取到0和1.所以,对于51单片机来说,为了准确读取0和1,只能先将端口置1.
yilujiangnan
5楼-- · 2019-07-16 14:22
楼主想复杂了,单片机或者是其他控制芯片,作为IO口,内部基本上都是门电路,单片机只是多了寄存器可以能动配置,配置正确了就没有问题了
djs1968
6楼-- · 2019-07-16 19:43
得弄清楚两个概念。一个概念是现在的单片机内部都有一个配置寄存器,可以用来对每个端口是输入还是输出进行配置,譬如设为1的话指明该端口是输出,设为0的话只能是输入(也可能用两位指明更多的状态,如OC、弱上拉、强上拉、推挽输出等,可仔细阅读芯片说明书);另一个概念是常规的概念,端口置为输出时,可能输出0,也可能输出1,同理端口置为输入时,可能输入0,也可能输入1。

一周热门 更多>