<紙>さんLOG

「パソコンヲタクの雑記帳」
 PC/Linux系/物理・化学で遊んでいます。
思いついたことを綴っています。

広告

※このエリアは、60日間投稿が無い場合に表示されます。記事を投稿すると、表示されなくなります。

PC:PIC 接続[パラレル編](1)

2008年07月06日 | PIC・マイコン
                                                   日記@BlogRanking
PCのパラレルポート(プリンタポート)を、ActiveBASIC (Ver.4)を用いて直接操作して、
PICと通信する方法をまとめる。

まず、プリンタポートの仕様は、AT互換機パラレルプリンターポートにある。
また、フリー百科事典『ウィキペディア(Wikipedia)』では、パラレルポートといった記述がある。
PCで利用することを考えると、これが分かりやすい。

ですが、Windows XP では、直接操作が許されていないので、IOSCM.SYSを使う。
実際に使うのはその内の、次の2ヶのみである。(メインプログラムと同じ場所に置いておく)
ioscm.sys、vbioscm_DLL.dll

メインプログラムでは、DLL の使用宣言をし、開始処理を呼び、IOを行う。

(段付けのために、先頭に2B空白がある)
'------------------- < Active BASIC > -----------------
' 直接I/O 制御関数群(InpB、OutB)宣言
Declare Function InpB Lib "VBIOSCM_DLL.DLL" Alias "_InpB@4" (ByVal Port As Integer) As Integer
Declare Sub OutB Lib "VBIOSCM_DLL.DLL" Alias "_OutB@8" (ByVal Port As Integer, ByVal dat As Integer)
' 直接I/O 制御 開始/終了処理(IOSCM_Start、IOSCM_Stop)宣言
Declare Function IOSCM_Start Lib "VBIOSCM_DLL.DLL" Alias "_IOSCM_Start@0" () As Integer
Declare Function IOSCM_Stop Lib "VBIOSCM_DLL.DLL" Alias "_IOSCM_Stop@0" () As Integer

Dim addr As Integer, ret As Integer ' 変数定義

ret=IOSCM_Start() ' IOSCM 開始処理をコール
If ret And 1 Then ' エラーの時は直接I/O制御不可のため終了
 Print "IOSCM Init Error!!"
 End
End If ' 以後は直接I/O 制御が可能になる
'
addr=&H378 ' プリンタポート、環境にあわせて変更
'
OutB(addr+2,&H0B) ' データポートを出力モードに設定する。コントロールポートは全てLowに。
OutB(addr,0) ' データポートを全てLowにする。

以下、
 OutB(addr,xxx) ' データポートへ xxx を出力する。
 xxx=InpB(addr+1) ' ステータスポートから入力する。
等で使える。

最後は、
*owari ' 終了
ret=IOSCM_Stop() ' IOSCM 終了処理をコール
End
となる。

なお、データポートを入力モードにするには、
OutB(addr+2,&H2B) ' 入力モードに設定する。コントロールポートは全てLowに。
である。


例えば、ピン#2(データポートの0ビット)をPICに繋いで、スイッチの代わりに使う。
OutB(addr+2,&H0B) ' データポートを出力モードに設定する。
OutB(addr,0) ' スイッチオフ。
OutB(addr,1) ' スイッチオン。
となる。

ついでに、PC上での時間待ちは Sleep(xx) 命令を使う。
xx は ミリ秒単位であるが、実際には15mS 単位に切り上げられる。

お手数をおかけします。2クリック(投票を)お願いします ⇒ 日記@BlogRanking
ジャンル:
ウェブログ
コメント   この記事についてブログを書く
この記事をはてなブックマークに追加
« PIC(15)割込 | トップ | PC:PIC 接続[パラレル... »
最近の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。

あわせて読む

トラックバック

この記事のトラックバック  Ping-URL
ブログ作成者から承認されるまでトラックバックは反映されません。
  • 送信元の記事内容が半角英数のみのトラックバックは受け取らないよう設定されております。
  • このブログへのリンクがない記事からのトラックバックは受け取らないよう設定されております。
  • ※ブログ管理者のみ、編集画面で設定の変更が可能です。