;******************************************************************************************
;   Project      :
;   Program Name : 
;   Programer    :
;   Create date  :  Version 1.0    H19.12.15
;   History      :
;******************************************************************************************
;   Define I/O
;     GP4:+ Power
;     GP5:- Power
;******************************************************************************************
	LIST	P=PIC12C509A,ST=OFF,R=DEC
	INCLUDE	"P12C509A.inc"	
	__CONFIG _MCLRE_OFF & _IntRC_OSC & _WDT_OFF
;
LP0	EQU	07H
LP1	EQU	08H
LP2	EQU	09H
LP3	EQU	0AH
;
	ORG	0
	MOVLW	B'00000000'
	OPTION
	MOVLW	B'001000'
	TRIS	GPIO
;
	CALL	PWRST
MAIN
; ****************************
;  1.プラス側にチャージする
; ****************************
;  1-1.ポートリセット
	CALL	PWRST
;  1-2.プラス側にチャージを開始する
	CALL	PLSON
;  1-3.チャージ時間だけ待つ
	CALL	WAIT01
;
; ****************************
;  2.マイナス側にチャージする
; ****************************
;  2-1.ポートリセット
	CALL	PWRST
;  2-2.マイナス側にチャージを開始する
	CALL	MINON
;  2-2.チャージ時間だけ待つ
	CALL	WAIT01

	GOTO	MAIN

;******************************************************************************************
;   Function Name : PWRST
;   Title         : ポートリセット 
;   Input         : 
;   Output        : 
;   Description   : プラス側と、マイナス側が同時にオンになるのを防止する
;******************************************************************************************
PWRST
	CLRF	GPIO
	RETLW	H'00'


;******************************************************************************************
;   Function Name : PLSON
;   Title         : プラス側にチャージする 
;   Input         : 
;   Output        : 
;   Description   : 
;******************************************************************************************
PLSON
	MOVLW	B'00010000'
	MOVWF	GPIO
	RETLW	H'00'


;******************************************************************************************
;   Function Name : MINON
;   Title         : マイナス側にチャージする 
;   Input         : 
;   Output        : 
;   Description   : 
;******************************************************************************************
MINON
	MOVLW	B'00100000'
	MOVWF	GPIO
	RETLW	H'00'

;******************************************************************************************
;   Function Name : WAIT01
;   Title         : チャージ時間だけ待つ 
;   Input         : 
;   Output        : 
;   Description   : 
;       OSC(8MHz) : 4M/4 ==(50)==> 20KHz ==(100)==> 200Hz / 2 ==> 100Hz
;******************************************************************************************
WAIT01
	MOVLW	H'64'
	MOVWF	LP1
WAIT01B
	MOVLW	H'05'
	MOVWF	LP0
WAIT01A
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	DECFSZ	LP0,F
	GOTO	WAIT01A 
	DECFSZ	LP1,F
	GOTO	WAIT01B
	RETLW	H'00'

	END

