PROTEUSシリアルシミュレーションで遭遇したBUG

521 ワード

51チップマシンでシリアルポート方正iを作成すると、FF~88をシリアルポートデバッグツールで16進数でチップマシンに送信し、P 1ポートLEDランプは正常に表示されますが、00~77をチップマシンに送信すると、P 1ポートはすべて全点灯し、何の変化もありません.デバッグに成功したコードは次のとおりです.
#include 
unsigned char temp;
void main()
{
TMOD = 0x20;
TH1 = 0xfd;
TL1 = 0xfd;
TR1 = 1;

SM0 = 0;
SM1 = 1;

REN = 1;

P1 = 0x00;

	while(1){
		if(RI == 1){
		RI = 0;
		P1 = SBUF;
		}
	}
}

個人的にはシリアル通信設定の順序は非常に重要であり、厳格に手順に従って、データ受信のイネーブルを開始する前に必ず動作モードを設定したほうがよく、SM 0 SM 1が前で、RENが後で、さもなくば初期化のいくつかの混乱に遭遇し、シリアル通信が正常ではない.
PROTEUSシミュレーション図