AT89C51
4-31
The AT89 C51 provi des the fo llowi ng stan dard feat ures : 4K
bytes of F lash, 128 bytes of RAM, 32 I/O lines, two 16- bit
timer/counters, a five vector two-level interrupt architecture,
a full duplex serial port, on-chip oscillator and clock cir-
cuitry. In addition, the AT89C51 is designed with static logic
for operation down to zero frequency and supports two
software selectable power saving modes. The Idle Mode
stops the CPU while allowing the RA M, timer/counters,
serial port and interrupt system to continue functioning. The
Power Down Mode saves the RAM contents but fr eezes
the oscillator disabling all other chip functions until the next
hardware reset.
Pin Description
VCC
Supply voltage.
GND
Ground.
Port 0
Port 0 is an 8-bi t open drain bidirectional I/O port. As an
output port each pin can sink eight TT L inputs. When 1s
are written to port 0 pins, the pins can be used as high-
impedance inputs.
Port 0 may also be configured to be the multiplexed low-
order address/data bus during accesses to external pr o-
gram and data memo ry. In this mode P0 has int ernal pul-
lups.
Port 0 a lso rec eives th e code bytes d uring Fla sh prog ram-
ming, and outputs the code bytes during program verifica-
tion. E xternal pullu ps are re quired during pr ogram v erific a-
tion.
Port 1
Port 1 is a n 8- bit bi dire ction al I/O por t with inter nal pullu ps.
The Port 1 output buffers can sink/source four TTL inputs.
When 1s are written to Port 1 pins they are pulled high by
the internal pullups and can be us ed as inputs. As i nputs,
Port 1 pins that are externally being pulled low will source
current (IIL) because of the internal pullups.
Port 1 also receives the low-order address bytes during
Flash programming and verification.
Port 2
Port 2 is a n 8- bit bi dire ction al I/O por t with inter nal pullu ps.
The Port 2 output buffers can sink/source four TTL inputs.
When 1s are written to Port 2 pins they are pulled high by
the internal pullups and can be us ed as inputs. As i nputs,
Port 2 pins that are externally being pulled low will source
current (IIL) because of the internal pullups.
Port 2 emits the high-order address byte during fetches
from external program memory and during accesses to
externa l data memory t hat us e 16 -bit addr e sses ( MOVX @
DPTR). In this appli cation it us es strong in ternal pull ups
when emitting 1s. During accesses to ex ternal data mem-
ory that use 8-bit addresses (MOVX @ RI), Port 2 emits the
contents of the P2 Special Function Register.
Port 2 also receives the high-order address bits and some
control signals during Flash programming and verification.
Port 3
Port 3 is an 8-bit bi directiona l I/O port with interna l pullups.
The Port 3 output buffers can sink/source four TTL inputs.
When 1s are written to Port 3 pins they are pulled high by
the internal pullups and can be used as inputs. As inputs,
Port 3 pins that are externally being pulled low will source
current (IIL) because of the pullups.
Port 3 also s erves the funct ions of var ious s peci al featu res
of the AT89C51 as listed below:
Port 3 also receives some control signals for Flash pro-
gramming and verification.
RST
Reset input. A high on this pin for two machine cycles while
the oscillator is running resets the device.
ALE/PROG
Address Latch Enable output pulse for latching the low byte
of the address during accesses to external memory. This
pin is also the program pulse input (PROG) during Flash
programmi ng.
In normal operation ALE is emitted at a constant rate of 1/6
the osc illator frequen cy, an d may be used for ex ternal tim-
ing or clocking purposes. Note, however, that one ALE
pulse is skipped during each access to external Data Mem-
ory.
If desired, ALE operation can be disabled by setting bit 0 of
SFR loc ation 8 EH. With the bit set, ALE is acti ve only du r-
ing a MOVX or MOVC instruction. Otherwise, the pin is
weakly pulled high. Setting the ALE-disable bit has no
effect if the microcontroller is in external execution mode.
PSEN
Program Store Enable is the read strobe to external pro-
gram memory.
Port Pin Alternate Functions
P3.0 RXD (serial input port)
P3.1 TXD (serial output port)
P3.2 INT0 (external interrupt 0)
P3.3 INT1 (external in terrupt 1)
P3.4 T0 (timer 0 external input)
P3.5 T1 (timer 1 external input)
P3.6 WR (external data memory write strobe)
P3.7 RD (external data memory read strobe)