You are on page 1of 5

2

4 8
1

4
0. (start bit) 1
0. 5,6,7 8
0. (parity bit) 1
0. (stop bit) 1,1.5 2
2 DATA

(odd), (even)
UART (Universal Asynchronous Receiver Transmitter :
AT UART 16450 16550

RS-232
RS-232
-12V (mark) +3V +12V (space)
RS-232 (Data T
DTE DCE DTE
RS-232 ,
RS-232
RS-232 DB-25 DB-9
3
( T01-01)
* Data Carrier Detect : DCD Carrier Detect : CD
* Receive Data : RD RxD
* Transmitted Data : TD TxD
* Data Terminal Ready : DTR
* Signal Ground : GND
* Data Set Ready : DSR DTR
* Request To Send : RTS
* Clear To Send : CTS
* Ring Indicator : RI
UART
UART Universal Asynchronous Receiver Transmitter
UART
UART (programmable baudrate generator)
UART
UART 2 8250 16550
UART 16550 FIFO (First In First Out ) 16
RS-232
RTS DTR (CTS,DSR

COM1 (Base) 3F8H


COM2 (Base) 2F8H
COM3 (Base) 3E8H
COM4 (Base) 2E8H

COM2 0000:0402H - 0000:0403H
COM3 0000:0404H - 0000:0405H
COM4 0000:0406H - 0000:0407H
0000:0411H
( T01-02)

RS-232
PC RS-232 4
4 8 8
(Base register) COM1
00H

01H

( reg_01H)
4-7
"0"
SINP
"1" CTS,DSR,CD R
"0"
ERBK
"1" , ,

"0"

TBE
"1"
"0"
RxRD
"1" 1
"0"
02H

( REG_02H)
3-7
"0"
ID1,ID0 "00" ( 4
)
"01" (
"10"
2 )
"11" (
1 )

* (ID1=0,ID0=0)
* (ID1=0,ID0=1)
*
*
PND
"1"
"0"
03H

( REG_03H)
DLAB
"1"
"0" ( 00H)
( 01H)
DLAB "1"

= 115,200/ 16
115,200 UART
1.8432MHz UART 16
16
= 00H + (256 X 01H)
9,600
BRK
"1"
"0"
PAR2,PAR1,PAR0
"000"
"001"
"011"
"101" (mark)
"111" (space)
STOP
"1" 2
"0" 1

DAB1,DAB0

"00" 5
"01" 6
"10" 7
"11" 8
04H
RTS DTR
( REG_04H)
5-7 "0"
LOOP
"1"
"0"
OUT2,OUT1
"1"
"0"
RTS
"1" RTS RS-232
"0"
DTR
"1" DTR RS-232
"0"
05H
UART
( REG_05H)
TXE (Transmitter Empty)
"1"
"0" 1

TBE (Transmitter Buffer Empty)


"1"
"0" 1
BREK (Break )
"1" UART
"0"
FRME (Frame Error)
"1" UART
"0"
PARE (Parity Error)
"1" UART
"0"
OVRE (Overrun Error)
"1" UART
"0"
RxRD (Received Data Ready )
"1"
"0"
06H
DCD ,RI, DSR CTS Base
( REG_06H)
DCD
"1" DCD "1"
"0" DCD 0
RI
"1" RI "1"
"0" RI "0"
DSR
"1" DSR "1"
"0" DSR "0"
CTS
"1" CTS "1"
"0" CTS "0"
DDCD (Delta Data Carrier Detect)
"1" DCD
"0"
DRI
(Delta Ring Indicator) "1" RI
"0"
DDSR (Delta Data Set Ready)
"1" DSR
"0"
DCTS (Delta Clear To Send)
"1" CTS
"0"
07H
1

1 Debug 0000:0400H debug


( ms_dos.bmp)

4
2 Control Panel System
( device_mng.bmp)
Properties Resources

( com1_prop.bmp)

3
DEF SEG = 0
CLS
PRINT "Address Of COM1 :", HEX$((PEEK(&H401) * &H100) + PEEK(&H400))
PRINT "Address Of COM2 :", HEX$((PEEK(&H403) * &H100) + PEEK(&H402))
PRINT "Address Of COM3 :", HEX$((PEEK(&H405) * &H100) + PEEK(&H404))
PRINT "Address Of COM4 :", HEX$((PEEK(&H407) * &H100) + PEEK(&H406))
PRINT "Number Of RS-232 Port in This Computer :", (PEEK(&H411)
AND &HE) / 2
END


MODE
MODE COMm : baud=b, parity=p, data=d, stop=s, retry=r

MODE COMm : b,p,d,s,r

MODE COM1 : 96,n,8,1


COM1 9,600
2 14H

DX =0 COM1
DX =1 COM2
DX =2 COM3
DX =3 COM4
AL 8
( REG_AL)
DA1,DA0

"10" 7
"11" 8
STOP

"1" 2
"0" 1
PAR1,PAR0

"00 "10"
"01"

"11"

BD2,BD1,BD0

"111" 9,600
"110" 4,800
"101" 2,400
"100" 1,200
"011" 600
"010" 300
"001" 150
"000" 110
COM1
procedue initial ;

var regis : registers ;


begin
with regis do begin
ah := 0 ;
al := $0e3 ;
dx := 0 ;
intr($14, regis) ;
end ;
end ;

{ 11100011B }

RS-232
OUT &H3F8,X
X 8

Y = INP(&H3F8)
Y 8
TURBO PASCAL
PORT[$3F8] = X

Y = PORT[$3F8]

You might also like