目次>9章 PIC18編> (04)40MHzで動作させる> ソース

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

更新日2008.8.3

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

; ========================== ここから ==============================
;	ファイル名	led_onoff40.asm
;	作成日		2008.6.11
;	作成者		mit.ueno
;	バージョン	1.0
;
;	PIC		PIC18F1320
;	クロック	10MHz×4
;	概要
;		PIC18F1320の動作確認(LEDを1/4秒毎に点滅)
;		レゾネータは10MHzでOSC=HSPLLにしただけ
;		タイマルーチンのコメントはクロック10MHzの場合
;	使用ポート
;		RB0:LED
;		RB1:LED
;

; *************************************************************
	LIST	P=18F1320
	INCLUDE	P18F1320.INC

;	CONFIG	OSC = HS
	CONFIG	OSC = HSPLL	;こちらに変えただけで4倍速!

; *************************************************************
	CBLOCK	0x000
	CNT04ms
	CNT01s
	CNT1s
	ENDC

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

; ******** 初期処理 *******************************************
	MOVLW	0xFC
	MOVWF	TRISB	;RB0,1:Output(LED)
	MOVLW	0xFF
	MOVWF	ADCON1	;A/D未使用

; ******** メイン処理 *****************************************
main
	BSF	PORTB,RB0
	BCF	PORTB,RB1
	CALL	wait1s

	BCF	PORTB,RB0
	BSF	PORTB,RB1
	CALL	wait1s

	GOTO	main

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

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

; ******** 100msタイマ ********
wait01s
	MOVLW	d'249'
	MOVWF	CNT01s
wait01sL
	CALL	wait04ms
	DECFSZ	CNT01s
	GOTO	wait01sL
	RETURN

; ******** 0.4msタイマ ********
wait04ms
	MOVLW	d'249'
	MOVWF	CNT04ms
wait04msL
	NOP
	DECFSZ	CNT04ms,F
	GOTO	wait04msL
	RETURN

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