2021-03-01から1ヶ月間の記事一覧
今回は、前回の発展型として、4桁の青色発光7セグメント表示器を駆動します。 下は、使用する4桁の青色発光7セグメント表示器の規格です。 使用する4桁の青色発光7セグメント表示器は、内部でダイナミック点灯方式用に結線されており、配線の手間が少…
前回は、カソードコモン7セグメントLED表示器を点灯させましたが、 今回は、回路とプログラムを少し変更して、アノードコモン7セグメントLED表示器を点灯させました。 ピンアサイン表の左側がアノードコモンで右側がカソードコモンです。 型番の最後…
前回までで、回路は決まったので、7セグメントLEDを2個をダイナミック点灯するプログラムを組みます。 下のプログラムが組んだプログラムです。 まず、プログラムの各行の説明。 プログラムの31行までは、初期設定です。 31行のdata配列の初期…
前回は7セグメント表示器のカソード側の問題点を考えましたが、 今回は、7セグメント表示器のアノード側の問題点を考えます。 上の回路で、7セグメント表示器のアノード側の問題を考えます。 7セグメント表示器を2個同時(7mA✖2=14mA)くらいなら問題…
今回は、7セグメントLEDを2個以上使う回路の問題点を、改善します。 まず、7セグメント表示器のカソード側の電流が、PICの最大定格を超える件です。 上の回路では、7セグメント表示器のカソード側にトランジスタを入れてスイッチングし、トランジ…
今回から、7セグメントLEDを2個以上使う回路を考えます。 まず、7セグメントLED表示器を2個使うために、2個の7セグメント表示器をポートAとBに下のように接続する回路を考えました。 上の回路では、上の7セグメントLED表示器のDPはPIC…
今回は、7セグメントLED表示器に1~9,0を順次に点灯させるプログラムを作ります。 最初に考えたのは、下のように1から9そして、0を順番に遅延を書きながらデータを書いておく(途中省略してます)というものです、 ですが、これでは、プログラム…
今回は、7セグメントLED表示器に、1~9、0を順次点灯させるプログラムを書く予定でしたが、それには、変数の宣言と配列の宣言の説明が必要です。 変数の事は、”C言語でプログラムを書く。 データを記憶する”で説明しましたが、まだ説明していない部分…
今回から、7セグメントLEDを点灯するプログラムを書きます。 まず、7セグメントLED表示器の各セグメントを点灯させるために、ポートBに書き込む値を決めます。前回で7セグメント表示器をポートBに下のように接続しました。 これを表にして、ポー…
今回は、7セグメントLEDを使う回路を決めます。 いきなりですが、下の回路に決定致しました。 前回書いたように、7セグメントLED表示器の接続は、吐き出し型になっておりますので、プログラムは、アクティブハイ(Hを出力すると点灯)で組みます。 …
今回から、”7セグメントLEDを使って、数字を表示する” を目標とします。 今回使用する、7セグメントLED表示器です。 パラライトというメーカーの、C-551SRDを使います。 この7セグメントLEDの内部接続は、上の図のようになっていますが、判…
for文の説明。 for( i = 0; i < 10; i ++) { j = j + 1; k = j - 1; } PORTA = 0x01; 上はfor文のプログラムです。 for文の動作。 for文が実行されると、まず、i=0 が実行(初期値の設定)されます、 次に、i<10(条件式)が判定され、 i の内…
if文の説明。 if(count < 5000) // )の後ろに;は、不要。 { // { の後ろに;は、不要。 count++; // ここには、複数行の文が書けます。 } // }の後ろに;は、不要。 else // elseの後ろに;は、不要。 { count--; } PORTA = 0x00; 上のプログラムが…
do~while文の説明。 do // doの後ろに;は、不要。{ // { の後ろに;は、不要。count++; // ここには、複数行の文が書けます。 } // }の後ろに;は、不要。 while( count < 5000 ); // )の後ろに;が、必要。 PORTA = 0x00; 上のプログラムがd…
while文の説明。 while( count < 5000 ) // )の後ろに;は、不要。{ // { の後ろに;は、不要。count++; // ここには、複数行の文が書けます。 } // }の後ろに;は、不要。 PORTA = 0x00; 上のプログラムがwhile文です。 while文の動作。 …
プログラムでは、条件式で、真か偽を判定することがよくあります。 条件式が、0になるとき偽と言い、0以外の時を真と呼び、偽を0、真を1で表します。 条件式 number == 0 // 等しい。 number != 0 // 等しくない。 number < 0 // 左が右より小さい。 num…
前回の説明で登場した下のプログラムで計算をします。 count = count + 1; これは足し算。 count = count - 1; これは引き算。 count = count * 1; これは掛け算、掛け算の記号✖は、キーボードにはないので、*を使います。 count = count / 1…
また、出ました、LEDチカチカプログラム。 上のプログラムの 0x07、0x00、0x20 とかはデータです、このデータを使うには、どこかに記憶しておく必要があります、その記憶しておく場所がレジスタです、レジスタには番地が割りふられているのですが、それ…
下のプログラムは、LEDチカチカで作ったプログラムです。 上のプログラムで、文字が強調(mainの文字)されていたり、色文字になっている所がありますが、これは、MP LAB が、プログラムの命令やレジスタ名として認識している場合です、認識していな…
前回までのLEDチカチカ目標のブログでは、LEDチカチカに必要最低限のプログラムの書き方しかかきませんでした。 今回から、C言語でプログラムを書く、書き方を書きます。 上のプログラムは、コンフィギュレーションの設定と、main関数を書いたも…
前回でプログラムは出来上がりましたので、PICに焼いて、動作確認です。 youtu.be 上の動画のように、無事、赤色LEDと黄色LEDを点滅させることができました。 上の方にある白色LEDは、電源表示用です、これの点灯で電源のオンが分かります。 今…
LEDを点滅させるには、プログラムをどう書けばよいか。 簡単には、上のように、PORTB = 0x00、PORTA =0x00 と PORTB = 0x20、PORTA =0x02 の命令を交互に書けばできそうですが、同じことの繰り返しです。 こんな時に、一塊の命令群を繰り返してくれる命…
前回までで、LEDを点灯させることができました。 今回は、黄色のLEDを追加して、赤色LEDと黄色LEDを点灯させる。 黄色のLEDを追加配線いたしました。 回路図は、上のようになります、18番ピン(RA1)に、追加のLEDを繋ぎました。 プ…
今回は、出来たプログラムをCコンパイラでビルドして、PIC16F627Aにプログラムを焼き、LEDを点灯させます。 最初に、書いたプログラムに、間違いはないか、コンパイルしてみます。 赤矢印上のマークをクリックします。 ちょっと見にくいですね、必要な部…
LEDを点灯するプログラムを書きます。(使用する文字は全部半角英数字です) が、上のプログラムについて、解説。 1行目・3行目・5行目の//の後に、文が続いていますが、//から行末までは、注釈文と言って、PICに書き込む機械語プログラムには…