Renesas Synergy™

FAQ 1006749 : uPD789012の P2.0はどうやってクリアすれば良いのでしょうか。 「AND P2,#11111110B」でOKだと思いましたが、AND命令は SFRが使用できませんでした。

ポートに対する演算には、注意が必要です。
対象の全ポートをポートとして使用する場合は、単に「CLR1 P2.0」命令を使用してください。
兼用機能を使用する場合は、ポートのビット操作に要注意です。uPD789012は、ポート出力ラッチと兼用機能のANDを端子に出力します。ポートの ビット演算では、端子出力の状態をバイト単位で読み出して、ビット演算の結果をバイト単位でポートへ戻します。このため、P20の演算をすると、 TxD(P21)がロウ・レベルなら、バイト読み出しでP21のデータとして0が読み出されるので、P21の出力ラッチに0が書き込まれ、以降TxDとし て機能しません。
このため、ポートに書き出す値をRAMに保存しておき、ポートの内容を書き換えるときに、この値を修正(この場合はビット0をクリア)して、RAMに書き 戻すとともに、P2に出力してください。次の例は、saddr領域にPORT2の名前の変数領域を確保しておき、その値をP2に出力するものです。

    MOV  A,PORT2
    AND  A,#11111110B
    MOV  PORT2,A
    MOV  P2,A

適用製品
UPD78901x

他にご質問がございましたら、リクエストを送信してください