目次 > 9章 PIC18F2550編 > 48MHzで動作させる > ソース

48MHzで動作させる(ソース)

更新日2009.5.24

以下のソースを取り込んで、アセンブル→PIC書き込み→実行して下さい。

; ========================== ここから ==============================
;	ファイル名	led_onoff.asm
;	作成日		2008.6.22
;	作成者		mit.ueno
;	バージョン	1.0
;
;	PIC		PIC18F2550
;	クロック	48MHz(レゾネータ:12MHz)
;	概要
;		LEDを1秒間隔で点滅
;	使用ポート
;		RA0:LED
;		RA1:LED
;

; ***************************************************
	LIST	P=18F2550
	INCLUDE	P18F2550.INC

	CONFIG	PLLDIV = 3		;4MHz  = 12MHz / 3
	CONFIG	CPUDIV = OSC1_PLL2	;48MHz = 96MHz / 2
	CONFIG	FOSC = HSPLL_HS

; ***************************************************
	CBLOCK	0x000
	CNT50us
	CNT10ms
	CNT1s
	ENDC

; ******** リセットベクタ ***************************
	ORG	0x0000

; ******** 初期処理 *********************************
	MOVLW	0xFC
	MOVWF	TRISA	;RA0,1:Output(LED)

; ******** メイン処理 *******************************
main
	BSF	LATA,0
	BCF	LATA,1
	CALL	wait1s

	BCF	LATA,0
	BSF	LATA,1
	CALL	wait1s

	GOTO	main

; ******** タイマルーチン ***************************

; ******** 1sタイマ ********
wait1s
	MOVLW	d'100'
	MOVWF	CNT1s
wait1sL
	CALL	wait10ms
	DECFSZ	CNT1s
	GOTO	wait1sL
	RETURN

; ******** 10mSタイマ ********
wait10ms
	MOVLW	d'200'
	MOVWF	CNT10ms
wait10msL
	CALL	wait50us
	DECFSZ	CNT10ms
	GOTO	wait10msL
	RETURN

; ******** 50uSタイマ ********
wait50us
	MOVLW	d'150'
	MOVWF	CNT50us
wait50usL
	NOP
	DECFSZ	CNT50us,F
	GOTO	wait50usL
	RETURN

	END
; ========================== ここまで ==============================