2025.9.2
前へ

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


超ローコスト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

前へ

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