0

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。しかし、ポートP3ではなくポートP1を使用すると、プログラムは正常に書き込みます。

問題はどこだ?

4

1 に答える 1

0

ポート 3 は、多目的の特別に予約された形式timer/read/write/interrupt/です。他のポートは汎用です。port0 と port1 には、ポート 3 をグローバルに定義したくないプルアップがある場合があります。代わりに、プログラムで 16 進数値を使用して P3 を使用できます。

port=0xffそれ以外のport=0xfff

于 2014-01-09T09:22:16.257 に答える