找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[求助]有个问题想请教大家

[复制链接]
跳转到指定楼层
楼主
ID:18637 发表于 2009-10-29 22:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

有个问题想请教大家,我是个刚初学单片机的;

一个按键有两个功能,正常延时10毫秒是一个功能,如果按住2秒又是一个功能,用C 51单片机应该怎样实现。

多谢大家。下列程序我就不好意思传上来,实在是菜了,请改正一下。多谢

  if(P0_3==0)
          {
              delay(10);
              if(P0_3==0)
              { 
                   if(P0_3==0)
                    {
                       delay(400);
                       delay(400);
                       
                       if(P0_3==0)
                         {
                               i++;
                              if(i==3)
                                i=0;
                         }
                     }
                   else
                     j++;
     
           }
           
                P3=table2[j];
               while(P0_3==0);

[此贴子已经被admin于2009-10-30 11:32:50编辑过]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:18333 发表于 2009-10-30 16:10 | 只看该作者

if(P0_3==0)
 {
    delay(10);
     if(P0_3==0)
     {  
        if(P0_3==0)
        {
           delay(400);
           delay(400);         
            if(P0_3==0)
            {
               i++;
               if(i==3)
                 i=0;
              }

            else
            j++;
           }

  }

回复

使用道具 举报

板凳
ID:18333 发表于 2009-10-30 16:22 | 只看该作者

这样写会比较正规而且可行的。

 

temp=P0_3;   // 变量temp读取P0_3口的值

if(temp==0)
 {
    delay(10);
     if(temp==0)
     {

        delay(400);

        delay(400);

        if(temp==0)

        {

           i++;

        }  

        else

        {

            j++;

         }

      }

 }

 

if(i==3)

{

   i=0;

}

回复

使用道具 举报

地板
ID:18637 发表于 2009-10-30 21:26 | 只看该作者

多谢了,给小弟指点迷津了

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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