超ローコストPICWRITERの製作
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
「PICBASICコンパイラ」からスピンオフ!!
過去記事を参照することなどを考えて該当する過去記事は「PICBASICコンパイラ」のまま連載回もそのままとします。
以後は前回記事からの流れで[第236回]からとします。
「PICBASICコンパイラ」はなるべく早く連載を再開したいと考えています。
PICはローコスト、高機能で種類も豊富なお手軽マイコンですがプログラムを書き込むためのWRITERが必要です。
それをできるだけ安価に作ってしまおうというプロジェクトです。
最終的には製品化を考えています(組立キット、完成品)。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第330回]
●PIC16アセンブラ(10)「FSRファイル」は必須ではありません
前回は機能追加したPIC16アセンブラでは#include<p16fxxx.inc>の文は必須ですと書きましたがつい「筆がすべって」しまいました。
追加した機能を有効に利用するには#include文が必要ですが「必須」ではありませんでした。
機能追加前のように通常の変数名と同様に必要なFSR名とともにアドレスを指定すれば問題はありません。
その場合にはFSR名は英大文字ではなくて英小文字で表記します。
PORTAではなくてportaのように表記します。
この場合にはPICの本来のSFR名から離れますから、本来のアドレスを指定すれば別の変数名を使うこともできます。
たとえばPORTA=08である場合にporta=08とすればよいのですがこれをioport1=08のように表記しても誤りにはなりません。
下は機能追加前のPIC16アセンブラをテストするために用意したプログラムを機能追加後のPIC16アセンブラでアセンブルして得られたアセンブルリストです。
0000 ;;;PIC 12F1612 testprogram from pic12f629test.asm 0000 ;25/07/4 25/7/22 for p16asm 0000 ;7/23 7/30 0000 ;clock=4MHz 0000 ; #include <p12f629.inc>;***************** 0000 ; 0000 ; __CONFIG _CP_OFF & _MCLRE_ON & _WDT_OFF & _INTRC_OSC_CLKOUT;*************** 0000 ; 400E FC31 config1=31fc 4010 FF3E config2=3eff 4012 9F3F config3=3f9f 0000 00 cf=0 0000 02 zf=2 0000 01 f=1 0000 00 w=0 0000 ; 0000 08 bsr=08 0000 0C porta=0c;bnk0 0000 0C trisa=0c;bnk=1 0000 19 osccon=19;bnk=1 0000 1A oscstat=1a;bnk=1 0000 0C ansela=0c;bnk=3 0000 20 cntr0=20 0000 21 cntr1=21 0000 ; 0000 org 00 0000 0528 goto start 0002 ; 000A org 05 000A start 000A 0330 movlw 3 000C 8800 movwf bsr 000E 8C01 clrf ansela 0010 0130 movlw 1;bsf STATUS,5 ;bank 1 0012 8800 movwf bsr 0014 6830 movlw 68;PLL disenable,intosc=4MHz 0016 9900 movwf osccon 0018 5830 movlw 58;HFINTOSC 001A 9A00 movwf oscstat 001C 8C01 clrf trisa;clrf TRISIO 001E 8801 clrf bsr;bcf STATUS,5;bank 0 0020 ; 0020 loop 0020 8C01 clrf porta;clrf GPIO 0022 1C20 call t0_5s |
前回お見せした機能追加前のアセンブルリストと同じですけれどこれは機能追加後のPIC16アセンブラでアセンブルした結果のリストです。
今回はPIC16アセンブラについて書きましたがこのことについてはPIC18アセンブラでも全く同じです。
超ローコストPICWRITERの製作[第330回]
2025.9.2 upload
前へ
ホームページトップへ戻る