Hardware Overview Page 1 of 5 Hardware Overview 3 basic versions of the MCS-51: ROM RAM I/O lines Counter/Timers Interrupt bytes 128 bytes 32 2 16 bit 5 (2 ext) 8031 none 8751 same as but with EPROM 8052 8K bytes 256 bytes 3 16 bit 6 (2 ext) 8032 8752 a duplex serial port bit-level Boolean processor Block diagram Interrupts INT0' INT1' Interrupt Control Interrupts 8K ROM ROM 256 Bytes RAM Timer 2 128 Timer 1 Bytes RAM Timer 0 T2 T1 T0 Counter Inputs CPU XTAL1 OSC XTAL2 Bus Control 4 I/O Ports Serial Port WR' RD' PSEN' P0 P1 Address/ Data P2 P3 TXD RXD Pinout T2 only T2EX RXD TXD INT0' INT1' T0 T1 WR' RD' P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 XTAL2 XTAL1 Vss 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 PSEN' AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 Vpp PROG' A15 A14 A13 A12 A11 A10 A9 A8
Hardware Overview Page 2 of 5 WR' Write strobe to write external data memory. RD' Read strobe to read external data memory. address strobe for the bytes of program memory. = 0 for external ROM. = 1 for internal ROM. Address latch enable for latching the address signals on P0. = 1 for latching address signals on P0. = 0 for latching data signals on P0. PSEN' Program store enable for reading external program memory. Memory map FFFF FFFF 0FFF 0000 1000 = 1 60K = 0 FF 80 7F 00 Special Function Registers 128 bytes Data RAM 128 bytes 0000 RAM 6 Program Memory Data Memory Data Memory address lines bytes addressed in decimal (hex) address lines bytes addressed in decimal (hex) 1 2 9 512 (200) 2 4 10 1024=1K (400) 3 8 11 2048=2K (800) 4 16 (10) 12 4096= (1000) 5 32 (20) 13 8192=8K (2000) 6 64 (40) 14 16384=16K (4000) 7 128 (80) 15 32768=32K (8000) 8 256 (100) 16 65536=6 (10000) Interrupt vector addresses in program memory Timer 2 interrupt 002B Serial port interrupt 0023 Timer 1 interrupt 001B interrupt 1 0013 Timer 0 interrupt 000B interrupt 0 0003 Reset 0000
Hardware Overview Page 3 of 5 The first 256 bytes of internal data memory F8 F0 B E8 E0 ACC D8 D0 PSW C8 T2CON RCAP2L RCAP2H TL2 TH2 C0 B8 IP B0 P3 A8 IE A0 P2 98 SCON SBUF 90 P1 88 TCON TMOD TL0 TL1 TH0 TH1 80 P0 SP DPL DPH PCON 78 70 68 60 58 50 48 40 38 30 28 Can be addressed as 16 bytes or 128 individual bits. Byte addresses are 20H to 2F. Bit 20 addresses are 00H to 7F. 18 Reg 0 Reg 1 Reg 2 Reg 3 Reg 4 Reg 5 Reg 6 Reg 7 Bank 3 10 Reg 0 Reg 1 Reg 2 Reg 3 Reg 4 Reg 5 Reg 6 Reg 7 Bank 2 8 Reg 0 Reg 1 Reg 2 Reg 3 Reg 4 Reg 5 Reg 6 Reg 7 Bank 1 0 Reg 0 Reg 1 Reg 2 Reg 3 Reg 4 Reg 5 Reg 6 Reg 7 Bank 0 Special function registers (SFR) (128 bytes) Scratch pad area (80 bytes) ACC Accumulator B B register for multiply and divide. PSW program status word PSW.7 Carry flag (CY) PSW.6 Auxiliary carry flag (AC) PSW.5 User define PSW.4 & 3 Register bank select (RS1, RS0): 00=Bank 0; 01=Bank 1; 10=Bank 2; 11=Bank 3 PSW.2 Overflow flag (OV) PSW.1 User define PSW.0 Parity flag (P) SP Stack pointer. Initialized to 07H. SP is incremented before data is pushed on the stack. DPTR Data pointer (DPH, DPL). To store a 16-bit address for certain instructions. P0, P1, P2, P3 Port latches matching the 4 I/O ports. SBUF Serial data buffer. Read and write registers for the serial port. SCON Serial port control. TMOD Timer mode. TCON Timer control. T2CON 8052 timer 2 control.
Hardware Overview Page 4 of 5 PCON Power control. Use in the 80C51 only. IE Interrupt enable. 1=enable; 0=disable. IE.7 all interrupts (EA). IE.6 not used. IE.5 timer 2 (ET2). (8052 only). source IE0. interrupt address at 002B. IE.4 serial port (ES). source TF0. interrupt address at 0023. IE.3 timer 1 (ET1). source IE1. interrupt address at 001B. IE.2 external interrupt 1(EX1). source TF1. interrupt address at 0013. IE.1 timer 0 (ET0). source R1 & T1. interrupt address at 000B. IE.0 external interrupt 0 (EX0). source TF2 & EXF2. interrupt address at 0003. IP Interrupt priority. 1=high priority; 0=low priority. IP.7 not used. IP.6 not used. IP.5 timer 2 (PT2). (8052 only). IP.4 serial port (PS). IP.3 timer 1 (PT1). IP.2 external interrupt 1 (PX1). IP.1 timer 0 (PT0). IP.0 external interrupt 0 (PX0). RCAP2L 8052 only. program memory using a 2732 EPROM XTAL 1 XTAL 2 * I/O DI7 DI6 DI5 DI4 DI3 DI2 DI1 DI0 STB 8282 DO7 DO6 DO5 DO4 DO3 DO2 DO1 DO0 OE' A7 A6 A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 2732 EPROM PSEN' OE' CE' A8 A9 A10 A11 * These pins are not available as I/O when any part of Port 2 is being used as an address bus.
Hardware Overview Page 5 of 5 RAM and I/O XTAL 1 XTAL 2 +5v P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 WR' P3.7 RD' PSEN' AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 /M' RD' WR' CE' Timer out' 8155 256 bytes RAM Timer in PA.0 PA.1 PA.2 PA.3 PA.4 PA.5 PA.6 PA.7 PC.0 PC.1 PC.2 PC.3 PC.4 PC.5 PB.0 PB.1 PB.2 PB.3 PB.4 PB.5 PB.6 PB.7 Address Decimal Hex Address Decimal Hex Lines Lines 1 2 2 9 512 200 2 4 4 10 (1K) 1024 400 3 8 8 11 ( 2K) 2048 800 4 16 10 12 () 4096 1000 5 32 20 13 (8K) 8192 2000 6 64 40 14 (16K) 16384 4000 7 128 80 15 (32K) 32768 8000 8 256 100 16 (6) 65536 10000 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0