ISSI IS89C52-40PQI, IS89C52-40PQ, IS89C52-24WI, IS89C52-24W, IS89C52-24PQI Datasheet

...
0 (0)

 

 

 

 

ISSI

 

 

 

 

 

 

IS89C52

 

 

 

 

®

 

 

 

IS89C52

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CMOS SINGLE CHIP

NOVEMBER 1998

 

 

 

8-BIT MICROCONTROLLER with 8-Kbytes of FLASH

FEATURES

80C51 based architecture

8-Kbytes of on-chip Reprogrammable Flash Memory

256 x 8 RAM

Three 16-bit Timer/Counters

Full duplex serial channel

Boolean processor

Four 8-bit I/O ports, 32 I/O lines

Memory addressing capability

64K ROM and 64K RAM

Program memory lock

Lock bits (3)

Power save modes:

Idle and power-down

Eight interrupt sources

Most instructions execute in 0.3 μs

CMOS and TTL compatible

Maximum speed: 40 MHz @ Vcc = 5V

Industrial temperature available

Packages available:

40-pin DIP

44-pin PLCC

44-pin PQFP

GENERAL DESCRIPTION

The ISSI IS89C52 is a high-performance microcontroller fabricated using high-density CMOS technology. The CMOS IS89C52 is functionally compatible with the industry standard 80C51 microcontrollers.

The IS89C52 is designed with 8-Kbytes of Flash memory, 258 x 8 RAM; 32 programmable I/O lines; a serial I/O port for either multiprocessor communications, I/O expansion or full duplex UART; three 16-bit timer/counters; an eight-source, two-priority-level, nested interrupt structure; and an on-chip oscillator and clock circuit. The IS89C52 can be expanded using standard TTL compatible memory.

 

 

 

 

T2/P1.0

 

1

40

 

VCC

T2EX/P1.1

 

39

 

P0.0/AD0

 

2

 

 

 

 

 

 

 

P1.2

 

38

 

P0.1/AD1

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

P1.3

 

37

 

P0.2/AD2

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

P1.4

 

36

 

P0.3/AD3

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

P1.5

 

35

 

P0.4/AD4

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

P1.6

 

34

 

P0.5/AD5

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

P1.7

 

8

33

 

P0.6/AD6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RST

 

32

 

P0.7/AD7

 

 

 

 

 

 

 

9

 

 

 

RxD/P3.0

 

 

31

 

 

 

 

 

 

 

 

 

 

10

 

 

EA/VPP

 

 

TxD/P3.1

 

 

30

 

 

 

 

 

 

 

 

 

 

11

 

ALE/PROG

 

 

 

 

 

 

 

 

 

 

29

 

 

 

 

 

 

 

 

INT0/P3.2

 

12

 

 

PSEN

 

 

 

 

 

 

 

 

 

 

 

28

 

P2.7/A15

 

INT1/P3.3

 

13

 

 

 

 

 

T0/P3.4

 

14

27

 

P2.6/A14

 

 

 

 

 

 

T1/P3.5

 

15

26

 

P2.5/A13

 

 

 

 

 

 

 

 

 

16

25

 

P2.4/A12

WR/P3.6

 

 

 

 

 

 

 

 

 

 

17

24

 

P2.3/A11

RD/P3.7

 

 

 

 

 

 

XTAL2

 

18

23

 

P2.2/A10

 

 

 

 

 

 

XTAL1

 

19

22

 

P2.1/A9

 

 

 

 

 

 

 

 

GND

 

20

21

 

P2.0/A8

 

 

Figure 1. IS89C52 Pin Configuration: 40-pin PDIP

ISSI reserves the right to make changes to its products at any time without notice in order to improve design and supply the best possible product. We assume no responsibility for any errors which may appear in this publication. © Copyright 1998, Integrated Silicon Solution, Inc.

Integrated Silicon Solution, Inc. — 1-800-379-4774

1

MC013-1C 11/21/98

IS89C52

 

 

 

 

 

 

 

 

 

 

 

 

INDEX

P1.4

P1.3

P1.2

P1.1/T2EX

P1.0/T2

NC

VCC

P0.0/AD0

P0.1/AD1

P0.2/AD2

P0.3/AD3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

5

4

3

2

1

44

43

42

41

40

 

P1.5

7

 

 

 

 

 

 

 

 

 

39

P0.4/AD4

P1.6

8

 

 

 

 

 

 

 

 

 

38

P0.5/AD5

P1.7

9

 

 

 

 

 

 

 

 

 

37

P0.6/AD6

RST

10

 

 

 

 

 

 

 

 

 

36

P0.7/AD7

RxD/P3.0

11

 

 

 

 

 

 

 

 

 

35

EA/VPP

NC

12

 

 

 

TOP VIEW

 

 

 

34

NC

 

 

 

 

 

 

 

 

 

TxD/P3.1

13

 

 

 

 

 

 

 

 

 

33

ALE/PROG

INT0/P3.2

14

 

 

 

 

 

 

 

 

 

32

PSEN

INT1/P3.3

15

 

 

 

 

 

 

 

 

 

31

P2.7/A15

T0/P3.4

16

 

 

 

 

 

 

 

 

 

30

P2.6/A14

T1/P3.5

17

 

 

 

 

 

 

 

 

 

29

P2.5/A13

 

18

19

20

21

22

23

24

25

26

27

28

 

 

WR/P3.6

RD/P3.7

XTAL2

XTAL1

GND

NC

A8/P2.0

A9/P2.1

A10/P2.2

A11/P2.3

A12/P2.4

 

Figure 2. IS89C52 Pin Configuration: 44-pin PLCC

2

Integrated Silicon Solution, Inc. — 1-800-379-4774

MC013-1C 11/21/98

IS89C52

P1.5

P1.6

P1.7

RST

RxD/P3.0

NC

