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


PIC−USBIO using BASIC

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
USBインターフェースを内蔵したPICを使ってWindowsパソコンで外部回路を制御するための各種I/O基板の製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第193回]



●PICUSBIO用BASIC説明書(8)BASIC命令(4)PICOUT

また説明していないBASIC命令があることに気がつきました。
PICOUT命令です。
PICOUT命令については[第60回]で初めて説明をしたあとPICUSBIO−03ボードのPIC18F13K50の機能を使う説明の中で使ってきました。
PICOUTに似ている命令にOUT命令があります。
OUT命令はCPUの外部に接続したI/O回路に8ビットのデータを出力する命令です。
普通のBASICではI/Oアドレスは00〜FF(0〜255)なのですがPICUSBIO用BASICではPICUSBIOボードに特化していてボード上に実装している82C55(またはそれに似た働きのI/O回路)のみにアクセスする命令になっています。
そのためOUT命令のI/Oアドレスとして$04よりも大きい値を指定しても上位ビットは無視されて$00〜$03のアドレスとして扱われます。
PICOUT命令はPICUSBIOボードに実装しているPIC18F13K50およびPIC18F2450、PIC18F2550のSFR(Special Function Register)にアクセスするための命令です。
SFRはPICに内蔵されている機能回路を使うための特殊なレジスタの総称です。
たとえばI/Oポートの向きを設定するためのTRISA、TRISB、TRISCやI/Oポートそのものを示すPORTA、PORTB、PORTCなどがその一例です。
PICには沢山のSFRがありますがPICOUTはその全てにはアクセスできません。
PICUSBIOボードのためのシステムプログラムで使っているレジスタを不用意に書き換えたりするとボードが誤動作する可能性があります。
そういうことがないように基本的にシステムの誤動作につながらないと思われるレジスタに限ってアクセスできるようになっています。
PICOUTはPICのSFRレジスタに8ビットの値を書き込むための命令です。
SFRから値を読むためにはPICIN関数を使います。
PICIN関数は後の章で説明をします。
[第60回]ではPICUSBIO−03のみの命令です、と説明しましたが後の回で説明をしましたPICUSBIO−08([第183回])、PICUSBIO−09([第184回])でも同じように使うことができます。
そのほかのPICUSBIOボードではPICOUT、PICINは使えません。
PICOUT、PICINでアクセスできるFSRを以下に示します。

ADCON0,ADCON1,ADCON2,ADRESH,ADRESL,ANSEL,ANSELH,BAUDCON,BRCSTA,CCP1CON,CCPR1H,CCPR1L,CM1CON0,CM2CON0,CM2CON1,ECCP1AS
INTCON,INTCON2,INTCON3,IOCA,IOCB,IPR1,IPR2,LATA,LATB,LATC,PIE1,PIE2,PIR1,PIR2,PORTA,PORTB,PORTC,PR2,PSTRCON,PWM1CON
RCON,RCREG,REFCON0,REFCON1,REFCON2,SLRCON,SPBRG,SPBRGH,SSPADD,SSPBUF,SSPCON1,SSPCON2,SSPMASK,SSPSTAT,T0CON,T1CON
T2CON,T3CON,TMR0H,TMR0L,TMR1H,TMR1L,TMR2,TMR3H,TMR3L,TRISA,TRISB,TRISC,TXREG,TXST,WPUA,WPUB

上記のFSR名はPICOUT命令、PICIN関数のみで使用できます。
上記のFSR名は小文字ではなく必ず大文字で表記します。

実際の使い方については過去回のいろいろなサンプルプログラムで使用していますので参考にしてください。

PIC−USBIO using BASIC[第193回]
2023.3.8upload

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