;‘‘‘‘‘‘‘‘‘‘‘‘‘ ; ; mmc‚πƒ^[ƒ~ƒiƒ‹Œo—R‚œǂݏ‘‚« ; 1MHz Tyny26L ; ; (PA0) ; (PA1) ; (PA2) ; (PA3) ; ; (PB0 DI) DO ; (PB1 DO) DI ; (PB2 SCK) SCK ; (PB3) CS1 ; (PB4) CS2 ; (PB5 TxD) RxD ; (PB6INT0 RxD) TxD ; ;‘‘‘‘‘‘‘‘‘‘‘‘‘ .include "tn26def.inc" .equ TxD=5 .equ RxD=6 .def A=r16 .def B=r17 .def C=r18 .def dark=r21 .def flags=r23 ;0b00000### rjmp RESET ; rjmp R_UART ;INT0 reti ;PIN_CHG reti ;TMCOMPA reti ;TMCOMPB reti ;TMOVF1 reti ;TMOVF0 reti ;USI_STRT reti ;USI_OVF reti ;EE_RDY reti ;ANA_COMP reti ;ADC ;₯₯₯₯₯‰Šϊ‰» RESET: ;₯ƒXƒ^ƒbƒNƒ|ƒCƒ“ƒ^‰Šϊ‰» LDI A,LOW(RAMEND) out sp,A ;₯IO‰Šϊ‰» ldi A,0b00000000 out DDRA,A ldi A,0 out PORTA,A ldi A,0b00111000 out DDRB,A ldi A,0b00100000 out PORTB,A ;₯Š„‚θž‚ݏ‰Šϊ‰» ldi A,0b01000000 ; +-------ŠO•”Š„ž‚έ0‹–‰Β out GIMSK,A ldi A,0b00000010 ; ++-—§‰Ί‚θŠ„‚θž‚έ out MCUCR,A ldi A,0x82 rcall T_UART ldi A,0xC8 rcall T_UART ldi A,0x82 rcall T_UART ldi A,0xE9 rcall T_UART ldi A,0x8C rcall T_UART ldi A,0xA4 rcall T_UART ldi A,0x0D rcall T_UART ldi A,0x0A rcall T_UART SEI MAIN: rjmp MAIN ;₯₯₯RS232‘—M T_UART: push A push B cbi PORTB,TxD ;ƒXƒ^[ƒgƒrƒbƒg rcall wUART ldi B,8 T2: lsr A ;1 ‰EƒVƒtƒg brcs T0 ;2 C=1‚Ε•ͺŠς cbi PORTB,TxD ;3 rjmp T1 ; T0: ;3 sbi PORTB,TxD ;4 nop ;5 T1: ;5 rcall wUART ; subi B,1 ;6 brne T2 ;8 sbi PORTB,TxD ;ƒXƒgƒbƒvƒrƒbƒg rcall wUART pop B pop A ret wUART: ;3+2+1+((27+1)*3)+2+4=96 push B ;2 ldi B,27 ;1 w2_0: subi B,1 ;1 brcc w2_0 ;2 nop ;1 pop B ;2 ret ;4 ;₯₯₯RS232ŽσM R_UART: push A push B push C in A,SREG push A ;((13+1)*3)=42 ldi B,13 ;1 R_0: subi B,1 ;1 brcc R_0 ;2 rcall wUART ;ƒXƒ^[ƒgƒrƒbƒg ldi C,8 R_1: in B,PINB ;1 lsl B ;2 lsl B ;3 C=PINB6 ror A ;4 rcall wUART ; nop ;5 subi C,1 ;6 brne R_1 ;8 in B,GIFR ; out GIFR,B ;Š„‚θž‚έƒNƒŠƒA rcall T_UART rcall tostr rcall T_UART mov A,B rcall T_UART pop A out SREG,A pop C pop B pop A reti ;₯ƒTƒuƒ‹[ƒ`ƒ“ƒR[ƒ‹‚πŠά‚ί‚Δ1msƒsƒbƒ^ƒŠ ; 3+1+(4*248-1)+1+4=1000 wait1ms: ;3 ldi A,248 ;1 w1A: nop ;1 subi A,1 ;1 brcc w1A ;2 nop ;1 ret ;4 ;₯₯₯ƒoƒCƒiƒŠA¨16i•ΆŽš—ρ 0xAB tostr: mov B,A andi B,0x0f cpi B,10 brcc S1 ori B,0x30 rjmp S2 S1: subi B,9 ori B,0x40 S2: swap A andi A,0x0f cpi A,10 brcc S3 ori A,0x30 rjmp S4 S3: subi A,9 ori A,0x40 S4: ret