TxD/P3.1

INT0/P3.2

INT1/P3.3

T0/P3.4

T1/P3.5

1

2

3

4

5

6

7

8

9

10

11

P1.4

 

P1.3

P1.2

P1.1/T2EX

P1.0/T2

NC

 

VCC

P0.0/AD0

P0.1/AD1

P0.2/AD2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

44

43

42

41

40

39

38

37

36

35

 

12

13

14

15

16

17

18

19

20

21

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

WR/P3.6

 

RD/P3.7

 

XTAL2

XTAL1

GND

NC

A8/P2.0

 

A9/P2.1

 

A10/P2.2

 

A11/P2.3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P0.3/AD3

34

33

32

31

30

29

29

27

26

25

24

23

22 A12/P2.4

P0.4/AD4

P0.5/AD5

P0.6/AD6

P0.7/AD7

EA

NC

ALE

PSEN

P2.7/A15

P2.6/A14

P2.5/A13

Figure 3. IS89C52 Pin Configuration: 44-pin PQFP

Integrated Silicon Solution, Inc. — 1-800-379-4774

3

MC013-1C 11/21/98

ISSI IS89C52-40PQI, IS89C52-40PQ, IS89C52-24WI, IS89C52-24W, IS89C52-24PQI Datasheet

IS89C52

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P2.0-P2.7

P0.0-P0.7

 

 

 

 

 

 

 

P2

P0

 

 

Vcc

 

 

 

 

 

DRIVERS

DRIVERS

 

 

 

 

 

 

 

 

 

 

GND

 

 

 

 

 

 

 

 

 

 

 

 

ADDRESS

 

 

 

ADDRESS

3 LOCK BITS

 

 

 

DECODER

 

 

 

DECODER

&

 

RAM ADDR

& 256

 

P2

P0

&

32 BYTES

 

REGISTER

BYTES RAM

 

LATCH

LATCH

8K FLASH

ENCRYPTION

 

 

 

 

 

 

 

 

 

PROGRAM

 

 

 

 

 

 

 

 

 

ADDRESS

 

B

 

STACK

 

ACC

 

 

REGISTER

 

REGISTER

POINT

 

 

 

 

 

 

 

 

 

 

 

 

 

PCON

SCON

TMOD

TCON

 

 

PROGRAM

 

 

 

T2CON

TH0

TL0

TH1

TMP2

TMP1

COUNTER

 

 

 

 

 

 

 

TL1

TH2

TL2

RCAP2H

 

 

 

 

 

 

RCAP2L

SBUF

IE

IP

 

 

 

 

 

 

INTERRUPT BLOCK

 

 

PC

 

 

 

SERIAL PORT BLOCK

ALU

 

INCREMENTER

 

 

 

 

TIMER BLOCK

 

 

 

 

 

 

 

 

 

 

 

PSW

 

BUFFER

 

 

 

 

 

 

 

 

 

PSEN

 

INSTRUCTION REGISTER

 

 

 

 

 

 

ALE/PROG

TIMING

 

 

 

 

 

DPTR

RST

AND

 

 

 

 

 

CONTROL

 

 

 

 

 

 

EA/VPP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P3

 

P1

 

 

 

 

 

 

 

LATCH

 

LATCH

 

 

OSCILLATOR

 

 

 

 

 

 

 

 

XTAL1

 

XTAL2

 

 

P3

 

P1

 

 

 

 

 

DRIVERS

 

DRIVERS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P3.0-P3.7

 

P1.0-P1.7

 

Figure 4. IS89C52 Block Diagram

4

Integrated Silicon Solution, Inc. — 1-800-379-4774

MC013-1C 11/21/98

IS89C52

Table 1. Detailed Pin Description

Symbol

PDIP

PLCC

PQFP

I/O

Name and Function

ALE/PROG

30

33

27

I/O

Address Latch Enable: Output pulse for latching the low byte

 

 

 

 

 

of the address during an address to the external memory. In

 

 

 

 

 

normal operation, ALE is emitted at a constant rate of 1/6 the

 

 

 

 

 

oscillator frequency, and can be used for external timing or

 

 

 

 

 

clocking. Note that one ALE pulse is skipped during each

 

 

 

 

 

access to external data memory. This pin is also the Program

 

 

 

 

 

Pulse input (PROG) during Flash programming.

 

 

 

 

 

 

EA/VPP

31

35

29

I

External Access enable: EA must be externally held low to

 

 

 

 

 

enable the device to fetch code from external program memory

 

 

 

 

 

locations 0000H to FFFFH. If EA is held high, the device

 

 

 

 

 

executes from internal program memory unless the program

 

 

 

 

 

counter contains an address greater than 0FFFH. This also

 

 

 

 

 

receives the 12V programming enable voltage (VPP) during

 

 

 

 

 

Flash programming.

 

 

 

 

 

 

P0.0-P0.7

39-32

43-36

37-30

I/O

Port 0: Port 0 is an 8-bit open-drain, bidirectional I/O port. Port

 

 

 

 

 

0 pins that have 1s written to them float and can be used as high-

 

 

 

 

 

impedance inputs. Port 0 is also the multiplexed low-order

 

 

 

 

 

address and data bus during accesses to external program and

 

 

 

 

 

data memory. In this application, it uses strong internal pullups

 

 

 

 

 

when emitting 1s.

 

 

 

 

 

Port 0 also receives the code bytes during programmable

 

 

 

 

 

memory programming and outputs the code bytes during

 

 

 

 

 

program verification. External pullups are required during pro-

 

 

 

 

 

gram verification.

 

 

 

 

 

 

P1.0-P1.7

1-8

2-9

40-44

I/O

Port 1: Port 1 is an 8-bit bidirectional I/O port with internal

 

 

 

1-3

 

pullups. Port 1 pins that have 1s written to them are pulled high

 

 

 

 

 

