您所在位置: 网站首页 / 文档列表 / 嵌入式开发 / 文档详情
单片机与独立按钮.doc 立即下载
上传人:yy****24 上传时间:2024-09-08 格式:DOC 页数:7 大小:57KB 金币:12 举报 版权申诉
预览加载中,请您耐心等待几秒...

单片机与独立按钮.doc

单片机与独立按钮.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

12 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

功能:按一下数码管的数字增加1,当显示F的时候再按下的话,数码管从新变回数字0#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitP27=P2^7;//动态数码管的通电的控制I/O端口sbitK5=P1^4;//独立按钮ucharnum;Unsignedcharcodes8[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//显示数码管数字的编码voiddelay1ms(uinti){ucharj;while(i--){for(j=0;j<115;j++)//1ms基准延时程序{;}}}voidmain(){P27=0;while(1){if(K5==0)//判断按钮是否被按下{delay1ms(15);//避免机械抖动if(K5==0)//再次判断按钮是否被按下{num=num+1;//进行加一操作if(num==16)//当加到16的时候num归0{num=0;}while(!K5);//等待按键释放}}P0=s8[num];}}和这个对比不同之处有1.voiddelay1ms(uinti){ucharj;while(i--){for(j=0;j<115;j++)//1ms基准延时程序{;}}}延时的时间更加长第二个if语句把num=num+1;if(num==16){num=0;}while(!K5);//等待按键释放}都包含进去了在最后才显示数字由此可以得出第一个程序的错误之处在于延迟时间不够长未在后面延迟时间把第二个程序改变之后如下所示#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitP27=P2^7;sbitK5=P1^4;ucharnum;unsignedcharcodes8[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};voiddelay1ms(uinti){ucharj;while(i--){for(j=0;j<115;j++)//1ms基准延时程序{;}}}voidmain(){P27=0;while(1){if(K5==0){delay1ms(15);//没有了if语句开头num=num+1;if(num==16){num=0;}while(!K5);//等待按键释放//没有了if语句的结尾}P0=s8[num];}}会出现如下情况由于机械抖动在释放按钮的时候也会出现,所以在没有第二个if语句的时候就会出现按一个按钮就会可能按一次数字变化多次。但是经过大量实验,现在我观察到的都是按一次变化2次的,所以证明虽然机械抖动容易令到加一程序执行多次,但是释放的时候机械抖动使if(k5==0)的几率还是比较小的,但是由于机械抖动使抖动多次的所以常常会令到if(k5==0)成立但是在加上第二个if语句的时候由于即使令到第一个if(k5==0)成立,但是在成立之后第二个if语句成立的几率太小较了所以,程序不执行加一操作,而是跳过num=num+1;语句,因此即使执行了之后的if(num==16){num=0;}while(!K5);//等待按键释放//没有了if语句的结尾}P0=s8[num];也没有半点影响。因此难以造成按一次出现变化两次的可能性。当去掉第二个if语句的时候在键稳定阶段过去之后,进入抖动阶段的时候有很大的可能性满足if(K5==0),当延时阶段过去之后其实按键已经提起来了,但是又因为没有继续判断K5==0,所以程序就会继续执行下去,继续进
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

单片机与独立按钮

文档大小:57KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用

手机号注册 用户名注册
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
登录
手机号登录 微信扫码登录
微信扫一扫登录 账号密码登录

首次登录需关注“豆柴文库”公众号

新用户注册
VIP会员(1亿+VIP文档免费下)
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用