■ BASCOM-AVR (DEMO) の使用方法 ■

入出力(I/O)ポートの使用方法
 
BASCOM-AVRで、入出力(I/O)ポートを制御する方法です。

 ・AVRは、1つのポートごとに、3つのレジスターを持っています。
 ・下記の図は、ポートBを例にした概略図です。

CONFIG PORT命令で、入出力(I/O)
ポートのデータ方向を設定します。
  ( 0 = 入力 , 1 = 出力 )


PORTB = &Hxx
 
出力に設定したピンは、このレジスターに
書き込んだ内容がポートに出力されます。
 
入力に設定したピンは、このレジスターに
書き込んだ内容で、プルアップ抵抗が
制御されます。 (1でプルアップON)

Pt = PORTB (注意!)
この命令で読み込めるのは、上記で書き
込んだ出力ラッチの内容です。



入力ポートの内容(ポートピンの状態)を
読み込む場合は、PINxを使用します。
 
Pt = PINB


ポートの入出力方向を設定。
 
 ・CONFIG PORT命令の、リファレンス・マニュアルを参照して下さい。


ポートへの出力。
 
 ・ポートへのバイト単位の出力は、変数の代入と同じ書式で行えます。
PORTX = Data Xはポート名。 ( A , B , C , D , E , F )
Dataは、変数または数値定数。
 
 ・ピン単位の出力。
SET PORTX.b
RESET PORTX.b
出力=H
出力=L
Xはポート名。 ( A , B , C , D , E , F )
bはピンの番号。 ( 0 〜 7 )


ポートからの入力。 (ポートピンの状態)
 
 ・ポートからの入力は、変数の代入と同じ書式で行えます。
 ・PRINT命令やLCD命令で、直接表示装置へ出力することもできます。
Data = PINX
Print Bin(PINX)
Xはポート名。 ( A , B , C , D , E , F )
Dataは変数。


ポートBでの設定例。
 
 ・ポートBの、Pin0〜3を入力、Pin4〜7を出力に設定し、入力ピンを内部抵抗でプルアップします。
Config PORTB = &B1111_0000 ' ポートBのPin0〜3を入力、Pin4〜7を出力に設定。
PORTB = &B0000_1111 ' ポートBのPin0〜3を、内部抵抗でプルアップ。
PORTB = PORTB Or &B0000_1111 ' (ポートBの出力状態を保持する場合はこちら)
Print Bin(PINB) ' ポートBの入力状態を表示装置へ出力。


ポートのピン単位で設定する例。
 
 ・PB2を入力に設定し、PB2の内部プルアップを解除する。 (AVRがリセット時の状態)
 ・ポートはハイ・インピーダンス(浮遊状態)になるので、この状態でポートを開放のまま放置
  してはいけない。
  (未使用のポートは、内部プルアップをするか、出力ポートにしておく)
 ・トグルスイッチ等の接続は、必ず[H]Vddレベルか[L]GNDに接続されるように配線する。
 
Config PORTB.2 = Input
Reset PORTB.2
' ポートBのPin2を入力に設定する。
' ポートBのPin2の内部プルアップを解除する。


 ・PB2を入力に設定し、PB2をAVR内部で20〜50KΩの抵抗によりプルアップする。
 ・押しボタンスイッチなどの、OFFの時にオープンになる部品を接続する際に設定する。
  (未使用のポートは、この状態にしておく)
 
Config PORTB.2 = Input
Set PORTB.2
' ポートBのPin2を入力に設定する。
' ポートBのPin2の内部プルアップを有効にする。


 ・PB2を出力に設定し、PB2を[L]レベルにする。
 ・[L]レベルとは、外部からAVRにシンク電流が流れ込む状態。
 
Config PORTB.2 = Output
Reset PORTB.2
' ポートBのPin2を出力に設定する。
' ポートBのPin2を[L]レベルにする。


 ・PB2を出力に設定し、PB2を[H]レベルにする。
 ・[H]レベルとは、AVRから外部にソース電流が流れ出す状態。
 
Config PORTB.2 = Output
Set PORTB.2
' ポートBのPin2を出力に設定する。
' ポートBのPin2を[H]レベルにする。


ポートピンの反転。
 
 ・ポートの入出力方向の設定に関わらず、PINX.bに[1]を出力した場合は、そのポートピンの
  出力状態が反転します。
 ・プログラムでポートの状態を読み込んでからビットを反転させて出力する動作を、ハードウェアで
  行ってくれます。
 
Set PINB.2 ' ポートBのPin2の出力を反転する。




   電子工作の部屋 Top へ 前のページへ戻る