;**************************************************
; タイマー 2分45秒 から3分45秒
; リレー付き
; プリント基板 焼き付け用 (2003,2,2)
;**************************************************
LIST p=16F84A, R=DEC
INCLUDE P16F84A.INC
;**************************************************
CBLOCK H'0C'
CNT10
CNTSET
CNT15S
CNT50M
KAI
CNT2
CNT1
CNT3
CNT4
ENDC
;*************************************************
CLRF PORTB
BSF STATUS,RP0
MOVLW B'11111'
MOVWF TRISA
CLRF TRISB
BCF STATUS,RP0
KEY BTFSC PORTA,0 ;SW0 ON?
GOTO K1 ;SW0 OFF
CALL DEL10M ;
BTFSC PORTA,0 ;チャタリング
GOTO KEY ;SW0 OFF
CALL RLYON ;タイマーRELY ON 2分45秒
K1 BTFSC PORTA,1 ;SW1 ON?
GOTO K2 ;SW1 OFF
CALL DEL10M
BTFSC PORTA,1 ;チャタリング
GOTO K1
CALL RLY3M ;タイマーRELY ON 3分
K2 BTFSC PORTA,2 ;SW2 ON?
GOTO K3 ;SW OFF
CALL DEL10M
BTFSC PORTA,2
GOTO K2
CALL RLY3.15M ;タイマーRELY3分15秒
K3 BTFSC PORTA,3 ;SW3 ON?
GOTO K4 ;SW OFF
CALL DEL10M
BTFSC PORTA,3
GOTO K3
CALL RLY3.3M ;タイマーRELY ON 3分30秒
K4 BTFSC PORTA,4 ;SW4 ON?
GOTO KEY ;SW4 OFF
CALL DEL10M
BTFSC PORTA,4
GOTO K4
CALL RLY3.45M ;タイマーRELY ON 3分45秒
GOTO KEY ;KEYスキャン
;***********************************************
; TIMER
; OSC RC モード 実行クロック約38.4KHz( ℃)
;***********************************************
DEL10M MOVLW 52 ;チャタリング
MOVWF CNT10
DLY10 GOTO $+1
GOTO $+1
DECFSZ CNT10,1
GOTO DLY10
RETURN
DELY MOVWF CNTSET ;TIM SET
DELY3 MOVLW 30 ;約1.5SEC
MOVWF CNT15S
DLY1 MOVLW 212 ;約50msec
MOVWF CNT50M
DLY2 GOTO $+1
GOTO $+1
GOTO $+1
DECFSZ CNT50M,1
GOTO DLY2
DECFSZ CNT15S,1
GOTO DLY1
DECFSZ CNTSET,1
GOTO DELY3
CLRF PORTB
GOTO BZA ;ブザー発振へ
;**********************************************
RLYON MOVLW B'10000001' ;RELY ON
MOVWF PORTB
MOVLW 110
GOTO DELY ;2分45秒DELYへ
RLY3M MOVLW B'10000010' ;RELY ON
MOVWF PORTB
MOVLW 120
GOTO DELY ;3分
RLY3.15M
MOVLW B'10000100' ;RELY ON
MOVWF PORTB
MOVLW 130
GOTO DELY ;3分15秒
RLY3.3M MOVLW B'10001000' ;RELY ON
MOVWF PORTB
MOVLW 140
GOTO DELY ;3分30秒
RLY3.45M
MOVLW B'10010000' ;RELY ON
MOVWF PORTB
MOVLW 150
GOTO DELY ;3分45秒
;*************************************************
; BZ発振
; 発振の長さでモールス符号を作る
;
;************************************************
BZA MOVLW 3
MOVWF KAI
BZL CALL TANTEN ;J
CALL YASU
CALL CYOTEN
CALL YASU
CALL CYOTEN
CALL YASU
CALL CYOTEN
CALL YASU
CALL LYASU
CALL TANTEN ;A
CALL YASU
CALL CYOTEN
CALL YASU
CALL LYASU
CALL CYOTEN ;9
CALL YASU
CALL CYOTEN
CALL YASU
CALL CYOTEN
CALL YASU
CALL CYOTEN
CALL YASU
CALL TANTEN
CALL LYASU
CALL TANTEN ;A
CALL YASU
CALL CYOTEN
CALL YASU
CALL LYASU
CALL TANTEN ;P
CALL YASU
CALL CYOTEN
CALL YASU
CALL CYOTEN
CALL YASU
CALL TANTEN
CALL LYASU
CALL CYOTEN ;X
CALL YASU
CALL TANTEN
CALL YASU
CALL TANTEN
CALL YASU
CALL CYOTEN
CALL LLYASU
DECFSZ KAI,1
GOTO BZL
RETURN ;STP KEYスキャンに戻る
;*****************************************************************
; 長点と短点
;*****************************************************************
CYOTEN MOVLW 2
GOTO TD3
TANTEN MOVLW 1
GOTO TD3
;*****************************************************************
; 低周波発振
;*****************************************************************
TD3 MOVWF CNT2
TD2 MOVLW 200
MOVWF CNT1
TD BSF PORTB,6
GOTO $+1
GOTO $+1
GOTO $+1
GOTO $+1
GOTO $+1
GOTO $+1
NOP
BCF PORTB,6
DECFSZ CNT1,1
GOTO DL
DECFSZ CNT2,1
GOTO DL2
GOTO $+1
GOTO $+1
RETURN
DL GOTO $+1
GOTO $+1
GOTO $+1
GOTO $+1
GOTO $+1
NOP
GOTO TD
DL2 GOTO $+1
GOTO $+1
GOTO $+1
NOP
GOTO TD2
;**********************************************************
; 符号と符号の間隔
;**********************************************************
YASU MOVLW 1
GOTO DLY
LYASU MOVLW 7
GOTO DLY
LLYASU MOVLW 12
GOTO DLY
DLY MOVWF CNT3
D2 MOVLW 200
MOVWF CNT4
DY1 GOTO $+1
GOTO $+1
DECFSZ CNT4,1
GOTO DY1
DECFSZ CNT3,1
GOTO D2
RETURN
;*******************************************************
; END
;*******************************************************
END
|