- 締切済み
マイコンPIC16F84Aについて質問です
FoolWordの回答
- FoolWord
- ベストアンサー率73% (14/19)
まずは、現在のアセンブルソースを提示してください。 このままでは、何が判らないか判りません。 ざっくりとした流れですが、以下の感じで。 初期化処理 RA0を出力定義 RB0を入力定義 メイン処理 RB0の状態チェック RA0のON/OFF処理 こんな感じでしょうか?
関連するQ&A
- マイコンPIC16F84Aについて質問です
PIC16F84Aを使用して回路製作したいのですが詳しい方がいましたら教えていただけないでしょうか? 内容は、入力に近接センサー5v~24vを使用してセンサーがオンしたらLEDが点灯する回路です。 c言語はわからないので、アセンブル言語で教えていただけないでしょうか? 宜しくお願いします。
- 締切済み
- その他(プログラミング・開発)
- PIC16F84と16F84Aの違い
PICプログラムを勉強中の初歩者です。 ちょっと古い参考プログラムなどはPIC16F84を使ったものがあります、 所が現在市販のPICは16F84Aとなりますが完全な互換性があるのでしょうか。PIC16F873なども"A"が付いてます。プログラムを変更せずにそのままアッセンブルして書き込んで問題が起きないのでしょうか。 アッセンブルはMicrocip社のMPLAB IDE を使いAKIプログラムライターVer 4を使用してます。ご指導よろしくお願いします。
- ベストアンサー
- その他(ソフトウェア)
- PIC16F1827のEEPROMへの書込み
PCM V5.0(PIC用CCS社コンパイラ)を Mplab8.92に組込み、PICkit3を使ってプログラムしています。 PIC16F1827のEEPROMへの書込みがうまくいきません。 RAは入力ポートで固定してあります。 RBは出力ポートでLEDが接続してあります。 テストプログラムは一回のみの動作です。 実機で動作させると RAは固定してあるので当然(4)でLEDが点灯しますが、 実機からCPUを抜き取りMplab上でReadすると EEPROMのアドレス0,1,2は異なるデータであり 動作させるたびに違うデータが書込まれています。 しかし (1) a0=35h (2) a1=a6h (3) a2=93h と定数にすると EEPROMのアドレス0,1,2は正しいデータが 書込まれています。 Q1. a0,a1,a2をポート入力とする場合は CPU自体に何か設定する必要があるのでしょうか? それともプログラムに工夫が必要なのでしょうか? いままで使っていたPIC16F88では このようなことはなかったと思うのですが・・・。 ----- テストプログラム ----- a0 = RA; //(1) write_eeprom (0,a0); a1 = RA; //(2) write_eeprom (1,a1); a2 = RA; //(3) write_eeprom (2,a2); if (a0 == a1 && a1==a2) //(4) RB =255; else RB =0;
- ベストアンサー
- その他(プログラミング・開発)
- PICマイコン16F84Aを使った入出力でつまづいてます。
とても初心者な質問です。 色々調べましたがわかりませんでしたので質問させていただきます。 要するに、PORTAを書き換えてRA0~4につないだ任意のLEDを点灯させたいだけなんですが、うまいこといきません。 LEDの極性は間違いないようです。 以下がソースです。 このソースではb'11111'を転送する事で全てのポートAのLEDを点灯させたいつもりなのですが、実際のテストボードでは何故か RA0,RB3,RB5,RB7が点灯して、もうわけわかりません。どなたかご教授お願いします。 LIST P=PIC16F84A ; INCLUDE P16F84A.INC ; __CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF ORG 0 INIT BSF STATUS,RP0 CLRF TRISA CLRF TRISB BCF STATUS,RP0 ; <メイン> LOOP MOVLW b'11111' MOVWF PORTA GOTO LOOP END
- 締切済み
- その他(プログラミング・開発)
- PICマイコン16F873Aへ書込み
度々こちらの投稿欄で助けてもらってます。 早速のお問合せになりますが、タイトルにあります、 このPIC16F873Aは初めて使用するマイコンです。 今これを使いBポートからLEDを全点灯しようと オンボードにおいて、PIKkit2から書込みするのですが、 BポートのRB6,RB7ピンだけ、点灯しません! この2つのピンにはLEDの他にPICKit2からのPGD,PGC線も接続してます。 他のRB0~RB5ピンまでは点灯します。 試しにRB6,RB7だけ点灯するようなソースコードで書き込んでも、 点灯しません。 そこでお聞きしたいのですが、この2つのピンは書込用しか、 使えないのでしょうか? 出力用として使用するには、何か設定変更でもあるのでしょうか? データシートで検索して見るのですが、なかなかそこの所まで たどり着けません。 簡単な質問で拍子抜けするかも知れませんが、 どなたかお目に触れて、アドバイス頂ける事、願ってやみません。 宜しくお願い申し上げます。
- ベストアンサー
- その他(趣味・娯楽・エンターテイメント)
- PIC16f84AにおけるBポート(RB0-RB…
PIC16f84AにおけるBポート(RB0-RB7)のHレベル時の電圧について いつも参考にさせて頂いています。 PICマイコンによる工作で困っているので、お力添えをお願いします。 現在、PIC16F84Aを使ってスイッチを押したらLEDが点灯するプログラムを作っています。 プログラム通りにLEDは点灯するようになりましたが、 プログラムにより出力を「H」レベルに設定したときの出力ポート電圧が2.2Vぐらいにしかなりません。 (ソース電流となるようにPIC出力端子 --> LED --> 抵抗 --> GNDとつないでます) データシートを眺める限りでは、 V_OH = Vdd-0.7 となっているので、私の予定では4.3V程度が出る予定です。 ソース電流は25mAまで流せるはずなので、仮に電圧が5.0Vでも、 抵抗が330Ωなので制限には引っかかりません。 この回路を応用し、HブリッジICを利用したDCモータの正逆転を行う予定なので、 Hレベルが2.47Vでは困ります。(IC側から「H」レベルと認識されない?) ハードウェアは以下のように設計・製作しています。 Vdd=5.0V(スイッチング電源から) Vss=0V(=GND) 外部クロック=セラミック振動子(10MHz) RA0~RA4までにスイッチをつけ、入力ポートと設定 RB0~RB7までにそれぞれLED+抵抗(330Ω)をつけ、出力ポートに設定 ご教授お願いします。 このURLの回路図と基本的に同じです。(違いは入力ポートの抵抗値など) http://homepage3.nifty.com/mitt/pic/pic6_01.html
- ベストアンサー
- 電子部品・基板部品
- PICマイコンPIC12F509について
これからPICを勉強しようとしているPIC未経験者です。 とりあえず使用するPICはPIC12F509を考えています。ネットの情報量からすると本当はPIC12F683の方が良いのかも知れませんが価格面からPIC12F509を検討しています。 PICはこれから購入しますが一番最初に触るPICマイコンとしてPIC12F509を選択しても大丈夫でしょうか? 一応言語はアセンブラを勉強しようと考えています。また、最初の目標として入力1に5Vがかかった時に出力1から何ミリ秒か遅れて5Vが出力され、入力1の加わる5Vが不定期に素早くON-OFFを繰り返えしてもPICの電源をOFFするまでずっと繰り返し動作する程度の物を組みたいと思っています。 現在の開発環境はPCにMPLAB X IDE v3.26等のソフトをインストール、PICkit3を入手程度です。 先日、MPLAB IPE v3.26を使用しHEXファイルをPIC18F2550に書込みを初めてしてみました。これが初めてのPICとのふれあいです。 以上、PIC知識人の皆さまご教示を宜しくお願い申し上げます。
- ベストアンサー
- 電気・電子工学
- PIC18Fマイコンの使い方
次のような簡単なアセンブラーのプログラムを書いてアセンブルし、PICkit2を使ってマイコン(PIC18F4685)に書き込みましたが、添付の回路図のように組んだLEDとスイッチの回路が働きません。RB7のスイッチを押すとRB3のLEDが点灯し、RB6のスイッチを押すとRB1のLEDが点灯すると思ったのですが。 スイッチを押すとRB7の電位が0Vに落ちますが、RB3の電位はあがりません。 PICマイコンはNorthMicro の評価ボードに乗っていて、Vddは5Vあります。 発振素子はついていません。どこが悪いのでしょうか?詳しい方、どうか教えてください。 Main: ; *** main code goes here *** Memory EQU 0x0C Mem1 EQU Memory+0 ; Mem1 at 0C Time1 EQU Memory+1 ; Time1 at 0D Time2 EQU Memory+2 ; Time2 at 0E Time3 EQU Memory+3 ; Time3 at 0F ; ORG 0 GOTO Start Start ; setting of Port B ; BSF STATUS, RP0 ; 18Fには不要なのでコメントアウト MOVLW b'110000' ; bit 7 & 6 =1, Bit 6 to 0 =0 MOVWF TRISB ; specify port in/out function ; BCF STATUS, RP0 ;18Fには不要なのでコメントアウト MOVLW b'00001010' MOVWF PORTB ; output the data to port B ; main loop Repeat MOVF PORTB, 0 ; read the port B data into W reg ANDLW b'110000' MOVWF Mem1 BTFSS Mem1, 7 ; if 7th bit is '1' then skip the next line ; else execute the next line CALL RotateR BTFSS Mem1,6 ; if 6th bit is '1' then skip the next line ; else execute the next line CALL RotateL GOTO Repeat ; infinite loop ; end of main loop RotateR MOVLW b'00001000' MOVWF PORTB RETURN RotateL MOVLW b'00000010' MOVWF PORTB RETURN
- ベストアンサー
- その他(プログラミング・開発)
- マイコンPIC16F84Aについて
BSF STATUS,RP0 BSF TRISA,0 CLRF TRISB BCF STATUS,RP0 LOOP MOVLW05h MOVWF,PORTB MAIN BTFSC PORT,0 こんな感じです。 入力にセンサーを使用してオンしたらLEDが点灯する回路にしたいのですがプログラムに詳しい方がいましたら教えていただけないでしょうか?
- 締切済み
- その他(プログラミング・開発)
- PICによるLED制御について
大学の講義でPICのLED制御の課題がよくわかりません。 どなたか教えていただけないでしょうか? [問] PIC16F84Aにおいて、動作を実現するプログラムを示せ。 メインルーチンでLED出力の点燈箇所を1秒ごとに巡回させる。 RA3=Low(OFF)のとき、左向きに巡回シフト(RLF命令)させる。 RA3=High(ON)のとき、右向きに巡回シフト(RRF命令)させる。 また割り込みルーチンによって、RA0~RA2の3ビットの値に応じて 点灯速度を変化させる(値が大きいほど速く) ただし、ポートAは全て入力モード、ポートBはRB0以外を出力モードとし(RB0は割り込み用)、ポートBの初期出力を0000100*(LED出力の初期点燈位置は第3ビットのみ)とせよ。
- 締切済み
- 物理学
お礼
回答ありがとうございます。 そうですね、回路が無いとわかりませんよね💦 写真を撮って貼り付けますので確認して貰えますか?
補足
写真ではわからないのでプログラムを書いてみます。