• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+
イイね!
2012年10月04日

PICマイコンでオートルーフを作っちゃおう その10

やっと10回になりましたがもう皆さん飽きたでしょ(笑)

朝の頭のスッキリしているうちにプログラム後悔じゃねえ公開です。

入力をちょっと工夫して「トランク」に荷物載ってるときは「オープンしない」ようにもなります。

まだまだ無駄な所も有るでしょうがま~エエでしょう。

ボケ防止には最高っす(爆)

--------------------------------------------------------------------
ご注意!
スペースを空けるのに「全角」使ってますので、このままコピーしてもエラーが出ます。

;-------------------------------------------------------------------------
;     初期設定

           list    P=pic16f84a
           include "p16f84a.inc"

          __CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF


          ORG     0               ;0番地から始めるよ~


           GOTO     MAIN               ;MAINに飛んじまえ~

;-----------------------------------------------------------------------
          ; 割り込み処理

           ORG     4            ;割り込みアドレス
          CLRW
           CLRF     PORTB            ;ポートBクリア(出力停止)
          GOTO     MAIN

;-----------------------------------------------------------------------
          ; メインプログラム

MAIN
           BSF     STATUS,RP0            ;ポートAを全て入力に設定
           MOVWF     TRISA
           MOVLW     H'01'            ;ポートBは0(ゼロ)以外は出力に設定
           MOVWF     TRISB

           MOVLW     90H            ;INT割り込み許可
           MOVWF     INTCON

           BCF     STATUS,RP0            ;ポートBをクリア
           CLRF     PORTB

           CLRW
;----------------------------------------------------------------------
          ; スイッチ入力チエック
LOOP
           BTFSS      PORTA,0            ;オープンSWがONか?
           GOTO      OPEN            ;ONだったら OPENへ


           BTFSS      PORTA,1             ;クローズSWがONか?
           GOTO      CLOSE             ;ONだったらCLOSEへ

           BTFSS      PORTA,2            ;ウインドウSWがONか?
           GOTO      WINDOW            ;ONだったらWINDOWへ

           GOTO      LOOP
;-----------------------------------------------------------------------
           ; オープン動作

OPEN
           MOVLW      010H            ;ポートB4番に5V出力(リレーON)  
           MOVWF      PORTB
           MOVLW      D'255'            ;動作時間 '255'設定
          MOVWF      0EH             ;アドレス0EHに255を入力
           CALL      LOOP3            ;サブルーチンLOOP3を呼び出す

           GOTO      MAIN            ;サブルーチンが終わったら MAIN に戻れ

;------------------------------------------------------------------------
          ; クローズ動作

CLOSE
           MOVLW      020H            ;ポートB5番に5V出力(リレーON)
           MOVWF      PORTB
           MOVLW      D'255'           ;動作時間 '255'設定
           MOVWF      0EH            ;アドレス0EHに255を入力
           CALL      LOOP3            ;サブルーチンLOOP3を呼び出す

          GOTO      MAIN           ;サブルーチンが終わったら MAIN に戻れ
;------------------------------------------------------------------------
          ; ウインドウ動作

