COM ports
D:\CP_literature\manual\upr3_11.pdf
D":\Labs_CP\Commmport\serial.pdf

стр 39\4а
с директно управление->
Code:
 /* Name       : Sample Comm's Program - Polled Version - termpoll.c     */
 /* Written By : Craig Peacock <cpeacock@senet.com.au>                   */
 /* Date       : Saturday 22nd February 1997                             */
 /*        Copyright 1997 CRAIG PEACOCK <cpeacock@senet.com.au>          */
 /*         See http://www.senet.com.au/~cpeacock/serial.htm             */
 /*                       For More Information                           */
#include <dos.h>
#include <stdio.h>
#include <conio.h>
#define PORT1 0x3F8
/* Defines Serial Ports Base Address */
/* COM1 0x3F8                        */
/* COM2 0x2F8          */
/* COM3 0x3E8          */
/* COM4 0x2E8          */
void main(void)
{
 int c;
 int ch;
 outportb(PORT1 + 1 , 0);   /* Turn off interrupts - Port1 */
 /*         PORT 1 - Communication Settings         */
 outportb(PORT1 + 3 , 0x80);  /* SET DLAB ON */
 outportb(PORT1 + 0 , 0x03);  /* Set Baud rate - Divisor Latch Low Byte */
            /* Default 0x03 =  38,400 BPS */
            /*         0x01 = 115,200 BPS */
            /*         0x02 =  56,700 BPS */
            /*         0x06 =  19,200 BPS */
            /*         0x0C =   9,600 BPS */
            /*         0x18 =   4,800 BPS */
            /*         0x30 =   2,400 BPS */
 outportb(PORT1 + 1 , 0x00);  /* Set Baud rate - Divisor Latch High Byte */
 outportb(PORT1 + 3 , 0x03);  /* 8 Bits, No Parity, 1 Stop Bit */
 outportb(PORT1 + 2 , 0xC7);  /* FIFO Control Register */
 outportb(PORT1 + 4 , 0x0B);  /* Turn on DTR, RTS, and OUT2 */
 printf("\nSample Comm's Program. Press ESC to quit \n");
 do { c = inportb(PORT1 + 5);          /* Check to see if char has been */
                                       /* received.                     */
      if (c & 1) {ch = inportb(PORT1); /* If so, then get Char          */
                  printf("%c",ch);}    /* Print Char to Screen          */
      if (kbhit()){ch = getch();         /* If key pressed, get Char */
                   outportb(PORT1, ch);} /* Send Char to Serial Port */
    } while (ch !=27); /* Quit when ESC (ASC 27) is pressed */
}
Code:
Sample Comm's Program. Press ESC to quit
☺fffffffff☺☺☺☺☺☺☺☺☺☺

 M M K M M M K M ♫♣ M K H M H K
▲2(M % % # %/
за протокола->
Code: