打印

这样对不对

[复制链接]
5449|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lium|  楼主 | 2011-4-27 22:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
P0.4外接独立式按键。按下时低电平有效。
想法一:(失败)这个方法我感觉好些,但实验结果失败
void main ()
{
        SP=0x5f;   
      TMOD=0x01;
     TH0 = 0x3c;
     TL0 = 0xb0;
    TR0=1;
     ET1 = 1;
     ET0= 1;
     EA= 1;
     req= 0;
     busy= 1;
        while (1)
     {      
           if (flag_b==1)
         {
             if (P0_4==0)
          {
            delay(4);
             if (P0_4==0)
           {
             ////do  something  2,用方法一只能something  2只能做一次??
              why?????
           }
         }
         flag_b=0;
        }
     }
void t0(void) interrupt 1 using 0
{  
  bit   flag;
  uchar t02s;
  TH0 = 0x3c;
  TL0 = 0xb0;
  TR0=1;
  t02s++;
  if(t02s==2)
  {                 
   t02s=0;
   flag=~flag;
  }
  if(flag==1)
  {
   /////do   something  1
   flag_a=1
  }              
}
想法二:(实验成功,但不知道妥不妥,合理不合理,自己感觉在中断里检测按键不是很合理)
void main
{
  TMOD=0x01;
  TH0 = 0x3c;
     TL0 = 0xb0;
     ET1 = 1;
     ET0= 1;
     EA= 1;
     req= 0;
     busy= 1;
    while (1);
}
void t0(void) interrupt 1 using 0
{  
  bit   flag;
  uchar t02s;
  TH0 = 0x3c;
  TL0 = 0xb0;
  TR0=1;
  t02s++;
  if(t02s==2)
  {                 
   t02s=0;
   flag=~flag;
  }
  if(flag==1)
  {
      ///// first  do   something   1
           if (P0_4==0)
        {
          TR0=0;///主要是这个 -————合理吗?
          delay(4);
           if (P0_4==0)
           {
               ///// then  do  something  2
           }
          TR0=1;
         }
  }              
}
沙发
guoyt| | 2011-4-27 22:35 | 只看该作者
t02s是需要安静的…

使用特权

评论回复
板凳
lium|  楼主 | 2011-4-27 22:47 | 只看该作者
怎么讲呀???不明白,怎么会跟t02s有关系呢???

使用特权

评论回复
地板
hanwe| | 2011-4-27 22:56 | 只看该作者
楼主都试试呗

使用特权

评论回复
5
yufe| | 2011-4-27 23:04 | 只看该作者
两种方法都行

使用特权

评论回复
6
老鱼探戈| | 2011-5-23 17:04 | 只看该作者
方法一:按键检测一次后,flag_b清零,当然只能工作一次(因为初始化可能是1)
方法二:在中断中检测按键,显然不合理,这叫严重的浪费。
        如果你的中断没有其他重要的实时任务,是可行的,不过为了检测按键就关中断,还是不值得,因为
按键不应该被中断影响到

使用特权

评论回复
7
lium|  楼主 | 2011-5-23 21:55 | 只看该作者
多谢楼上分析,结贴了

使用特权

评论回复
8
dolido| | 2011-5-24 16:13 | 只看该作者
学习拉

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

915

主题

9579

帖子

3

粉丝