;******************************************************************************************
;   Project      :
;   Program Name : 
;   Programer    :
;   Create date  :  Version 1.0    H18.12.01
;   History      :
;******************************************************************************************
	LIST	P=18F452,ST=OFF,R=DEC
	INCLUDE	"P18F452.inc"
;
	__CONFIG    _CONFIG1H, _OSCS_OFF_1H & _HS_OSC_1H
	__CONFIG    _CONFIG2L, _BOR_OFF_2L & _PWRT_OFF_2L & _BORV_20_2L
	__CONFIG    _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H
	__CONFIG    _CONFIG3H, _CCP2MX_OFF_3H
	__CONFIG    _CONFIG4L, _STVR_OFF_4L & _LVP_OFF_4L & _DEBUG_OFF_4L
	__CONFIG    _CONFIG5L, _CP0_OFF_5L & _CP1_OFF_5L & _CP2_OFF_5L & _CP3_OFF_5L 
	__CONFIG    _CONFIG5H, _CPB_ON_5H & _CPD_OFF_5H
	__CONFIG    _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L 
	__CONFIG    _CONFIG6H, _WRTC_OFF_6H & _WRTB_OFF_6H & _WRTD_OFF_6H
	__CONFIG    _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L & _EBTR3_OFF_7L
	__CONFIG    _CONFIG7H, _EBTRB_OFF_7H
;
LP01	EQU	00H
LP02	EQU	01H
LP03	EQU	02H
LP04	EQU	03H
;
;
;
	ORG	0h
	GOTO	START
	ORG	8h
	GOTO	START
	ORG	18h
	GOTO	START
START
; 1.Port設定
;  (1)PortAの定義
	CLRF	PORTA		; PORTAの初期化
	CLRF	LATA		; データラッチレジスタの初期化
;	MOVLW	H'07'		;
;	MOVWF	ADCON1		;
	MOVLW	B'00010000'	; PORTAのIO設定(注意：PORTAは0-5までしかない)	
	MOVWF	TRISA		; PORTAのIO設定
;  (2)PortBの定義
	CLRF	PORTB		; PORTBの初期化
	CLRF	LATB		; データラッチレジスタの初期化
	MOVLW	B'00000000'	; PORTBのIO設定(0-7)	
	MOVWF	TRISB		; PORTBのIO設定
;  (3)PortCの定義
	CLRF	PORTC		; PORTCの初期化
	CLRF	LATC		; データラッチレジスタの初期化
	MOVLW	B'00000000'	; PORTCのIO設定(0-7)	
	MOVWF	TRISC		; PORTCのIO設定
;  (4)PortDの定義
	CLRF	PORTD		; PORTDの初期化
	CLRF	LATD		; データラッチレジスタの初期化
	MOVLW	B'00000000'	; PORTDのIO設定(0-7)	
	MOVWF	TRISD		; PORTDのIO設定
;  (5)PortEの定義
	CLRF	PORTE		; PORTEの初期化
	CLRF	LATE		; データラッチレジスタの初期化
	MOVLW	B'00000100'	; PORTEのIO設定(注意：PORTEは0-2までしかない)	
	MOVWF	TRISE		; PORTEのIO設定
;
	MOVLW	B'0000'		; Bank 0を設定
	MOVWF	BSR		; Bank 0を設定
;
MAIN
	CALL	PRG01
	CALL	WAIT01
;
	CALL	PRG02
	CALL	WAIT01
;
	CALL	PRG03
	CALL	WAIT01
;
	CALL	PRG04
	CALL	WAIT01
;
	CALL	PRG05
	CALL	WAIT01
;
	CALL	PRG06
	CALL	WAIT01
	GOTO	MAIN


;******************************************************************************************
;   Function Name : PRG01-0
;   Title         : 500KHzを出力する
;   Input         : 
;   Output        : 
;   Description   :  33MHz/2/33(0010,0001)=>500KHz
;******************************************************************************************
PRG01
	MOVLW	B'00100001'
	MOVWF	PORTB
