Hello world!

Topics PICC Pro lite mode Exam LCD PWM PICkit2 PICkit3 PIC16F PIC18F14K50 dsPIC30 PIC32MX220

Wikipediaより引用
Hello world(ハロー・ワールド)は、画面上(標準出力)に "Hello, world!"、又は類似の文言を表示するだけの単純なプログラムである。大抵のプログラミング言語の入門書では、このプログラムを作ることを最初の例題としており、ほとんどの場合、新しくプログラミング言語を習得する際に最初に作るのがこのプログラムである。そのため、「世界一有名なプログラム」と呼ばれることもある。また、コンパイラ、開発環境、実行環境が正常にインストールされたことを確認するために、このプログラムを使用することもある。

というように、PICマイコンであれば、LCDに何か表示させたり、少ピンマイコンであればLEDをチカチカさせたりして、確認するのが一般的です。
とりあえず何か動かしたいと思う方の為に、簡単なプログラムを提供する試みです。だんだんと品種を増やして行きたいと思います。

これらのソフトは、一部を除きソースコードやバイナリーは再配布OKです。詳しくはそれぞれの備考欄をご覧下さい。

LCDに文字を表示(標準関数のprintfを使用)

New!

No Device Date/ver 使用ツールとバージョン プロジェクトフォルダ 回路図 ダウンロード
1 PIC16F1823 2012/7/3 v0.01 MPLAB IDE v8.85
MPLAB XC8 v1.00
C:\picsrc\xc8\lcd_printf_test 回路 ALL(zip)
説明 プログラムはstdio.hをインクルードしてprintfを使用しています。
putch関数を使うことでprintfのフォーマットを利用できます。LCD以外にも、sci.hなどの通信出力にも使用可能です。
コンパイルした時に容量が大きくなりますが、簡単に表示部分を作成したい場合に重宝します。
回路 LCDシリアル16F1823の回路と同様です
動作

0.5秒間隔で数字がカウントアップします。10進数と16進数で表示され、0xFFFF(65535)→0,1,2の繰り返しです。
備考
参考
URL
ブログ連動記事「PICプログラムの小技 printf()を使ってラクラクLCD表示」



LEDピカピカ

New!

No Device Date/ver 使用ツールとバージョン プロジェクトフォルダ ダウンロード
1 PIC16F88 2013/4/8 MPLAB IDE v8.90
MPLAB XC8 v1.12
C:\picsrc\xc8\hello_world\led_blink_16f88 led_blink_16f88_20130408-095425.zip
説明 単なるLEDピカピカです。デバイスの生存確認用として利用できます。
回路 RB3(9番ピン)に抵抗220Ω〜1kΩ程度を接続して直列にLEDアノード(一般的にリードが長い方)、
LEDカソード(一般的にリードが短い方)をGNDに接続。

PICマイコンの8を5番ピンをGND、14番ピンを電源に接続。
動作 電源を入れると0.5秒間隔で永久に点滅します。
備考
同梱されているled_brink_16f88.hexをPICkit2などで直接デバイスに書き込めば、16F88の動作確認に利用できます。

No Device Date/ver 使用ツールとバージョン プロジェクトフォルダ ダウンロード
1 PIC32MX220F032B NA MPLAB IDE v8.85 Microchip XC32 compiler C:\picsrc\xc32\ledflashtest ledflashtest_20120716-161638.zip
説明 単なるLEDピカピカです。デバイスの生存確認用として利用できます。
回路

動作 電源を入れると永久に点滅します。
備考 書き込みはPICkit3が必要になります。10MHzの水晶かセラロックを9-10ピンに接続します。セラロックの場合、加工してGNDを引き出します。

注意:この製作例は、参考サイトを元に実験しています。例えばVcapの値、水晶発振子のコンデンサなどはチップの仕様書に記載されている値とは違うことをご了承下さい。そもそもブレッドボードで動かしている事が電気的に推奨されません。

参考サイト:EE design Lab Blinging LED
ブログ PIC32MX220F032BでLEDチカチカ

No Device Date/ver 使用ツールとバージョン プロジェクトフォルダ ダウンロード
1 12F675
12F629
2009/10/16
ver1.0
MPLAB v8.40
Hitech PIC C pro9.65pl1
C:\picsrc\piccpro\hello_world\hello_12f675 hello_12f675_20121230-025225.zip
2 12F1822 2013/1/23 MPLAB8.88
XC8 v1.12
C:\picsrc\xc8\flash_led2_12f1822 flash_led2_12f1822_20130219-124508.zip
説明 単なるLEDピカピカです。デバイスの生存確認用として利用できます。
回路



