广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    单片机中开关的编程技巧(不适用于按键)

    来源:网络收集  点击:  时间:2024-03-05
    【导读】:
    对于一个拨码开关的检测会影响其他程序执行时可以对该拨码开关进行即用即检测的方法,就是程序不用一直检测开关的状态,只有在开关改变状态时检测一下,状态不变时不检测,可以先定义一个变量,在程序初始化时将开关的状态赋给该变量使这两个变量值相等,然后在检测开关状态时加一个判断,只有在两个值相等的时候才能进入检测开关状态的函数,检测完以后将其中一个值改变使两个变量值不等,这样下一次就不会进入判断从而不会再去检测开关状态,只有当改变开关状态后使两个变量值再一次相等才会在次进入判断工具/原料moreKeil uVision5方法/步骤1/4分步阅读

    先定义开关所使用的引脚资源和一个变量:

    sbit AMP_POWER = P3^0;

    uchar AMP_POWER_VAL;

    2/4

    然后在程序初始化时使两个值相等:

    AMP_POWER_VAL = AMP_POWER;

    3/4

    然后在检测开关状态之前先判断一下:

    if(AMP_POWER_VAL==AMP_POWER) //这样写程序最开始会执行一遍

    {

    if(AMP_POWER==1)

    {

    /*条件成立时需要执行的程序*/

    }

    else

    {

    /*条件成立时需要执行的程序*/

    }

    AMP_POWER_VAL=~AMP_POWER;

    }//如果此处改为 =,判断改为 != 程序最开始不会执行

    4/4

    在检测完状态后将开关值取反后赋给所定义的变量,这样下一侧再执行时会因为两个值不一样而不能进入检测函数,只有在拨动开关后两个变量值一样厚才能进入,这样也大大提高了程序的运行效率。

    注意事项

    这种方法不是按键,因为按键按下的时候是一种状态,松手后又是另外一种状态,而开关不一样,拨到某种状态他会保留此状态直至下次改变为止。

    这里所说的状态只有高电平(1)和低电平(0)两种状态

    编程
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_248209.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-05 10:22:25  耗时:0.025
    0.0247s