三浦友和的姐姐和父母:怎么检测不了P1^0和P1^1口的状态?

来源:百度文库 编辑:高考问答 时间:2024/05/01 18:40:03
我的程序要进行两个内循环体的切换,P1^0和P1^1口接上了外电路开关,当P1^0按下时跳出正在执行的循环转到下一个循环,当P1^1开关按下时跳回前一个循环,但我的程序检测不到这两个口的状态,哪位高手能指出我的程序中问题在哪吗?
这是我的程序:

#include <reg51.h>
#include <absacc.h>
#include <intrins.h>
#define DAC0832 XBYTE[0x7F00]
#define uint unsigned int
#define uchar unsigned char
void delay(void)
{uint a=10;
while(a--)_nop_();
}

void main()
{ uint i;
uchar j;

while(1)
{ flag0=1;
flag1=0;

while(1)
{
DAC0832=0xFF;
for(i=0;i<=255;i++);
DAC0832=0x00;
for(i=0;i<=255;i++);
if(P1^0)
break;
}
delay();
while(1)
{
for(j=0;j<255;j++)
DAC0832=j;
if(P1^1)
break;
}
}
}

在main()前加 sbit P1_0=P1^0;和sbit P1_1=P1^1;