ホームページ  >  記事  >  シリアルポートの動作を制御するレジスタは何ですか?

シリアルポートの動作を制御するレジスタは何ですか?

WBOY
WBOYオリジナル
2022-07-22 10:53:268784ブラウズ

シリアル ポートの動作モードを制御するレジスタは、シリアル ポート制御レジスタである SCON です。SCON は、シリアル通信方式の選択、受信、送信を制御するために使用され、シリアルのステータスを示します。 SCON はバイトとして使用可能 アドレス指定はビットアドレス指定も可能で、バイトアドレスは「98H」、アドレスビットは「98H~9FH」です。

シリアルポートの動作を制御するレジスタは何ですか?

#このチュートリアルの動作環境: Windows 10 システム、DELL G3 コンピューター。

#シリアル ポートの動作モードを制御するレジスタとは何ですか?

シリアル ポートの動作モードを制御するレジスタは SCON

# です。 #SCON (シリアル コントロール レジスタ) シリアル ポート コントロール レジスタは、シリアル通信のモード選択、受信、送信を制御するレジスタであり、シリアル ポートの状態を示します。 SCON はバイト アドレス指定可能またはビット アドレス指定可能で、バイト アドレスは 98H、アドレス ビットは 98H ~ 9FH です。

構造:

シリアルポートの動作を制御するレジスタは何ですか?作業方法 (SM0 SM1)

(1)モード 0 (SM0 SM1:0 0): シリアル ポートの動作モード 0 はシフト レジスタ I/O モードで、外部シフト レジスタ、拡張 I/O ポート、または外部同期 I/O に接続できます。 Oデバイス。送信動作:「MOVSBUF,A」命令を実行すると送信動作が開始され、TXDによりシフトパルスが出力され、RXDによりSBUFのデータがシリアル化されます。 8 ビットデータ送信後、自動的に TI=1 に設定され、割り込みが要求されます。送信を続けるには、命令によって TI をクリアする必要があります。受信動作:RENはシリアルポート受信イネーブル制御ビットです。 REN=0 で受信禁止、REN=1 で受信許可となります。ソフトウェアがRENを"1"にセットするとRXDポートからfosc/12ボーレートでデータ入力を開始し、8ビットデータを受信すると割込みフラグRIが"1"にセットされます。再度データを受信する前に、ソフトウェアで RI を 0 にクリアする必要があります。

(2) モード 1 (SM0 SM1:0 1): シリアル ポートは 10 ビットのユニバーサル非同期インターフェイスです。 1フレームで送受信されるデータ情報は、スタートビット「0」が1ビット、データビットが8ビット、ストップビット「1」が1ビットの計10ビットです。送信データ:TXDポートからデータを出力し、送信バッファSBUFにデータを書き込むと送信機は送信を開始します。 1 フレームのデータを送信後、割り込みフラグ TI=1 を設定して割り込みを申請し、次のデータを送信できることを CPU に通知します。データの受信: 最初に REN = 1 (データの受信を許可) に設定し、シリアル ポートが RXD からデータを受信します。サンプルが 1 から 0 に遷移すると、スタート ビットが "0" であることが確認され、データのフレームが開始されます。 1 フレームのデータが完了したら、割り込みフラグ RI=1 をセットして割り込みを申請し、CPU に SBUF から受信データを取り込むよう通知します。

(3) モード 2 (SM0 SM1:1 0): シリアル ポートは 11 ビットの非同期通信インターフェイスです。情報フレームの送信または受信には、1 つのスタート ビット「0」、8 つのデータ ビット、1 つのプログラマブル ビット、および 1 つのストップ ビット「1」が含まれます。データの送信:送信前に、通信プロトコルに応じてソフトウェアでTB8に「パリティビット」または「データ識別ビット」を設定し、送信するデータをSBUFに書き込み送信機を起動します。送信プロセスは、SBUF を宛先レジスタとして任意の命令を実行し、8 ビット データを SBUF にロードし、さらに TB8 を送信シフト レジスタの 9 ビット目にロードして、TXD (P3.1) から開始します。 1 フレームのデータを出力します。データ受信:シリアルポートがデータを受信できるようにするために最初にREN=1を設定し、RIを"0"にクリアします。そして、SM2のステータスと受信したRB8のステータスに基づいて、シリアルポートは情報到着後にRI=1を設定し、CPUにデータ受信を通知する割り込みを掛けるかどうかを判断します。 SM2=0の場合、RB8が"0"でも"1"でもRI=1となり、送信された情報はこのシリアルポートで受信されます。 SM2=1、RB8=1 のときは、複数台通信の場合、受信する情報が「アドレスフレーム」であることを意味しますので、このとき RI=1 に設定すると、シリアルポートは受信アドレスを受信します。 SM2=1、RB8=0の場合、複数台通信の場合、受信した情報は「データフレーム」ですが、スレーブには送信されません。このとき、RIは「」に設定されません。 1」のため、SBUF 内の受信情報データ フレームが失われます。

(4) モード 3 (SM0 SM1:1 1): ボーレート可変の 11 ビット非同期通信モードで、ボーレートの違い以外はモード 2 と同じです。 。

関連知識の詳細については、

FAQ

列をご覧ください。

以上がシリアルポートの動作を制御するレジスタは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。