
4-3
Defining the I/O Map
The I/O map for the DM5806 is shown in Table 4-1 below. As shown, the board occupies 12 consecutive I/O
port locations. The base address (designated as BA) can be selected using DIP switch S1 as described in Chapter 1,
Board Settings
. This switch can be accessed without removing the board from the connectorr. The following
sections describe the register contents of each address used in the I/O map.
BA + 0: PPI Port A — Digital I/O (Read/Write)
Transfers the 8-bit Port A digital input and digital output data between the board and an external device. A read
transfers data from the external device, through P2, and into PPI Port A; a write transfers the written data from
Port A through P2 to an external device.
BA + 1: PPI Port B — Digital I/O (Read/Write)
Transfers the 8-bit Port B digital input and digital output data between the board and an external device. A read
transfers data from the external device, through P2, and into PPI Port B; a write transfers the written data from
Port B through P2 to an external device.
BA + 2: PPI Port C — Digital I/O (Read/Write)
Transfers the two 4-bit Port C digital input and digital output data groups (Port C Upper and Port C Lower)
between the board and an external device. A read transfers data from the external device, through P2 and P6, and
into PPI Port C; a write transfers the written data from Port C through P2 and P6 to an external device.
Table 4-1: DM5806 I/O Map
Register Description
Read Function
Write Function
Address *
(Decimal)
8255 PPI Port A
Read Port A digital input lines Program Port A digital output lines
BA + 0
8255 PPI Port B
Read Port B digital input lines Program Port B digital output lines
BA + 1
8255 PPI Port C
Read Port C digital input lines Program Port C digital output lines
BA + 2
8255 PPI Control Word
Not used
Program PPI configuration
Enable and disable interrupt
generation
BA + 3
IRQ Enable
Not used
BA + 4
Interrupt Status/Clear
Read status of interrupt
Clear interrupt
BA + 5
Reserved
BA + 6
Reserved
BA + 7
8254 Timer/Counter 0
Read TC0 count value
Load TC0 count register
BA + 8
8254 Timer/Counter 1
Read TC1 count value
Load TC1 count register
BA + 9
8254 Timer/Counter 2
Read TC2 count value
Load TC2 count register
BA + 10
8254 Control Word
Not used
Program control register
BA + 11
* BA = Base Address