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


PICBASICコンパイラ

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
まるでインタプリタ。でもコンパイラです。超カンタン超シンプルです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第205回]



●PIC16F84

PIC16F627はBULK ERASEでこけてしまったのですがいつまでもそこにこだわっていると先へ進めません。
前回書きましたように後になって但し書き付きですがPIC16F627も消去できるようになりました。
それについては後で説明することになると思います。
とにかく先に進むことにして、次に書き込みに挑戦することにしたPICはPIC16F84です。
PIC16F84は最初にさわったPICだったと記憶しています。
端子配列はPIC16F627と同じです。
現在はPIC16F84の代わりにその改良型のPIC16F84Aが一般に流通していますがPIC16F84もまだ製造はしているようです。
手持ちを確認したところほとんどは16F84Aでしたが1個だけ16F84が残っていましたのでとりあえずはそれを使ってみることにしました。
PIC16F627はI/OとTIMERのほかにアナログコンパレータが使えましたがPIC16F84はI/Oのほかには8bitのTIMERが1つあるだけです。
実にシンプルなPICです。


[出典]Microchip Technology Inc. PIC16F84 Data Sheet

CPUクロックは10MHzまででオシレータは内蔵していません。
クリスタル発振回路のほかには外付けのRCによるRC発振回路が利用できます。


[出典]Microchip Technology Inc. PIC16F84 Data Sheet

PIC16F84用のテストプログラムです。
;;;pic p16f84 test
;from 16f627test
;25/1/28
;
        #include <p16f84.inc>
        __CONFIG _WDT_OFF & _RC_OSC
;
;R=5.1K,C=100pF FOSC=about1MHz
;
w=0
f=1
c=0
z=2
;
cntr0=20
testcntr=21
testcntr2=22
;
        org 0
        goto start
;
        org 5
start
    bsf STATUS,5 ;bank 1
    clrf TRISA
    clrf TRISB
    bcf STATUS,5 ;bank0
;
testloop
        movf testcntr,w
        movwf PORTA
testloop2
        call t1ms
        decfsz testcntr2
        goto testloop2
        decf testcntr
        goto testloop   
;
;1msec timer
t1ms
        movlw 3e;=62    
        movwf cntr0
t1ms2;16micros
        xorwf PORTB;1
        decfsz cntr0;1
        goto t1ms2;2
        return
;
        end
;

PIC16F627のテストプログラムをもとにしてPIC16F84用に変更しました。

後で気が付いたのですがうっかりしておりました。
ソースプログラムのコメント行が以前に書いたプログラムからそのままコピーしたためにRの値が違っていました。
R=5.1KΩとして計算していますが実際に回路基板に実装しているのは10KΩでした。
下はR、CとFoscの目安になる表です。


[出典]Microchip Technology Inc. PIC16F84 Data Sheet

チップによってかなりばらつきがあるようですし温度の影響もかなりあるようです。
ですからざっくりとした目安でしょう。
R=10KΩ、C=100pFのところを見るとFosc=756kHzとなっています。
PICの1命令クロックはFosc/4ですからこの場合の1命令クロックは189kHzです。
実行時間に直すと1/0.189≒5.3μsになります。
すると上のプログラムのt1ms2の1回の実行時間は5.3×4=21.2μsになります。
t1msはそれを62回実行していますから21.2×62≒1.3msになります。
1msのつもりだったのですが実際の実行時間はそれよりも3割ほど遅い1.3msということになります。
これは後で実際にロジアナで確認してみることにします。

次回に続きます。

PICBASICコンパイラ[第205回]
2025.1.28 upload

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