8051 architecture(enhanced)octy09

Upload: santhoshreddy-gogula

Post on 06-Apr-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    1/59

    1Week 4 Vocational Training Council, Hong Kong.

    The 8051 ArchitectureThe 8051 Architecture

    EEE3410 Microcontroller ApplicationsDepartment of Electrical Engineering

    Lecture 4

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    2/59

    2Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Overview

    General physical & operational features

    Block diagram

    Pin assignments

    Logic symbol

    Hardware description

    Pin description

    Read-modify-write port instructions

    In this Lecture In this Lecture

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    3/59

    3Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Made by Intel in 1981

    An 8-bit, single-chip microcontroller optimized

    for control applications

    128 bytes RAM, 4096 bytes (4KB) ROM, 2 timers,

    1 serial port, 4 I/O ports

    40 pins in a dual in-line package (DIP) layout

    Overview of the 8051Overview of the 8051

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    4/59

    4Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    4KB ROM

    128 bytes internal RAM

    4 register banks of 8 bytes each (R0-R7)

    16 bytes of bit-addressable area80 bytes of general purpose memory

    Four 8-bit I/O ports (P0-P3)

    Two 16-bit timers (Timer0 & Timer1)

    One serial receiver-transmitter interface

    Five interrupt sources (2 external & 3 internal)

    One oscillator (generates clock signal)

    General Physical FeaturesGeneral Physical Features 4 x 8 = 321680

    ------------

    128

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    5/59

    5Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Memory of 8051 can be increased externally:

    Increase memory space for codes (programs)

    by 64KIncrease memory space for data by 64K

    Boolean instructions work with 1 bit at a time

    Assume clock frequency = 12MHz, it takes

    about 4 Qs (i.e. 4 x 10-6s) to carry out a 8-bit

    multiplication instruction

    General Operational FeaturesGeneral Operational Features

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    6/59

    6Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    The 8051 Block DiagramThe 8051 Block Diagram

    Interrupt Control

    External Interrupts

    CPU

    OSC

    Timer 1

    Timer 0

    Serial

    Port

    I/O PortsBus

    Control

    Counter

    Inputs

    P0 P3P1

    4K byte

    ROM128 byte

    RAM

    P2(Address/Data)

    TXD RXD

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    7/59

    7Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    The 8051 Pin AssignmentsThe 8051 Pin Assignments1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    1516

    17

    18

    19

    20

    40

    39

    38

    37

    36

    35

    34

    33

    32

    31

    30

    29

    28

    27

    2625

    24

    23

    22

    21

    VCC

    P0.0 (AD0)

    P0.1 (AD1)

    P0.2 (AD2)

    P0.3 (AD3)

    P0.4 (AD4)

    P0.5 (AD5)

    P0.6 (AD6)

    P0.7 (AD7)

    EA/VPP

    ALE/PROG

    PSEN

    P2.7 (A15)

    P2.6 (A14)

    P2.5 (A13)P2.4 (A12)

    P2.3 (A11)

    P2.2 (A10)

    P2.1 (A9)

    P2.0 (A8)

    P1.0

    P1.1

    P1.2

    P1.3

    P1.4

    P1.5

    P1.6

    P1.7

    RST

    (RXD) P3.0

    (TXD) P3.1

    (INT0) P3.2

    (INT1) P3.3

    (T0) P3.4

    (T1) P3.5(WR) P3.6

    (RD) P3.7

    XTAL2

    XTAL1

    GND

    8051

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    8/59

    8Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    The 8051 Logic SymbolThe 8051 Logic Symbol

    VSS VCC RST

    P

    O

    R

    T

    0

    ADDRESS

    AND

    DATA BUS

    XTAL1

    XTAL2

    ALE

    EA

    PSEN

    P3.7

    P3.6

    P3.5P3.4

    P3.3P3.2

    P3.1

    P3.0

    RxD

    TxDINT0

    INT1T0T1WR

    RD

    SECONDARY

    FUNCTIONS

    P

    O

    R

    T

    3

    P

    O

    R

    T

    2

    ADDRESS

    BUS

    P0.7P0.6

    P0.5P0.4

    P0.3

    P0.2

    P0.1P0.0

    P2.7

    P2.6P2.5

    P2.4

    P2.3P2.2

    P2.1P2.0

    P1.7

    P1.6P1.5

    P1.4

    P1.3P1.2

    P1.1P1.0

    P

    O

    R

    T

    1

    Without

    alternate

    function

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    9/59

    9Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    1. Oscillator circuit

    2. Program counter (PC)

    3. Data pointer (DPTR)

    4. Accumulator (

    A

    ) register5. B register

    6. Flags

    7. Program status word (PSW)

    8. Internal memory (ROM

    , RAM

    , additionalmemory)

    9. Stack & stack pointer (SP)

    10. Special function register (SFR)

    Hardware DescriptionHardware Description

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    10/59

    10Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    The heart of the 8051Produces clock pulses

    Synchronize all 8051s internal operations

    Oscillator CircuitOscillator CircuitA single machine cycle

    consists of 12 crystal pulses !

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    11/59

    11Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Machine CycleMachine Cycle

    Machine cycle is the basic repetitive process that the CPU

    performs once it is powered on. A machine cycle consists of a

    fixed number of clock cycles (pulses). It is different for

    different kinds of CPU.

    The 8051 family needs 12 clock cycles for a machine cycle.

    The CPU takes one or more machine cycles to complete an

    instruction. More complex instructions require more number

    of machine cycles to complete the instruction. The number of

    machine cycles of the 8051 instructions are ranging from 1 to

    4.

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    12/59

    12Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Example 4Example 4--11Find the elapse time of the machine cycle for:

    (a) XTAL = 11.0592 MHz

    (b) XTAL = 16 MHz

    (c) XTAL = 20 MHz

    Solution:

    (a) 11.0592 MHz / 12 = 921.6 kHz

    Machine cycle = 1 / 921.6 kHz = 1.085 Qs

    (b) 16 MHz / 12 = 1.333 MHzMachine cycle = 1 / 1.333 MHz = 0.75 Qs

    (c) 20 MHz / 12 = 1.667 MHz

    Machine cycle = 1 / 1.667 MHz = 0.60 Qs

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    13/59

    13Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    PC is a 16-bit registerPC is the only register that does not have aninternal address

    Holds the address of the memory location to fetch

    the program instructionProgram ROM may be on the chip at addresses0000H to 0FFFH (4Kbytes), external to the chip foraddresses that exceed 0FFFH

    Program ROM

    may be totally external for alladdresses from 0000H to FFFFH

    PC is automatically incremented (+1) after everyinstruction byte is fetched

    Program Counter (PC)Program Counter (PC)

    Either

    One !

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    14/59

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    15/59

    15Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Accumulator (A Register)Accumulator (A Register)

    Most versatile CPU register and is used for many

    operations, including addition, integer

    multiplication and division, and Boolean bit

    manipulations

    A register is also used for all data transferbetween the 8051 and any external memory

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    16/59

    16Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    B register is used with theA register formultiplication and division operations

    (eg. MUL AB DIV AB)No other special function other than as alocation where data may be stored

    B RegisterB Register

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    17/59

    17Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Flags are 1-bit registers provided to store the resultsof certain program instructions

    Other instructions can test the condition of the flags

    and make decisions based on the flag states

    Flags are grouped inside theprogram status word(PSW) and thepower control (PCON) registers forconvenient addressing

    Math flags: respond automatically to the outcomes of

    math operations (CY, AC,OV,P)User flags: general-purpose flags that may be used by

    the programmer to record some event in the program

    (F0, GF0, GF1)

    FlagsFlags

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    18/59

    18Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    PSWcontains the math flags, user program flag

    F0, and the register select bits (RS1, RS0) that

    identify which of the four general-purpose

    register banks is currently in use by the program

    7 6 5 4 3 2 1 0

    CY AC F0 RS1 RS0 OV -- P

    Program Status Word (PSW)Program Status Word (PSW)

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    19/59

    19Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Program Status Word (PSW)Program Status Word (PSW)

    Bit Symbol Function7 CY Carry Flag; used in arithmetic, JUMP, ROTATE,

    and BOOLEAN instruction

    6 AC Auxiliary carry flag; used for BCD arithmetic

    5 F0 User flag 0

    4 RS1 Register bank select bit 1

    3 RS0 Register bank select bit 0

    2 OV Overflow flag; used in arithmetic instructions1 -- Reserved for future use

    0 P Parity flag; shows parity of register A: 1 = Odd

    Parity

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    20/59

    20Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    The 8051 maintains even parity with theaccumulator A, ie; the number of ones in the

    accumulator together with the parity bit (in

    the program status word, PSW) is always even.

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    21/59

    21Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Instruction that Affect Flag BitsInstruction that Affect Flag BitsInstruction CY OV AC Instruction CY OV AC

    ADD X X X SETB C 1

    ADDC X X X CLR C 0

    SUBB X X X CPL C X

    MUL 0 X ANL C, bit X

    DIV 0 X ANL C, /bit X

    DA X ORL C, bit X

    RRC X ORL C, /bit X

    RLC X CJNE X

    MOV C, bit X Note: X can be 0 or 1

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    22/59

    22Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    A functioning computer must have memory forprogram code bytes, commonly in ROM, and RAM

    memory for variable data that can be altered as

    the program runs

    8051 has internal RAM (128 bytes) and ROM

    (4Kbytes)

    8051 uses the same address but in different

    memories for code and data

    Internal circuitry access the correct memory based

    on the nature of the operation in progress

    Can add memory externally if needed

    Internal MemoryInternal Memory

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    23/59

    23Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications8051 Internal RAM8051 Internal RAMOrganisationOrganisation

    R7

    R6R5

    R4

    R3

    R2

    R1

    R0R7

    R6

    R5

    R4

    R3R2

    R1

    R0R7

    R6

    R5

    R4

    R3

    R2

    R1

    R0R7

    R6

    R5

    R4

    R3

    R2

    R1

    R0

    07

    06

    05

    04

    03

    02

    01

    00

    0F

    0E

    0D

    0C

    0B

    0A

    09

    08

    17

    16

    15

    14

    1312

    11

    10

    1F

    1E1D

    1C

    1B

    1A

    19

    18

    Bank

    0

    Bank1

    Bank2

    Bank3

    27

    26

    25

    24

    23

    22

    21

    20

    2F

    2E

    2D

    2C

    2B

    2A

    29

    28

    7F 78

    77 70

    6F 68

    67 60

    5F 58

    57 50

    4F 48

    47 403F 38

    37 30

    2F 28

    27 20

    1F 18

    17 10

    0F 08

    07 00 30

    7F

    Working Registers Bit Addressable Gener al Purpose

    128 bytes internal RAM

    4 register banks of 8 bytes each (R0-

    16 bytes of bit-addressable area

    80 bytes of general purpose memory

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    24/59

    24Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Example 2Example 2--55State the contents of RAM locations after the following program:

    MOV R0, #99H

    MOV R1, #85H

    MOV R2, #3FH

    MOV R7, #63H

    MOV R5, #12H

    After the execution of the above program we have the following:

    RAM location 0 has value 99H RAM location 1 has value 85H

    RAM location 2 has value 3FH RAM location 7 has value 63H

    RAM location 5 has value 12H

    Assume register bank 0

    was selected !

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    25/59

    25Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Program Status Word (PSW)Program Status Word (PSW)Ba

    nk SelectB

    its,R

    S1, &R

    S0 to select 1 of 4 register ba

    nkBa

    nk SelectB

    its,R

    S1, &R

    S0 to select 1 of 4 register ba

    nk

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    26/59

    26Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Example 2Example 2--66

    Repeat Example 2-5 using RAM addresses instead of register

    names.

    This is called direct addressing mode and uses the RAMaddress location for the destination address.

    MOV 00, #99H

    MOV 01, #85H

    M

    OV 02, #3FH

    MOV 07, #63H

    MOV 05, #12H

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    27/59

    27Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Example 2Example 2--77State the contents of RAM locations after the following program:

    SETB PSW.4

    MOV R0, #99H

    MOV R1, #85H

    MOV R2, #3FH

    MOV R7, #63HMOV R5, #12H

    By default, PSW.3=0 and PSW.4=0; therefore, the instruction SETB

    PSW.4 sets RS1=1 and RS0=0, thereby selecting register bank 2.

    Register bank 2 uses RAM locations 10H 17H. After the execution of

    the above program we have the following

    RAM location 10 has value 99H RAM location 11 has value 85H

    RAM location 12 has value 3FH RAM location 17 has value 63H

    RAM location 15 has value 12H

    7 6 5 4 3 2 1 0

    CY AC F0 RS1 RS0 OV -- PPSW

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    28/59

    28Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    SP is a 8-bit register used to hold an internal RAMaddress that is called the top of the stack

    Stack refers to an area of internal RAM that is used inconjunction with certain opcodes to store and retrievedata quickly

    SPholds the internal RAM address where the last byteof data was stored by a stack operation

    When data is to be placed on the stack, the SPincrements before storing data on the stack so that thestack grows up as data is stored

    As data is retrieved from the stack, the byte is readfrom the stack, and then the SPdecrements to point tothe next available byte of stored data

    SP= 07H after reset

    Stack and Stack Pointer (SP)Stack and Stack Pointer (SP)

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    29/59

    29Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Stack OperationStack Operation

    SP = 0A Address 0A SP = 0AStore Data Get Data

    SP = 09 Address 09 SP = 09Store Data Get Data

    SP = 08 Address 08 SP = 08Store Data Get Data

    SP = 07 Address 07 SP = 07

    Storing Data on the Stack(Increment then store)

    Internal RAM(Get then decrement)

    Getting DataFrom the Stack

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    30/59

    30Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Example 2Example 2--88Show the stack and stack pointer for the following. Assume thedefault stack area.

    MOV R6, #25H

    MOV R1, #12H

    MOV R4, #0F3H

    PUSH 6

    PUSH 1

    PUSH 4

    0B

    0A

    09

    08

    0B

    0A

    09

    08

    0B

    0A

    09

    08

    0B

    0A

    09

    08

    SP = 07

    25

    After PUSH 6

    SP = 08

    12

    25

    SP = 09

    After PUSH 1

    F3

    12

    25

    SP = 0A

    After PUSH 4

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    31/59

    31Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Example 2Example 2--99Examine the stack, show the contents of the registers and SPafter

    execution of the following instruction. All values are in hex.

    POP 3 ;POP stack into R3

    POP 5 ;POP stack into R5

    POP 2 ;POP stack into R2

    0B

    0A

    09

    08

    0B

    0A

    09

    08

    0B

    0A

    09

    08

    540B

    0A

    09

    08

    54

    F9

    76

    6C

    54

    F9

    76

    6C

    F9

    76

    6C

    SP = 0A SP = 09 SP = 08

    After POP 3 After POP 5 After POP 2

    Sta

    rt SP = 0B

    54

    F9

    76

    6C

    05

    04

    03

    02

    ??

    ??

    54

    ??

    05

    04

    03

    02

    05

    04

    03

    02

    05

    04

    03

    02

    F9

    ??

    54

    ??

    F9

    ??

    54

    76

    ??

    ??

    ??

    ??

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    32/59

    32Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Example 2Example 2--1010Show the stack and stack pointer for the following.

    MOV SP, #5FH

    MOV R2, #25H

    MOV R1, #12H

    MOV R4, #0F3H

    PUSH 2PUSH 1

    PUSH 4

    63

    62

    61

    60

    63

    62

    61

    60

    63

    62

    61

    60

    63

    62

    61

    602512

    25

    F3

    12

    25

    Start SP = 5F SP = 60 SP = 61 SP = 62

    After PUSH 2 After PUSH 1 After PUSH 4

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    33/59

    33Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    8051 has 21 SFRs which occupy the addresses

    from 80H to FFH (128bytes)

    Not all of the addresses from 80H to FFH areused for SFRs

    Attempt to use the empty addresses may

    get unpredictable result

    Special Function Registers (SFR)Special Function Registers (SFR)

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    34/59

    34Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Special Function Register MapSpecial Function Register MapBit addressable

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    35/59

    35Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Va

    lue of SFR

    a

    tR

    esetVa

    lue of SFR

    a

    tR

    eset

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    36/59

    36Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Internal ROMInternal ROM

    Internal ROM occupies the code address space

    from 0000H to 0FFFH (Size = 4K byte)

    Program addresses higher than 0FFFH will

    automatically fetch code bytes from external

    program memory

    Code bytes can also be fetched exclusively from

    an external memory by connecting the externalaccess pin (EA) to ground

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    37/59

    37Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    VCC (pin 40 - provides supply voltage of +5V)

    GND (pin 20)

    XTAL1 & XTAL2 (pins 19 & 18 - to crystal and

    then caps)RST (pin 9- reset)

    EA (pin 31 - external access)

    PSEN (pin 29 - program store enable)

    ALE (pin 30 - address latch enable)

    Ports 0-3

    Some Important PinsSome Important Pins

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    38/59

    38Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    I/O Ports (P0I/O Ports (P0 -- P3)P3)

    One of the most useful features of the 8051 is

    that it consists of 4 I/O ports (P0 - P3)

    All ports are bidirectional (they can take input and

    to provide output)All ports have multiple functions (except P1)

    All ports are bit addressable

    On RESET all the ports are configured as output

    When a bit latch is to be used as an input, a 1must be written to the corresponding latch by theprogram to configure it as input (eg. MOV P1, #0FFH)

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    39/59

    39Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Occupies a total of 8 pins (Pins 32-39)

    Can be used for :

    Input only

    Output onlyInput and output at the same time (i.e. some

    pins for input and the others for output)

    Can be used to handle both address and data

    Need pull-up resistors

    Port 0Port 0

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    40/59

    40Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Port 0 as an Output PortPort 0 as an Output Port

    The following code will continuously send out to

    port 0 the alternating values 55H and AAH

    MOV A, #55H

    BACK: MOV P0, A

    ACALL DELAY

    CPL A

    SJMP BACK

    AAH = 10101010255H = 010101012

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    41/59

    41Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Port 0 as an Input PortPort 0 as an Input Port

    In the following code, port 0 is configured first

    as an input port by writing 1s to it, and then

    data is received from that port and sent to P1

    MOV A, #0FFH

    MOV P0, A

    BACK: MOV A, P0

    MOV P1, ASJMP BACK

    FFH = 111111112

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    42/59

    42Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Dual Role of Port 0Dual Role of Port 0When connecting an 8051 to an externalmemory, port 0 provides both address anddata (AD0 AD7)

    When ALE = 0, it provides data D0 D7

    When ALE = 1, it provides data A0

    A7

    ALE is used for demultiplexing address anddata with the help of

    a 74LS373 latch

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    43/59

    43Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Occupies a total of 8 pins (Pins 1-8)

    Can be used as input or output

    Does not need any pull-up resistors

    Upon reset, port 1 is configured as an

    output port

    No alternative functions

    Port 1Port 1

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    44/59

    44Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Port 1 as an Output PortPort 1 as an Output Port

    The following code will continuously send out to

    port 1 the alternating values 55H and AAH

    MOV A, #55H

    BACK: MOV P1, A

    ACALL DELAY

    CPL A

    SJMP BACK

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    45/59

    45Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Port 1 as an Input PortPort 1 as an Input Port

    In the following code, port 1 is configured first as aninput port by writing 1s to it, and then data is

    received from that port and saved in R7, R6, and R5

    MOV A, #0FFH

    MOV P1, AMOV A, P1

    MOV R7, A

    ACALL DELAY

    MOV A, P1

    MOV R6, AACALL DELAY

    MOV A, P1

    MOV R5, A

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    46/59

    46Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Occupies a total of 8 pins (Pins 21-28)

    Similar function as Port 1

    Can be used as input or output

    Does not need any pull-up resistors

    Upon reset, port 2 is configured as an output

    port

    Port 2Port 2

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    47/59

    47Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Port 2 as an Output PortPort 2 as an Output Port

    The following code will continuously send out to

    port 2 the alternating values 55H and AAH

    MOV A, #55H

    BACK: MOV P2, A

    ACALL DELAY

    CPL A

    SJMP BACK

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    48/59

    48Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Port 2 as an Input PortPort 2 as an Input Port

    In the following code, port 2 is configured first

    as an input port by writing 1s to it, and then

    data is received from that port and sent to P1

    MOV A, #0FFH

    MOV P2, A

    BACK: MOV A, P2

    MOV P1, ASJMP BACK

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    49/59

    49Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Dual Role of Port 2Dual Role of Port 2

    When connecting an 8051 to an externalmemory, port 2 provides both address (A8 A15)

    It is used along with P0 to provide the 16-bit

    addressWhen P2 is used for the upper 8 bits of the 16-

    bit address, it cannot be used for I/O

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    50/59

    50Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Occupies a total of 8 pins (Pins 10-17)

    Similar function as Port 1 and Port 2

    Can be used as input or output

    Does not need any pull-up resistorsUpon reset, port 3 is configured as an output port

    Pins can be individually programmable for other uses

    Most commonly be used to provide some important signals

    (e.g. interrupts)

    Port 3Port 3

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    51/59

    51Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Port 3 Alternate FunctionsPort 3 Alternate Functions

    P3 Bit Function PinP3.0 RxD 10

    P3.1 TxD 11

    P3.2 INT0 12

    P3.3 INT1 13

    P3.4 T0 14

    P3.5 T1 15

    P3.6 WR 16

    P3.7 RD 17

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    52/59

    52Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    ReadRead--ModifyModify--Write FeatureWrite Feature

    A method used to access the 8051 portsCombining all 3 actions in a single instructions :

    Read the data at the port

    Modify (do operation on) the data at the port

    Write the results to the port

    MOV P1, #55H

    AGAIN: XRL P1, #0FFH

    ACALL DELAYSJMP AGAIN

    Example:

    ANL P1, A

    ORL P2, A

    XRL P3, A

    JBC P1.1, LABEL

    CPL P3.0INC P2

    DEC P2

    DJNZ P3, LABEL

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    53/59

    53Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    SingleSingle--bit Addressability of Portsbit Addressability of Ports

    One of the most powerful features of the

    8051

    Access only one or several bits of the port

    instead of the entire 8 bits

    BACK: CPL P1.2

    ACALL DELAYSJMP BACK

    ;bit 2 of port 1

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    54/59

    54Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    Example 4Example 4--22

    Write a program to perform the following:

    (a) Keep monitoring the P1.2 bit until it becomes high;

    (b) When P1.2 becomes high, write value 45H to port 0; and

    (c) Send a high-to-low (H

    -to-L) pulse to P2.3SETB P1.2 ; config pin P1.2 as input

    MOV A, #45H

    AGAIN:

    JNB P1.2, AGAIN ; wait until P1.2=1

    ; now P1.2 = 1

    MOV P0, A

    SETB P2.3

    CLR P2.3

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    55/59

    55Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    General physical & operational features

    8051 hardware description

    8051 pin description

    Read-modify-write port instructions

    SummarySummary

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    56/59

    56Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    1. In the 8051, the program counter is _________ bits wide.

    2. True or false. Every member of the 8051 family, regardless

    of the maker, wakes up at memory 0000H when it is

    powered up.

    3. At what ROM

    location do we store the first opcode of an8051 program?

    4. The instruction MOV A, #44H is a ______-byte instruction.

    5. What is the ROM address space for the 8052 chip?

    6. The flag register in the 8051 is called __________.

    7. What is the size of the flag register in the 8051?

    8. Which bits of the PSW register are user-definable?

    Review QuestionsReview Questions

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    57/59

    57Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    9. Find the CY and AC flag bits for the following code.MOV A, #0FFH

    ADD A, #01

    10. Find the CY and AC flag bits for the following code.

    MOV A, #0C2HADD A, #3DH

    11. What is the size of the SP register?

    12. With each PUSH instruction, the stack pointer register (SP) is

    _______ (incremented/decremented) by 1.

    13. With each POP instruction, the SP _____(incremented/decremented) by 1.

    14. ON power up, the 8051 uses RAM location _____ as the first

    location of the stack.

    Review QuestionsReview Questions

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    58/59

    58Week 4 Vocational Training Council, Hong Kong.

    EEE3410 Microcontroller Applications

    15. On power up, the 8051 uses bank ____ for registers R0R7.

    16. On power up, the 8051 uses RAM locations _____ to _____

    for register R0R7 (register bank 0).

    17. Which register bank is used if we alter RS0 and RS1 of the

    PSW by the following two instruction?

    SETB PSW.3

    SETB PSW.4

    18. In Question 17, what RAM locations are used for register

    R0R7?

    Review QuestionsReview Questions

  • 8/3/2019 8051 Architecture(Enhanced)OctY09

    59/59

    9i i i i

    EEE3410 Microcontroller Applications

    The 8051 Microcontroller and Embedded Systems -

    Using Assembly and C, Mazidi

    Chapter 8 P.217 P.227

    The 8051 Microcontroller

    Hardware, Software andInterfacing, James W. Stewart

    Chapter 1 P.1 P.16

    Chapter 2 P.19 P.35

    Read referenceRead reference