/* FILE: IRTX.C AUTH: P.OH (c) Copyright Boondog Automation 1998 DESC: Program asks user to input decimal number. PC acts as a IR transmitter. The 4 bit number is transmitted to receiver NOTE: Transmitter: Set A1-A5 and D6-D9 dips to +5V Receiver: Set A1-A5 dips to desired address */ #include #include #include /* outportb, inportb defined here */ #include /* formatted text functions defined here */ void main(void) { int DataToSend; int Address; int BASEADDR; int PORTA, PORTB, PORTC; int CNTRL; int Choice; clrscr(); /* clear screen */ window(5,5,75,30); /* set up text window */ gotoxy(1,1); cprintf("Enter Base Address (decimal) e.g. 608\n"); gotoxy(1,2); scanf("%d", &BASEADDR); PORTA = BASEADDR; PORTB = BASEADDR + 1; PORTC = BASEADDR + 2; CNTRL = BASEADDR + 3; outportb(CNTRL, 128); /* configure all ports for output */ clrscr(); gotoxy(1,5); cprintf("Enter 5-bit address...see Receiver DIP settings\n"); gotoxy(1,6); scanf("%d", &Address); outportb(PORTA, Address); outportb(PORTB, 0); gotoxy(1,7); cprintf("Enter 4-bit (0-15) data...999 to quit\n"); gotoxy(1,8); scanf("%d", &DataToSend); do { /* until user enters 999 */ if(DataToSend == 999) { clrscr(); gotoxy(1,1); cprintf("Goodbye!\n"); outportb(PORTB, 0); /* quitting */ exit(0); } else { if(DataToSend < 0 || DataToSend > 15) { gotoxy(1,10); cprintf("Number must be between 0 and 15 \n"); delay(2000); gotoxy(1,10); cprintf(" \n"); gotoxy(1,8); cprintf(" \n"); } else { outportb(PORTB, DataToSend); gotoxy(1,8); cprintf(" \n"); } }; gotoxy(1,8); scanf("%d", &DataToSend); } while(1); /* end of do */ } /* end of main */