proteus论坛|仿真论坛
直播中

覃抒怀

13年用户 42经验值
擅长:射频微波与天线
私信 关注
[问答]

51单片机P3口作为按键检测STC89C52下正常,在AT89C52下不正常

    我用51单片机 的P3口作为按键检测,为什么同一段程序在STC89C52下按键起作用,但到了AT89C52按键就不起作用了,但复位后连接端口的LED灯熄灭了,说明程序已经运行了,按键就是不起作用? 懂的请解释下,谢谢!
    我的测试程序如下:
#include
#include
#include
#define uint unsigned int

***it LED=P3^6;
***it BUTTON1=P3^0;               
***it BUTTON2=P3^1;
***it BUTTON3=P3^2;
***it BUTTON4=P3^3;
***it BUTTON5=P3^4;
***it BUTTON6=P3^5;
***it BUTTON7=P3^7;               
               
               
void delay(uint x)
{
uint i,j;
for (j=0;j for (i=0;i<300;i++);
}


void delay1(uint y)
{
uint i,j;
for (j=0;j for (i=0;i<1000;i++);
}
               
       
void main()                   //主函数
{       
        LED=0;               
        while(1)
        {
                if(BUTTON1==0)
                {
                        delay(10);
                        if(BUTTON1==0)
                        {
                                LED=1;
                                delay1(10);
                                LED=0;
                                delay1(1);
                        }
                }
       
                if(BUTTON2==0)
                {        delay(10);
                        if(BUTTON2==0)
                        {
                                LED=1;
                                delay1(20);
                                LED=0;
                                delay1(1);
                        }
                }

                        if(BUTTON3==0)
                {        delay(10);
                        if(BUTTON3==0)
                        {
                                LED=1;
                                delay1(30);
                                LED=0;
                                delay1(1);
                        }
                }

                        if(BUTTON4==0)
                {        delay(10);
                        if(BUTTON4==0)
                        {
                                LED=1;
                                delay1(40);
                                LED=0;
                                delay1(1);
                        }
                }

                        if(BUTTON5==0)
                {        delay(10);
                        if(BUTTON5==0)
                        {
                                LED=1;
                                delay1(500);
                                LED=0;
                                delay1(1);
                        }
                }

                        if(BUTTON6==0)
                {        delay(10);
                        if(BUTTON6==0)
                        {
                                LED=1;
                                delay1(600);
                                LED=0;
                                delay1(1);
                        }
                }

                        if(BUTTON7==0)
                {        delay(10);
                        if(BUTTON7==0)
                        {
                                LED=1;
                                delay1(700);
                                LED=0;
                                delay1(1);
                        }
                }
        }
}               
               
               


回帖(3)

覃抒怀

2013-4-28 21:05:35
没有人遇到过吗?
举报

xudaxi

2013-4-29 08:50:46
应该是单片机速度温度
举报

覃抒怀

2013-5-2 16:48:53
弄好了,是下载器问题
举报

更多回帖

发帖
×
20
完善资料,
赚取积分