June. 2001 Ver 1.2
35
10. I/O PORTS
The GMS81C1404 and GMS81C1408 has four ports, RA,
RB, RC and RD. These ports pins may be multiplexed with
an alternate function for the peripheral features on the de-
vice. In general, when a initial reset state, all ports are used
as a general purpose input port.
All pins have data direction registers which can set these
ports as output or input. A “1” in the port direction register
defines the corresponding port pin as output. Conversely,
write “0” to the corresponding bit to specify as an input
pin. For example, to use the even numbered bit of RA as
output ports and the odd numbered bits as input ports, write
“55
H
” to address C1
H
(RA direction register) during initial
setting as shown in Figure 10-1 .
Reading data register reads the status of the pins whereas
writing to it will write to the port latch.
Figure 10-1 Example of port I/O assignment
10.1 RA and RAIO registers
RA is an 8-bit bidirectional I/O port (address C0
H
). Each
port can be set individually as input and output through the
RAIO register (address C1
H
).
RA7~RA1 ports are multiplexed with Analog Input Port
(AN7~AN1) and RA0 port is multiplexed with Event
Counter Input Port (EC0)
.
Figure 10-2 Registers of Port RA
The control register RAFUNC (address CA
H
) controls to
select alternate function. After reset, this value is “0”, port
may be used as general I/O ports. To select alternate func-
tion such as Analog Input or External Event Counter Input,
write “1” to the corresponding bit of RAFUNC.Regardless
of the direction register RAIO, RAFUNC is selected to use
as alternate functions, port pin can be used as a correspond-
ing alternate features (RA0/EC0 is controlled by RB-
FUNC)
I: INPUT PORT
O: OUTPUT PORT
WRITE “55H” TO PORT RA DIRECTION REGISTER
0
7
1
6
0
5
1
4
0
3
1
2
0
1
1
0
I
O
6
I
O
4
I
O
2
I
O
0 PORT
RA DATA
RB DATA
RA DIRECTION
RB DIRECTION
C0H
C1H
C2H
C3H
BIT
7
5
3
1
RA7
RA6
RA5
RA4
RA3
RA2
RA1
RA0
INPUT / OUTPUT DATA
0 : INPUT PORT
1 : OUTPUT PORT
DIRECTION SELECT
RA Data Register
RA
ADDRESS : C0H
RESET VALUE : Undefined
RA Direction Register
RAIO
ADDRESS : C1H
RESET VALUE : 00000000
ANSEL0
RA Function Selection Register
RAFUNC
ADDRESS : CAH
RESET VALUE : 00000000
ANSEL7
ANSEL1
ANSEL2
ANSEL3
ANSEL4
ANSEL5
ANSEL6
0 : RB0
1 : AN0
0 : RA1
1 : AN1
0 : RA2
1 : AN2
0 : RA3
1 : AN3
0 : RA4
1 : AN4
0 : RA5
1 : AN5
0 : RA6
1 : AN6
0 : RA7
1 : AN7
PORT
RAFUNC.7~0
Description
RA7/AN7
0
RA7 (Normal I/O Port)
1
AN7 (ADS2~0=111)
RA6/AN6
0
RA6 (Normal I/O Port)
1
AN6 (ADS2~0=110)
RA5/AN5
0
RA5 (Normal I/O Port)
1
AN5 (ADS2~0=101)
RA4/AN4
0
RA4 (Normal I/O Port)
1
AN4 (ADS2~0=100)
RA3/AN3
0
RA3 (Normal I/O Port)
1
AN3 (ADS2~0=011)
RA2/AN2
0
RA2 (Normal I/O Port)
1
AN2 (ADS2~0=010)
RA1/AN1
0
RA1 (Normal I/O Port)
1
AN1 (ADS2~0=001)
RA0/EC0
1
1. This port is not an Analog Input port, but Event Counter clock
source input port. ECO is controlled by setting TOCK2~0 =
111. The bit RAFUNC.0 (ANSEL0) controls the RB0/AN0/AVref
port (Refer to Port RB).
RA0 (Normal I/O Port)
EC0 (T0CK2~0=111)