搜索
bottom↓
回复: 20

AT89C4051 P1.0 P1.1用作普通IO口的问题!!!

[复制链接]

出0入0汤圆

发表于 2009-11-27 11:53:53 | 显示全部楼层 |阅读模式
我用AT89C4051 P1.0 P1.1用作键盘扫描的I/O口,发现有很多时候读出的按键是错!
我看了datasheet写的不是很清楚!只是说要加上拉电阻才能做I/O口,可是我加了啊!
是不是还需要做一些设置?
这两个口是内部比较器的输入口.
请高手指点一下!

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2009-11-27 12:04:52 | 显示全部楼层
要接上拉

出0入0汤圆

发表于 2009-11-27 12:13:51 | 显示全部楼层
程序要加消抖,或者硬件加触发器

出0入0汤圆

发表于 2009-11-27 13:10:02 | 显示全部楼层
请注意P3.6

出0入0汤圆

 楼主| 发表于 2009-11-27 13:18:34 | 显示全部楼层
我加上拉了!
有谁知道P1.0 P1.1两个PIN的具体资料???

出0入0汤圆

 楼主| 发表于 2009-11-27 13:23:22 | 显示全部楼层
程序有防抖设计了!就是这两个脚的那两列读键盘出错!
是不是这两个管脚要加限流电阻,我得试一下.

出0入0汤圆

发表于 2009-11-27 13:27:38 | 显示全部楼层
除了没有上拉,别的都一样
你加上拉是多大?

出0入0汤圆

发表于 2009-11-27 13:58:18 | 显示全部楼层
这两个口不是作为比较器的口么?

出0入0汤圆

发表于 2009-11-27 14:03:44 | 显示全部楼层
AT80C2051/4051内带的比较器ATMEL官方的资料基本没怎么提到,所以我认为其有BUG,所以从来不用,都外挂393/339等比较器。。。

出0入0汤圆

发表于 2009-11-27 14:45:24 | 显示全部楼层
AT89C4051 只用这个驱动过数码管和oled的屏,没遇到你说的那种问题。

(原文件名:QQ截图未命名.png)
从数据手册来看,是可以用作io的但是需要接上拉电阻

出0入0汤圆

发表于 2009-11-27 15:12:48 | 显示全部楼层
现在就是用P1口用做4X4的键盘输入,读键值时出现不稳定,和读不到键值的问题!
从电路的情况看就是P1.0和p1.1这两列出现问题了!
用作比较输入和普通I/O口是怎么切换的呢???

出0入0汤圆

发表于 2009-11-27 15:17:03 | 显示全部楼层
10K的上拉!我给P1赋值后下个指令就读P1的输入值,太快了吗?是不是要用小点的电阻?要强上拉,换个4.7K的看看

出0入0汤圆

发表于 2009-11-27 17:36:22 | 显示全部楼层
就没高手知道这个问题吗?
请用过4051的前辈帮我一下啊!

出0入0汤圆

发表于 2009-11-28 08:59:14 | 显示全部楼层
P1赋值后下个指令就读P1的输入值,太快了

出0入50汤圆

发表于 2009-11-28 09:34:35 | 显示全部楼层
楼上有朋友已经说过了:

1)要上拉;
2)P1.0,P1.1内部是接比较器的,而且是不可配置的,比较输出是P3.6,所以判断键盘时读取P1口状态数据,请务必过滤掉P3.6.
3)几乎所有的端口在输出后都要延时几个机器周期再去读取IO的状态,延时请加一点吧。

出0入0汤圆

 楼主| 发表于 2009-11-29 01:07:20 | 显示全部楼层
加了延时出错的概率降低了一点但还是不行,
这样的程序在S52上不加延时完全是可以的,
LS说的过滤P3.6应该是读P3的状态吧!跟读P1有关系吗?
P1.0,P1.1内部是接比较器的,那他有输入的功能吗?
其实解决这问题我可以不用这两个口。
但我就是不知道为这两口用法有什么问题了!

出0入0汤圆

发表于 2009-11-29 09:19:36 | 显示全部楼层
示波器看看波形吧,频率多少?延时再大点试试外部有么有接电容什么的?

出0入0汤圆

 楼主| 发表于 2009-11-29 22:04:37 | 显示全部楼层
那也只有明天接示波器看看在读P1.0和P1.1时有没有被按键拉到低电平了.

出0入50汤圆

发表于 2009-11-30 12:32:54 | 显示全部楼层
抱歉,没看清楚,那个P3.6确实不影响读取P1口的。

延时我的感觉多少还是要加的,一定要有冗余

出0入0汤圆

发表于 2009-12-1 10:39:14 | 显示全部楼层
可以试下W79E4051相对于AT89C4051的加强版,价格:3.00元 参考资料如下:
参数对比ourdev_509373.pdf(文件大小:349K) (原文件名:W79E4051_VS_AT89S4051.pdf)
参数对比ourdev_509374.pdf(文件大小:90K) (原文件名:Winbond2051_4051_VS_Atme2051_4051l.pdf)
代码可以直接移植ourdev_509375.pdf(文件大小:53K) (原文件名:代码移植测试项目.pdf)

出0入0汤圆

发表于 2012-8-28 11:12:05 | 显示全部楼层
没有人知道吗?
我也遇到这个问题了,如果我将P1.0、P1.1用作输入口来获取键值,就无法获得!后来我换了两个脚(这两个脚空着不用,就OK了),谁知道原因吗?
看来是这两个脚不太适合作为输入口来用?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 00:27

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表