LIST P=PIC16F88
#INCLUDE<P16F88.INC>
__CONFIG _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_OFF &
_PWRTE_ON & _WDT_OFF & _HS_OSC
__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF
VAR1EQU 0x20
VAR2 EQU 0x21
ORG0
start
BCF STATUS,RP1
BSF STATUS,RP0 ;bank1へ移動
CLRF TRISB ;PORTBをすべて出力
MOVLW 0xff
MOVWF TRISA ;PORTAをすべて入力
MOVLW x05 ;コンパレータ1つのみ使用
MOVWF CMCON
BCF STATUS,RP0 ;bank0へ移動
CLRW
MOVWF PORTB
MOVLW 0xff
MOVWF PORTA
18ピンのPIC16F88の内蔵アナログコンパレータ(RA1/AN1とVINRA2/AN2/CVREFが入力、C2OUTが出力の1つのみ利用する設定)を使用しPORTBからLEDへ出力し電圧の大小の判定を行いたく、上記のような設定でプログラムをつくりコンパイルは通ったのですが動作せず、
MPLABのデバッグにて確認したところ『MOVWF PORTA』の部分でPORTAのレジスタ値が0x00から変化しておりませんでした。
『BCF STATUS,RP0』まではレジスタ値は変化しており、
STATUSは0x1cでbank0、TRISAは0x3fで入力、ANSELはデフォルトで0x7fでアナログ入力
になっているのですが、何故PORTAが値を入れても変わらないのか原因が分かりません。
分かる方、ご教授頂けますと幸いです。
宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
PORTAをどのように使いたいのかはっきりしませんが、次の3点に注意して下さい。
1.入力設定にしたピンは、プログラムから1/0を制御できません。
あくまでも外部入力のHi/Lowを判断するだけです。(Hiの時→1、Lowの時→0 が保持される)
2.16F88は、初期値ではアナログ設定になっています。(AN0~AN6ピンのみ)
アナログ設定ピンは入力のみで、出力はできません。
通常はデジタル設定にする必要がありますので、ANSELレジスタを変更して下さい。
3.RA5は入力のみで、出力設定にできません。
いずれにしても、使用できるPORTAは少ないですね。
RA0:フリー
RA1:Vin-(コンパレータ用)
RA2:Vin+(コンパレータ用)
RA3:フリー
RA4:フリー
RA5:フリー(入力のみ)
RA6:OSC1(外部オシレータ用)
RA7:OSC2(外部オシレータ用)
言葉足らずでしたら、再度質問して下さいね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 (続質問です No.3)Windows 10 ノートで電源OFF してもWinfi ランプが消えない 14 2023/07/22 19:48
- Visual Basic(VBA) VBAのトグルボタンでのマクロについて質問です 3 2022/10/10 17:23
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- その他(プログラミング・Web制作) 単純なコマンドプロンプトが動きません。 2 2022/04/19 15:21
- Y!mobile(ワイモバイル) スマホ アンドロイド (901ZT) のユーザー補助について 3 2023/05/16 23:23
- その他(趣味・アウトドア・車) アマチュア無線家の方にお伺いします。 今般、Turbo HAMLOGを使い始めました。 入力する際に 1 2022/11/03 19:19
- iPhone(アイフォーン) iPhone初心者です 3 2022/07/28 21:49
- iPhone(アイフォーン) iPhoneのWi-Fi自動接続について 1 2023/05/31 10:16
- デジタルカメラ 「フラッシュ補正+露出補正」連動とは? 2 2022/03/23 00:06
- いじめ・人間関係 コールセンターアルバイトのリーダーのババアがムカつきます。どう思いますか? 5 2022/04/17 19:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
OBS配信すると、マイクが途切れ...
-
プログラムについての質問です...
-
アクセスでエクセルに出力する...
-
Windows Formアプリからコンソ...
-
VBAのExecメソッドで画面を非表...
-
cout と cerrの違い
-
COBOLのMOVEで桁数が異なる場合
-
コンセントの電力は入力と出力...
-
C#でアクセス権限の取得方法が...
-
リッチテキストをテキストに変換
-
printfとputcharの違いは
-
海外の110Vの電気製品を日本で...
-
MMDでavi出力が出来ない
-
コピーしたデータを表中で収ま...
-
1〜50まで順に数字を入力し、3...
-
4Kの外部モニターに出力すると...
-
VBAでテキスト出力時のスペース...
-
【UWSC】WEBページ中の特定文字...
-
VBAでPowerPointからExcelにレ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
コンセントの電力は入力と出力...
-
MMDでavi出力が出来ない
-
OBS配信すると、マイクが途切れ...
-
VBAでテキスト出力時のスペース...
-
cout と cerrの違い
-
COBOLのMOVEで桁数が異なる場合
-
ACCESS クエリ→フォーム...
-
アクセスでエクセルに出力する...
-
VBAのExecメソッドで画面を非表...
-
テキストファイルから特定の文...
-
Windows11対応の3入力1出力 USB...
-
VBAで有効数字の設定
-
スマホのバッテリー消費につい...
-
Excel VBAで値を変えながら、pd...
-
NTTのホームゲートウェイとOCN...
-
定格冷房能力(出力)とは 定格...
-
プログラムについての質問です...
-
PS5をMacBookProに出力したいの...
おすすめ情報