Presentation is loading. Please wait.

Presentation is loading. Please wait.

Suranaree University Of Technology มทส  2002 Anant Oonsivilai 2002/2/27 Microcomputers and Microprocessors Chapter 2 8051 Assembly Language Programming.

Similar presentations


Presentation on theme: "Suranaree University Of Technology มทส  2002 Anant Oonsivilai 2002/2/27 Microcomputers and Microprocessors Chapter 2 8051 Assembly Language Programming."— Presentation transcript:

1 Suranaree University Of Technology มทส  2002 Anant Oonsivilai 2002/2/27 Microcomputers and Microprocessors Chapter 2 8051 Assembly Language Programming

2  2002 Anant Oonsivilai Outlines 8051 registers Manipulate data using registers & MOVE instructions Code simple assembly language instructions Assemble and run a program Sequence events upon power-up Examine programs in ROM codes ROM memory map Execution of instructions Data types PSW register (Program Status Word) RAM memory space Stack Register banks

3  2002 Anant Oonsivilai 8051 Registers D7D6D5D4D3D2D1D0 DPTR PC PC (Program counter) DPHDPL Figure2-1 (a): Some 8 bit Registers of the 8051 Figure2-1 (b): Some 8051 16 bit Registers 8 bit Registers R6 R5 R4 R3 R2 R1 R0 B A R7

4  2002 Anant Oonsivilai MOV Instruction MOV destination, source ; copy source to dest. MOV A,#55H ;load value 55H into reg. A MOV R0,A ;copy contents of A into R0 ;(now A=R0=55H) MOV R1,A ;copy contents of A into R1 ;(now A=R0=R1=55H) MOV R2,A ;copy contents of A into R2 ;(now A=R0=R1=R2=55H) MOV R3,#95H ;load value 95H into R3 ;(now R3=95H) MOV A,R3 ;copy contents of R3 into A ;now A=R3=95H

5  2002 Anant Oonsivilai Notes on Programming Value (proceeded with #) can be loaded directly to registers A, B, or R0 – R7 MOV R5, #0F9H MOV R5, #0F9H If values 0 to F moved into an 8-bit register, the rest assumed all zeros MOV A, #5 MOV A, #5 A too large value causes an error MOV A, #7F2H MOV A, #7F2H

6  2002 Anant Oonsivilai ADD Instruction ADD A, source ;ADD the source operand ;to the accumulator ;to the accumulator MOV A, #25H ;load 25H into A MOV R2,#34H ;load 34H into R2 ADD A,R2 ;add R2 to accumulator ;(A = A + R2)

7  2002 Anant Oonsivilai Structure of Assembly Language ORG 0H ;start (origin) at location 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  2002 Anant Oonsivilai Steps to Create a Program

9  2002 Anant Oonsivilai 8051 Program Counter & ROM Space

10  2002 Anant Oonsivilai 8051 Program Counter & ROM Space

11  2002 Anant Oonsivilai 8051 Program Counter & ROM Space

12  2002 Anant Oonsivilai Execute a Program Byte by Byte 1.PC=0000: opcode 7D fetched; 25 fetched; R5←25; PC+2 2.PC=0002: opcode 7F fetched; 34 fetched; R7←34; PC+2 3.PC=0004; opcode 74 fetched; 0 fetched; A←0; PC+2 4.PC=0006; opcode 2D fetched; A←A+R5; PC+1 5.(Similarly…)

13  2002 Anant Oonsivilai 8051 On-Chip ROM Address Range

14  2002 Anant Oonsivilai Data Types & Directives ORG 500H ORG 500H DATA1: DB 28 ;DECIMAL (1C in Hex) DATA2: DB 00110101B ;BINARY (35 in Hex) DATA3: DB 39H ; HEX ORG 510H ORG 510H DATA4: DB “2591” ; ASCII NUMBERS ORG 518H ORG 518H DATA6: DB “My name is Joe” ;ASCII CHARACTERS

15  2002 Anant Oonsivilai PSW (Flag) Register

16  2002 Anant Oonsivilai Instructions Affecting Flag Bits

17  2002 Anant Oonsivilai ADD Instruction and PSW

18  2002 Anant Oonsivilai ADD Instruction and PSW

19  2002 Anant Oonsivilai ADD Instruction and PSW

20  2002 Anant Oonsivilai 8051 RAM Allocation

21  2002 Anant Oonsivilai 8051 Register Banks

22  2002 Anant Oonsivilai Access RAM Locations Using Register Names

23  2002 Anant Oonsivilai Access RAM Locations Using Addresses

24  2002 Anant Oonsivilai Switch Register Banks

25  2002 Anant Oonsivilai Switch Register Banks

26  2002 Anant Oonsivilai Pushing onto Stack

27  2002 Anant Oonsivilai Popping from Stack

28  2002 Anant Oonsivilai Stack & Bank 1 Conflict

29  2002 Anant Oonsivilai Stack & Bank 1 Conflict


Download ppt "Suranaree University Of Technology มทส  2002 Anant Oonsivilai 2002/2/27 Microcomputers and Microprocessors Chapter 2 8051 Assembly Language Programming."

Similar presentations


Ads by Google