14.01.2015 Views

Interfacing the Serial/RS-232 Port

Interfacing the Serial/RS-232 Port

Interfacing the Serial/RS-232 Port

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Interfacing</strong> <strong>the</strong> <strong>Serial</strong> / <strong>RS</strong><strong>232</strong> <strong>Port</strong> V5.0<br />

outportb(PORT1 + 4 , 0x0B); /* Turn on DTR, RTS, and OUT2 */<br />

outportb(0x21,(inportb(0x21) & 0xF7)); /* Set Programmable Interrupt */<br />

/* Controller */<br />

/* COM1 (IRQ4) - 0xEF */<br />

/* COM2 (IRQ3) - 0xF7 */<br />

/* COM3 (IRQ4) - 0xEF */<br />

/* COM4 (IRQ3) - 0xF7 */<br />

outportb(PORT1 + 1 , 0x01); /* Interrupt when data received */<br />

printf("\nSample Comm's Program. Press ESC to quit \n");<br />

do {<br />

if (bufferin != bufferout){ch = buffer[bufferout];<br />

bufferout++;<br />

if (bufferout == 1024) bufferout = 0;<br />

printf("%c",ch);}<br />

if (kbhit()){c = getch();<br />

outportb(PORT1, c);}<br />

} while (c !=27);<br />

outportb(PORT1 + 1 , 0); /* Turn off interrupts - <strong>Port</strong>1 */<br />

outportb(0x21,(inportb(0x21) | 0x08)); /* MASK IRQ using PIC */<br />

/* COM1 (IRQ4) - 0x10 */<br />

/* COM2 (IRQ3) - 0x08 */<br />

/* COM3 (IRQ4) - 0x10 */<br />

/* COM4 (IRQ3) - 0x08 */<br />

setvect(INTVECT, oldport1isr); /* Restore old interrupt vector */<br />

}<br />

<strong>Interfacing</strong> <strong>the</strong> <strong>Serial</strong> / <strong>RS</strong><strong>232</strong> <strong>Port</strong> V5.0 Page 26

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!