0% found this document useful (0 votes)
69 views

Ekt 225 Microcontroller I: 8051 Assembly Language Programming

This document discusses 8051 microcontroller assembly language programming. It covers topics such as 8051 registers, assembly instructions like MOV and ADD, assembling and running programs, the program counter, ROM memory space, data types, the program status word register, register banks, and use of the stack. Diagrams and examples are provided to illustrate key concepts.

Uploaded by

Naim Nizam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
69 views

Ekt 225 Microcontroller I: 8051 Assembly Language Programming

This document discusses 8051 microcontroller assembly language programming. It covers topics such as 8051 registers, assembly instructions like MOV and ADD, assembling and running programs, the program counter, ROM memory space, data types, the program status word register, register banks, and use of the stack. Diagrams and examples are provided to illustrate key concepts.

Uploaded by

Naim Nizam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 24

EKT 225 MICROCONTROLLER I

CHAPTER 2
8051 ASSEMBLY
LANGUAGE
PROGRAMMING

1
OBJECTIVES
 List the registers of the 8051 microcontroller
 Manipulate data using the registers and MOV instructions
 Code simple 8051 Assembly language instructions
 Assemble and run an 8051 program
 Describe the sequence of events that occur upon 8051 power-up
 Examine programs in ROM code of the 8051
 Explain the ROM memory map of the 8051
 Detail the execution of 8051 Assembly language instructions
 Describe 8051 data types
 Explain the purpose of the PSW (program status word) register
 Discuss RAM memory space allocation in the 8051
 Diagram the use of the stack in the 8051

2
SECTION 2.1: INSIDE THE 8051

 Registers

Figure 2–1a
Some 8-bit Registers of the 8051
3
SECTION 2.1: INSIDE THE 8051

 Registers

Figure 2–1b Some 8051 16-bit Registers

4
SECTION 2.1: INSIDE THE 8051

 most widely used registers are A, B, R0,


R1, R2, R3, R4, R5, R6, R7, DPTR and PC
 all registers are 8-bits, except DPTR and
the program counter which are 16 bit
 register A is used for all arithmetic and
logic instructions
 simple instructions MOV and ADD

5
SECTION 2.1: INSIDE THE 8051

 MOV instruction
– MOV destination, source ;copy source to destination

MOV A,#55H ;load value 55H into reg A


MOV R0,A ;copy contents of A into R0 (A=R0=55H)
MOV R1,A ;copy contents of A into R1 (A=R0=R1=55H)
MOV R2,A ;copy contents of A into R2 (A=R0=R1=R2=55H)
MOV R3,#95H ;load value 95H into R3 (R3=95H)
MOV A,R3 ;copy contents of R3 into A (A=R3=95H)

6
SECTION 2.1: INSIDE THE 8051

 ADD instruction
– ADD A, source ;ADD the source operand
;to the accumulator

MOV A,#25H ;load 25H into A


MOV R2,#34H ;load 34H into R2
ADD A,R2 ;add R2 to accumulator

Executing the program above results in A = 59H

7
SECTION 2.2: INTRODUCTION TO 8051
ASSEMBLY PROGRAMMING

 Structure of Assembly language

ORG 0H ;start (origin) at 0


MOV R5,#25H ;load 25H into R5
MOV R7,#34H ;load 34H into R7
MOV A,#0 ;load 0 into A
ADD A,R5 ;add contents of R5 to A
;now A = A + R5
ADD A,R7 ;add contents of R7 to A
;now A = A + R7
ADD A, #12H ;add to A value 12H
;now A = A + 12H
HERE: SJMP HERE ;stay in this loop
END ;end of asm source file

Program 2-1: Sample of an Assembly Language Program

8
SECTION 2.3: ASSEMBLING AND
RUNNING AN 8051 PROGRAM

 An Assembly language instruction


consists of four fields:

[label : ] mnemonic [operands] [;comment]

9
SECTION 2.3: ASSEMBLING AND
RUNNING AN 8051 PROGRAM

Figure 2–2 Steps to Create a Program


10
SECTION 2.3: ASSEMBLING AND
RUNNING AN 8051 PROGRAM

 More about "a51" and "obj" files


– "asm" file is source file and for this reason some
assemblers require that this file have the “a51"
extension
– this file is created with an editor such as Windows
Notepad or uVision editor
– uVision assembler converts the a51 assembly language
instructions into machine language and provides the
obj file
– assembler also produces the Ist file

11
SECTION 2.3: ASSEMBLING AND
RUNNING AN 8051 PROGRAM

 Ist file

– lst file is useful to the programmer because it lists all the


opcodes and addresses as well as errors that the assembler
detected
– uVision assumes that the list file is not wanted unless you
indicate that you want to produce it
– file can be accessed by an editor such as Note Pad and
displayed on the monitor or sent to the printer to produce a
hard copy
– programmer uses the list file to find syntax errors
– only after fixing all the errors indicated in the lst file that the
obj file is ready to be input to the linker program

12
SECTION 2.4: THE PROGRAM COUNTER
AND ROM SPACE IN THE 8051

 Program counter in the 8051


– 16 bits wide
– can access program addresses 0000 to FFFFH
– total of 64K bytes of code

13
SECTION 2.4: THE PROGRAM COUNTER
AND ROM SPACE IN THE 8051

 Where the 8051 wakes up when it is


powered up:
– wakes up at memory address 0000 when it is
powered up
– first opcode must be stored at ROM address
0000H

14
SECTION 2.4: THE PROGRAM COUNTER
AND ROM SPACE IN THE 8051

 Placing code in program ROM


– the opcode and operand are placed in ROM
locations starting at memory 0000

15
SECTION 2.4: THE PROGRAM COUNTER
AND ROM SPACE IN THE 8051

 ROM memory map in the 8051 family

16 Figure 2–3 8051 On-Chip ROM Address Range


SECTION 2.5: 8051 DATA TYPES AND
DIRECTIVES

 8051 data type and directives


– DB (define byte)
– ORG (origin)
– EQU (equate)
– END directive

17
SECTION 2.5: 8051 DATA TYPES AND
DIRECTIVES

 Rules for labels in Assembly language


– each label name must be unique
– first character must be alphabetic
– reserved words must not be used as labels

18
SECTION 2.6: 8051 FLAG BITS AND
THE PSW REGISTER

 PSW (program status word) register

19 Figure 2–4 Bits of the PSW Register


SECTION 2.6: 8051 FLAG BITS AND
THE PSW REGISTER

20 Table 2–1 Instructions That Affect Flag Bits


SECTION 2.7: 8051 REGISTER BANKS
AND STACK

 RAM memory space allocation in the 8051

Figure 2–5
RAM Allocation in the 8051
21
SECTION 2.7: 8051 REGISTER BANKS
AND STACK

 Register banks in the 8051

Figure 2–6 8051 Register Banks and their RAM Addresses


22
SECTION 2.7: 8051 REGISTER BANKS
AND STACK

 How to switch register banks

Table 2–2 PSW Bits Bank Selection

23
SECTION 2.7: 8051 REGISTER BANKS
AND STACK

 Stack in the 8051


– section of RAM used to store information
temporarily
– could be data or an address
– CPU needs this storage area since there are
only a limited number of registers

24

You might also like