; 1 meg version ported from 12 meg version of IR controller. ; copyright E.Matejowsky ; My website is currently at http://www.ozemail.com.au/~eddiema/ ; My current email address is eddiema@ozemail.com.au ; I grant permission for use of my code or code fragments in non-commercial projects only. ;----------------------------------------------------------------- .device AT90S1200 ;Prohibits use of non-implemented instructions .nolist .include "1200def.inc" ;I/O port and bit definitions .list .CSEG ; working registers for the program. .def temp =r16 .def counter1 =r17 ; counters for various timing routines. .def counter2 =r18 .def counter3 =r19 .def counter0 = r20 .def matrixread = r21 .def switches = r22 .def grp1 = r23 .def grp2 = r24 .def grp3 = r25 .def grp4 = r26 .def codehi = r27 ; code hi byte .def codelo = r28 ; code hi byte .def rectimer = r29 ; recording timer .def loopcnt = r30 ; .def cd1 = r31 ; .def cd2 = r22 ; reuse switch variable .set stmt = pb0 .set hdfullno = pb1 .MACRO IRon ; Start macro definition sbi PORTB,PB3 ; turn fet on .ENDMACRO .MACRO IRoff ; Start macro definition cbi PORTB,PB3 ; turn fet on .ENDMACRO .MACRO LEDon sbi PORTB,PB6 ; LED ON .ENDMACRO .MACRO LEDoff ; Start macro definition cbi PORTB,PB6 ; turn fet on .ENDMACRO .MACRO LAMPSon sbi PORTD,PB3 ; LED ON .ENDMACRO .MACRO LAMPSoff ; Start macro definition cbi PORTD,PB3 ; turn fet on .ENDMACRO ;Reset vector (must be the first code generated) rjmp RESET ;To Reset handler ;----------------------------------------------------------------- ;delay routines, note all rountines use one level of stack (we can have 3 levels total) DELAY: ldi temp,0 ;Entry point for Max timer delay DENTR: out TCNT0,temp ;Set the timer value. ldi temp,1<