by the internal pullups and can be used as inputs. As inputs,

 

 

 

 

 

Port 1 pins that are externally pulled low will source current

 

 

 

 

 

because of the internal pullups. (See DC Characteristics: IIL).

 

 

 

 

 

The Port 1 output buffers can sink/source four TTL inputs.

 

 

 

 

 

Port 1 also receives the low-order address byte during Flash

 

 

 

 

 

programming and verification.

 

1

2

40

I

T2(P1.0): Timer/Counter 2 external count input.

 

2

3

41

I

T2EX(P1.1): Timer/Counter 2 trigger input.

 

 

 

 

 

 

P2.0-P2.7

21-28

24-31

18-25

I/O

Port 2: Port 2 is an 8-bit bidirectional I/O port with internal

 

 

 

 

 

pullups. Port 2 pins that have 1s written to them are pulled high

 

 

 

 

 

by the internal pullups and can be used as inputs. As inputs,

 

 

 

 

 

Port 2 pins that are externally pulled low will source current

 

 

 

 

 

because of the internal pullups. (See DC Characteristics: IIL).

 

 

 

 

 

Port 2 emits the high order address byte during fetches from

 

 

 

 

 

external program memory and during accesses to external data

 

 

 

 

 

memory that used 16-bit addresses (MOVX @ DPTR). In this

 

 

 

 

 

application, Port 2 uses strong internal pullups when emitting

 

 

 

 

 

1s. During accesses to external data memory that use 8-bit

 

 

 

 

 

addresses (MOVX @ Ri [i = 0, 1]), Port 2 emits the contents of

 

 

 

 

 

the P2 Special Function Register.

 

 

 

 

 

Port 2 also receives the high-order bits and some control

 

 

 

 

 

signals during Flash programming and verification. P2.6 and

 

 

 

 

 

P2.7 are the control signals while the chip programs and

 

 

 

 

 

erases.

 

 

 

 

 

 

 

 

Integrated Silicon Solution, Inc. — 1-800-379-4774

5

MC013-1C

 

 

 

 

 

11/21/98

 

 

 

 

 

IS89C52

Table 1. Detailed Pin Description (continued)

Symbol

PDIP

PLCC

PQFP

I/O

Name and Function

P3.0-P3.7

10-17

11, 13-19

5, 7-13

I/O

Port 3: Port 3 is an 8-bit bidirectional I/O port with internal

 

 

 

 

 

pullups. Port 3 pins that have 1s written to them are pulled high

 

 

 

 

 

by the internal pullups and can be used as inputs. As inputs,

 

 

 

 

 

Port 3 pins that are externally pulled low will source current

 

 

 

 

 

because of the internal pullups. (See DC Characteristics: IIL).

 

 

 

 

 

Port 3 also serves the special features of the IS89C52, as listed

 

 

 

 

 

below:

 

10

11

5

I

RxD (P3.0): Serial input port.

 

11

13

7

O

TxD (P3.1): Serial output port.

 

12

14

8

I

INT0 (P3.2): External interrupt 0.

 

13

15

9

I

INT1 (P3.3): External interrupt 1.

 

14

16

10

I

T0 (P3.4): Timer 0 external input.

 

15

17

11

I

T1 (P3.5): Timer 1 external input.

 

16

18

12

O

WR (P3.6): External data memory write strobe.

 

17

19

13

O

RD (P3.7): External data memory read strobe.

 

 

 

 

 

 

PSEN

29

32

26

O

Program Store Enable: The read strobe to external program

 

 

 

 

 

memory. When the device is executing code from the external

 

 

 

 

 

program memory, PSEN is activated twice each machine cycle

 

 

 

 

 

except that two PSEN activations are skipped during each

 

 

 

 

 

access to external data memory. PSEN is not activated during

 

 

 

 

 

fetches from internal program memory.

 

 

 

 

 

 

RST

9

10

4

I

Reset: A high on this pin for two machine cycles while the

 

 

 

 

 

oscillator is running, resets the device. An internal MOS resistor

 

 

 

 

 

to GND permits a power-on reset using only an external

 

 

 

 

 

capacitor connected to Vcc.

 

 

 

 

 

 

XTAL 1

19

21

15

I

Crystal 1: Input to the inverting oscillator amplifier and input

 

 

 

 

 

to the internal clock generator circuits.

 

 

 

 

 

 

XTAL 2

18

20

14

O

Crystal 2: Output from the inverting oscillator amplifier.

 

 

 

 

 

 

GND

20

22

16

I

Ground: 0V reference.

 

 

 

 

 

 

Vcc

40

44

38

I

Power Supply: This is the power supply voltage for operation.

 

 

 

 

 

 

6 Integrated Silicon Solution, Inc. — 1-800-379-4774

MC013-1C 11/21/98

IS89C52

OPERATING DESCRIPTION

The detail description of the IS89C52 included in this description are:

Memory Map and Registers

Timer/Counters

Serial Interface

Interrupt System

Other Information

Flash Memory

MEMORY MAP AND REGISTERS

Memory

The IS89C52 has separate address spaces for program and data memory. The program and data memory can be up to 64K bytes long. The lower 8K program memory can reside on-chip. Figure 5 shows a map of the IS89C52 program and data memory.

The IS89C52 has 256 bytes of on-chip RAM, plus numbers of special function registers. The lower 128 bytes can be accessed either by direct addressing or by indirect

addressing. Figure 6 shows internal data memory organization and SFR Memory Map.

The lower 128 bytes of RAM can be divided into three segments as listed below and shown in Figure 7.

1.Register Banks 0-3: locations 00H through 1FH (32 bytes). The device after reset defaults to register bank 0. To use the other register banks, the user must select them in software. Each register bank contains eight 1-byte registers R0-R7. Reset initializes the stack point to location 07H, and is incremented once to start from 08H, which is the first register of the second register bank.