WINDOW
           MOVLW      040H            ;ポートB6番に5V出力(リレーON
           MOVWF      PORTB
           MOVLW      D'120'            ;動作時間 '120'設定

           MOVWF      0EH             ;アドレス0EHに120を入力
           CALL      LOOP3            ;サブルーチンLOOP3を呼び出す

           GOTO      MAIN            ;サブルーチンが終わったら MAIN に戻れ

;-----------------------------------------------------------------------

          ; サブルーチン(タイマー)

TIMER1
           MOVLW      D'220'
           MOVWF      0CH

LOOP1
           NOP
           DECFSZ      0CH,1
           GOTO      LOOP1
          RETURN

TIMER2
           MOVLW      D'100'            ;アドレス0DHに100を入力

           MOVWF      0DH
LOOP2
           NOP
           CALL      TIMER1            ;TIMER1を呼び出し(行く)
           DECFSZ      0DH,1             ;アドレス0DH から1を引き算する
           GOTO      LOOP2            ;結果が"0"でなかったら LOOP2に戻ってまた引き算
          RETURN              ;引き算の結果が"0"になったら「CALL」した「次に(下)」へ戻る

LOOP3
           NOP            ;何もしない
           CALL      TIMER2            ;TIMER2を呼び出す(行く)
           DECFSZ      0EH,1
           GOTO      LOOP3
           RETURN


END           END
ブログ一覧 | 日記
Posted at 2012/10/04 07:43:01

イイね!0件



タグ

今、あなたにおすすめ

ブログ人気記事

夏休み5日目は、朝活なし
彼ら快さん

朝の一杯 8/11
とも ucf31さん

今週の晩酌 〜 乾坤一(大沼酒造・ ...
pikamatsuさん

令和7年8月の奥多摩の会
P.N.「32乗り」さん

フィアットやりました。
KP47さん

仙台七夕ツアー2025③ 地元のお ...
まんけんさん

この記事へのコメント

2012年10月4日 8:51
なるほど!!割り込みをどう対処されるのか興味シンシンで見せていただきました。
(><)難しく考えすぎたー・・・
4番地へ飛んだ後の割り込み停止処理やチャッタリング回避処置が無くても緊急停止スイッチならループするだけなので全く問題無さそうですね☆
シンプルイズベストですね♪
コメントへの返答
2012年10月4日 9:17
おはようございます。

プログラムって如何にシンプルに纏めるかですよね。
メモリーの少ない高価な時代で育った人間には(笑)

2012年10月4日 12:31
はじめまして、こんにちは

ちょい気になったものでして(^^;

MOVLW D'1000'
↑これですとLSBしか使われませんよ
MPLABお使いであればWarning出ているとは思いますが
コメントへの返答
2012年10月4日 14:05
はじめまして、ご指摘有難うございます。
まだ初めて2ヶ月なので、どこかに何か有るなとは思ってましたが(笑)

8Bitなので255以上は皆同じですよね。

MPLABではWarningは余り気にしてませんでした。
またご教授お願いしますね。
一応 D'255'に直しました。

有難うございました。



2012年10月5日 11:33
ムズカシヒ・・・・ (;´∀`)
コメントへの返答
2012年10月7日 7:23

そりゃ~爺さんは通信簿オール6だもんね・・・

オール0の人とはちゃうわがな(爆)
2012年10月5日 13:14
こんにちは

どうでも良い事かもしれませんが(^^;;;;;

D'1000'だとコンパイルした時に 3E8H となり
MPLABだとLSB(下位8bit)のみ採用されE8Hとなります。

よって255以上はみな同じでなく

D'1000'の場合だとアドレス0EHには
255ではなく232がセットされる事になります。

MPLABがwarnningじゃなくてerrorにdefaultでしてくれれば
こう言う問題も起きづらいんですが(T_T)
コメントへの返答
2012年10月7日 13:38
こんにちは。

いえいえ・・どうでもエエことではありません(笑)

何か引っかかっていたのですが、お陰様でこれでよ~~~く理解できました。

ついついMPLABではエラーが出なければOK!
と思っちゃいますね。

またまたご指導よろしくお願いいたします(ペコ)

プロフィール

「痛いらしいですね。😢
お大事にしてくださいませ。」
何シテル?   09/06 09:41
ただいま色々な回路を製作済み 製作中です。 ●---自作回路--- ●第01弾 オートルーフ・ウインドウ開閉装置 ●第02弾 ハイマウント・ブレー...
みんカラ新規会員登録

ユーザー内検索

<< 2025/8 >>

     12
3456789
10111213141516
17181920212223
24252627282930
31      

リンク・クリップ

ABS/DSTC故障 
カテゴリ:その他(カテゴリ未設定)
2020/08/10 07:29:35
トランクの雨漏れ対策(その3) 
カテゴリ:その他(カテゴリ未設定)
2020/08/01 20:00:16
CLAMP HOOD 交換 
カテゴリ:その他(カテゴリ未設定)
2020/05/29 08:32:22

愛車一覧

ダイハツ コペン ダイハツ コペン
電装回路を自作した結果運転席が配線だらけになりました(汗、、、)
ダイハツ コペン ダイハツ コペン
ホイールを変えましたので記念に「市原サービスエリア」で
ダイハツ コペン ダイハツ コペン
還暦を期に子供の頃からの夢だった「赤」か「黄色」のオープン・カーに乗る夢をかなえてくれた ...
ダイハツ コペン ダイハツ コペン
はじめまして。 H18年登録 15000K走りの中古「タンレザー」を 購入しました。 最 ...
ヘルプ利用規約サイトマップ

あなたの愛車、今いくら?

複数社の査定額を比較して愛車の最高額を調べよう!

あなたの愛車、今いくら?
メーカー
モデル
年式
走行距離(km)
© LY Corporation