8051 Microcontroller –
-
Upload
ravi-kumar -
Category
Documents
-
view
296 -
download
7
Transcript of 8051 Microcontroller –
8/6/2019 8051 Microcontroller –
http://slidepdf.com/reader/full/8051-microcontroller- 1/20
Pari vallal Kannan
Center for Integrated Circuits and Systems
University of Texas at Dallas
8051 Microcontroller –Architecture, Intro to Assembly
Programming
EE4380 Fall 2002
Class 2
8/6/2019 8051 Microcontroller –
http://slidepdf.com/reader/full/8051-microcontroller- 2/20
29-Aug-02 2
Class –2: Objectivel 8051 internal architecture
l Register Set
l
Instruction Setl Memory Map
l Intro to Stack, SFRs
l Assembly language programming
8/6/2019 8051 Microcontroller –
http://slidepdf.com/reader/full/8051-microcontroller- 3/20
29-Aug-02 3
8051 Architecturel Programmer’s View
– Register Set
– Instruction Set
– Memory map
l Hardware Designer’s View
– Pinout
–
Timing characteristics – Current / Voltage requirements
8/6/2019 8051 Microcontroller –
http://slidepdf.com/reader/full/8051-microcontroller- 4/20
29-Aug-02 4
Programmer’s View – Register Setl Registers
– A, B, R0 to R7 : 8 bit registers
– DPTR : [DPH:DPL] 16 bit register
– PC : Program Counter (Instruction Ptr) 16bits
– 4 sets of register bank R0-R7
– Stack pointer SP
– PSW : Program Status Word (a.k.a Flags)
– SFR : Special Function Registers
l Control the on-board peripherals
8/6/2019 8051 Microcontroller –
http://slidepdf.com/reader/full/8051-microcontroller- 5/20
29-Aug-02 5
Assembly – Absolute Basicsl Intel Assembly format
Operation destination source ; comment
l Values are to be preceded by a # sign
– #55, #32 etc
l Hex values are to be followed by H
– #55H, #32H
l If the first figure in a hex quantity is a letter (A-F) then a
0must
precede it – #0FFH, #0C1H, #0D2H
l No operation : NOP !
8/6/2019 8051 Microcontroller –
http://slidepdf.com/reader/full/8051-microcontroller- 6/20
29-Aug-02 6
Register Set – Accumulator A, ACCl Commonly used for mov and arithmetic
l Implicitly used in opcodes or referred to asACC or by its SFR address 0E0H
l Example of Implicit reference – Instruction : mov A, R0 (copy contents of R0 to A)
– Opcode : E8
– The Accumulator is implicitly coded in the opcode
l Explicit reference to Accumulator – Instruction : push ACC
– Opcode: C0 E0
8/6/2019 8051 Microcontroller –
http://slidepdf.com/reader/full/8051-microcontroller- 7/20
29-Aug-02 7
Register Set – B Registerl Commonly used as a temporary register, much
like a 9th R register
l Used by two opcodes
– mul AB, div AB
l B register holds the second operand and will
hold part of the result
– Upper 8bits of the multiplication result – Remainder in case of division
8/6/2019 8051 Microcontroller –
http://slidepdf.com/reader/full/8051-microcontroller- 8/20
29-Aug-02 8
Register Set – R0 to R7l Set of 8 registers R0, R1, … R7, each 8 bit
wide
l Widely used as temporary registers
l Available in 4 banks (effectively 4x8 registers)
l Bank is chosen by setting RS1:RS0 bits in
PSW
l Default bank (at power up) is the bank0
8/6/2019 8051 Microcontroller –
http://slidepdf.com/reader/full/8051-microcontroller- 9/20
29-Aug-02 9
Registers - DPTRl 16 bit register, called Data Pointer
l Used by commands that access externalmemory
l Also used for storing 16bit values
mov DPTR, #data16 ; setup DPTR with 16bit ext address
movx A, @DPTR ; copy mem[DPTR] to A
l DPTR is useful for string operations, look uptable (LUT) operations
8/6/2019 8051 Microcontroller –
http://slidepdf.com/reader/full/8051-microcontroller- 10/20
29-Aug-02 10
Registers - PCl PC is the program counter
l Referred to as the Instruction Pointer (IP) in other
microprocessors
l PC points to the next program instruction always
l After fetching an instruction (1 or multi byte), PC isautomatically incremented to point to the nextinstruction
l
Cannot directly manipulate PC (exceptions JMPstatements)
l Cannot directly read contents of PC (tricks available)
8/6/2019 8051 Microcontroller –
http://slidepdf.com/reader/full/8051-microcontroller- 11/20
29-Aug-02 11
Registers - SPl SP is the stack pointer
l SP points to the last used location of the stack – Push operation will first increment SP and then copy data
– Pop operation will first copy data and then decrement SPl In 8051, stack grows upwards (from low mem to high
mem) and can be in the internal RAM only
l On power-up, SP is at 07H
l Register banks 2,3,4 (08H to 1FH) is the default stack
areal Stack can be relocated by setting SP to the upper
memory area in 30H to 7FH – mov SP, #32H
8/6/2019 8051 Microcontroller –
http://slidepdf.com/reader/full/8051-microcontroller- 12/20
29-Aug-02 12
Registers - PSW
l Program Status Word is a “bit addressable” 8bitregister that has all the flags
l CY - Carry Flag
– Set whenever there is a carry in an arithmetic operationl AC - Aux. Carry Flag
– Carry from D3 to D4. Used for BCD operation
l P - Parity Flag – P=1 if A has odd number of 1s
– Even parityl OV - Overflow Flag
– Set if any arithmetic operation causes an overflow
8/6/2019 8051 Microcontroller –
http://slidepdf.com/reader/full/8051-microcontroller- 13/20
29-Aug-02 13
Flags - Illustration
l Addition example
38 0011 1000
+ 2F 0010 1111
--------- ---------------
67 0110 0111
--------- ---------------
CY = 0AC = 1
P = 1
8/6/2019 8051 Microcontroller –
http://slidepdf.com/reader/full/8051-microcontroller- 14/20
29-Aug-02 14
Registers - SFRs
l Control the operation
of on-boardperipherals
l Special Function
Registers at direct
addresses 80H to FFH
l
8051 Clones may haveadditional SFRs
8/6/2019 8051 Microcontroller –
http://slidepdf.com/reader/full/8051-microcontroller- 15/20
29-Aug-02 15
8051 - Memory Map
l Internal ROM is vendor dependant
l On power-up PC starts at 0000H in
ROM space
MOVC
MOVC, MOVX
MOVX A, @DPTR
MOV A, xxH
InstructionSignalEndStartMemoryType
????H0000HInternal ROM
PSENFFFFH0000HExternalROM
RD,WR
FFFFH0000HExternal RAM
7FH00HInternal RAM
8/6/2019 8051 Microcontroller –
http://slidepdf.com/reader/full/8051-microcontroller- 16/20
29-Aug-02 16
8051 – Instruction Set
l Data Transfer – Move/Copy data from one location to another
– mov, movc, movx, push, pop, xch, xchd
l Logical – Perform logic operations on data – anl, orl, xrl, clr, cpl, rl, rlc, rr, rrc, swap
l Arithmetic – Perform arithmetic operations on data
– add, addc, subb, inc, dec, mul, div
l Program control – Control the program flow (jumps, subroutine calls)
– jmp, ajmp, ljmp, sjmp, jc, jnc, jb, jnb, jbc, jz, jnz, acall, lcall,cjne, djnz, ret, reti
l NOP
8/6/2019 8051 Microcontroller –
http://slidepdf.com/reader/full/8051-microcontroller- 17/20
29-Aug-02 17
8051 Assembly Introduction
l Assembly statement structure[label:] opcode [operands] [;comment]
l Example
start: mov A, #D0H ;code starts herel Assembler directives
– ORG xxxxH : origin, start assembling at xxxxH
– EQU : define a constant
l count EQU 25
– DB : define byte, defines data
l DATA1: DB 28
l DATA2: DB “hello world”
– END : end of assembly file
8/6/2019 8051 Microcontroller –
http://slidepdf.com/reader/full/8051-microcontroller- 18/20
29-Aug-02 18
Assembly Design Flow
l Create the assembly source file test.asm
l Assemble the asm file
– as51 test.asm
– Assembler produces error and code list in test.lst – If no errors, assembler produces .obj file
l Link the .obj files to produce an .abs file
l Create hex file from the .abs file
l
Most assemblers directly produce the .hex filel Download the .hex file onto the board or burn it into an
eprom.
8/6/2019 8051 Microcontroller –
http://slidepdf.com/reader/full/8051-microcontroller- 19/20
29-Aug-02 19
Assembly Example #1
l Target 8051 dev system
– Std 8051 device
– 2K on-chip ROM running
a monitor program
– 32K external RAM ataddress 0x0000 to0x7FFF
– This RAM is both code
and data
– First 0x30 locations in
external RAM isdedicated for the Interrupt
Vector Table (IVT)
l Program to fill up the first 4 registers in theregister bank with some numbers and find theirsum
ORG 0x30 ;skip the IVT area
Start: mov R0, #10
mov R1, #0A5H
mov R2, #1
mov R3, #0x20
clearA: mov A, #0 ;now A = 0
Addup: add A, R0 ;now A = A + R0
add A, R1
add A, R2
add A, R3mov R4, A ;store sum in R4
mov DPTR, #7FFF
movx @DPTR, A ;store in ext. mem
Done: sjmp done ;loop here forever
END
8/6/2019 8051 Microcontroller –
http://slidepdf.com/reader/full/8051-microcontroller- 20/20
29-Aug-02 20
Class –2 Review
l What are the different views/models of a uP ?
l What are the registers available in the 8051 ?
l
What are the functions of the 8051 registers ?l What is stack, PC, SFR, PSW/Flags ?
l What is an instruction set ?
l What is a memory map ? Why is it needed ?
l What is an assembly language program ? How
does it look ?