マイクロコントローラ回路

マイクロコントローラ回路

Jump to TINA Main Page & General Information 

TINAはたくさんのPIC、AVR、Arduino, 8051、HCS、STM、ARM、TI-Tiva、TI-Sitara、Infineon-XMC)マイクロコントローラ。 新しいMCUは常に追加されています。 プロセッサ内で実行されているプログラムを表示、変更、およびデバッグすることができます。もちろん、独自のコードを作成することもできます。

TINAのマイクロコントローラにプログラムを提供する方法は2つあります。 標準コンパイラ(MPLAB for PICなど)で作成されたバイナリコードとデバッグファイルを使用することも、組み込みのアセンブラデバッガを使用してTINAで実行およびデバッグするためにアセンブリコードをロードすることもできます。

アセンブリ言語プログラミングによるPICマイクロコントローラを使用した簡単なカウンタ回路の作成

C言語プログラミングによるPICマイクロコントローラを使用した簡単なカウンタ回路の作成

TINAを使った基本的なマイクロコントローラのデバッグ

TINAでは、マイクロコントローラを単独でシミュレーションすることはできませんが、アナログ、デジタル、HDLまたは他のモデルと一緒にシミュレーションすることもできます。

MCUコードの実行と編集

ExamplesMicrocontrollersPicフォルダからPIC Flasher.TSC回路をロードします。

16F73 PICマイクロコントローラを使用した次の回路図は、16F73 PICマイクロコントローラと一緒に表示されます。

マイクロコントローラ回路、画像1

この回路は単純に順方向に1つずつカウントします。 を押す それがどのように機能するかを見るためのボタン。

ディスプレイは1つずつ進みます。

MCUをダブルクリックして、その中のASMコードを確認します。 (クイックスタートマニュアルの詳細を参照してください)。

TINAには、TINAで直接ソースコードを編集したり変更したりできる素晴らしい機能があります。

コードを次のように変更しましょう。

25行の(上で選択した)命令を変更します(コードエディタウィンドウの右下に行番号が表示されます)。

addlwからの01H

02Hを追加する方法

を押して、変更したコードをTINAに保存します。 アイコンをクリックし、開いているMCUウィンドウを閉じます。

を押すと ボタンを押すと、増分は2になります。

変更されたコードは自動的にTINAの.TSCファイルに保存されます。

デバッガを使う

もっと対話的な別のアプリケーションを見てみましょう。

ExamplesMicrocontrollersPicフォルダーからTINAのPIC16F84interrupt_rb0.TSC例をロードします。

押す ボタン。 最初は何も起きていないようです。

ただし、SW-HL1スイッチをクリックすると、スイッチがLowからHighに変わるたびに1ずつ表示が進みます。

PICの割り込み処理機能により、スイッチの変更を検出できます。

それでは、TINAの対話式ASMデバッガを使用して操作をさらに詳しく見てみましょう。

デバッガをアクティブにするには、[解析]メニューの[オプション]を選択します。 次に、[解析オプション]ダイアログボックスの下に示すように、[MCUコードデバッガを有効にする]チェックボックスをオンにします。

OKボタンを押すと、MCUデバッガが表示されます。

を押して、プログラムの実行を段階的に見ていきましょう。 トレースインボタン。

14をクリックした後、プログラムが無限ループに入っているように見えるPT1:ラベルに移動します。

PT1:INCF TEMP、F GOTO PT1

SW-HL1スイッチをクリックして、それを高に変更してください。 (カーソルが上向きの矢印に変わったらクリックしてください)。 デバッガに戻ってをクリックします。 ボタンを2回トレースします。 プログラムは割り込みを認識して


NT_SERV: label.
INT_SERV: INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORT

COUNTERをインクリメントしてポートAにコピーすると、出力は1になります。 この後、プログラムはPT1の「無限ループ」に戻ります。

デバッガでコードを編集する

それでは、デバッガの使い方を示すためにプログラムを少し変更しましょう。 次のようにコピー&ペーストを使用してINCF COUNTER、Fステートメントを複製します。

        INT_SERV:
        INCF COUNTER, F 
        INCF COUNTER, F 
        MOVF COUNTER, 0
        MOVWF PORTA    

今押すと プログラムは尋ねます:

はいを押して もう一度ボタン。 これで、スイッチがLowからHighに切り替わるたびに増分が2になります。

また、デバッガの連続実行モードで回路をチェックすることもできます。 ボタン。

デバッガは高速で実行されますが、スイッチを変更すると、「無限サイクル」が表示された後、割り込みサーバ部(INT_SERV:)にジャンプすることがあります。

ブレークポイントを作る

ステップバイステップモードを使用すると、プログラムの特定のポイントに到達することが不可能になることがよくあります。 たとえあなたが1000歩を踏み出すのに十分な忍耐力を持っていたとしても、プログラムの流れがあなたが望むところへ踏み出すことを可能にしないかもしれません。

特定の行で停止するには、「ブレークポイント」を設定してターゲットステートメントをマークできます。

を使用して、デバッガの連続モードでプログラムを実行します。 コマンドを実行すると、プログラムはマークされたコマンドを実行する前に目的の行で停止します。

これを実証するには、INT_SERV:ラベルの後にある割り込みサーバーのincrementステートメントをクリックして ブレークボタンを切り替えます。

今すぐ 実行ボタン プログラムは「無限サイクル」で実行を開始します。

ブレークポイントを設定しても、コードの実行はブレークポイントに到達しないため停止しません。 ただし、スイッチをLowからHighに変更すると、プログラムはマークされた文で停止します。

   INT_SERV:
             INCF COUNTER, F

今、あなたは一歩一歩どちらかを続けることができます またはランモードで