2.Bit Addressable Area: 16 bytes have been assigned for this segment 20H-2FH. Each one of the 128 bits of this segment can be directly addressed (0-7FH). Each of the 16 bytes in this segment can also be addressed as a byte.

3.Scratch Pad Area: 30H-7FH are available to the user as data RAM. However, if the data pointer has been initialized to this area, enough bytes should be left aside to prevent SP data destruction.

Program Memory

Data Memory

(Read Only)

(Read/Write)

FFFFH:

 

 

FFFFH:

64K

 

 

 

 

 

 

External

 

1FFFH:

 

Internal

 

FFH:

 

 

8K

 

 

 

 

EA = 0

 

EA = 1

 

External

 

Internal

 

 

0000

00

0000

 

 

 

PSEN

 

 

RD WR

Figure 5. IS89C52 Program and Data Memory Structure

Integrated Silicon Solution, Inc. — 1-800-379-4774

7

MC013-1C 11/21/98

IS89C52

SPECIAL FUNCTION REGISTERS

The Special Function Registers (SFR's) are located in upper 128 Bytes direct addressing area. The SFR Memory Map in Figure 6 shows that.

Not all of the addresses are occupied. Unoccupied addresses are not implemented on the chip. Read accesses to these addresses in general return random data, and write accesses have no effect.

User software should not write 1s to these unimplemented locations, since they may be used in future microcontrollers to invoke new features. In that case, the reset or inactive values of the new bits will always be 0, and their active values will be 1.

The functions of the SFRs are outlined in the following sections, and detailed in Table 2.

Accumulator (ACC)

ACC is the Accumulator register. The mnemonics for Accumulator-specific instructions, however, refer to the Accumulator simply as A.

B Register (B)

The B register is used during multiply and divide operations. For other instructions it can be treated as another scratch pad register.

Program Status Word (PSW). The PSW register contains program status information.

 

FFH

 

 

FFH

F8

 

 

 

 

 

 

 

 

 

 

 

FF

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F0

 

B

 

 

 

 

 

 

 

 

F7

 

 

 

 

 

E8

 

 

 

 

 

 

 

 

 

 

 

EF

 

 

Accessible

Accessible

 

E0

 

ACC

 

 

 

 

 

 

 

 

E7

Upper

 

by Indirect

 

D8

 

 

 

 

 

 

 

 

 

 

 

DF

 

by Direct

 

 

 

 

 

 

 

 

 

 

 

 

128

 

Addressing

 

D0

 

PSW

 

 

 

 

 

 

 

 

D7

 

Addressing

 

 

 

 

 

 

 

 

 

 

 

 

Only

 

C8

 

T2CON

 

 

RCAP2L

RCAP2H

TL2

TH2

 

 

CF

 

 

 

 

C0

 

 

 

 

 

 

 

 

 

 

 

C7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B8

 

IP

 

 

 

 

 

 

 

 

BF

 

80H

 

 

80H

B0

 

P3

 

 

 

 

 

 

 

 

B7

 

 

 

A8

 

IE

 

 

 

 

 

 

 

 

AF

 

7FH

 

 

 

A0

 

P2

 

 

 

 

 

 

 

 

A7

 

 

 

 

 

98

 

SCON

 

SBUF

 

 

 

 

 

 

9F

 

 

Accessible

 

 

90

 

P1

 

 

 

 

 

 

 

 

97

Lower

 

 

Ports,

88

 

TCON

 

TMOD

TL0

TL1

TH0

TH1

 

 

8F

 

by Direct

 

 

 

 

 

 

 

Status and

80

 

P0

 

SP

DPL

DPH

 

 

 

PCON

87

128

 

and Indirect

 

 

 

 

 

 

 

Special

Control Bits,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Addressing

Timer,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Function

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Registers,

 

 

Bit

 

 

 

 

 

 

 

 

 

 

 

Registers

 

 

 

 

 

 

 

 

 

 

 

 

 

Stack Pointer,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Addressable

 

 

 

 

 

 

 

 

 

0

 

 

Accumulator

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(Etc.)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Figure 6. Internal Data Memory and SFR Memory Map

 

 

8 BYTES

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

78

 

 

 

 

7F

 

 

70

 

 

 

 

77

 

 

68

 

 

 

 

6F

 

 

60

 

 

 

 

67

 

 

58

 

 

 

 

5F

SCRATCH

 

50

 

 

 

 

57

 

 

 

 

 

PAD

 

48

 

 

 

 

4F

AREA

 

 

 

 

 

 

 

40

 

 

 

 

47

 

 

38

 

 

 

 

3F

 

 

30

 

 

 

 

37

 

 

 

 

 

 

 

 

 

 

28

 

 

...7F

2F

BIT

 

 

 

 

 

ADDRESSABLE

 

20

0 ...

 

 

 

27

 

 

 

 

SEGMENT

 

 

 

BANK3

 

 

 

 

18

 

1F

 

 

 

 

 

 

 

 

10

 

BANK2

17

REGISTER

 

 

 

 

 

 

08

 

BANK 1

0F

BANKS

 

00

 

BANK 0

07

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Figure 7. Lower 128 Bytes of Internal RAM

8

Integrated Silicon Solution, Inc. — 1-800-379-4774

MC013-1C 11/21/98

IS89C52

SPECIAL FUNCTION REGISTERS

(Continued)

Stack Pointer (SP)

The Stack Pointer Register is eight bits wide. It is incremented before data is stored during PUSH and CALL executions. While the stack may reside anywhere in onchip RAM, the Stack Pointer is initialized to 07H after a reset. This causes the stack to begin at location 08H.

Data Pointer (DPTR)

The Data Pointer consists of a high byte (DPH) and a low byte (DPL). Its function is to hold a 16-bit address. It may be manipulated as a 16-bit register or as two independent 8-bit registers.

Ports 0 To 3

P0, P1, P2, and P3 are the SFR latches of Ports 0, 1, 2, and 3, respectively.

Serial Data Buffer (SBUF)

The Serial Data Buffer is actually two separate registers, a transmit buffer and a receive buffer register. When data is moved to SBUF, it goes to the transmit buffer, where it is held for serial transmission. (Moving a byte to SBUF initiates the transmission.) When data is moved from SBUF, it comes from the receive buffer.

Timer Registers

Register pairs (TH0, TL0) and (TH1, TL1) are the 16-bit Counter registers for Timer/Counters 0 and 1, respectively.

Capture Registers

The register pair (RCAP2H, RCAP2L) are the Capture registers for the Timer 2 Capture Mode. In this mode, in response to a transition at the IS89C52's T2EX pin, TH2 and TL2 are copied into RCAP2H and RCAP2L. Timer 2 also has a 16-bit auto-reload mode, and RCAP2H and RCAP2L hold the reload value for this mode.

Control Registers

Special Function Registers IP, IE, TMOD, TCON, SCON, and PCON contain control and status bits for the interrupt system, the Timer/Counters, and the serial port. They are described in later sections of this chapter.

Integrated Silicon Solution, Inc. — 1-800-379-4774

9

MC013-1C 11/21/98

IS89C52

Table 2. Special Function Registers

Symbol

 

Description

Direct Address

Bit Address, Symbol, or Alternative Port Function

Reset Value

ACC(1)

 

Accumulator

 

E0H

E7

E6

E5

E4

E3

E2

E1

E0

00H

B(1)

 

B register

 

F0H

F7

F6

F5

F4

F3

F2

F1

F0

00H

DPH

Data pointer (DPTR) high

83H

 

 

 

 

 

 

 

 

00H

DPL

Data pointer (DPTR) low

 

82H

 

 

 

 

 

 

 

 

00H

 

 

 

 

 

AF

AE

AD

AC

AB

AA

A9

A8

 

IE(1)

 

Interrupt enable

 

A8H

EA

ES

ET1

EX1

ET0

EX0

0XX00000B

 

 

 

 

 

BF

BE

BD

BC

BB

BA

B9

B8

 

IP(1)

 

Interrupt priority

 

B8H

PS

PT1

PX1

PT0

PX0

XXX00000B

 

 

 

 

 

87

86

85

84

83

82

81

80

 

P0(1)

 

Port 0

 

80H

P0.7

P0.6

P0.5

P0.4

P0.3

P0.2

P0.1

P0.0

FFH

 

 

 

 

 

AD7

AD6

AD5

AD4

AD3

AD2

AD1

AD0

 

 

 

 

 

 

97

96

95

94

93

92

91

90

 

P1(1)

 

Port 1

 

90H

P1.7

P1.6

P1.5

P1.4

P1.3

P1.2

P1.1

P1.0

FFH

 

 

 

 

 

A7

A6

A5

A4

A3

A2

A1

A0

 

P2(1)

 

Port 2

 

A0H

P2.7

P2.6

P2.5

P2.4

P2.3

P2.2

P2.1

P2.0

FFH

 

 

 

 

 

AD15

AD14

AD13

AD12

AD11

AD10

AD9

AD8

 

 

 

 

 

 

B7

B6

B5

B4

B3

B2

B1

B0

 

P3(1)

 

Port 3

 

B0H

P3.7

P3.6

P3.5

P3.4

P3.3

P3.2

P3.1

P3.0

FFH

 

 

 

 

 

RD

WR

T1

T0

INT1

INT0

TXD

RXD

 

PCON

 

Power control

 

87H

SMOD

GF1

GF0

PD

IDL

0XXX0000B

 

 

 

 

 

D7

D6

D5

D4

D3

D2

D1

D0

 

PSW(1)

 

Program status word

 

D0H

CY

AC

F0

RS1

RS0

OV

P

00H

SBUF

 

Serial data buffer

 

99H

 

 

 

 

 

 

 

 

XXXXXXXXB

 

 

 

 

 

9F

9E

9D

9C

9B

9A

99

98

 

SCON(1)

 

Serial controller

 

98H

SM0

SM1

SM2

REN

TB8

RB8

TI

RI

00H

SP

 

Stack pointer

 

81H

 

 

 

 

 

 

 

 

07H

 

 

 

 

 

8F

8E

8D

8C

8B

8A

89

88

 

TCON(1)

 

Timer control

 

88H

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

00H

TMOD

 

Timer mode

 

89H

GATE

C/T

M1

M0

GATE

C/T

M1

M0

00H

TH0

 

Timer high 0

 

8CH

 

 

 

 

 

 

 

 

00H

TH1

 

Timer high 1

 

8DH

 

 

 

 

 

 

 

 

00H

TL0

 

Timer low 0

 

8AH

 

 

 

 

 

 

 

 

00H

TL1

 

Timer low 1

 

8BH

 

 

 

 

 

 

 

 

00H

RCAP2H(2)

Capture high

 

CAH

 

 

 

 

 

 

 

 

00H

RCAP2L(2)

Capture low

 

CBH

 

 

 

 

 

 

 

 

00H

TL2(2)

 

Timer low 2

 

CCH

 

 

 

 

 

 

 

 

00H

Notes:

1.Denotes bit addressable.

2.SFRs are added to the 80C51 SFRs.

10 Integrated Silicon Solution, Inc. — 1-800-379-4774

MC013-1C 11/21/98

IS89C52

The detail description of each bit is as follows:

PSW:

Program Status Word. Bit Addressable.

7

6

5

4

3

2

1

0

CY

AC

F0

RS1

RS0

OV

P

Register Description:

 

 

 

 

CY

PSW.7

 

Carry flag.

 

 

 

 

 

 

 

 

 

AC

PSW.6

Auxiliary carry flag.

 

 

 

 

 

 

F0

PSW.5

 

Flag 0 available to the user for general

 

 

 

purpose.

 

 

 

 

RS1

PSW.4

 

Register bank selector bit 1.(1)

 

RS0

PSW.3

 

Register bank selector bit 0.(1)

 

OV

PSW.2

 

Overflow flag.

 

 

 

 

 

 

 

PSW.1

 

Usable as a general purpose flag

 

 

 

 

P

PSW.0

 

Parity flag. Set/Clear by hardware each

 

 

 

instruction cycle to indicate an odd/even

 

 

 

number of “1” bits in the accumulator.

 

 

 

 

 

 

 

 

Note:

1.The value presented by RS0 and RS1 selects the corresponding register bank.

RS1

RS0

Register Bank

Address

0

0

0

00H-07H

 

 

 

 

0

1

1

08H-0FH

 

 

 

 

1

0

2

10H-17H

 

 

 

 

1

1

3

18H-1FH

 

 

 

 

PCON:

Power Control Register. Not Bit Addressable.

7

6

 

5

4

3

2

1

0

SMOD

GF1

GF0

PD

IDL

 

Register

 

Description:

 

 

 

 

 

 

 

SMOD

 

Double baud rate bit. If Timer 1 is used to generate

 

 

baud rate and SMOD=1, the baud rate is doubled

 

 

when the serial port is used in modes 1, 2, or 3.

 

 

 

 

 

 

 

 

 

Not implemented, reserve for future use.(1)

Not implemented, reserve for future use.(1)

Not implemented, reserve for future use.(1)

GF1

General purpose flag bit.

GF0

General purpose flag bit.

PD

Power-down bit. Setting this bit activates power-

 

down mode.

IDL

Idle mode bit. Setting this bit activates idle mode.

 

If 1s are written to PD and IDL at the same time,

 

PD takes precedence.

 

 

IE:

Interrupt Enable Register. Bit Addressable.

7

6

5

4

3

2

1

0

EA

ES

ET1

EX1 ET0

 

EX0

Register Description:

 

 

 

 

EA

IE.7

 

Disable all interrupts. If EA=0, no

 

 

 

interrupt will be acknowledged. If EA=1,

 

 

 

each interrupt source is individually

 

 

 

enabled or disabled by setting or

 

 

 

clearing its enable bit.

 

 

IE.6

 

Not implemented, reserve for future

 

 

 

use.(5)

 

 

 

 

IE.5

 

Not implemented, reserve for future

 

 

 

use.(5)

 

 

 

 

ES

IE.4

 

Enable or disable the serial port

 

 

 

interrupt.

 

 

 

ET1

IE.3

 

Enable or disable the Timer 1 overflow

 

 

 

interrupt.

 

 

 

EX1

IE.2

 

Enable or disable External Interrupt 1.

ET0

IE.1

 

Enable or disable the Timer 0 overflow

 

 

 

interrupt.

 

 

 

EX0

IE.0

 

Enable or disable External Interrupt 0.

 

 

 

 

 

 

 

 

Note: To use any of the interrupts in the 80C51 Family, the following three steps must be taken:

1.Set the EA (enable all) bit in the IE register to 1.

2.Set the coresponding individual interrupt enable bit in the IE register to 1.

3.Begin the interrupt service routine at the corresponding Vector Address of that interrupt (see below).

Interrupt Source

Vector Address

IE0

0003H

 

 

TF0

000BH

 

 

IE1

0013H

 

 

TF1

001BH

 

 

RI & TI

0023H

4.In addition, for external interrupts, pins INT0 and INT1 (P3.2 and P3.3) must be set to 1, and depending on whether the interrupt is to be level or transition activated, bits IT0 or IT1 in the TCON register may need to be set to 0 or 1.

ITX = 0 level activated (X = 0, 1) ITX = 1 transition activated

5.User software should not write 1s to reserved bits. These bits may be used in future products to invoke new features.

Note:

1.User software should not write 1s to reserved bits. These bits may be used in future products to invoke new features.

Integrated Silicon Solution, Inc. — 1-800-379-4774

11

MC013-1C 11/21/98

IS89C52

IP:

Interrupt Priority Register. Bit Addressable.

7

6

5

4

3

2

1

0

— — PS PT1 PX1 PT0 PX0

Register Description:

IP.7

Not implemented, reserve for future use(3)

IP.6

Not implemented, reserve for future use(3)

IP.5

Not implemented, reserve for future use(3)

PS

IP.4

Defines Serial Port interrupt priority level

PT1

IP.3

Defines Timer 1 interrupt priority level

PX1

IP.2

Defines External Interrupt 1 priority level

PT0

IP.1

Defines Timer 0 interrupt priority level

PX0

IP.0

Defines External Interrupt 0 priority level

 

 

 

Notes:

1.In order to assign higher priority to an interrupt the coresponding bit in the IP register must be set to 1. While an interrupt service is in progress, it cannot be interrupted by a lower or same level interrupt.

2.Priority within level is only to resolve simultaneous requests of the same priority level. From high-to-low, interrupt sources are listed below:

IE0

TF0

IE1

TF1

RI or TI

TF2 or EXF2

3.User software should not write 1s to reserved bits. These bits may be used in future products to invoke new features.

TCON:

Timer/Counter Control Register. Bit Addressable

7

6

5

4

3

2

1

0

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

Register Description:

 

 

 

 

 

 

 

TF1

TCON.7

Timer 1 overflow flag. Set by hardware

 

 

 

when the Timer/Counter 1 overflows.

 

 

 

Cleared by hardware as processor

 

 

 

vectors to the interrupt service routine.

 

 

 

TR1

TCON.6

Timer 1 run control bit. Set/Cleared by

 

 

 

software to turn Timer/Counter 1 ON/

 

 

 

OFF.

 

 

 

 

 

 

 

TF0

TCON.5

Timer 0 overflow flag. Set by hardware

 

 

 

when the Timer/Counter 0 overflows.

 

 

 

Cleared by hardware as processor

 

 

 

vectors to the interrupt service routine.

 

 

 

TR0

TCON.4

Timer 0 run control bit. Set/Cleared by

 

 

 

software to turn Timer/Counter 0 ON/

 

 

 

OFF.

 

 

 

 

 

 

 

IE1

TCON.3

External Interrupt 1 edge flag. Set by

 

 

 

hardware when the External Interrupt

 

 

 

edge is detected. Cleared by hardware

 

 

 

when interrupt is processed.

 

 

 

 

IT1

TCON.2

Interrupt 1 type control bit. Set/Cleared

 

 

 

by software specify falling edge/low level

 

 

 

triggered External Interrupt.

 

 

 

 

IE0

TCON.1

External Interrupt 0 edge flag. Set by

 

 

 

hardware when the External Interrupt

 

 

 

edge is detected. Cleared by hardware

 

 

 

when interrupt is processed.

 

 

 

 

 

 

 

 

 

IT0

TCON.0 Interrupt 0 type control bit. Set/Cleared

 

by software specify falling edge/low level

 

triggered External Interrupt.

 

 

12 Integrated Silicon Solution, Inc. — 1-800-379-4774

MC013-1C 11/21/98

IS89C52

TMOD:

Timer/Counter Mode Control Register.

Not Bit Addressable.

Timer 1

Timer 0

GATE C/T M1 M0

GATE C/T M1 M0

GATE When TRx (in TCON) is set and GATE=1, TIMER/ COUNTERx will run only while INTx pin is high (hardware control). When GATE=0, TIMER/ COUNTERx will run only while TRx=1 (software control).

C/T Timer or Counter selector. Cleared for Timer operation (input from internal system clock). Set for Counter operation (input from Tx input pin).

M1 Mode selector bit.(1)

M0 Mode selector bit.(1)

Note 1:

M1

M0

Operating Mode

0

0

Mode 0.

(13-bit Timer)

 

 

 

 

0

1

Mode 1.

(16-bit Timer/Counter)

 

 

 

 

1

0

Mode 2.

(8-bit auto-load Timer/Counter)

11 Mode 3. (Splits Timer 0 into TL0 and TH0. TL0 is an 8-bit Timer/Counter controller by the standard Timer 0 control bits. TH0 is an 8-bit Timer and is controlled by Timer 1 control bits.)

1

1 Mode 3. (Timer/Counter 1 stopped).

SCON:

Serial Port Control Register. Bit Addressable.

7

6

5

4

3

2

1

0

SM0

SM1

SM2

REN

TB8

RB8

TI

RI

Register Description:

 

 

 

 

 

 

 

 

SM0

SCON.7

Serial port mode specifier.(1)

 

SM1

SCON.6

Serial port mode specifier.(1)

 

SM2

SCON.5

Enable the multiprocessor com-

 

 

 

munication feature in mode 2 and 3. In

 

 

 

mode 2 or 3, if SM2 is set to 1 then RI

 

 

 

will not be activated if the received 9th

 

 

 

data bit (RB8) is 0. In mode 1, if SM2=1

 

 

 

then RI will not be activated if valid stop

 

 

 

bit was not received. In mode 0, SM2

 

 

 

should be 0.

 

 

 

 

 

 

REN

SCON.4

Set/Cleared by software to Enable/

 

 

 

Disable reception.

 

 

 

 

 

TB8

SCON.3

The 9th bit that will be transmitted in

 

 

 

mode 2 and 3. Set/Cleared by software.

 

 

 

RB8

SCON.2

In modes 2 and 3, RB8 is the 9th data

 

 

 

bit that was received. In mode 1, if

 

 

 

SM2=0, RB8 is the stop bit that was

 

 

 

received. In mode 0, RB8 is not used.

 

 

 

TI

SCON.1

Transmit interrupt flag. Set by hardware

 

 

 

at the end of the eighth bit time in mode

 

 

 

0, or at the beginning of the stop bit in

 

 

 

the other modes. Must be cleared by

 

 

 

software.

 

 

 

 

 

 

 

RI

SCON.0

Receive interrupt flag. Set by hardware

 

 

 

at the end of the eighth bit time in mode

 

 

 

0, or halfway through the stop bit time

 

 

 

in the other modes (except see SM2).

 

 

 

Must be cleared by software.

 

 

 

 

 

 

 

 

 

Note 1:

SM0

SM1 MODE

Description

Baud Rate

0

0

0

Shift register

Fosc/12

 

 

 

 

 

0

1

1

8-bit UART

Variable

 

 

 

 

 

1

0

2

9-bit UART

Fosc/64 or

 

 

 

 

Fosc/32

 

 

 

 

 

1

1

3

9-bit UART

Variable

 

 

 

 

 

Integrated Silicon Solution, Inc. — 1-800-379-4774

13

MC013-1C 11/21/98

IS89C52

T2CON:

Timer/Counter 2 Control Register. Bit Addressable.

7

6

5

4

3

2

1

0

TF2

EXF2

RCLK

TCLK

EXEN2

TR2

C/T2

CP/RL2

Register Description:

 

 

 

 

TF2 T2CON.7 Timer 2 overflow flag set by hardware and cleared by software. TF2 cannot be set when either RCLK = 1 or TCLK = 1.

EXF2 T2CON.6 Timer 2 external flag set when either a capture or reload is caused by a negative transition on T2EX, and EXEN2 = 1. When Timer 2 interrupt is enabled, EXF2 = 1 causes the CPU to vector to the Timer 2 interrupt routine. EXF2 must be cleared by software.

RCLK T2CON.5 Receive clock flag. When set, causes the Serial Port to use Timer 2 overflow pulses for its receive clock in modes 1 and 3. RCLK = 0 causes Timer 1 overflow to be used for the receive clock.

TLCK T2CON.4 Transmit clock flag. When set, causes the Serial Port to use Timer 2 overflow pulses for its transmit clock in modes 1 and 3. TCLK = 0 causes Timer 1 overflows to be used for the transmit clock.

EXEN2

T2CON.3 Timer 2 external enable flag.

 

When set, allows a capture or reload to

 

occur as a result of negative transition

 

on T2EX if Timer 2 is not being used to

 

clock the Serial Port, EXEN2 = 0 causes

 

Timer 2 to ignore events at T2EX.

TR2

T2CON.2

Software START/STOP control for

 

 

Timer 2. A logic 1 starts the Timer.

C/T2

T2CON.1

Timer

or Counter select.

 

 

0 = Internal Timer. 1 = External Event

 

 

Counter (triggered by falling edge).

CP/RL2

T2CON.0

Capture/Reload flag.

When set, captures occur on negative transitions at T2EX if EXEN2 = 1. When cleared, auto-reloads occur either with Timer 2 overflows or negative transitions at T2EX when EXEN2 = 1. When either RCLK = 1 or TCLK = 1, this bit is ignored and the Timer is forced to auto-reload on Timer 2 overflow.

Note:

1. Timer 2 Operating Modes

RCLK + TCLK

CP/RL2

TR2

MODE

0

0

1

16-Bit Auto-Reload

 

 

 

 

 

0

1

1

16-Bit Capture

 

 

 

 

 

1

X

1

Baud Rate Generator

 

 

 

 

 

X

X

0

(Off)

 

 

 

 

 

14 Integrated Silicon Solution, Inc. — 1-800-379-4774

MC013-1C 11/21/98

IS89C52

TIMER/COUNTERS

The IS89C52 has two 16-bit Timer/Counter registers: Timer 0 and Timer 1. All two can be configured to operate either as Timers or event Counters.

As a Timer, the register is incremented every machine cycle. Thus, the register counts machine cycles. Since a machine cycle consists of 12 oscillator periods, the count rate is 1/12 of the oscillator frequency.

As a Counter, the register is incremented in response to a 1-to-0 transition at its corresponding external input pin, T0 and T1. The external input is sampled during S5P2 of every machine cycle. When the samples show a high in one cycle and a low in the next cycle, the count is incremented. The new count value appears in the register during S3P1 of the cycle following the one in which the transition was detected. Since two machine cycles (24 oscillator periods) are required to recognize a 1-to-0 transition, the maximum count rate is 1/24 of the oscillator frequency. There are no restrictions on the duty cycle of the external input signal, but it should be held for at least one full machine cycle to ensure that a given level is sampled at least once before it changes.

In addition to the Timer or Counter functions, Timer 0 and Timer 1 have four operating modes: 13-bit timer, 16-bit timer, 8-bit auto-reload, split timer. Timer 2 in the IS89C52 has three modes of operation: Capture, Auto-Reoload, and Baud Rate Generator.

Timer 0 and Timer 1

The Timer or Counter function is selected by control bits C/T in the Special Function Regiser TMOD. These two Timer/Counters have four operating modes, which are selected by bit pairs (M1, M0) in TMOD. Modes 0, 1, and 2 are the same for both Timer/Counters, but Mode 3 is different. The four modes are described in the following sections.

Mode 0:

Both Timers in Mode 0 are 8-bit Counters with a divide-by-32 prescaler. Figure 8 shows the Mode 0 operation as it applies to Timer 1.

In this mode, the Timer register is configured as a 13-bit register. As the count rolls over from all 1s to all 0s, it sets the Timer interrupt flag TF1. The counted input is enabled to the Timer when TR1 = 1 and either GATE = 0 or INT1 = 1. Setting GATE = 1 allows the Timer to be controlled by external input INT1, to facilitate pulse width measurements. TR1 is a control bit in the Special Function Register TCON. Gate is in TMOD.

The 13-bit register consists of all eight bits of TH1 and the lower five bits of TL1. The upper three bits of TL1 are indeterminate and should be ignored. Setting the run flag (TR1) does not clear the registers.

Mode 0 operation is the same for Timer 0 as for Timer 1, except that TR0, TF0 and INT0 replace the corresponding Timer 1 signals in Figure 8. There are two different GATE bits, one for Timer 1 (TMOD.7) and one for Timer 0 (TMOD.3).

 

 

 

ONE MACHINE

 

 

 

 

ONE MACHINE

 

 

 

 

 

CYCLE

 

 

 

 

 

CYCLE

 

 

 

 

S1

S2

S3

S4

S5

S6

S1

S2

S3

S4

S5

S6

S1

OSC

P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2

P1 P2 P1 P2

P1 P2

P1 P2

 

 

 

 

 

 

 

 

 

 

 

 

 

(XTAL2)

 

 

 

 

 

 

 

 

 

 

 

 

 

OSC

DIVIDE 12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C/T = 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TL1

 

TH1

 

TF1

INTERRUPT

 

 

 

 

 

 

 

 

(5 BITS)

(8 BITS)

 

 

 

 

 

 

 

 

 

 

 

 

 

T1 PIN

 

 

C/T = 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CONTROL

 

 

 

 

 

 

 

 

TR1

 

 

 

 

 

 

 

 

 

 

 

GATE

 

 

 

 

 

 

 

 

 

 

 

 

 

INT1 PIN

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Figure 8. Timer/Counter 1 Mode 0: 13-Bit Counter

 

 

 

Integrated Silicon Solution, Inc. — 1-800-379-4774

15

MC013-1C 11/21/98

Loading...
+ 35 hidden pages