找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机功能怎么实现?

[复制链接]
跳转到指定楼层
楼主
ID:67560 发表于 2014-10-17 21:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在主程序中我写了这段程序,怎么实现bz0=1和 bz0=0两种状态
主程序中,先是bz0=0;当按下按键时bz0=1;但仿真后不能分开两个功能 面向各位请教问题出在哪里了  谢谢

void key2()
{
    bz0=~bz0;
     if(bz0==1)
       {
        ZS=0;
        bz1=1;
         }
  
   
}
void main()
{  bz0=0;

whlie(1)
{
if(bz0==1)
     {
     bz0=0;     //选则英寸界面
     bz1=1;
     ZS=0;      //指示灯亮
     }
     else
      {
       bz0=1;   //选则毫米界面
       bz1=0;
    ZS=1;    //指示灯灭
      }
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:51348 发表于 2014-10-17 22:01 | 只看该作者
不是很懂,感觉你的键盘扫描这里取反不知道什么意思,按键好像需要一个自锁标志,否则运算速度很快,状态也不断在变,那你的程序判断输出肯定也无法成立,论坛里有很多按键程序,你搜一下吧

评分

参与人数 1威望 +50 黑币 +50 收起 理由
admin + 50 + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:67560 发表于 2014-10-17 23:33 | 只看该作者
本帖最后由 hhh275 于 2014-10-17 23:35 编辑

按键进行了更改,可以分开了;但是我现在需要再按一下键就回到bz5=0;也就是bz5第一下制锁,第二下取消制锁的功能  ,谢谢
void key2()
{
   if(S2==0)
         {                    
           delay(10);
                    if(S2==0)
                                        {
                                               bz0=~bz0;
                                           if(bz0==1)
                                                                 {        
                                                                   bz5=1;
                                                                   ZS=0;
                                                                   }
                                                    else
                                                                 {
                                                                 bz5=1;
                                                                 ZS=0;
                                                                 }
                                         }
                                        else
                                        {
                                        bz5=0;
                                         ZS=1;
                                        }
                                }
               

}
void main()
{        while(1)
{ if(bz5==1)
                          {
                           bz1=1;
                           ZS=0;             //指示灯亮
                          }
                          else
                          {
                          bz1=0;
                          ZS=1;             //指示灯灭                          }
      }
}
回复

使用道具 举报

地板
ID:44262 发表于 2014-10-19 00:14 来自手机 | 只看该作者
学习了
回复

使用道具 举报

5#
ID:66840 发表于 2014-10-20 14:27 | 只看该作者
用while语句进行判断,可锁住。if语句只进行一次判断
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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