Professional Documents
Culture Documents
E1 Unit1 ExtMemory MG
E1 Unit1 ExtMemory MG
Reference Books:
Recommended books: • 8051 microcontroller and Embedded system using assembly and C
: Mazidi, Mazidi and McKinley, Pearson publications
• The 8051 microcontroller – Architecture, programming and applications: K.Uma Rao and
Andhe Pallavi, Pearson publications. 1
S.Y.B.Sc(CS) ELC2301 Microcontroller Unit1 :Gambhire Madhavi
Interfacing External Memory with 8051
We have seen that a typical 8051 Microcontroller
has 4KB of ROM and 128 Bytes of RAM
The designer of an 8051 Microcontroller based
system is not limited to the internal RAM and ROM
present in the 8051 Microcontroller. There is a
provision of connecting both external RAM and
ROM i.e. Data Memory and Program memory.
/EA: PIN 31
1./EA is the External Access pin of 8051 microcontrollers.
2.The /EA pin is connected to GND to indicate that the code is stored completely in the external
program memory (64kB).
3.To use both on-chip ROM (4kB) and external ROM (60kB) together, the /EA pin is connected to
the +5V VCC supply.
4.It turns ON when a low pulse/signalS.Y.B.Sc(CS)
is provided.Electronics paper1
5./EA pin must be disable when 8051Microcontroller
is interfaced
Unit1with external RAM, so it is connected to3+5Vcc
by Gambhire
Madhavi
External Access Pin (/EA Pin) must be pulled HIGH i.e. when
the /EA Pin is connected to +Vcc, the CPU first fetches
instructions from the Internal Program Memory (4KB)in the
address range of 000H to 0FFFH .
and if the memory addresses exceed the limit, then the
instructions are fetched from the external ROM(60KB) in
the address range of 1000H to FFFFH.
From Size of memory find out no. of locations and no. of data bits
Truth table:
/OC G (CLK) D (input) Output comment
L H H H Output=input
L L
L L x Q Previous Output
=No Change
H x x Z High impedance
R=∞
D0-D7
PCL
743
73 A0-A7
clk
A8-A15
ORG 0000H
MOV DPTR, #4000H ; Load DPTR with the location address of ext.ROM where data is stored
MOV R0, #40H ; Load R0 with the int RAM address where you want to save the data
rep: MOV A, #00H ; Clear accumulator
MOVC A, @A+DPTR ; Syntax to move data from ext. ROM to accumulator
MOV @R0, A ; Copy the value of accumulator in location pointed by R0
INC R0 ; Inc R0 to point to next int RAM location
INC DPTR ; Inc DPTR to point to next ext. ROM location
CJNE A, #00H, rep ; Repeat this process until 0 is received from the DPTR
stay:SJMP stay ; Stay here
END
D0-D7
A0-A7
/EA
P2.5
1.Step 1: Connect /RD to /OE of ext. RAM. Access External Data Memory
2.Step 2: Connect /WR to /WE of ext. RAM.
3.Step 3: Connect output of NAND gate to /CE of external RAM, where the input to NAND
gate are address lines A15, A14, . We’ve given A15=1,A14=0 to these lines to select the
external RAM chip.
Size No. of Locations Address Data
8KB=8Kx8 𝟐𝟏𝟑 13=A0 to A12 8 = D0 to D7
A0-A7=>P0
A8-A12=>P2.0-P2.5
15
S.Y.B.Sc(CS) ELC2301 Microcontroller Unit1 :Gambhire Madhavi
Code to interface external RAM with 8051 : write operation
ORG 0000H
RAMLOC EQU 6000H ; External RAM location = 6000H
COUNT EQU 150 ; Variable count = 150d
MOV DPTR, #RAMLOC ; Mov DPTR to point to ext. RAM location
MOV R3, #COUNT ; Number of bytes of data
rep: MOV A, P1 ; Copy status of P2 into acc
MOVX @DPTR, A ; Copy the content of acc to the ext. RAM
ACALL DELAY ; call a delay before repeating the process
INC DPTR ; Inc DPTR to point to next location
DJNZ R3, rep ; Repeat this until all the bytes of data are sent
stay: SJMP stay ; Stay here forever
END
ROM RAM
S.Y.B.Sc(CS) ELC2301 Microcontroller
18
Unit1 :Gambhire Madhavi
Access External Program Memory (ROM) and
External Data Memory(RAM)
WE
Step 1: Calculate the number of address lines required to access 16KB of data, that is 214
= 16KB. Here, we require 14 address lines A0 – A13.
Step 2: Connect /EA pin to ground . Connect the /PSEN to the /CE and/ OE of ext. ROM
==> Active low chip select and active low output Enable.
Step 3: Then, Port 2 (P2.0 – P2.7) to A8 – A12 pins of ext. ROM and ext. RAM.
Step 4: Connect ALE to G of 74LS373 latch to enable it.
Step 5: Next, connect the /OC of 74LS373 to GND.
Step 6: Connect Port 0 (P0.0 – P0.7), which consists of both address and data
multiplexed into Port 0 to 1D – 8D pins of 74LS373 latch to demultiplex it and 1Q – 8Q
of the latch to A0 – A7 of ext. ROM and ext. RAM.
Step 7: Connect Port 0 (P0.0 – P0.7) to D0 – D7 of the ext. ROM and ext. RAM.
Step 8: VPP of ext. ROM to VCC.
Step 9: We connect external RAM program and Ext. ROM, for that we can use an NAND
gate to output logic zero to /CE of external ROM and external RAM when A13,A14,A15
are made low. 0output of NAND=/(/A13./A14./A15)=/CE= /(1.1.1) =0
Step 10: To interface the external RAM, we connect both /RD and /WR to /OE and /WE
respectively of external RAM.