- プログラミングの準備:
- MPLAB-Xを使用した新しいプロジェクトの作成:
- 構成レジスターを理解する:
- MPLAB-Xの設定ビットの設定:
- LEDを点滅させるようにPICをプログラミングする:
- 回路図とプロテウスシミュレーション:
これは、PICチュートリアルシリーズの2番目のチュートリアルです。以前のチュートリアル「PICマイクロコントローラー入門:PICとMPLABXの概要」では、PICマイクロコントローラーの基本的なことを学び、必要なソフトウェアをインストールして、間もなく使用する新しいPicKit3プログラマーを購入しました。これで、PIC16F877Aを使用した最初のLED点滅プログラムを開始する準備が整いました。このチュートリアルでは、構成レジスタについても学習します。
このチュートリアルでは、必要なソフトウェアがコンピューターにインストールされており、PICMCUに関するいくつかの適切な基本事項を理解していることを前提としています。そうでない場合は、前のチュートリアルに戻って、そこから始めてください。
プログラミングの準備:
PIC16F877Aを使用することにしたので、XC8コンパイラでデータシートを始めましょう。PIC16F877AデータシートとXC8コンパイラのマニュアルをダウンロードすることをお勧めします。チュートリアルを進めるにつれて、これらを頻繁に参照するからです。実際にプログラミングを開始する前に、MCUの完全なデータシートを読むことをお勧めします。
さて、MPLAB-Xを開いてプログラミングを始める前に、知っておくべき基本的なことがいくつかあります。とにかく、これが私たちの最初のプログラムなので、私はあなたに多くの理論を持った人々を悩ませたくありませんが、私たちはプログラムするときにあちこちで立ち止まり、そのようにあなたに説明します。これらすべてを読むのに十分な時間がない場合は、ページの下部にあるビデオを垣間見るだけです。
MPLAB-Xを使用した新しいプロジェクトの作成:
ステップ1:前のクラスでインストールしたMPLAB-X IDEを起動します。ロードすると、次のようになります。
ステップ2: [ファイル]-> [新しいプロジェクト]をクリックするか、ホットキーCtrl + Shift + Nを使用します。次のポップアップが表示されます。このポップアップから、 スタンドアロンプロジェクト を選択し、[次へ]をクリックする必要があります。
ステップ3: プロジェクトのデバイスを選択する必要があります。したがって、 [デバイス の 選択]ドロップダウンセクションにPIC16F877Aと入力します。完了すると、次のようになり、[次へ]をクリックします。
ステップ4:次のページでは、プロジェクトのツールを選択できます。これは、私たちのプロジェクトのPicKit3になります。PicKit 3を選択し、[次へ]をクリックします
ステップ5:次のページでコンパイラを選択するように求められます。XC8コンパイラを選択して[次へ]をクリックします。
ステップ6:このページでは、プロジェクトに名前を付け、プロジェクトを保存する場所を選択する必要があります。このプロジェクトにBlinkという名前を付けて、デスクトップに保存しました。好みの方法で名前を付けて保存できます。プロジェクトは拡張子.Xのフォルダーとして保存され、MAPLB-Xから直接起動できます。完了したら、[完了]をクリックします。
ステップ7:それだけです!!! 私たちのプロジェクトが作成されました。左端のウィンドウにプロジェクト名(ここでは点滅)が表示されます。それをクリックすると、その中のすべてのディレクトリが表示されます。
プログラミングを開始するには、ソースファイルディレクトリ内にCメインファイルを追加する必要があります。これを行うには、下の画像に示すように、ソースファイルを右クリックして[新規]-> [Cメインファイル]を選択します。
手順8:次のダイアログボックスが表示され、Cファイルの名前を指定する必要があります。もう一度Blinkで名前を付けましたが、選択はあなたに任されています。[ファイル名]列に名前を付けて、[完了]をクリックします。
ステップ9: Cメインファイルが作成されると、IDEは、以下に示すように、いくつかのデフォルトコードを含むファイルを開きます。
ステップ10:これで、Cメインファイルでコードのプログラミングを開始できます。デフォルトのコードは、チュートリアルでは使用されません。それでは、それらを完全に削除しましょう。
構成レジスターを理解する:
マイクロコントローラのプログラミングを開始する前に、その構成レジスタについて知っておく必要があります。
では、これらの構成レジスタとは何ですか、どのように、そしてなぜそれらを設定する必要がありますか?
PICデバイスには、構成ビットまたはヒューズを含むいくつかの場所があります。これらのビットは、 オシレータモード、ウォッチドッグタイマー、プログラミングモード、コード保護 などの基本的なデバイス動作を指定します 。 コードを実行するには、これらのビットを正しく設定する必要があります。そうしないと、実行されていないデバイスがあり ます。 したがって、Blinkプログラムを開始する前に、これらの構成レジスタについて知ることが非常に重要です。
これらの構成レジスタを使用するには、データシートを読み、使用可能なさまざまなタイプの構成ビットとその機能を理解する必要があります。これらのビットは、構成プラグマを使用して、プログラミング要件に基づいて設定またはリセットできます。
プラグマには次の形式があります。
#pragma config settings = state-value #pragma config register = value
ここで、 setting は構成設定記述子(WDTなど)であり、stateは目的の状態のテキストによる説明(OFFなど)です。次の例を検討してください。
#pragma config WDT = ON //ウォッチドッグタイマーをオンにします#pragmaconfig WDTPS = 0x1A //タイマーのポストスケール値を指定します
リラックス!!….. RELAX !!…. RELAX !!…….
私はそれが私たちの頭に行き過ぎていることを知っています、そしてこれらの構成ビットを設定することは初心者にとって少し難しいように思われるかもしれません!! しかし、それは私たちのMPLAB-Xではありません。
MPLAB-Xの設定ビットの設定:
マイクロチップは、さまざまなタイプの構成ビットのグラフィック表現を使用することにより、この疲れるプロセスをはるかに簡単にしました。したがって、これらを設定するには、以下の手順に従うだけです。
ステップ1: [ウィンドウ]-> [PICメモリビュー]-> [構成ビット]をクリックします。以下に示すように。
ステップ2:これにより、以下に示すように、IDEの下部に[構成ビット]ウィンドウが開きます。これは、必要に応じて各構成ビットを設定できる場所です。手順を進めながら、各ビットとその目的について説明します。
ステップ3:最初のビットは発振器選択ビットです。
PIC16F87XAは、4つの異なる発振器モードで動作できます。これらの4つのモードは、2つの構成ビット(FOSC1およびFOSC0)をプログラミングすることで選択できます。
- LPローパワークリスタル
- XTクリスタル/レゾネーター
- HS高速水晶/共振器
- RC抵抗/コンデンサ
私たちのプロジェクトでは20MhzOscを使用しているため、ドロップダウンボックスからHSを選択する必要があります。
ステップ4: 次のビットはウォッチドッグタイマーのイネーブルビットになります。
ウォッチドッグタイマーは、外付け部品を必要としないフリーランニングのオンチップRC発振器です。このRC発振器は、OSC1 / CLKIピンのRC発振器とは別のものです。これは、デバイスのOSC1 / CLKIピンとOSC2 / CLKOピンのクロックが停止している場合でもWDTが実行されることを意味します。通常の動作中、WDTタイムアウトはデバイスリセット(ウォッチドッグタイマーリセット)を生成します。ステータスレジスタのTOビットは、ウォッチドッグタイマーがタイムアウトするとクリアされます。ソフトウェアコーディングでタイマーがクリアされていない場合、WDTタイマーがオーバーフローするたびにMCU全体がリセットされます。WDTは、構成ビットをクリアすることで永続的に無効にできます。
プログラムではWDTを使用していないので、ドロップダウンボックスから[オフ]を選択してクリアしましょう。
ステップ5: 次のビットはパワーアップタイマービットになります。
パワーアップタイマーは、PORからのパワーアップ時にのみ72ミリ秒の固定の公称タイムアウトを提供します。パワーアップタイマーは内部RC発振器で動作します。PWRTがアクティブである限り、チップはリセット状態に保たれます。PWRTの時間遅延により、VDDを許容レベルまで上げることができます。PWRTを有効または無効にするための構成ビットが提供されます。
プログラムでこのような遅延は必要ないので、これもオフにします。
ステップ6:次のビットは低電圧プログラミングになります。
構成ワードのLVPビットにより、低電圧ICSPプログラミングが可能になります。このモードでは、動作電圧範囲のVDDソースを使用してICSPを介してマイクロコントローラをプログラムできます。これは、VPPをVIHHに接続する必要がなく、代わりに通常の動作電圧のままにしておくことができることを意味します。このモードでは、RB3 / PGMピンはプログラミング機能専用であり、汎用I / Oピンではなくなります。プログラミング中、VDDはMCLRピンに適用されます。プログラミングモードに入るには、LVPビットがセットされている場合、VDDをRB3 / PGMに適用する必要があります。
RB3をI / Oピンとして使用できるように、LVPをオフにしましょう。これを行うには、ドロップダウンボックスを使用してこれをオフにするだけです。
ステップ7:次のビットはEEPROMとプログラムメモリ保護ビットになります。このビットがオンになっている場合、MCUがプログラムされると、ハードウェアからプログラムを取得する人は誰もいません。しかし、今のところ、3つすべてをオフのままにしておきましょう。
指示どおりに設定を行うと、ダイアログボックスは次のようになります。
ステップ8: [出力するソースコードの生成]をクリックすると、コードが生成されます。次に示すように、ヘッダーファイルと一緒にコピーして、Blink.cCファイルに貼り付けます。
これで、構成作業が完了しました。すべてのプロジェクトでこの構成を使用できます。しかし、興味があれば、後でそれらをいじることができます。
LEDを点滅させるようにPICをプログラミングする:
このプログラムでは、PICマイクロコントローラーを使用してI / Oピンに接続されたLEDを点滅させます。PIC16F877Aで使用可能なさまざまなI / Oピンを見てみましょう。
上に示したように、PIC16F877には5つの基本的な入力/出力ポートがあります。これらは通常、ポートA(RA)、ポートB(RB)、ポートC(RC)、ポートD(RD)、およびポートE(RE)で表されます。これらのポートは、入力/出力インターフェイスに使用されます。このコントローラでは、「ポートA」はわずか6ビット幅(RA-0からRA-5)、「ポートB」、「ポートC」、「ポートD」はわずか8ビット幅(RB-0からRB-7)です。 、RC-0からRC-7、RD-0からRD-7)、「PORTE」の幅はわずか3ビット(RE-0からRE-2)です。
これらのポートはすべて双方向です。ポートの方向は、TRIS(X)レジスタ(PORT-Aの方向を設定するために使用されるTRIS A、PORT-Bの方向を設定するために使用されるTRIS Bなど)を使用して制御されます。TRIS(X)ビット「1」を設定すると、対応するPORT(X)ビットが入力として設定されます。TRIS(X)ビット「0」をクリアすると、対応するPORT(X)ビットが出力として設定されます。
私たちのプロジェクトでは、ポートBのピンRB3を出力として作成し、LEDを接続できるようにする必要があります。ここでLEDは、PICマイクロコントローラと点滅するためのコードは:
#include
最初に、 #define _XTAL_FREQ 20000000 を使用して外部Crystal周波数を指定しました。次に、 void main() 関数で、RB3を出力 (TRISB = 0X00;) ピンとして使用するようにMCUに指示しました。次に、最後に無限の while ループが使用され、LEDの点滅が永久に続きます。LEDを点滅させるには、LEDを目立った遅延でオン/オフするだけです。
コーディングが完了したら、[実行]-> [メインプロジェクトのビルド]コマンドを使用してプロジェクトをビルドします。これでプログラムがコンパイルされます。次の図に示すように、すべてが正常である場合(本来あるべきことですが)、画面の下部にある出力コンソールにBUILDSUCCESSFULメッセージが表示されます。
回路図とプロテウスシミュレーション:
プロジェクトを ビルドし、ビルドが成功した場合 、HEXファイルはIDEのバックグラウンドで生成されます。このHEXファイルは以下のディレクトリ内にあります
他の場所に保存した場合は、異なる場合があります。
それでは、以前にインストールしたProteusをすばやく開いて、このプロジェクトの回路図を作成しましょう。このプロジェクトの範囲外であるため、これを行う方法については説明しません。しかし、心配しないでください、それは以下のビデオで説明されています。指示に従って回路図を作成すると、次のようになります。
出力をシミュレートするには、Hexファイルをロードした後、画面の左下隅にある再生ボタンをクリックします。MCUのRB3に接続されているLEDが点滅するはずです。問題がある場合はビデオをご覧ください。それでも解決しない場合は、コメントセクションを使用してください。
これで、PICマイクロコントローラーを使用して最初のプロジェクトを作成し、シミュレーションソフトウェアを使用して出力を検証しました。プログラムを調整して、結果を観察します。次のプロジェクトで会うまで。
ちょっと待って!
次のプロジェクトでは、これを実際のハードウェアで機能させる方法を学習します。そのためには、次のツールを用意しておく必要があります。それまではHAPPYLEARNING !!
- PicKit 3
- PIC16F877A IC
- 40ピンICホルダー
- パフォーマンスボード
- 20MhzクリスタルOSC
- メスとオスのバーグスティックピン
- 33pfコンデンサ-2Nos
- 680オームの抵抗器
- 任意の色のLED
- はんだ付けキット。