.include "2323def.inc" ;3.6864MHz .def A = r16 .def B = r17 .def C = r18 .def s = r19 .def m = r20 .def h = r21 .def subCNT = r22 ;▼▼▼割り込みベクタ rjmp RESET ;RESET reti ;INT0 rjmp TOVF0 ;Timer 0 overflow ;▼▼▼初期化 RESET: ;▼ スタックポインタ設定 ldi A,low(RAMEND) out SPL,A ;▼ タイマー0割込み ldi A,0b011 ;カウンタ入力クロックを1/64に設定 out TCCR0,A ldi A,0b10 out TIMSK,A ;▼ ポート ldi A,0b00000001 out DDRB,A ldi A,0b00000000 out PORTB,A ldi subCNT,0 SEI LOOP: sleep ;idle mode にする rjmp LOOP ;▼▼▼割り込み TOVF0: dec subCNT brne T1 ;Breach if Not Equal ldi subCNT,225 rcall IncS ;1秒進める T1: ldi A,0b00000001 out DDRB,A ldi A,0b00000000 out PORTB,A cpi subCNT,1 brne T3 ldi A,0b00000001 out PORTB,A; +---CK TEST cpi s,0 brne T3 cpi m,0 brne T3 cpi h,0 brne T3 ldi A,0b00000011 out DDRB,A ldi A,0b00000011 out PORTB,A; +---off T3: reti; IncS: ;▼秒を進める inc s cpi s,60 brne IS1 ldi s,0 rcall IncM IS1: ret IncM: ;▼分を進める inc m cpi m,60 brne IM1 ldi m,0 rcall IncH IM1: ret IncH: ;▼時を進める inc h cpi h,12 brne IH1 ldi h,0 IH1: ret