
パトライトの製作
12C509を使ったパトライトのソースです。製作例は、おぐっちゃんRCパラダイスをご覧ください
;###################################################### ; ナイトライダー風に流れる電飾 4LED用 ; 残光が点滅するバージョン ; 12C509の7,6,3,2番ピンの順番で使用する ;###################################################### list p=12c509 include <p12c509.inc> __config _MCLRE_OFF & _CP_OFF & _WDT_OFF & _IntRC_OSC ;変数の定義 W1M EQU 07H ACT_T EQU 08H W10M EQU 09H ;%%%%%%%%%% PIC 初期設定 RESET GOTO START ORG 04H START MOVLW 09FH OPTION GOTO SETUP ;%%%%%%%%%% サブルーチン T10M ;10ミリ秒待つルーチン MOVLW 0AH MOVWF W10M W10 ;1ミリ秒待つルーチン MOVLW 0F9H MOVWF W1M W1 NOP DECFSZ W1M, F GOTO W1 DECFSZ W10M, F GOTO W10 RETLW 00H ;%%%%%%%%%% I/O 初期設定 SETUP MOVLW 08H ;0000 1000 TRIS GPIO ;2,3,5,6,7番ピンを出力。4番ピンを入力にする MOVLW 08H ;0000 1000 MOVWF GPIO ;出力をすべてLoにする ;%%%%%%%%%% メインプログラム LOOP ;### 1番目の動作の始まり ;流れる時間の調整 ACT_Tが2で0.2秒で流れる MOVLW 02H ;ACT1を2回繰り返す MOVWF ACT_T ACT1 MOVLW 01H ;0000 0001 MOVWF GPIO CALL T10M ;10m秒待つ 残光の比調整 CALL T10M ;10m秒待つ CALL T10M ;10m秒待つ CALL T10M ;10m秒待つ CALL T10M ;10m秒待つ CALL T10M ;10m秒待つ MOVLW 03H ;0000 0011 MOVWF GPIO CALL T10M ;10m秒待つ 1つ目の尾は30%の光量 CALL T10M ;10m秒待つ CALL T10M ;10m秒待つ MOVLW 11H ;0001 0001 MOVWF GPIO CALL T10M ;10m秒待つ 2つ目の尾は10%の光量 DECFSZ ACT_T, F GOTO ACT1 ;### 2番目の動作の始まり ;流れる時間の調整 ACT_Tが2で0.2秒で流れる MOVLW 02H ;ACT1を2回繰り返す MOVWF ACT_T ACT2 MOVLW 20H ;0010 0000 MOVWF GPIO CALL T10M ;10m秒待つ 残光の比調整 CALL T10M ;10m秒待つ CALL T10M ;10m秒待つ CALL T10M ;10m秒待つ CALL T10M ;10m秒待つ CALL T10M ;10m秒待つ MOVLW 21H ;0010 0001 MOVWF GPIO CALL T10M ;10m秒待つ 1つ目の尾は30%の光量 CALL T10M ;10m秒待つ CALL T10M ;10m秒待つ MOVLW 22H ;0010 0010 MOVWF GPIO CALL T10M ;10m秒待つ 2つ目の尾は10%の光量 DECFSZ ACT_T, F GOTO ACT2 ;### 3番目の動作の始まり ;流れる時間の調整 ACT_Tが2で0.2秒で流れる MOVLW 02H ;ACT1を2回繰り返す MOVWF ACT_T ACT3 MOVLW 10H ;0001 0000 MOVWF GPIO CALL T10M ;10m秒待つ 残光の比調整 CALL T10M ;10m秒待つ CALL T10M ;10m秒待つ CALL T10M ;10m秒待つ CALL T10M ;10m秒待つ CALL T10M ;10m秒待つ MOVLW 30H ;0011 0000 MOVWF GPIO CALL T10M ;10m秒待つ 1つ目の尾は30%の光量 CALL T10M ;10m秒待つ CALL T10M ;10m秒待つ MOVLW 11H ;0001 0001 MOVWF GPIO CALL T10M ;10m秒待つ 2つ目の尾は10%の光量 DECFSZ ACT_T, F GOTO ACT3 ;### 4番目の動作の始まり ;流れる時間の調整 ACT_Tが2で0.2秒で流れる MOVLW 02H ;ACT1を2回繰り返す MOVWF ACT_T ACT4 MOVLW 02H ;0000 0010 MOVWF GPIO CALL T10M ;10m秒待つ 残光の比調整 CALL T10M ;10m秒待つ CALL T10M ;10m秒待つ CALL T10M ;10m秒待つ CALL T10M ;10m秒待つ CALL T10M ;10m秒待つ MOVLW 12H ;0001 0010 MOVWF GPIO CALL T10M ;10m秒待つ 1つ目の尾は30%の光量 CALL T10M ;10m秒待つ CALL T10M ;10m秒待つ MOVLW 22H ;0010 0010 MOVWF GPIO CALL T10M ;10m秒待つ 2つ目の尾は10%の光量 DECFSZ ACT_T, F GOTO ACT4 GOTO LOOP ENDご意見は、電子掲示板にどうぞ。