0

当我使用 AT89C2051 烧录程序时WILLAR,例如:

#include <reg51.h>
#define port P3
void delay(unsigned int); 
void main(void)
{
    for(;;)
    {
       port = 0x0;
       delay(1000);
       port = 0x0ff;
       delay(1000);
    }
}

void delay(unsigned int a)
{
    unsigned int i;
    unsigned int j;
    for(i=0; i<a; i++)
    for(j=0; j<120; j++);
}

它显示一条消息:The data out of range will be ignored。但是如果我使用端口 P1 而不是端口 P3,我的程序会成功烧录。

问题出在哪里?

4

1 回答 1

0

端口 3 是多用途的特殊保留形式timer/read/write/interrupt/。其他端口是通用的。port0 和 port1 可能有上拉,您不想全局定义端口 3,而是可以在程序中使用 P3 和十六进制值

port=0xff代替port=0xfff

于 2014-01-09T09:22:16.257 回答