まだ駆け出しでわからないことだらけで、以下のプログラムをふまえて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件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
PIC16F819はUARTという回路を内蔵していませんので、下記のページのようにには接続できません。
↓http://www.picfun.com/pic19.html
PIC16F84が同様にUART回路なしですので、下記のページが参考になると思います。↓
http://www.picfun.com/equipj30.html
タイマー割り込みを利用しているので難易度は上がりますが、PIC16F819でも利用可能です。
よくわからなければ、また質問してください。
有難うございます。参考にして頑張ってみたいと思います。まだまだ、未熟者ですのでまたわからない事が沢山あると思いますので、その時はまたよろしくお願いします。きっと2,3日したらまた質問させていただくと思います(笑)
No.2
- 回答日時:
はじめまして,ご質問の投稿からずいぶんと時間がたっているようなので,この回答が届くかどうかはわかりませんが,ご参考までに.
いただいたプログラムは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/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# プログラミングの問題です。写真のプログラムの1から10を下のように入力しましたがプログラムが上手くい 3 2022/07/01 23:31
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- Java 動かなくなったのでJavaソースを手直しお願いします。 2 2022/04/30 05:35
- その他(Microsoft Office) Excel 2列分のDATAの並べ替え 1 2023/01/01 17:12
- その他(プログラミング・Web制作) Python - Excel で Webからデータを連続取得したいのですが エラーが出ます 1 2023/07/06 20:08
- Excel(エクセル) 格納したデータを配列のように扱う方法はありますか? 8 2023/06/05 08:53
- PDF ハイパーリンク先の一括変更について 2 2022/03/23 08:13
- その他(プログラミング・Web制作) pythonでDBのカラム名で取得したオブジェクトの値を表示したい 1 2022/05/13 03:41
- C言語・C++・C# 1. 仮想CPU「exmini」を使用して,「$dataからn減算する」プログラムを作成してください 2 2022/07/04 17:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
このプログラミング誰か教えて...
-
PICの逆アセンブル?について
-
サイクロイドの軌跡
-
初心者にEXCELのVBAを教えると...
-
Ryzen 3700(無印)はWin11に対応...
-
VBプログラムをEXCEL VBAに移植...
-
論理回路や全加算機の仕組み
-
オフラインの掲示板
-
サーバーサイドのプログラム言...
-
プログラム初心者でござる。PHP...
-
DLLってなに?
-
自動で施設の空きを通知するプ...
-
API、OCX、DLLって何でしょう?
-
VBS:コンピュータ名を取得し、...
-
プログラミング言語について御...
-
コンソールアプリでファイル選...
-
win版とmac版などがあるのはなぜ?
-
1年無職の彼氏 別れるべきですか?
-
iframe の代用で objectタグを...
-
今職業訓練のパソコン教室行っ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
API、OCX、DLLって何でしょう?
-
VBプログラムをEXCEL VBAに移植...
-
UNIX環境でのCプログラム上でC...
-
このプログラミング誰か教えて...
-
C言語のHP-UXからLinuxへのポ...
-
Ryzen 3700(無印)はWin11に対応...
-
VB.net エラーメッセージを英文...
-
SNMPトラップ情報をC#.netで作...
-
プログラムとは理系ですか文系...
-
現在プログラミングの研修中な...
-
VBS:コンピュータ名を取得し、...
-
C言語でSMTPを使ったプログ...
-
C/C++でチャットソフトを作りた...
-
OSとCPUの関係について
-
DLLってなに?
-
自動で施設の空きを通知するプ...
-
PHP+MySQLで家計簿を作りたい
-
どんなプログラムを自作しまし...
-
コンソールアプリでファイル選...
-
If … then の中の条件式と型に...
おすすめ情報