PIC独立按键怎么一直响应?????

2020-02-09 09:36发布

#include<pic.h>

void main(void)
{

   TRISB=0XFF; //input
   PORTB=0x00;
   TRISD=0x00; //output
   PORTD=0x00;
   while(1)
      {
         if(RB0==1) //RB0
            {
               RD2=1;
            }

      }
}

当RB0为1时RD2就输出高电平!但是不管RB0是什么状态,程序一运行RD2就直接输出!!为什么呢???请指教!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
15条回答
portx
2020-02-11 04:36
回复【楼主位】andyandanne
#include&lt;pic.h&gt;
void main(void)
{
   trisb=0xff; //input
   portb=0x00;
   trisd=0x00; //output
   portd=0x00;  
   while(1)
      {
         if(rb0==1) //rb0
            {
               rd2=1;
            }
      }
}
当rb0为1时rd2就输出高电平!但是不管rb0是什么状态,程序一运行rd2就直接输出!!为什么呢???请指教!!!
-----------------------------------------------------------------------

楼主把RBPU位的功能给忘记了吧,RBPU为0时使能RB口的弱上拉功能,如果没有外部下拉的话所有位都为1即高电平状态,此时用if(rb0==1) 或if(RB0)都不妥吧,按键设置应为下拉方式工作然后用if(!RB0)或if(RB0==0)或许更好一些

一周热门 更多>