動作 電源を入れると0.5秒間隔で永久に点滅します。ボタンを押しっぱなしにすると高速点滅します。(12F629/675のみ)
LED評価用ですので、ピエゾからは音はでません。
12F1822はウォッチドッグ機能を利用して4秒毎に点滅します。超低消費で動かすデモとしています。
備考
専用基板のキットを頒布しています。
ご希望の方はこちらからコメントをお願いします
取扱説明書ダウンロード(pdf)


1

2F629で使う場合は、同梱のhello_12f629.hexをお使い下さい。

No Device Date/ver 使用ツールとバージョン プロジェクトフォルダ ダウンロード
1 12F675
12F629
2009/10/16
ver1.0
MPLAB v8.40
Hitech PIC C pro9.65pl1
C:\picsrc\piccpro\hello_world\hello_12f675 hello_12f675_20091020-122531.zip
2 12F1822 2011/4/8 MPLAB v8.63
Hitech PIC C pro9.81
C:\picsrc\piccpro\hello_world\hello_12f1822 hello_12f1822_20110409-180439.zip
ブログでも紹介しています
説明 単なるLEDピカピカです。デバイスの生存確認用として利用できます。
回路
※JP1は3V〜5Vの電源で、1番ピンがプラスです。
動作 電源を入れると0.5秒間隔で永久に点滅します。
備考 12F629で使う場合は、同梱のhello_12f629.hexをお使い下さい。

No Device Date/ver 使用ツールとバージョン プロジェクトフォルダ ダウンロード
1 PIC18F14K50 N/A MPLAB v8.40
HI-TECH C Compiler for PIC18 MCUs v9.63PL3 ANSI C COMPILER
N/A N/A
説明 単なるLEDピカピカです。デバイスの生存確認用として利用できます。
回路 準備中
動作 電源を入れると0.5秒間隔で永久に点滅し、ボタンを押し続けている間は高速点滅になります。
備考 ブログにソースファイルとHEXファイルを公開中


ドレミルーレット

No Device Date/ver 使用ツールとバージョン プロジェクトフォルダ ダウンロード
1 16F84,16F84A,
16F628,16F628A,
16F627,16F627A,
16F648A,
16F88
2009/10/18
ver1.0
MPLAB v8.40
Hitech PIC C pro9.65pl1
C:\picsrc\piccpro\hello_world\hello_16fxx hello_16fxx_20091018-231502.zip
説明 音階付き8段階ルーレットゲーム
回路
※回路図中のU1は代表デバイス名です
動作
※この動画は初期のプログラムの動作であり、現在の動作と異なる部分があります。

電源投入し、S1でスタートします。
ある一定時間経つがS1を押すと減速してLEDがフラッシュし停止します。
ある確率で逆転演出などがあります。
備考 ダウンロードされたzipに各デバイスのhexファイルが入っているので、使用するPICに書き込みます。16F84(A)以外は4MHzのセラロックは不要です。
参考
URL
エアーバリアブルブログ



LCDに文字を表示

No Device Date/ver 使用ツールとバージョン プロジェクトフォルダ 回路図 ダウンロード
1 PIC16F88 2009/11/17
ver1.12
MPLAB IDE v8.40
Hitech PICC Pro Lite mode v9.70
C:\picsrc\piccpro\hello_world\hello_16f688 回路1 ALL(zip)
hex
New
2013/4/7
ver2.00
MPLAB IDE v8.90
MPLAB XC8 v1.12
C:\picsrc\xc8\hello_world\hello_16f88 ALL(zip)
2 PIC16F62X
(16F627,628,648A)
2009/11/17
ver1.23
MPLAB IDE v8.40
Hitech PICC Pro Lite mode v9.70
C:\picsrc\piccpro\hello_world\hello_16f62x ALL(zip)
hex
3 PIC16F690 2009/11/17
ver1.01
MPLAB IDE v8.40
Hitech PICC Pro Lite mode v9.70
C:\picsrc\piccpro\hello_world\hello_16f690 回路2 ALL(zip)
hex
説明 最初は2行に表示させ、5秒後にハートマーク(ユーザー定義キャラクタ)で一文字ずつ埋めていく。それを永久に繰り返す。
回路1
※回路図中のU1は代表デバイス名です
回路2
接続方法
PICkit2に付属しているLow Pin Count Demoボードを使用した場合
[J1] --- [LCD SC1602B]
1<RA5>
2<RA4>
3<RA3>
4<RC5>---< E >6
5<RC4>---<RS >4
6<RC3>---<D7 >14
7<RA0>
8<RA1>
9<RA2>
10<RC0>---<D4 >11
11<RC1>---<D5 >12
12<RC2>---<D6 >13
13<VCC>---<VDD>1 (SC1602B)
14<GND>---<R/W>5---<VSS>2 (SC1602B)

