;****************************************************************************************** ; AVRサンプル ; Project : ; Program Name : ; Programer : ; Create date : Version 1.0 H23.01.15 ; History : ;****************************************************************************************** ; (1)Description ; ;****************************************************************************************** .include "m1284Pdef.inc" .cseg .org $0000 ; *************************************** ; 1.初期化 ; *************************************** ; (1)システムの初期化 LDI R16,HIGH(RAMEND) ; スタック領域の設定(必須) OUT SPH,R16 ; スタック領域の設定(必須) LDI R16,LOW(RAMEND) ; スタック領域の設定(必須) OUT SPL,R16 ; スタック領域の設定(必須) ; (2)ポートの初期化 LDI R16,0xFF ; PORTA(0-7)を全て出力にする OUT DDRA,R16 ; PORTA(0-7)を全て出力にする LDI R16,0xFF ; PORTB(0-7)を全て出力にする OUT DDRB,R16 ; PORTB(0-7)を全て出力にする LDI R16,0xFF ; PORTC(0-7)を全て出力にする OUT DDRC,R16 ; PORTC(0-7)を全て出力にする LDI R16,0xFF ; PORTD(0-7)を全て出力にする OUT DDRD,R16 ; PORTD(0-7)を全て出力にする ; LDI R16,0x00 ; PORTAを初期化 OUT PORTA,R16 ; PORTAを初期化 LDI R16,0x00 ; PORTBを初期化 OUT PORTB,R16 ; PORTBを初期化 LDI R16,0x00 ; PORTCを初期化 OUT PORTC,R16 ; PORTCを初期化 LDI R16,0x00 ; PORTDを初期化 OUT PORTD,R16 ; PORTDを初期化 ; (3)初期値を設定 LDI R21,0x01 ; 初期値を設定(21番レジスタをルーレットの値にする) OUT PORTA,R21 ; PORTAに初期値 OUT PORTB,R21 ; PORTBに初期値 OUT PORTC,R21 ; PORTCに初期値 OUT PORTD,R21 ; PORTDに初期値 ; *************************************** ; 2.メインプログラム ; *************************************** MAIN: RCALL MVLD ; ルーレットを動かす ; RCALL WAT1S ; 少し待つ ; RJMP MAIN ;****************************************************************************************** ; Function Name : MVLD ; Title : ルーレットを動かす ; Input : ; Output : ;****************************************************************************************** MVLD: OUT PORTA,R21 ; PORTAに代入 OUT PORTB,R21 ; PORTBに代入 OUT PORTC,R21 ; PORTCに代入 OUT PORTD,R21 ; PORTDに代入 SBRC R21,7 ; RJMP MVLD1 ; LSL R21 ; 表示をシフト RET ; MVLD1: ; LDI R21,0x01 ; PORTA変数を1に初期化 RET ; ;****************************************************************************************** ; Function Name : WAT1S ; Title : タイマー関数 ; Input : ; Output : ;****************************************************************************************** WAT1S: LDI R18,10 ; WAT1S_A: ; LDI R17,10 ; WAT1S_B: ; LDI R16,110 ; WAT1S_C: ; RJMP PC+1 ; RJMP PC+1 ; RJMP PC+1 ; DEC R16 ; BRNE WAT1S_C ; DEC R17 ; BRNE WAT1S_B ; DEC R18 ; BRNE WAT1S_A ; RET ;