; Copyright 2005 Doi Shigeki ;list0907.asm ATmega162テスト・プログラム3 ; 外部メモリ・インターフェース ; 内蔵8MHzクロックを想定 .include "m162def.inc" .org 0x0 ;割り込みは使用しないので ;ベクトル省略 reset: LDI R16,LOW(RAMEND) ;スタック・ポインタの設定 OUT SPL,R16 LDI R16,HIGH(RAMEND) ;RAMのサイズが大きいので2バイト設定する OUT SPH,R16 LDI R16,0b10000000 ;外部メモリ・インターフェースを有効にする OUT MCUCR,R16 LDI R17,10 ;10回点滅 loop: LDI R16,0b00001111 STS 0x8000,R16 RCALL wait05 LDI R16,0b00000000 STS 0x8000,R16 RCALL wait05 DEC R17 BRNE loop loop2: LDS R16,0x8000 ;スイッチ入力 STS 0x8000,R16 ;LEDへエコー RJMP loop2 ; ;時間待ち 0.5秒/8MHzクロック ; wait05: LDI R18,20 wait052: RCALL wait25m DEC R18 BRNE wait052 RET ; ;時間待ち 25ms/8MHzクロック ; wait25m: LDI R19,200 wait252: RCALL wait01m DEC R19 BRNE wait252 RET ; ;時間待ち 約0.125ms/8MHzクロック ; wait01m: LDI R20,250 wait01m2: NOP DEC R20 BRNE wait01m2 RET