找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3209|回复: 5
打印 上一主题 下一主题
收起左侧

关于单片机独立按键程序调试,不加消抖会导致结果不正确吗?

[复制链接]
跳转到指定楼层
楼主
程序如图:功能:按下独立按键,led发光
现象:按下后led不亮

这里提出的问题有:
消抖不添加会导致实验结果显示不出来吗?


主函数的P1和P3的定义是全局效果吗?是因为这个全局定义导致的电视结果吗?
led未加延时会不会导致看不到这个实验现象?如果长按按键是否可以选择不用延时使led常亮?
在这儿感谢各位大佬
程序如下方便各位调试:
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit d1=P1^1;
sbit dula=P2^6;
sbit wela=P2^7;
sbit key1=P3^4;
void main()
{
        P3=0xFF;
        P1=0x00;
        while(1)
        {
                if(key1==0)
                                d1=1;                        
                else
                                d1=0;        
        }         
}


QQ图片20190414212423.png (13.19 KB, 下载次数: 14)

QQ图片20190414212423.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:94031 发表于 2019-4-15 10:09 | 只看该作者
首先, 消抖不添加不会导致实验结果显示不出来。再者可以确定,长按按键可以选择不用延时使led常亮。led不亮不是程序原因,要找别的原因。
回复

使用道具 举报

板凳
ID:487743 发表于 2019-4-15 15:09 | 只看该作者
消抖不添加不会导致实验结果显示不出来
回复

使用道具 举报

地板
ID:513522 发表于 2019-4-16 13:00 | 只看该作者
消抖不添加不会导致实验结果显示不出来
回复

使用道具 举报

5#
ID:401564 发表于 2019-4-16 15:53 | 只看该作者
你这个程序加不加都是一样,不管是仿真还是实际电路,结果都会是你想要的样子
抖动只是在接下按键到按键完全接触这一段时间之内产生的概率比较大,也不一定会有抖动的,大概也就是几十mS左右.
你这个程序只是按下去之后就不亮而已,接的过程中可能抖动那么几十下,但肉眼却不出来,所以,结果肯定就是按下就灭灯,放开就亮灯
但如果是:按下就加1,中间没有去抖动的,再按下又加1的话,结果就不是你想要的样子了
回复

使用道具 举报

6#
ID:516588 发表于 2019-4-24 18:45 来自手机 | 只看该作者
难道不应该是d1=0才亮吗?来自小白的疑问
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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