Aプログラムをしましょう。
前回作成したPICプログラマーによってマイコンに書き込みます。
書き込むプログラムを作らないといけないのですが、作成ソフト(MPLAB)はインターネットで無償でDLできます。
MPLABは、マイクロチップテクノロジージャパン社ジャパンのホームページから入手することができます。また、日本語のマニュアルなども配布されていますので、同時に入手しておくとよいでしょう。
あとは、画面の指示に従ってインストールを開始してください。インストールを完了したら、パソコンを再起動します。
PICにプログラムを書き込むまでの手順を示します。
@プロジェクトの作成
Aソースプログラムの入手
Bプロジェクトへの追加
Cアセンブル
DPICへの書き込み
ここでは、8個のLEDで一個飛ばしに4個のLEDが交互に点滅するプログラムを作ってみます。
; ********************************************************
; LED点滅プログラム
; ********************************************************
LIST P=PIC16F84A ;使用するPICを設定
INCLUDE "P16F84A.INC" ;読み込む設定ファイルを指定
; ********************************************************
LEDD1 EQU 0AAH ;LED点灯データ1の設定
LEDD2 EQU 55H ;LED点灯データ2の設定
CNT1 EQU 0CH ;タイマ1用カウント変数
CNT2 EQU 0DH ;タイマ2用カウント変数
CNT3 EQU 0EH ;タイマ3用カウント変数
; ********************************************************
ORG 0 ;プログラムを格納する先頭アドレス
BSF STATUS,RP0 ;バンク1を選択
CLRF TRISB ;ポートBをすべて出力モードに設定
BCF STATUS,RP0 ;バンク0を選択
REPEAT MOVLW LEDD1 ;点灯データ1をWレジスタにセット
MOVWF PORTB ;点灯データ1をポートBに出力
CALL TIMER3 ;1秒タイマの呼び出し
MOVLW LEDD2 ;点灯データ2をWレジスタにセット
MOVWF PORTB ;点灯データ2をポートBに出力
CALL TIMER3 ;1秒タイマの呼び出し
GOTO REPEAT ;繰り返し
TIMER1 MOVLW D'62' ;0.1ミリ秒タイマサブルーチン
MOVWF CNT1
LOOP1 NOP
DECFSZ CNT1,1
GOTO LOOP1
RETURN
TIMER2 MOVLW D'100' ;10ミリ秒タイマサブルーチン
MOVWF CNT2
LOOP2 NOP
CALL TIMER1
DECFSZ CNT2,1
GOTO LOOP2
RETURN
TIMER3 MOVLW D'50' ;1秒タイマサブルーチン
MOVWF CNT3
LOOP3 NOP
CALL TIMER2
DECFSZ CNT3,1
GOTO LOOP3
RETURN
END ;プログラムエンド
;****************************************************
ちょっと、見づらくなってしまいましたが、プログラムはこのようなものです。
本当は、TABキーをつかってきれいに整理するといいんですが。
さあ、これを見て、わけが分かりません。始めてみる人は、全くわけが分かりません。自分も分かりません。
いまいち、命令の対応の仕方が分かりませんが、プログラムを入力していくうちにだんだんと理解し始めてきます。
コピペして動作を確認してみてください。 |