微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > p1口怎么无法赋值,赋值完还全是高电平?求解答

p1口怎么无法赋值,赋值完还全是高电平?求解答

时间:10-02 整理:3721RD 点击:
void KEY(void)
{ uchar v;
  P1=0xfC;           //将键盘端口未按下按键时,按键1,2输入端口为0
if(P1!=0xfC)         //检测是否有按键按下,如果有则hangval必不为0xf8
   {
    YS(10);            //按键去抖动,延时10毫秒
    if(P1!=0xfC)       //确实有按键按下
      {
       v=P1;
switch(v)
{
  case 0xf9:ZZ(0x01);v=0;break;  
  case 0xfa:ZZ(0x02);v=0;break;               
  default:v=0;
}  
      }
           }
}
这是程序,正常不应该是初始仿真p1.0,p1.1是蓝色低电平的吗


检测按键的话,对引脚单独操作就是了,sbit  key1=P1^0;sbit key2=P1^1;然后判断key1, key2的值去执行相应的操作

这个我也知道,不过按理来说这样也没问题吧,怎么赋值不了?求解答,谢谢

这个我也知道,不过按理来说这样也没问题吧,怎么赋值不了?求解答,谢谢

我也试过单独赋值了,不管怎么都是高电平

试试在p1.0,p1.1和地之间各接一个电阻

单片机赋值很另类的,

?

表示好久不玩51了

帮不上你了哦,兄弟

sbit  key1=P1^0;sbit key2=P1^1;
if( key1==0)
{
delay(20);
if( key1==0){while(!key);led=~led}
}就这样的。肯定可以操作的

是不是你其他部分的程序又将这两个引脚置高了,毕竟键盘扫描的时间很短,如果其他程序把引脚置高了,是看不出引脚有置低的,另外按键和电源之间最好有个电阻,不要把引脚直接接电源

我初始已经将P1赋值了,而且其他子程序也没用到P1口

换两个引脚试试,另外定时器的功能有没有开启,这两个引脚好像和定时器的某些功能有关

这个没用到定时器,换个口也试过。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top