; Copyright 2005 Doi Shigeki ;list0901.asm ATtiny2313テスト・プログラム1 ; LED点滅,スイッチのエコー ; 8分周された内部8MHzクロックを想定 .include "tn2313def.inc" .org 0x0 ;割り込みは使用しないので ;ベクトル省略 reset: LDI R16,LOW(RAMEND) ;スタック・ポインタの設定 OUT SPL,R16 LDI R16,0b00000000 ;ポートBを入力に設定 OUT DDRB,R16 LDI R16,0b11111111 ;ポートDを出力に設定 OUT DDRD,R16 LDI R17,10 ;10回点滅 loop: LDI R16,0b00111100 OUT PORTD,R16 RCALL wait05 LDI R16,0b00000000 OUT PORTD,R16 RCALL wait05 DEC R17 BRNE loop loop2: IN R16,PINB ;スイッチ入力 LSL R16 ;2ビット左シフト LSL R16 OUT PORTD,R16 ;LEDへエコー RJMP loop2 ; ;時間待ち 0.5秒/1MHzクロック ; wait05: LDI R18,5 wait052: RCALL wait01 DEC R18 BRNE wait052 RET ; ;時間待ち 0.1秒/1MHzクロック ; wait01: LDI R19,100 wait012: RCALL wait1m DEC R19 BRNE wait012 RET ; ;時間待ち 約1ミリ秒/1MHzクロック ; wait1m: LDI R20,250 wait1m2: NOP DEC R20 BRNE wait1m2 RET