;
	MOVLW	B'00000000'
	MOVWF	PORTC
;
	MOVLW	B'00000000'
	MOVWF	PORTD
;
	MOVLW	B'00000000'
	MOVWF	PORTE
;
	RETURN

;******************************************************************************************
;   Function Name : PRG02-0
;   Title         : 100KHzを出力する
;   Input         : 
;   Output        : 
;   Description   : 33MHz/2/165(1010,0101)=>100KHz
;******************************************************************************************
PRG02
	MOVLW	B'10100101'
	MOVWF	PORTB
;
	MOVLW	B'00000000'
	MOVWF	PORTC
;
	MOVLW	B'00000000'
	MOVWF	PORTD
;
	MOVLW	B'00000000'
	MOVWF	PORTE
;
	RETURN


;******************************************************************************************
;   Function Name : PRG03-0
;   Title         : 50KHzを出力する
;   Input         : 
;   Output        : 
;   Description   :  33MHz/2/330(1,0100,1010)=>50KHz
;******************************************************************************************
PRG03
	MOVLW	B'01001010'
	MOVWF	PORTB
;
	MOVLW	B'00000001'
	MOVWF	PORTC
;
	MOVLW	B'00000000'
	MOVWF	PORTD
;
	MOVLW	B'00000000'
	MOVWF	PORTE
;
	RETURN

;******************************************************************************************
;   Function Name : PRG04-0
;   Title         : 10KHzを出力する
;   Input         : 
;   Output        : 
;   Description   :  33MHz/2/1650(110,0111,0010)=>10KHz
;******************************************************************************************
PRG04
	MOVLW	B'01110010'
	MOVWF	PORTB
;
	MOVLW	B'00000110'
	MOVWF	PORTC
;
	MOVLW	B'00000000'
	MOVWF	PORTD
;
	MOVLW	B'00000000'
	MOVWF	PORTE
;
	RETURN


;******************************************************************************************
;   Function Name : PRG05-0
;   Title         : 5KHzを出力する
;   Input         : 
;   Output        : 
;   Description   :  33MHz/2/3300(1100,1110,0100)=>5KHz
;******************************************************************************************
PRG05
	MOVLW	B'11100100'
	MOVWF	PORTB
;
	MOVLW	B'00001100'
	MOVWF	PORTC
;
	MOVLW	B'00000000'
	MOVWF	PORTD
;
	MOVLW	B'00000000'
	MOVWF	PORTE
;
	RETURN



;******************************************************************************************
;   Function Name : PRG06
;   Title         : 1KHzを出力する
;   Input         : 
;   Output        : 
;   Description   :  33MHz/2/16500(100,0000,0111,0100)=>1KHz
;******************************************************************************************
PRG06
	MOVLW	B'01110100'
	MOVWF	PORTB
;
	MOVLW	B'01000000'
	MOVWF	PORTC
;
	MOVLW	B'00000000'
	MOVWF	PORTD
;
	MOVLW	B'00000001'
	MOVWF	PORTE
;
	RETURN
;******************************************************************************************
;   Function Name : WAIT01
;   Title         : 
;   Input         : 
;   Output        :
;   Description   : 
;        10MHz / 4 / 250 / 100 / 100
;******************************************************************************************
WAIT01
	MOVLW	H'0A'
	MOVWF	LP04
WAIT01D
	MOVLW	H'64'
	MOVWF	LP03
WAIT01C
	MOVLW	H'64'
	MOVWF	LP02
WAIT01B
	MOVLW	H'19'
	MOVWF	LP01
WAIT01A
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	DECFSZ	LP01,F
	GOTO	WAIT01A
	DECFSZ	LP02,F
	GOTO	WAIT01B
	DECFSZ	LP03,F
	GOTO	WAIT01C
	DECFSZ	LP04,F
	GOTO	WAIT01D
;
	RETURN

	END