以文本方式查看主题

-  曙海教育集团论坛  (http://peixun0.cn/bbs/index.asp)
--  单片机高级  (http://peixun0.cn/bbs/list.asp?boardid=56)
----  关于对51单片机端口上拉电阻的讨论  (http://peixun0.cn/bbs/dispbbs.asp?boardid=56&id=2255)

--  作者:wangxinxin
--  发布时间:2010-12-8 10:42:41
--  关于对51单片机端口上拉电阻的讨论

前一段时间,看到实验室有个学弟设计了一个电路,其中还有一个键盘电路,取其原理是这样子的:

图片点击可在新窗口打开查看

        据这位师弟的意思是:在没有按下按键的时候,端口上是低电平,按下按键的时候端口上接上了高电平.

         事实上,电路是不工作的.

        问题比较多:

       首先,将电源直接接到端口上是绝对不可以的.当按下按键的时候,会有很大的电流进入单片机.在工程上,这种往往应该加限流电阻的.一般选择1K的就可以.如果选择太大的电阻也不好,因为电阻上面压降太大,造成输入比应有的高电平低,造成错误.

      其次,就算加了限流,这个电路也是不能工作的.检查AT89C51的DataSheet就会发现.技术手册中说:P0口是没有上拉电阻的端口;P1,P2,P3口带有上拉电阻.问题就出在这里,什么是上拉电阻,来看看图:

图片点击可在新窗口打开查看

上面这个图,是红外线接收的电路图,看上面的这个电阻,就是上拉电阻.我们可以试图理解一下51单片机P2口的这个上拉电阻为这种形式:

图片点击可在新窗口打开查看

其中的R就是上拉电阻.如果像我的那个师弟那样设计电路,电路就成了以下这种形式了:

图片点击可在新窗口打开查看

看,从这个电路上,我们可以清晰的看出,不管你按键是否按下,IO端口上都是高电平.问题就在这里,我让我的这个师弟测测IO端口的电平在按下按键前后的变化,结果果然不出所料:不管他是否按下按键,都是高电平!!

        从这里我们可以看出:DataSheet还是有用的,在设计的时候,有很多细节,需要注意,否则,可能功亏一篑.