LCDのその他の配線
[LCD SC1602B]<VCONT>3===>VCCとGNDに5K〜10KΩ程度の可変抵抗器の分圧でコントラスト調整
その他のLCDの端子は、すべて空きとする。
動作
備考 hexファイルは16F627(A)、16F628A、16F648Aに使用可能。ローコストLCDシリアル通信モニターの回路で動作可能
16F88使用時、PICkit2を接続したまま、PICkit2アプリケーションを動作させると、PICkit2のデバイスサーチが自動の時、ターゲットのプログラムを書き換えてしまうので、プログラムにコードプロテクトを掛けています。
参考
URL
データシート、使用方法
サンライク社 テクニカルシート (英語)
新日本無線NJU6420B(HD44780互換)データシート(日本語)
オークス電子 OAK8技術資料
アットマークアイティ・モノイスト LCDに文字を表示するプログラム

キャラクターフォント計算
RICKEY'S WORLD CGRAM and Character Building
MODTRONIX ENGINEERING Custom Character Calculator for the Modtronix LCD2S Family of Serial LCD Controllers


時計プログラム(トランジスタ技術2007年8月・9月号付録向け)

No Device Date/ver 使用ツールとバージョン プロジェクトフォルダ ダウンロード
1 dsPIC30F2012 2008/11/ 9 N/A N/A dsPIC30F2012_PICkit2_writetest_sample_clock.zip
説明 PICkit2での書き込みテスト(トランジスタ技術2007年8月・9月号付録)時計プログラム(PICkit2動作テスト向け)

トランジスタ技術の付録に付いてくるPICにCD付属のサンプルコードをビルドしてPICkit2でHEXを書き込んでも動作しません。これは、このプログラムがブートローダーで書き込みを想定しているためです。

このファイルは、予め問題になっている部分を修正して、PICkit2で直接書ける様にしたものです。ブートローダーには初期設定にする処理が入っており、その中でADPCFGというアナログポートかデジタルポートかの切り替えを行っていました。
Pickit2で動かすには、この処理を必要とします。具体的にはADPCFG = 0x03FFを設定しているだけです。
回路 トランジスタ技術2007年8月・9月号を参照下さい
動作 ●接続
dsPIC基板はRUNモードにしておきます。
基板のACアダプタは抜いておくか、電源を切っておきます。
基板とPICkit2を接続しTool ->Check communicationでデバイスを認識させます。
デバイスはdsPIC30F2012が認識され、メッセージに
PICkit 2 found and connected.
PIC Devece Found.
と表示されれば、正常に接続されたことになります。


●Hexファイルの読み込み
PICkit2でFile->Inport Hexよりclock.hexを読み込みます。
すると、PICkit2アプリケーションは、

Warning:Some configuration words not in hex file.
Ensure default values above right are acceptable.
(注意:いくつかのコンフィグレーションはhexファイルにないので標準値が使われる)

というメッセージが出ますが、問題はありません。

●プログラムの書き込み
Writeボタンをクリックすれば書き込まれると思います。

●動作確認
VDD PICkit2の部分を5.0Vにして、ONチェックボックスをチェックします。
3秒以上経つと液晶から

24H CLOCK
00:00:00

という表示になり、1秒毎にカウントすれば、書き込みは成功しています。
ソースコード
備考 このソースプログラム、バイナリーの転載はご遠慮下さい。
参考URL 書庫

事の発端



2013/4/7 PIC16F88用LCDサンプルをXC8 ver1.12に対応
2013/2/19 PIC12F1822用LEDピカピカプログラムを頒布キットに対応
2012/12/30 PIC12F629/675用LEDピカピカプログラムを頒布キットに対応
2012/7/16 PIC32MX220F032B用LEDピカピカ紹介
2012/7/3 PIC16F1823用のLCDテストプログラム公開
2011/4/8 PIC12F1822のLEDピカピカ紹介
2009/11/17 LCDのHello World3種のアップデート
2009/10/27PIC18F14K50のLEDピカピカ暫定公開(リンクのみ)
2009/10/22 dsPIC30F2012の公開を書庫から移動
2009/10/20 LEDピカピカのリンク切れ修正
2009/10/18 PIC16F84Aのドレミルーレット正式公開
2009/10/15 PIC16F84Aのドレミルーレット暫定公開
2009/ 8/ 6 PIC16F690のサンプルを追加
2009/ 1/12 lcd.c修正
2008/11/23 初版作成

(C)2008-2013 air variable All Rights Reserved..

ホーム