基于AT89C51的一个小程序的问题

2019-07-15 17:10发布

#include<reg51.h>
#define uchar unsigned char
void delay(uchar x)
{
        uchar k;
        while(x--)
        for(k=0;k<125;k++){}
} //延时函数

void main()
{
        P1=0x0f;
        if(P1&0x0f!=0x0f)
        {
        delay(10);
        P1=0x0f;       
        while(P1&0x0f!=0x0f)
        {       
                if(P1=0x0e)
                        {
                                P2=0x9f;
                        }
                else
                                P2=0x00;
        }
        }
}

QQ截图20150514152012.png
为什么明明P1满足P1=0x0e的条件但是P2还都是高电位


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
蓝雨LOVE诗
2019-07-16 05:41
#include<reg52.h>
#define uchar unsigned char
void delay(uchar x)
{
        uchar i,j;
                for(i=x;i>0;i--)
       for(j=100;j>0;j--);
               
} //延时函数

void main()
{
        P1=0xf0;
        delay(10);      
        if(P1==0xf0)
        P2=0xff;
        else
        P2=0x00;
                 }这是我改的你的程序,我在protues上仿真过了。可以,我不知道你的要求是什么,我的程序是按下按键显示8。不安按键,不显示。

一周热门 更多>