プロが教えるわが家の防犯対策術!

まだ駆け出しでわからないことだらけで、以下のプログラムをふまえてPIC16F819とMAX232C(RS232C?)を接続したいのですが、どうプログラム(アセンブラ)を追加したら、また回路的にどうしたらいいのかわからないので教えてください。以下のプログラム(コメント省略)は、電圧変化により出力(LEDの点灯数の変化)を行ったものです。
LISTp=PIC16F819
#include<P16F819.inc>
__CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF & _LVP_OFF

AD_DATA_HEQU20h
AD_DATA_LEQU21h
WAITCOUNTEQU22h
ORGH'00'
GOTOSTART
ORGH'04'
GOTOSTART
;------------------------------
;初期設定
;------------------------------
START
BSFSTATUS, RP0
BCFADCON1, ADFM
BCFADCON1, ADCS2
BSFADCON1, PCFG3
BSFADCON1, PCFG2
BSFADCON1, PCFG1
BCFADCON1, PCFG0
MOVLWB'00000001'
MOVWFTRISA
MOVLWB'00000000'
MOVWFTRISB
BCFSTATUS, RP0
CLRFADCON0
CLRFPORTA
CLRFPORTB
;-------------------------------
;メインルーチン
;-------------------------------
MAIN
CALLAD_CONVERT
MOVLWb'10000000'
SUBWFAD_DATA_H, W
BTFSCSTATUS, C
GOTO V_UPPER_HALF
GOTOV_LOWER_HALF
V_UPPER_HALF
MOVLWb'11000000'
SUBWFAD_DATA_H, W
BTFSCSTATUS, C
GOTOV_3_4
GOTOV_1_2
V_LOWER_HALF
MOVLWb'01000000'
SUBWFAD_DATA_H, W
BTFSCSTATUS, C
GOTOV_1_4
GOTOV_ZERO
V_3_4
MOVLWb'00000111'
MOVWFPORTB
GOTOMAIN
V_1_2
MOVLWb'00000011'
MOVWFPORTB
GOTOMAIN
V_1_4
MOVLWb'00000001'
MOVWFPORTB
GOTOMAIN
V_ZERO
MOVLWb'00000000'
MOVWFPORTB
GOTOMAIN
;---------------------------------
;A/D 変換サブルーチン
;---------------------------------
AD_CONVERT
MOVLWB'10000001'
MOVWFADCON0
CALLWAIT_100U
BSFADCON0, GO
BTFSCADCON0, GO
GOTOADLOOP
MOVFADRESH, W
MOVWFAD_DATA_H
MOVFADRESL, W
MOVWFAD_DATA_L
RETURN
;------------------------------------------------------------
;100usec ( 100usec = 0.2u/Cycle at 20MHz x 500 )
;------------------------------------------------------------
WAIT_100U
MOVLWD'165'
MOVWFWAITCOUNT
WAIT_100UL
DECFSZWAITCOUNT,F
GOTOWAIT_100UL
RETURN
END
長くなりましたがご教授どうかお願いします。

A 回答 (2件)

PIC16F819はUARTという回路を内蔵していませんので、下記のページのようにには接続できません。


http://www.picfun.com/pic19.html

PIC16F84が同様にUART回路なしですので、下記のページが参考になると思います。↓
http://www.picfun.com/equipj30.html
タイマー割り込みを利用しているので難易度は上がりますが、PIC16F819でも利用可能です。
よくわからなければ、また質問してください。
    • good
    • 0
この回答へのお礼

有難うございます。参考にして頑張ってみたいと思います。まだまだ、未熟者ですのでまたわからない事が沢山あると思いますので、その時はまたよろしくお願いします。きっと2,3日したらまた質問させていただくと思います(笑)

お礼日時:2007/08/27 19:26

はじめまして,ご質問の投稿からずいぶんと時間がたっているようなので,この回答が届くかどうかはわかりませんが,ご参考までに.



いただいたプログラムはA/D変換のテストプログラムなので,経験の無い私にはお答えしかねるのですが,一般論で申し上げるのであれば,他の方のソースを読み,カットアンドコピー&修正しながら習得してゆけばよろしいかと思います.

あまり良い例とは言えないかもしれませんが,私も趣味でPICをいじっていて,ブログにその有様を公開しています.
http://fp-masamichi.cocolog-nifty.com/pic/

特段の目的も無く,趣味の日記代わりですが.今はRS-232CやデジタルI/O(液晶表示やスイッチパネルなど)制御を対象に,PIC16F88に厚くなっています.同じ16Fシリーズですからアセンブラは共通ですが,ご質問のPICとは異なります.PIC88はMax232等と組み合わせてRS-232C通信を実現するための非同期シリアルコミュニケーションI/F(UART)を内蔵しているタイプです.強力なPICですが,16F84Aよりも安いんですよ(秋月価格:18PinDIPタイプは230円です).

2008/1/2の日記に公開したソースには,RS-232Cの簡単なテストソフトが入っています.暇さえあればRS-232Cへ"Hello World!!"とのべつ幕無し送信しまくるだけのものですが,Windowsマシン+秋月のUSB-232C変換機にテラターム(フリーのターミナルソフト)を起動して38.4KBpsで連続受信しています.(ごくたまにPIC側の送信ミスなのか,テラターム側の受信こぼれが発生しますが,実用上は全く問題なく動作しています)もちろん,受信側も動作確認は済んでいます.

回路図も以前の記事に添付しています.ただ,RS232Cのドライバレシーバには,MAX232ではなく,もっと格安なADM3202を使っていますが.

こんなに小さくて安いCPUですが,侮る無かれ,本当に奥が深いですね.お互い,楽しみましょう.

参考URL:http://fp-masamichi.cocolog-nifty.com/pic/
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!