Professional Documents
Culture Documents
Course Outline
Week 1 2 3 4 5, 6 7 8 9 10 11 12 13 14 15, 16 17 Topic Introduction 8051Microcontroller Architecture Assembly Language Assembly Language Contd. Timers and Counters Serial Port Interrupt Design and Interface Examples
8086 / 8088 Microprocessor Introduction and Architecture Midterm Exam Hardware and Design Programming in Assembly
PIC 18 F Microcontroller Introduction, Architecture, I/O Pins Programming Revision Timers Peripherals of PIC 18F Microcontrollers
Assembly Language
Programming Languages
Assembly is a Low Level Language
High Level
Middle Level
C++ C
Low Level
Assembly
Assembly Language
Low Level Language English-like abbreviations
Still tedious and difficult Many instructions for simple tasks These problems led to High Level languages
Assembly Language
[label]: mnemonics
Assembly Language
[label]: mnemonics
Labels: are used to represent address of a line with a name Labels must end with a colon
Assembly Language
[label]: mnemonics
Mnemonics: Instruction or command Example: mov A,#67h mov is mnemonic A and #67h are operands
10
Assembly Language
Comments
Example:
; This is a comment
11
Instruction Set
8051 Instructions have 8 bit Opcode Combinations = 28 = 256 255 are implemented
139 92 24
1 Machine cycle = 12 clock cycles Could take 1, 2 or 4 Machine Cycles to execute an instruction
12
13
Instruction Set
14
Instruction Definition
mov a, #data
Example
mov a, #3 7403
15
Keil Vision
Keil for Assembly Programming of 8051
16
17
New Project
18
Select Device
19
20
21
22
Debug Mode
Write Code Save (Ctrl + S) Build Target File (F7) Debug Mode
Ctrl + F5
23
Debug Mode
24
Debug Mode
Registers Accumulator
PSW
25
26
27
28
29
A51 Assembler
Assembler: Converts Assembly code to machine language code
A51 Two Pass Assembler First Pass
Symbols and Labels are collected Length of each instruction is determined Symbol Table is made
Second Pass
30
Assembler Directives
31
Assembler Directives
1. 2. 3. 4.
32
Assembler Directives
1.
Address Control
ORG, USING
2.
Symbol Definition
Generic Symbols: EQU, SET Address Symbols: BIT, DATA, XDATA SFR Symbols: sfr, sbit
3.
Memory Initialization
DBIT, DB, DW
4.
Others
END
33
Address Control
34
Address Control
ORG
Changes location counter of currently active segment Sets new origin for subsequent statements Format ORG expression where
expression must be an absolute address without any forward references Only absolute addresses and symbols in current segment can be used
When ORG statement is encountered, the assembles calculates value of the expression and changes location counter of current segment Examples
35
Address Control
USING
4 Register Banks USING specifies which Register Bank is active Format USING expression
where expression is the register bank number and it must be a value from 0 and 3
36
Symbol Definition
Symbols and labels can be composed of 31 characters from the following list:
A -Z, a - z, 0 - 9, _ and ?
37
Symbol Definition
EQU and SET Used to create symbols that represent registers, numbers and addresses Similar to Define in C Assign a numeric value / register symbol to the specific symbol name Difference between EQU and SET
Symbols defined with EQU may not haven been previously defined by EQU and can not be redefined The SET directive allows later redefinition of symbols
38
Symbol Definition
EQU and SET Formats of SET / EQU statements are:
symbol EQU expression symbol EQU register
39
Symbol Definition
EQU and SET symbol is the name of symbol to define
expression specified will be substituted for each occurrence of the symbol used in program. expression is numeric expression which has no forward references register is one of the 8 registers (in the active bank)
40
Symbol Definition
Examples
VALUE SET 100 COUNTER SET R1 TEMP SET COUNTER TEMP SET COUNTER*VALUE
41
Symbol Definition
EQU and SET Symbols defined with EQU and SET directive may used anywhere in operands, expressions, or addresses etc.
Symbols that are defined as register name can be used anywhere a register is allowed Assembler replaces each occurrence of defined symbol in assembly program with the specified numerical value or register name
42
The BIT, DATA, and XDATA directives assign an address value to the specified symbol Symbols defined with the BIT, DATA and XDATA directives can not be changed or redefined
43
44
sbit
Sfr_symbol is the name of symbol to be defined address is an SFR address with which the symbol is to be associated bit-address is address of an SFR Bit
46
sfr mine = P0 ;
SFR symbol
47
Memory Initialization
Memory initialization directives are used to initialize code or constant space in byte units DBIT
Used to define a bit Used to define byte 8 bit Used to define Word 16 bits
DB
DW
48
Memory Initialization - DB
DB The DB directive initializes code memory with byte (8-bit) values Format label: DB expression, expression where label is the symbol that is given the address of the initialized memory expression is a byte value. Each expression may be a value or a symbol etc Example ORG 100h REQ: DB 1,2,3,4, A
49
Signals the end of assembly module Any text that appears after END is ignored
50
Number Representation
D (or nothing) Decimal H for Hex
Q for Octal
B for Binary