忍者ブログ

PICのド素人のブログ

10年ほど前にヤフーブログにあった記録をここへ移しました。「PIC16F84Aで作ってみました 」というホームページも運営していました。今はそこも消滅し   http://picdetukutte.toshi-ie.com/PIC16F84A.html   にすべてではありませんが引っ越しています。あわせてご覧いただければ幸いです。

LEDのホタル点灯だーー。PIC12F675(629)

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

LEDのホタル点灯だーー。PIC12F675(629)

この前作った正弦波のプログラムを約束どおりにLED用ホタル点灯に改造したよ。
LED用出力と点灯周期を変更する押しボタンを高速、低速の2つ付けたのだ。
これは押し続けると周期がだんだん高速または低速になっていくものだ。
5V電源の場合、LEDには抵抗200Ωぐらいを直列にしてね。
3Vの場合は100Ωぐらいでいいよ。
押しボタンのピンは5VとPICの足の間に10kΩ抵抗。プルアップって接続だね。
んでPICの足とGNDの間に押しボタンだ。これをGP1,GP2同様に作るのだ。
まあ 一般的な配線なのでわからないときはHPのいろんな回路図を見て気が付いてくれ。
ではプログラムだ 例によってコピペしてASMファイルを作ってちょーだい。
前のプログラムとどこが違うかよーく見てお勉強してね。
勉強しなくても遊べるから安心するよーに。
 

; PIC12F675 SIN波形LED
;           _____________
;  VDD 5V =1;            ;8= 0V VSS
;         =2;(GP5)  (GP0);7=LED
;         =3;(GP4)  (GP1);6=PB LOW
;         =4;(GP3)  (GP2);5=PB HIGH           
;           ______________
              
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 list      p=12f675 ; 翻訳時にリストファイルを作ります
 #include <p12f675.inc> ; 12F675用定義ファイルを読み込みます
 ;ASMファイルでは「;」より右側は読み取りませんので注意書きなり落書きが可能です。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 __CONFIG _CP_OFF & _CPD_OFF & _WDT_OFF & _MCLRE_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT ;4MHz
                                                     ;_HS_OSC ;10MHz
         
 ;↑↑動かす条件です。機種によっていろいろ取り決めはありますが、これらは理屈抜きに覚えてください。  
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 errorlevel  -302 ; 翻訳時に302エラーが出ないようにします
 radix dec  ; 省略時の数値表現を10進数にします。
 ORG 000H
 GOTO INIT
 DATA_0  EQU 20H ;
 DATA_1  EQU 21H ;
 DATA_1A  EQU 22H ; 
 CNT  EQU 23H ;
 SPEED_1  EQU 24H ;
 SPEED_2  EQU 25H ;
     
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;<<<初期化ルーチン>>>
INIT:
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;プログラムは「GOTO」などの命令がない限り下へ下へと降りて行きます。
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 BSF STATUS,RP0   ;BANK1に切り替え STATUS,RP0を1にするという意味
 MOVLW   B'00000110'   
 MOVWF TRISIO                       ;GPIO
 MOVLW   B'10000111'     
 MOVWF OPTION_REG    ;
                         
 CLRF ANSEL
 BCF STATUS,RP0   ;BANK0に切り替え STATUS,RP0を0にするという意味
 MOVLW B'00000111'   ;GP2,GP1,GP0,
 MOVWF CMCON
  CLRF DATA_0  
 CLRF DATA_1  
 CLRF DATA_1A   
 CLRF CNT  
 MOVLW D'128'
 MOVWF SPEED_1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

MAIN0
 CALL PTN_DATA  ;データパターンへ
 MOVWF DATA_1   ;<<PWM分子入力>>
 INCF CNT,F   ;データカウント更新
 MOVLW D'64'   ;データ総数
 SUBWF CNT,W
 BTFSC STATUS,C  ;データ総数カウント完了?
 CLRF CNT   ;YES
     ;NO
MAIN1     ;<<PWM分母入力>> 
 MOVLW D'64'
 MOVWF DATA_0
     ;<<PWM分母入力>> 
 MOVF DATA_1,W
 MOVWF DATA_1A
     ;<<データ値0チェック>>
 MOVF DATA_1,F  ;DATA_1=0?
 BTFSS STATUS,Z  ;
 GOTO MAIN2   ;NO 
 BCF GPIO,0   ;YES
 GOTO MAIN3
 
MAIN2     ;<<分子減少>>
 BSF GPIO,0
 DECFSZ DATA_1A   ;分子-1=0?
 GOTO MAIN3   ;NO
 BCF GPIO,0   ;YES
MAIN3     ;<<分母減少>> 
 DECFSZ DATA_0,F  ;分母-1=0?
 GOTO MAIN4   ;NO
     ;YES
     ;<<SPEED_1値0チェック>> 
 DECFSZ SPEED_2,F  ;SPEED_2-1=0?
 GOTO MAIN1   ;N0
     ;YES
 BTFSC GPIO,1   ;GP1 ON?
 GOTO MAIN3_1   ;NO
 INCF SPEED_1,F  ;YES
 GOTO MAIN3_2
MAIN3_1
 BTFSC GPIO,2   ;GP2 ON?
 GOTO MAIN3_2   ;NO
 DECF SPEED_1,F  ;YES
 GOTO MAIN3_2
 
MAIN3_2
 MOVF SPEED_1,W     
 MOVWF SPEED_2
 GOTO MAIN0
MAIN4     ;<<GP0オフチェック >>    
 BTFSC GPIO,0   ;GP0 ON?
 GOTO MAIN2   ;YES 
 NOP    ;NO
 NOP
 NOP
 GOTO MAIN3
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PTN_DATA
 MOVF CNT,W
 ADDWF PCL,F
 RETLW D'32'
 RETLW D'35'
 RETLW D'38'
 RETLW D'41'
 RETLW D'44'
 RETLW D'47'
 RETLW D'50'
 RETLW D'52'
 RETLW D'55'
 RETLW D'57'
 RETLW D'59'
 RETLW D'60'
 RETLW D'62'
 RETLW D'63'
 RETLW D'63'
 RETLW D'64'
 RETLW D'64'
 RETLW D'64'
 RETLW D'63'
 RETLW D'63'
 RETLW D'62'
 RETLW D'60'
 RETLW D'59'
 RETLW D'57'
 RETLW D'55'
 RETLW D'52'
 RETLW D'50'
 RETLW D'47'
 RETLW D'44'
 RETLW D'41'
 RETLW D'38'
 RETLW D'35'
 RETLW D'32'
 RETLW D'29'
 RETLW D'26'
 RETLW D'23'
 RETLW D'20'
 RETLW D'17'
 RETLW D'14'
 RETLW D'12'
 RETLW D'9'
 RETLW D'7'
 RETLW D'5'
 RETLW D'4'
 RETLW D'2'
 RETLW D'1'
 RETLW D'1'
 RETLW D'0'
 RETLW D'0'
 RETLW D'0'
 RETLW D'1'
 RETLW D'1'
 RETLW D'2'
 RETLW D'4'
 RETLW D'5'
 RETLW D'7'
 RETLW D'9'
 RETLW D'12'
 RETLW D'14'
 RETLW D'17'
 RETLW D'20'
 RETLW D'23'
 RETLW D'26'
 RETLW D'29'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 END
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
 
 
今日は PICらしい話題だっただろ?
んじゃ またね~~~~。

拍手[0回]

PR

コメント

プロフィール

HN:
waewax
性別:
非公開

P R