%E5%9B%9E%E8%B7%AF%E5%9B%B3.jpg

とても簡単な配線で楽しむことができます。

ファームウエアのソースは下記の通りです。
*-------------------------------------------------------------------------------------------------------------------------------*
; LEDを点滅するテストプログラム
; GP0 に接続したLEDを点滅します
;
; アセンブル オプションで、大文字小文字の区別をOFFにすること

list p=pic12f629 ; プロセッサ名変更 PIC12F629 へ
#include ; プロセッサに合わせて、INCファイル変更
errorlevel -302 ; エラーレベル追加


__CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT

; 変数のメモリへのマッピング
CBLOCK 0x20 ; 12F629 の BANK0 メモリはアドレス 0x20~0x5f が利用可能
CNT1
CNT2
CNT3
ENDC

;***************************
; プログラム開始
;***************************
ORG 0x000
GOTO PROGRAM_START

ORG 0x004 ; 不意の割り込みが発生した場合
RETFIE

PROGRAM_START
; GPIO の IN/OUT 設定 (GP0 を OUTPUT)
BSF STATUS, RP0 ; Select Bank 1
MOVLW B'00000000' ; bit0 が GP0 に対応、bit0=0とする
MOVWF TRISIO

; GPIO GP0 ~ GP2 のコンパレータ設定 (OFFとする)
BCF STATUS, RP0 ; Select Bank 0
MOVLW 0x07 ; コンパレータを使わない
MOVWF CMCON

BCF INTCON, PEIE ; 周辺割り込みすべてOFF

CLRF GPIO ; 全I/O クリア

MAIN
;赤色LED
BSF GPIO, 0 ; GP0=1 LED点灯
CALL DELAY_500MSEC ; 0.5秒待ち
BCF GPIO, 0 ; GP0=0 LED消灯
CALL DELAY_500MSEC ; 0.5秒待ち
BSF GPIO, 0 ; GP0=1 LED点灯
CALL DELAY_500MSEC ; 0.5秒待ち
BCF GPIO, 0 ; GP0=0 LED消灯
CALL DELAY_1SEC ; 0.5秒待ち

;緑色色LED
BSF GPIO, 1 ; GP1=1 LED点灯
CALL DELAY_500MSEC ; 0.5秒待ち
BCF GPIO, 1 ; GP1=0 LED消灯
CALL DELAY_500MSEC ; 0.5秒待ち
BSF GPIO, 1 ; GP1=1 LED点灯
CALL DELAY_500MSEC ; 0.5秒待ち
BCF GPIO, 1 ; GP1=0 LED消灯
CALL DELAY_1SEC ; 0.5秒待ち

;赤色・緑色LED
MOVLW B'00000011' ; bit0 が GP0 に対応、bit0=0とする
MOVWF GPIO
CALL DELAY_500MSEC ; 0.5秒待ち
MOVLW B'00000000' ; bit0 が GP0 に対応、bit0=0とする
MOVWF GPIO
CALL DELAY_500MSEC ; 0.5秒待ち
MOVLW B'00000011' ; bit0 が GP0 に対応、bit0=0とする
MOVWF GPIO
CALL DELAY_500MSEC ; 0.5秒待ち
MOVLW B'00000000' ; bit0 が GP0 に対応、bit0=0とする
MOVWF GPIO
CALL DELAY_500MSEC ; 0.5秒待ち

GOTO MAIN

;***************************
; ここからサブルーチン部(時間計算)
;***************************

; 1命令サイクル = 4クロック
; 4MHzクロック時は、1命令は1MHz(=1usec)

DELAY_50MSEC
MOVLW D'50'
MOVWF CNT1

DELAY_50MSEC_LOOP0 ; ((4*250)+5)*50サイクル = 50250サイクル
MOVLW D'250'
MOVWF CNT2

