一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 3329|回复: 3

[其他综合] 扫描显示电路,按键防抖时不停显示的方法,不用中断

[复制链接]
发表于 2011-10-8 09:04 | 显示全部楼层 |阅读模式
本帖最后由 gw168sh 于 2011-10-8 09:05 编辑

以前用数码管显示的时候,按下按键要等待按键置高,于是按下按键的时候显示就停止 了,
这样看起来很不舒服,通常的写法就把显示放到中断里面,前天写个小软件,发现个小窍门,不用开中断也可以不间断扫描显示。分享给大家。
呵呵,老鸟看了不要笑,
bit upbz;


if(upbz==1)     //上电的时候给这个按键的标志置一,这样就会进来查key是不是等0.

   if(key_up==0)
   {   
    delay_1ms(1);
     if(key_up==0)
     {
     ad=ad+0x001;
     
     if(ad>=0x3ff) ad--;
      upbz=0;        //一旦key==0,进来后就把这个标志变成0,
    //while(!key_up);   这样这句话就省了,而且即使你常按也不会多加,
     hc595out(ad);//s1
     }  
        }
   }
   if(key_up==1) upbz=1;     //一旦检测到按键变高,就把标志写1,为下次按键按下做准备。
发表于 2011-10-8 12:24 | 显示全部楼层
状态机哈。。
话说如果你使用时间片的话,连软件延迟都可以扔掉。。
回复

使用道具 举报

 楼主| 发表于 2011-10-8 12:33 | 显示全部楼层
状态机哈。。
话说如果你使用时间片的话,连软件延迟都可以扔掉。。
huayuliang 发表于 2011-10-8 12:24 [url=https://www.yleee.com.cn/images/common/back.gif]https://www.yleee.com.cn/images/common/back.gif[/url]



    这就是状态机呀,哈哈,见笑了,还真不知道
回复

使用道具 举报

发表于 2011-10-8 18:04 | 显示全部楼层
回复 3# gw168sh


    俺开始的时候和你一样,当初是学时间片,自然就要用状态变量来判断、切换。。。
不过一直都不知道,后来朋友说,你这就是在用状态机,最简单的状态机。。
之后基本上都是用时间片轮转写程序。。
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-11-5 00:13 , Processed in 0.037842 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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