我想问问关于51单片机I/O口的问题!!
I/O口的输入和输出状态和1和0是什么关系,又或者有关系吗?其实我会用C写流水灯,时钟也编过一个,但我发现我对I/O的问题不懂,但一样可以用C编。51单片机置1是输入状态...
I/O口的输入和输出状态和1和0是什么关系,又或者有关系吗?其实我会用C写流水灯,时钟也编过一个,但我发现我对I/O的问题不懂,但一样可以用C编。
51单片机置1是输入状态,是呈现高阻态的,就是I/O口内部结构的开关是断开的,不接地,但还接一个上拉电阻吧!(都带上拉电阻)。那我接低电平的外围器件不就会输出电流了吗?但这是输入状态啊!不矛盾吗?而且单片机的Io口的输出电压也是5V啊,就是通过这个原理输出的吗?
那同理,我置0,是输出状态吧!内部开关闭合,接地,电平拉低,上拉电阻也接地了,拉低了,上拉电阻不对外输出。但怎么输出1呢?不是接地了吗?怎么输出1啊?
输出状态才能输出1和0吗?输入状态不能输出吗?我就是搞不懂啊!! 展开
51单片机置1是输入状态,是呈现高阻态的,就是I/O口内部结构的开关是断开的,不接地,但还接一个上拉电阻吧!(都带上拉电阻)。那我接低电平的外围器件不就会输出电流了吗?但这是输入状态啊!不矛盾吗?而且单片机的Io口的输出电压也是5V啊,就是通过这个原理输出的吗?
那同理,我置0,是输出状态吧!内部开关闭合,接地,电平拉低,上拉电阻也接地了,拉低了,上拉电阻不对外输出。但怎么输出1呢?不是接地了吗?怎么输出1啊?
输出状态才能输出1和0吗?输入状态不能输出吗?我就是搞不懂啊!! 展开
展开全部
51单片机置1是输入状态,
--也是输出状态,但是也可以输入。
是呈现高阻态的,就是I/O口内部结构的开关是断开的,不接地,
--P0 口,确实是这样的。
但还接一个上拉电阻吧!(都带上拉电阻)。
--P0 口没有上拉电阻。
--P1P2P3,都有上拉电阻。
--但是电阻很大,几百K,上拉作用有限。
那我接低电平的外围器件不就会输出电流了吗?
--P1P2P3,都有输出电流。
--很小的电流。
但这是输入状态啊!不矛盾吗?
--谁说是输入状态?他是瞎说。
--此时是输出1。
--但是引脚内部的上拉能力有限,因此,这时就可以当输入使用。
而且单片机的Io口的输出电压也是5V啊,就是通过这个原理输出的吗?
--5V?谁说输出5V了?
--引脚上拉能力有限,难以保证5V。
--你外部接地了,就是0V。这就是输入低电平。
那同理,我置0,是输出状态吧!
--置一、清零,都是输出。
--只是,置一后,可以输入。
内部开关闭合,接地,电平拉低,
上拉电阻也接地了,拉低了,上拉电阻不对外输出。
但怎么输出1呢?不是接地了吗?怎么输出1啊?
--《我置0》,你就是输出0,怎么会想到输出1?
输出状态才能输出1和0吗?
--置一、清零,都是输出。
输入状态不能输出吗?
--输入状态,隐含在输出1的时候。
--也是输出状态,但是也可以输入。
是呈现高阻态的,就是I/O口内部结构的开关是断开的,不接地,
--P0 口,确实是这样的。
但还接一个上拉电阻吧!(都带上拉电阻)。
--P0 口没有上拉电阻。
--P1P2P3,都有上拉电阻。
--但是电阻很大,几百K,上拉作用有限。
那我接低电平的外围器件不就会输出电流了吗?
--P1P2P3,都有输出电流。
--很小的电流。
但这是输入状态啊!不矛盾吗?
--谁说是输入状态?他是瞎说。
--此时是输出1。
--但是引脚内部的上拉能力有限,因此,这时就可以当输入使用。
而且单片机的Io口的输出电压也是5V啊,就是通过这个原理输出的吗?
--5V?谁说输出5V了?
--引脚上拉能力有限,难以保证5V。
--你外部接地了,就是0V。这就是输入低电平。
那同理,我置0,是输出状态吧!
--置一、清零,都是输出。
--只是,置一后,可以输入。
内部开关闭合,接地,电平拉低,
上拉电阻也接地了,拉低了,上拉电阻不对外输出。
但怎么输出1呢?不是接地了吗?怎么输出1啊?
--《我置0》,你就是输出0,怎么会想到输出1?
输出状态才能输出1和0吗?
--置一、清零,都是输出。
输入状态不能输出吗?
--输入状态,隐含在输出1的时候。
追问
你说的置1和清0都是输出,就是输出1和0的意思吧?我应该理解你,置1和0都是输出,但置1是可以输入的,是这样吗?我说的置1置0是三极管置1和置0,其实你也知内部结构,就是集电极开路结构啊!
是不是内部接地就是输出0,悬空就是输出1?
http://zggcj .blog.163.com /blog/static/191275229201172393012962/这个是怎么理解的?
追答
你说的置1和清0都是输出,就是输出1和0的意思吧?
--是这个意思。
--但是,不是我说的。
我应该理解你,置1和0都是输出,但置1是可以输入的,是这样吗?
--置一,确实是输出。
--但是,内部的上拉作用,很差,
--引脚电压,可以由外部改变,这就是输入。
--这就是《准双向口》的意思。
我说的置1置0是三极管置1和置0,其实你也知内部结构,就是集电极开路结构啊!
是不是内部接地就是输出0,悬空就是输出1?
--只有 P0,是集电极开路结构。
--四个并口,内部结构,都是不同的。细说,就麻烦了。
链接,打开了。
文章太长了,看不下去。
展开全部
你是不是学过别的单片机。。或者学过A51。。
51单片机IO口置1就输出1,置0就输出0。。至于读,你的变量写在左边,比如
x = P1;
这种情况下编译器解析为读P1口。。。
确实有些单片机存在IO口控制位,控制IO口的方向,即输入还是输出,但是51没有。。编译器是靠IO口寄存器在等号哪一边决定的输入还是输出。
如果在A51的情况下,要加一句
mov P1,0xFF
再读引脚
mov R0,P1
据说这叫准双向口 要先写1才能读。。。我对硬件也不太懂。。
C语言已经把这个给你省略了,编译的时候是自动实现的
51单片机IO口置1就输出1,置0就输出0。。至于读,你的变量写在左边,比如
x = P1;
这种情况下编译器解析为读P1口。。。
确实有些单片机存在IO口控制位,控制IO口的方向,即输入还是输出,但是51没有。。编译器是靠IO口寄存器在等号哪一边决定的输入还是输出。
如果在A51的情况下,要加一句
mov P1,0xFF
再读引脚
mov R0,P1
据说这叫准双向口 要先写1才能读。。。我对硬件也不太懂。。
C语言已经把这个给你省略了,编译的时候是自动实现的
追问
是C51,不过学的时候真的很少考虑这个问题,确实C给省略了,但用汇编就要了, 其实IF就是输入的意思,P0=x就是输出的意思。。。但问题还是上面的问题。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你在哪里看到的,“”51单片机置1是输入状态“”,这么说肯定不对的,首先51单片机的IO口是准双向的。 当作输入引脚用时,准双向口读外部数据,要么先锁存为 ‘1’,要么在外部接个上拉,才可读到外部正确的状态,锁存为 ‘1:这只是代表你读外部数据时,应先置1,并不是你说的置1是输入。你理解反了。
追问
http://zggcj. blog.163.com/blog/sta tic/191275229201172393012962/
怎么理解反了?你的意思是不是输入的时候要读取数据要锁存置1或者外接上拉电阻?
追答
原文有一句“ 当我们要使用输入功能时,只要将输出口设置为1即可,这样就相当于那个开关断开”。对吧,只能说你还是没完全理解呢,它的意思是使用输入的时候,置1就行,并不是说置1就是输入。 举例说明吧,:小明是学生,这句话没问题,但反过来说,学生是小明,这能对吗。
单片机IO作输入的时候,无非是接收外部数据,其实这只是它准双向功能的一部分。
而当它检测按键电路的时候,也是当输入用,此时IO就只能置1,或者外接上拉了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
51单片机IO口是双向的既可以做输入也可以做输出,1是指高电平,0是低电平,你置1或0时并不是说如开关断闭,只是单片机IO口输出高或低电平而已。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输入状态也可以输出的,不过这个输出是电源单纯的供电,而不是单片机输出的信号,并且和电路结构有关而不是受单片机控制,比如有的单片机reset复位后开发板上的LED默认状态都是亮的,就是因为即使没有输出,但是由于上拉或者下拉使LED亮了,这个相当于电源直接给LED供电,而不是单片机输出
追问
那信号是怎么输出的?只有输出状态才能输出1和0吗?但我就说了输出状态都接地了,还怎么输出1呢?只有输入状态的悬空开关,才有可能输出5V的啊!不过你说是供电,那信号又是怎么回事?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询