DELAY_50MSEC_LOOP1 ; 4*250サイクル
NOP ; 1
DECFSZ CNT2, F ; 1(no skip), 2
GOTO DELAY_50MSEC_LOOP1 ; 2
DECFSZ CNT1, F ; 1(no skip), 2
GOTO DELAY_50MSEC_LOOP0 ; 2

RETURN

DELAY_1SEC
MOVLW d'20'
MOVWF CNT3 ; 50msec * 20
DELAY_1SEC_LOOP
CALL DELAY_50MSEC
DECFSZ CNT3, F
GOTO DELAY_1SEC_LOOP

DELAY_500MSEC
MOVLW d'10'
MOVWF CNT3 ; 50msec * 10
DELAY_500MSEC_LOOP
CALL DELAY_50MSEC
DECFSZ CNT3, F
GOTO DELAY_500MSEC_LOOP


RETURN


END
*--------------------------------------------------------------------------------------------------------------------------------*

単純にLEDを点滅させるプログラムになっています。

 前回紹介しましたRCDライタの説明書に書かれている
3本のソフトを全て用意していたほうがいいみたいです。

 用意していたほうがいい理由は使用するPIC及びRCDライタ
との問題で使い分けが必要とのことです。

 代表的な書き込みソフトウェア
 ◇PICProg4U(作者:FENG3、フリーソフト)
 ◇IC-Prog(作者:Bonny Gijzen、フリーソフト)
 ◇WinPic(作者:Wolfgang Buscher、フリーソフト)

 また、ファームウエアの開発にもプログラムが必要となりますので
マイクロチップ・テクノロジー・ジャパン株式会社からMPLAB IDEを
DownLoadしインストールする必要があります。
(言語はアセンブラとなります)

56845-1.png


 開発言語の有償版はC言語で開発をすることができます。
 フリー版のC言語開発ツールも有るようです。

※アセンブラによるファームウエアの開発に挑戦することにします。

 さて次回は、このPICテスト基板作成について書きます。

 PICにプログラムを書き込む装置がなければ何も始まりませんので
Webで検索したなかから20ピンまでのPICに対応したRS232C
インターフェースのRCDライタ(ハーフマットで販売されています)
を使用することにしました。

 販売価格はキットで680円・完成品で1,180円と送料
で入手することができます。

RCD%E3%83%A9%E3%82%A4%E3%82%BF.jpg

 RCDライタとパソコンとの接続には、
9ピンオス-9ピンメスのコネクタをもった
ストレートケーブル(シリアルケーブル)も必要
となりますので用意しました。

 さて次回は、このPICにプログラムを書き込むソフトウェアについて書きます。

 Webでいろいろ調べてみたのですが、
PICのシリーズには非常に沢山の種類があり目的によりチョイスしなければ
ならないようです。

 まずは研究が目的なので安価で入手しやすいPIC12F629・PIC12F675から始めてみようと
思います。

選択した2種類のPICはA/D(アナログデジタル)変換機能があるかどうかの違い
だといわれております。

 PICの値段ですが、販売店により多少のバラツキがありますがだいたい1個110円~250円ぐらいです。

※わりとWebの情報が豊富なのでPIC12F629・PIC12F675に決めました。
(工作例・プログラムサンプルが入手しやすいです)
 さて次回は、このPICにプログラムを書き込む道具について書きます。

 PICとは、Peripheral Interface Controller:周辺機器接続制御用ICの略称です。
適切な表現ではないかもしれませんがPICそのものがすでに小さいコンピュータだと
いうことです。

 コンピュータですから当然、演算処理機能・メモリーもあり(小さいですが)
ソフトウェアで制御することができます。

【なぜ今このPICに挑戦しようとするのか!】
 わがままな自分を満足させてくれるハードウエアからソフトウエアまでを
一環してデザインし開発(ソフトウエアも含めて)したいと考えたからです。


pic12f675.gif

 まず必要な情報を収集するところから始めます。
 1.PICの種類
 2.必要な機材
 3.プログラムを開発するための環境

※今回はプロローグなのでここまでとします。
 次回はPICの種類について書きたいと思います。