; Receive Sony IR Remote Control Codes with Atmel AT90S1200 ; ; Charles R. Ott ; June 22, 1998 .nolist ;Suppress listing of include file .include "2313def.inc" ;Define chip particulars .list ; Global register variables .def relays =R15 ;Input port pins for toggling .def wreg =R16 ;General use working register .def devcode =R17 ;IR device code .def irfunc =R18 ;IR function code .def flags =R19 ;Bit variables .def timeout =R20 ;Delay time passed to subroutine .def bitcnt =R21 ;Received character bit counter .def count =R22 ;Count of IR functions received .def last =R23 ;Last code received .def longtime=R24 ;Long delay counter ; Flag definitions .equ gotir =0 .equ startb =1 ; Timer/Counter prescaler values .equ TSTOP =0 ;Stop Timer/Counter .equ TCK64 =3 ;Timer/Counter runs from CK / 64 .cseg ; Interrupt vectors .org 0 rjmp reset ;Reset Vector .org INT0addr ;External Interrupt0 Vector rjmp readir ; Main program entry point on reset reset: ldi wreg,RAMEND ;Init Stack Pointer out SPL,wreg ldi wreg,0xFF ;Turn off all LEDs out PORTB,wreg ldi wreg,0xFF ;Make port B pins all outputs out DDRB,wreg out PORTD,wreg ;Put power on all port D pins ldi wreg,0b11111011 ;Make PD2 an input, all others outputs out DDRD,wreg ldi wreg,1<