2025.3.20
前へ
次へ
ホームページトップへ戻る


超ローコストPICWRITERの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
「PICBASICコンパイラ」からスピンオフ!!
過去記事を参照することなどを考えて該当する過去記事は「PICBASICコンパイラ」のまま連載回もそのままとします。
以後は前回記事からの流れで[第236回]からとします。
「PICBASICコンパイラ」はなるべく早く連載を再開したいと考えています。
PICはローコスト、高機能で種類も豊富なお手軽マイコンですがプログラムを書き込むためのWRITERが必要です。
それをできるだけ安価に作ってしまおうというプロジェクトです。
最終的には製品化を考えています(組立キット、完成品)。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第238回]



●PIC16F1503(2)テストプログラム

本日は春のお彼岸です。
せめてお彼岸ぐらいは親不孝を詫びに行ってこなければなりません。
気がついたらいつしかだんだんと親の歳に近付いてきています。
為さねばならぬとか為したいことの余りに多く為せぬままに過ぎていく日々を嘆くだけの毎日です。
ということで本日ももう時間がありません。
テストプログラムの紹介だけで終ります。

PIC16F1503のために作成したテストプログラム16F1503TEST.ASMです。
;;;PIC 16F1503  testprogram
;
;
        #include <p16f1503.inc>
;
        __CONFIG _CONFIG1, _WDTE_OFF & _FOSC_INTOSC
;
cntr0=20
cntr1=21
;
     org 00
     goto start
;
     org 05
start
    banksel OSCCON;bank 1
        movlw 68;=4MHz
        movwf OSCCON
    clrf TRISC
        banksel ANSELC;bank3
        clrf ANSELC
        banksel PORTC;bank0
;
t1s:
        call t1ms
        call t1ms
        call t1ms
        call t1ms
        movf cntr1,w
        movwf PORTC
        incf cntr1
        goto t1s
;
t1ms
        call t256us
        call t256us
        call t256us
        call t256us
        return
;
t256us
        nop;1/4
        decfsz cntr0;1/4
        goto t256us;2/4
        return   
;
    end
;

毎度のことですがCONFIGの書き方がPIC16F627などと違っています。
新しいPICを初めて使うときなど大抵はCONFIGのところで悩んでしまいます。
ほんとになんとかならないかなあと思います。
メモリバンクの切り替えにはbanksel命令を使います。
多分擬似命令です。
新しいPICのためのアセンブラではこういう命令が増えてきています。
これも悩むところです。
もっとも確かに使ってみると便利ですけれど。
今まで作ったテストプログラムとほとんど同じで1秒ごとにカウントアップしたレジスタの値をPORTCに出力するだけのプログラムです。
CONFIGで内蔵発振モードを指定しています。
CPUクロックはプログラムでOSCCONに値を設定して4MHzにしています。
このあたりはPICアセンブラの定番ですがPICによって様々なので設定する値についてコメントをよく読む必要があります。


[出典]Microchip Technology Inc.PIC16F1503 DataSheet

4MHzはIRCF=’1101’です。
クロックモードの指定はCONFIGでしていますからSCS=’00’です。
ここからOSCCON=’01101000’つまり68Hを指定することになります。

超ローコストPICWRITERの製作[第238回]
2025.3.20 upload

前へ
次へ
ホームページトップへ戻る