• 締切済み

マイコンPIC16F84Aについて質問です

FoolWordの回答

  • FoolWord
  • ベストアンサー率73% (14/19)
回答No.1

まずは、現在のアセンブルソースを提示してください。 このままでは、何が判らないか判りません。 ざっくりとした流れですが、以下の感じで。 初期化処理  RA0を出力定義  RB0を入力定義 メイン処理  RB0の状態チェック  RA0のON/OFF処理 こんな感じでしょうか?

51885
質問者

お礼

回答ありがとうございます。 そうですね、回路が無いとわかりませんよね💦 写真を撮って貼り付けますので確認して貰えますか?

51885
質問者

補足

写真ではわからないのでプログラムを書いてみます。

関連する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ビットのみ)とせよ。