当我使用WILLAR
在AT89C2051上刻录程序时,例如:
#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,我的程序会成功烧录。
问题出在哪里?
答案 0 :(得分:0)
端口3是特殊保留形式timer/read/write/interrupt/
的多用途。
其他港口是通用的。
port0和port1可能有上拉
您不希望全局定义端口3,而是可以在程序中使用带有六进制值
port=0xff
代替port=0xfff