打印

关于51单片机的一些疑问----按键控制

[复制链接]
1641|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
eit520|  楼主 | 2011-7-22 13:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 eit520 于 2011-7-22 13:17 编辑

ORG 0000H
LJMP START;
ORG 30H;
START:
MOV P3,#0FFH;
MOV P0,#0FFH;
L1:
  JNB P3.4,S1;
  JNB P3.5,S2;
  LJMP L1;
S1:
MOV P0,#00H;
   LJMP L1;
  S2:
MOV P0,#0FFH;
  LJMP L1;
End


问题:P0接的是LED灯,为什么按P3.4键的时候灯一按就亮了。而按P3.5让灯灭的时候,按一次不灭得按两次才灭。不明白为什么会这样的?

相关帖子

沙发
lxandlj| | 2011-7-22 13:25 | 只看该作者
我觉得你还是测量一下LED的供电情况。

比如按一下P3.5,P0寄存器的状态和输出引脚的状态,LED的上电情况。

用仿真器跟踪一下。

使用特权

评论回复
板凳
yewuyi| | 2011-7-22 13:28 | 只看该作者
这个程序根本没啥子用,按键抖动没有处理,会出现乱响应。

使用特权

评论回复
地板
Jarrywd| | 2011-7-22 15:21 | 只看该作者
程序里面看不出什么问题来,硬件是否有问题,还有楼上说的也对,没有防抖动,也会引起错误!看样子是刚开始弄吧,没关系,刚开始大家都一样,慢慢就好了!

使用特权

评论回复
5
mengdie_198599| | 2011-7-22 17:25 | 只看该作者
路漫漫其修远兮 吾将上下而求索!还是那个按键掩去抖动子程序没有做好!

使用特权

评论回复
6
mengdie_198599| | 2011-7-22 18:32 | 只看该作者
我自己做了实验,一般是按键的问题。如果是新的按键,偶尔会出现你楼主说的现象;如果是旧的按键一定会出现“按P3.4键的时候灯一按就亮了。而按P3.5让灯灭的时候,按一次不灭得按两次才灭”。因为按键是属于一个机械式,你手按下时,你不知道什么是触发,而且你在按的同时手会有些抖动。所以做好是做一个延时去抖动的程序。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

3

帖子

1

粉丝