忍者ブログ

PICのド素人のブログ

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

PIC16F84Aで3和音だーーー。

×

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

コメント

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

PIC16F84Aで3和音だーーー。

これでも食らえーーーーー。
とりゃーーーーー!
寝るのだ!
 
 
;PIC16F84A サンプル <<<3和音>>>
;RB0 = OUTPUT MIX TONE ___ 200Ω ___ +100μF ___ >>SPERKER
;RB1 = OUTPUT TONE1    >>SPERKER
;RB2 = OUTPUT TONE2    >>SPERKER
;RB3 = OUTPUT TONE3    >>SPERKER
;OTHER PINS = NOT USE
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 list      p=16F84A ; 翻訳時にリストファイルを作ります。 ;;ここでどんなPICを使うか指定します。
 #include <p16F84A.inc> ; 16F84A用定義ファイルを読み込みます。 ;;
  
 ;ASMファイルでは「;」より右側は読み取りませんので注意書きなり落書きが可能です。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
           
 __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC ;セラロック (_HS_OSCは外部にクロックという意味)
 ;↑↑動かす条件です。機種によっていろいろ取り決めはありますが、これらは理屈抜きに覚えてください。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 errorlevel  -302 ; 翻訳時に302エラーが出ないようにします。       
      
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;初期設定
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;プログラムは「GOTO」などの命令がない限り下へ下へと降りて行きます。
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 BSF STATUS,RP0 ;BANK1に切り替え STATUS,RP0を1にするという意味
 MOVLW B'000000' ;RA0~5すべて出力 (1は入力、 0が出力の意味)
 MOVWF TRISA  ;上記の情報をTRISA(RA側の管理)へ格納
 MOVLW B'00000000' ;RB0~7すべて出力 (1は入力、 0が出力の意味)
 MOVWF TRISB  ;上記の情報をTRISB(RB側の管理)へ格納
 BCF STATUS,RP0 ;BANK0に切り替え STATUS,RP0を0にするという意味
 ;PICには設定する箇所がBANK0とBANK1と2箇所あります。入出力情報はBANK1にありますのでSTATUS,RP0というところで
 ;BANK1に切り替えて設定完了後BANK0に戻します。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 DOL EQU D'240'  ;DOL=240と言う意味。(以下同文)  
 DOSL EQU D'227'
 REL EQU D'214'
 RESL EQU D'202'
 MIL EQU D'190'
 FAL EQU D'180'
 FASL EQU D'170'
 SOL EQU D'160'
 SOSL EQU D'151'
 RAL EQU D'143'
 RASL EQU D'135'
 SIL EQU D'127'
 DO EQU D'120'
 DOS EQU D'113'
 RE EQU D'107'
 RE_S EQU D'101'
 MI EQU D'95'
 FA EQU D'90'
 FAS EQU D'85'
 SO EQU D'80'
 SOS EQU D'76'
 RA EQU D'71'
 RAS EQU D'67'
 SI EQU D'64' 
 DOH EQU D'60'
 DOSH EQU D'57'
 REH EQU D'53'
 RESH EQU D'50'
 MIH EQU D'48'
 FAH EQU D'45'
 FASH EQU D'43'
 SOH EQU D'40'
 SOSH EQU D'38'
 RAH EQU D'36'
 RASH EQU D'34'
 SIH EQU D'32'
 DOHH EQU D'30'
 DOSHH EQU D'29'
 REHH EQU D'27'
 RESHH EQU D'25'
 MIHH EQU D'24'
 FAHH EQU D'23'
 FASHH EQU D'22'
 SOHH EQU D'20'
 SOSHH EQU D'19'
 RAHH EQU D'18'
 RASHH EQU D'17'
 SIHH EQU D'16'
 DOHHH EQU D'15'
 SOHHH EQU D'10'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 TONE1  EQU 20H ;1音目決定
 TONE2  EQU 21H ;2音目決定
 TONE3  EQU 22H ;3音目決定
 TONE1A  EQU 23H ;1音目代入
 TONE2A  EQU 24H ;2音目代入
 TONE3A  EQU 25H ;3音目代入
 FLAG  EQU 26H ;各フラグ
 MOVLW DOH  ;<1音目>
 MOVWF TONE1
 MOVLW MIH  ;<2音目>
 MOVWF TONE2
 MOVLW SOH  ;<3音目>
 MOVWF TONE3
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MAIN0    ;<<動作前>>
 MOVF TONE1,W
 MOVWF TONE1A
 MOVF TONE2,W
 MOVWF TONE2A
 MOVF TONE3,W
 MOVWF TONE3A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MAIN1    ;<<1音目>>
 BCF PORTB,0
 BCF PORTB,1
 BTFSS FLAG,1  ;FLAG,1 ON? 
 GOTO MAIN1_0  ;NO
    ;YES
 BSF PORTB,0
 BSF PORTB,1 
MAIN1_0
 CALL WAIT
 DECFSZ TONE1A,F
 GOTO MAIN2
 MOVF TONE1,W
 MOVWF TONE1A
 
 BTFSC FLAG,1  ;FLAG,1 OFF?
 GOTO MAIN1_1  ;YES
    ;NO
 BSF PORTB,0
 BSF PORTB,1
 BSF FLAG,1
 GOTO MAIN1
MAIN1_1
 BCF PORTB,0
 BCF PORTB,1
 BCF FLAG,1
 GOTO MAIN1 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MAIN2    ;<<2音目>>
 BCF PORTB,0
 BCF PORTB,2
 BTFSS FLAG,2  ;FLAG,2 OFF?
 GOTO MAIN2_0  ;YES
    ;NO
 BSF PORTB,0
 BSF PORTB,2 
MAIN2_0
 CALL WAIT
 DECFSZ TONE2A,F
 GOTO MAIN3
 MOVF TONE2,W
 MOVWF TONE2A
 
 BTFSC FLAG,2  ;FLAG,2 OFF?
 GOTO MAIN2_1  ;YES
    ;NO
 BSF PORTB,0
 BSF PORTB,2
 BSF FLAG,2
 GOTO MAIN2
MAIN2_1
 BCF PORTB,0
 BCF PORTB,2
 BCF FLAG,2
 GOTO MAIN2 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MAIN3    ;<<3音目>>
 BCF PORTB,0
 BCF PORTB,3
 BTFSS FLAG,3  ;FLAG,3 OFF?
 GOTO MAIN3_0  ;YES
    ;NO
 BSF PORTB,0
 BSF PORTB,3 
MAIN3_0
 CALL WAIT
 DECFSZ TONE3A,F
 GOTO MAIN1
 MOVF TONE3,W
 MOVWF TONE3A
 
 BTFSC FLAG,3  ;FLAG,3 ON?
 GOTO MAIN3_1  ;YES
    ;NO
 BSF PORTB,0
 BSF PORTB,3
 BSF FLAG,3
 GOTO MAIN3
MAIN3_1
 BCF PORTB,0
 BCF PORTB,3
 BCF FLAG,3
 GOTO MAIN3 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
WAIT
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 RETURN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 END   ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 

拍手[0回]

PR

コメント

プロフィール

HN:
waewax
性別:
非公開

P R