SlideShare a Scribd company logo
MICROCONTROLLER
ARCHITECTURE &
ASSEMBLY LANGUAGE
PROGRAMMING
Noriah bt Mustafa
POLITEKNIK SULTAN HAJI AHMAD SHAH
CHAPTER 2 – Part 2
EC501 EMBEDDED SYSTEM APPLICATIONS
OUTCOMES
 Know PIC Assembly Language fundamental
Overview
 PIC - "Peripheral Interface Controller”
 How to use PIC microcontroller?
 Hardware
 Software - programming
 Programming language
 Machine language – machine code
 Assembly language
 High level language  C, C++, Basic
Low level
language
Introduction
 Assembly language is programming language
use to write programs using instructions that are
the symbolic code called mnemonic.
 Assembly language programs must to be
translated into machine code by a program
called assembler.
 To program in assembly language, the
programmer must know all the registers of the
CPU and the size of each, as well as other
details.
Assembling and linking process
 First use a text editor to type program in assembly
language. In the case of PIC microcontrollers, we use the
MPLAB IDE.
 The “asm” source file is fed into PIC assembler. The
assembler converts the instructions into machine code.
 The third step is called linking. The link program takes
one or more object files and produces a hex file, a list
file, a map file, an intermediate abject file and a debug
file.
 After a successful link, the hex file is ready to be burned
into PIC’s program ROM and is downloaded into PIC
trainers.
Embedded system (Chapter 2) part 2
Sample o a PIC Assembly Source Code (asm file)
Assembler Directives
 While instruction tell the CPU what to do, directives
(also called pseudo-instructions) give direction to the
assembler.
 Assembler directives are instruction used to tell the
CPU what to do.
 Examples of assembler directive :
EQU – equate (use to define value or a fixed address)
ORG – origin (use to indicate the beginning of the address for
code or data)
END – indicate the end of the source (asm) file.
Review Questions
1. What is the purpose of pseudo-instructions?
2. _____________ are translated by the assembler into
machine code, whereas _____________are not.
3. True or false. Assembly language is a high- level
language.
4. Pseudo- instruction are also called __________.
5. True or false. Assembler directives are not used by the
CPU itself. /they are simply guide to the assembler.
6. Which one the following is an assembler directive?
a) MOVLW 25H b) ADDLW 12 c) ORG 200H d) GOTO HERE
Data Format Representation
 The following are data type and data format
using for PIC microcontrollers.
Data Type Data Format
Hexadecimal 99H
0X99
h’99’
99
Decimal D’12’
Binary B’10011001’
ASCII A’2’
PIC18F instruction set.
 PIC18F2455/2550/4455/4550 devices
incorporate the standard set of 75 core instructions.
PIC18F
instruction
set.
PIC18F instruction set (cont.)
PIC18F instruction set (cont.)
MOVLW Instruction
 MOVLW Instruction moves 8-bit data into WREG
register. It has the following format:
MOVLW K ;move literal value K into WREG
 Example: Load the WREG register with value 25H.
MOVLW 25H ;move value 25H into WREG (WREG = 25H)
Operation: k → W
MOVWF Instruction
 The MOVWF instruction tells the CPU to move (in reality,
copy) the source register of WREG to a destination
register in file register (F).
 Example: Load value 66H into Port B, C and D.
MOVLW 66H ;move the value 66H to WREG (WREG = 66H)
MOVWF PORTB ; move the value in WREG to PORTB (PORTB = 66H)
MOVWF PORTC ;PORTC = 66H
MOVWF PORTD ;PORTD = 66H
MOVWF Move W to f Operation: (W) → f
Example
 Write assembly instruction to make the I/O port as
below :
a) RB4 and RB5 as input
b) PORTC as output
Solution:
a) MOVLW B’00110000’
MOVWF TRISB
b) MOVLW B’00110000’
MOVWF TRISB
Arithmetic Instruction
 Instructions for performing 8-bit addition,
subtraction and multiplication operation.
Addition
 These ADD instructions are design to perform 8-
bit addition.
 The execution result of the ADD instruction will
affect all flag bits of the STATUS register.
Operation: (W) + k → W
Addition (cont..)
Example
Write a program that add the hexadecimal numbers 0x20
and 0x30. Store the sum in data register at 0x50.
ORG 0X00
MOVLW 0X20
ADDLW 0X30
MOVWF 0X50,A
END
Example
Subtraction
• PIC18 microcontroller has two SUBTRACT
instructions. Subtract instruction will also affect all the
flag of STATUS register.
SUBLW Subtract W from Literal Operation: k – (W) → W
SUBWF Subtract W from f Operation: (f) – (W) → dest
Subtraction
Example
 Write a program to subtract 5 from 40H. Identify the
flag bit in status register.
Solution:
#include <pic18f4550>
ORG 0X00
MOVLW D’5’
SUBLW 0X40
END
Logic Instruction
 The logical instruction allow user to perform AND, OR,
exclusive-OR and complementing on 8-bit numbers.
Example
Example :
Write assembly statement for the operation 0XFF ||
0X55
MOVLW 0XFF ;move the value 0xFFin to WREG
IORLW 0X55 ;OR the value in WREG with value 0x55
Review Questions
Bit manipulation
 The bit operations set, clear and toggle
test only a single bit. The bit oriented
instructions available to PIC family are
BCF, BSF, BTFSC, BTFSS and BTG.
BCF Bit Clear f
Operation: 0 → f<b>
BSF Bit Set f Operation: 1 → f<b>
Bit manipulation
Example:
Write an assembly statement to make RB4 as
input an RC7 as output using bit addressable.
Solution:
BSF TRISB,4 ; set RB4 as input
BCF TRISC,7 ; make RC7 as output
Rotate Instruction
 PIC 18 families has four rotate instructions. Figure 2.
Illustrates this four rotate instructions.
RLCF Rotate Left f through Carry
RLNCF Rotate Left f (No Carry)
RRCF Rotate Right f through Carry
RRNCF Rotate Right f (No Carry)
Rotate
Example: RLCF
Data serialization
 One of the most widely used applications of the
rotate instructions. Data serialization is a process of
sending a byte of data, one bit at a time through a
single pin of microcontroller.
 The characteristic of data serialization are:
 Using the serial port.
 Using a programming technique to transfer data
one bit at a time and control the sequence of data
and spaces between them.
Data serialization
Example
Write a program to bring in a byte of data serially via
pin RC7 and save it in file register location 0x21. The byte
comes in with the LSB first.
Solution:
RCNT EQU 0x20
MYREG EQU 0x21
BSF TRISC,7
MOVLW 0x8
MOVWF RCNT
AGAIN BTFSC PORTC 7
BSF STATUS,C
BTFSS PORTC,7
BCF STATUS,C
RRCF MYREG,F
DECF RCNT F
BNZ AGAIN
Review Questions

More Related Content

PPTX
Water level controller using 8051 microcontroller
PPT
8051 ch9-950217
PPTX
water level controller using 8051 microcontroller
PDF
Microcontroller pic 16f877 architecture and basics
PPTX
ATmega32-AVR microcontrollers-Part I
PPTX
LCD Interacing with 8051
PPTX
Embedded system (Chapter )
PPT
Solution on Portable Blood Pressure Monitor System
Water level controller using 8051 microcontroller
8051 ch9-950217
water level controller using 8051 microcontroller
Microcontroller pic 16f877 architecture and basics
ATmega32-AVR microcontrollers-Part I
LCD Interacing with 8051
Embedded system (Chapter )
Solution on Portable Blood Pressure Monitor System

What's hot (20)

PPT
PIC timer programming
PDF
Embedded system (Chapter 2) part A
DOCX
Digital Alarm Clock (IC-TMS-8560)
PPTX
Lcd interfaing using 8051 and assambly language programming
PPTX
Fabrication of diodes, resistors, capacitors, fe ts
PPTX
Interfacing Stepper motor with 8051
PDF
8051 assembly programming
PDF
Question paper with solution the 8051 microcontroller based embedded systems...
PPTX
8051 timer counter
PDF
Embedded system (Chapter 3) io_port_programming
PPTX
PIC18 TIMER PROGRAMMING IN ASSEMBLY AND C
PPTX
Interrupts in pic
PPTX
8 bit alu design
DOCX
Microprocessor Interfacing and 8155 Features
PDF
Traffic Lights Controller in VHDL
PPTX
8051 Microcontroller PPT's By Er. Swapnil Kaware
PPT
8051 serial communication-UART
PDF
Microcontroller pic 16f877 addressing modes instructions and programming
PPT
Interfacing LCD with 8051 Microcontroller
PPT
AVR Fundamentals
PIC timer programming
Embedded system (Chapter 2) part A
Digital Alarm Clock (IC-TMS-8560)
Lcd interfaing using 8051 and assambly language programming
Fabrication of diodes, resistors, capacitors, fe ts
Interfacing Stepper motor with 8051
8051 assembly programming
Question paper with solution the 8051 microcontroller based embedded systems...
8051 timer counter
Embedded system (Chapter 3) io_port_programming
PIC18 TIMER PROGRAMMING IN ASSEMBLY AND C
Interrupts in pic
8 bit alu design
Microprocessor Interfacing and 8155 Features
Traffic Lights Controller in VHDL
8051 Microcontroller PPT's By Er. Swapnil Kaware
8051 serial communication-UART
Microcontroller pic 16f877 addressing modes instructions and programming
Interfacing LCD with 8051 Microcontroller
AVR Fundamentals
Ad

Viewers also liked (16)

PPT
Introduction to Embedded Systems and its Applications
DOC
Isi kandungan (latihan industri)
PDF
CMOS Topic 3 -_the_device
DOCX
Pengakuan
DOCX
Report latihan industri
PPTX
Embedded system (Chapter 5) part 1
PDF
Embedded system (Chapter 1)
PDF
CMOS Topic 6 -_designing_combinational_logic_circuits
PDF
Introduction To Embedded Systems
PDF
CMOS Topic 4 -_the_wire
DOCX
report latihan industri politeknik ( Bab 1 )
PDF
CMOS Topic 5 -_cmos_inverter
DOCX
Panduan menulis report akhir
PDF
CMOS Topic 7 -_design_methodology
PPT
CMOS Topic 2 -manufacturing_process
PDF
INTRODUCTION_TO_IC
Introduction to Embedded Systems and its Applications
Isi kandungan (latihan industri)
CMOS Topic 3 -_the_device
Pengakuan
Report latihan industri
Embedded system (Chapter 5) part 1
Embedded system (Chapter 1)
CMOS Topic 6 -_designing_combinational_logic_circuits
Introduction To Embedded Systems
CMOS Topic 4 -_the_wire
report latihan industri politeknik ( Bab 1 )
CMOS Topic 5 -_cmos_inverter
Panduan menulis report akhir
CMOS Topic 7 -_design_methodology
CMOS Topic 2 -manufacturing_process
INTRODUCTION_TO_IC
Ad

Similar to Embedded system (Chapter 2) part 2 (20)

PDF
Ch2 microcontroller architecture
PPT
1. Instructionset.pptfor engineering student
PPT
Chp6 assembly language programming for pic copy
PDF
Highridge ISA
ODT
Ecet 330 final exam new 2016
ODT
Ecet 330 final exam new 2016
ODT
Ecet 330 final exam new 2016
PPT
Picmico
PPT
My seminar new 28
PPTX
CH-3 CO-all-about-operating-system(Update).pptx
PPTX
Instruction Set Architecture
DOCX
Ecet 330 Enthusiastic Study / snaptutorial.com
DOCX
Ecet 330 Success Begins / snaptutorial.com
DOCX
ECET 330 Technology levels--snaptutorial.com
DOCX
ECET 330 Massive Success--snaptutorial.com
PPTX
Basic programming of 8085
PDF
Assembler Programming
PPTX
Assembly Language Programming By Ytha Yu, Charles Marut Chap 4 (Introduction ...
PPTX
8051 microcontroller
PPTX
Presentation
Ch2 microcontroller architecture
1. Instructionset.pptfor engineering student
Chp6 assembly language programming for pic copy
Highridge ISA
Ecet 330 final exam new 2016
Ecet 330 final exam new 2016
Ecet 330 final exam new 2016
Picmico
My seminar new 28
CH-3 CO-all-about-operating-system(Update).pptx
Instruction Set Architecture
Ecet 330 Enthusiastic Study / snaptutorial.com
Ecet 330 Success Begins / snaptutorial.com
ECET 330 Technology levels--snaptutorial.com
ECET 330 Massive Success--snaptutorial.com
Basic programming of 8085
Assembler Programming
Assembly Language Programming By Ytha Yu, Charles Marut Chap 4 (Introduction ...
8051 microcontroller
Presentation

Recently uploaded (20)

PPTX
Week 4 Term 3 Study Techniques revisited.pptx
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PDF
Basic Mud Logging Guide for educational purpose
PPTX
Institutional Correction lecture only . . .
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PDF
O7-L3 Supply Chain Operations - ICLT Program
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PDF
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
PPTX
PPH.pptx obstetrics and gynecology in nursing
PDF
RMMM.pdf make it easy to upload and study
PPTX
Cell Types and Its function , kingdom of life
Week 4 Term 3 Study Techniques revisited.pptx
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Microbial diseases, their pathogenesis and prophylaxis
Basic Mud Logging Guide for educational purpose
Institutional Correction lecture only . . .
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
STATICS OF THE RIGID BODIES Hibbelers.pdf
Final Presentation General Medicine 03-08-2024.pptx
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
FourierSeries-QuestionsWithAnswers(Part-A).pdf
O7-L3 Supply Chain Operations - ICLT Program
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
Abdominal Access Techniques with Prof. Dr. R K Mishra
O5-L3 Freight Transport Ops (International) V1.pdf
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
PPH.pptx obstetrics and gynecology in nursing
RMMM.pdf make it easy to upload and study
Cell Types and Its function , kingdom of life

Embedded system (Chapter 2) part 2

  • 1. MICROCONTROLLER ARCHITECTURE & ASSEMBLY LANGUAGE PROGRAMMING Noriah bt Mustafa POLITEKNIK SULTAN HAJI AHMAD SHAH CHAPTER 2 – Part 2 EC501 EMBEDDED SYSTEM APPLICATIONS
  • 2. OUTCOMES  Know PIC Assembly Language fundamental
  • 3. Overview  PIC - "Peripheral Interface Controller”  How to use PIC microcontroller?  Hardware  Software - programming  Programming language  Machine language – machine code  Assembly language  High level language  C, C++, Basic Low level language
  • 4. Introduction  Assembly language is programming language use to write programs using instructions that are the symbolic code called mnemonic.  Assembly language programs must to be translated into machine code by a program called assembler.
  • 5.  To program in assembly language, the programmer must know all the registers of the CPU and the size of each, as well as other details.
  • 6. Assembling and linking process  First use a text editor to type program in assembly language. In the case of PIC microcontrollers, we use the MPLAB IDE.  The “asm” source file is fed into PIC assembler. The assembler converts the instructions into machine code.  The third step is called linking. The link program takes one or more object files and produces a hex file, a list file, a map file, an intermediate abject file and a debug file.  After a successful link, the hex file is ready to be burned into PIC’s program ROM and is downloaded into PIC trainers.
  • 8. Sample o a PIC Assembly Source Code (asm file)
  • 9. Assembler Directives  While instruction tell the CPU what to do, directives (also called pseudo-instructions) give direction to the assembler.  Assembler directives are instruction used to tell the CPU what to do.  Examples of assembler directive : EQU – equate (use to define value or a fixed address) ORG – origin (use to indicate the beginning of the address for code or data) END – indicate the end of the source (asm) file.
  • 10. Review Questions 1. What is the purpose of pseudo-instructions? 2. _____________ are translated by the assembler into machine code, whereas _____________are not. 3. True or false. Assembly language is a high- level language. 4. Pseudo- instruction are also called __________. 5. True or false. Assembler directives are not used by the CPU itself. /they are simply guide to the assembler. 6. Which one the following is an assembler directive? a) MOVLW 25H b) ADDLW 12 c) ORG 200H d) GOTO HERE
  • 11. Data Format Representation  The following are data type and data format using for PIC microcontrollers. Data Type Data Format Hexadecimal 99H 0X99 h’99’ 99 Decimal D’12’ Binary B’10011001’ ASCII A’2’
  • 12. PIC18F instruction set.  PIC18F2455/2550/4455/4550 devices incorporate the standard set of 75 core instructions.
  • 16. MOVLW Instruction  MOVLW Instruction moves 8-bit data into WREG register. It has the following format: MOVLW K ;move literal value K into WREG  Example: Load the WREG register with value 25H. MOVLW 25H ;move value 25H into WREG (WREG = 25H) Operation: k → W
  • 17. MOVWF Instruction  The MOVWF instruction tells the CPU to move (in reality, copy) the source register of WREG to a destination register in file register (F).  Example: Load value 66H into Port B, C and D. MOVLW 66H ;move the value 66H to WREG (WREG = 66H) MOVWF PORTB ; move the value in WREG to PORTB (PORTB = 66H) MOVWF PORTC ;PORTC = 66H MOVWF PORTD ;PORTD = 66H MOVWF Move W to f Operation: (W) → f
  • 18. Example  Write assembly instruction to make the I/O port as below : a) RB4 and RB5 as input b) PORTC as output Solution: a) MOVLW B’00110000’ MOVWF TRISB b) MOVLW B’00110000’ MOVWF TRISB
  • 19. Arithmetic Instruction  Instructions for performing 8-bit addition, subtraction and multiplication operation.
  • 20. Addition  These ADD instructions are design to perform 8- bit addition.  The execution result of the ADD instruction will affect all flag bits of the STATUS register. Operation: (W) + k → W
  • 21. Addition (cont..) Example Write a program that add the hexadecimal numbers 0x20 and 0x30. Store the sum in data register at 0x50. ORG 0X00 MOVLW 0X20 ADDLW 0X30 MOVWF 0X50,A END
  • 23. Subtraction • PIC18 microcontroller has two SUBTRACT instructions. Subtract instruction will also affect all the flag of STATUS register. SUBLW Subtract W from Literal Operation: k – (W) → W SUBWF Subtract W from f Operation: (f) – (W) → dest
  • 24. Subtraction Example  Write a program to subtract 5 from 40H. Identify the flag bit in status register. Solution: #include <pic18f4550> ORG 0X00 MOVLW D’5’ SUBLW 0X40 END
  • 25. Logic Instruction  The logical instruction allow user to perform AND, OR, exclusive-OR and complementing on 8-bit numbers.
  • 26. Example Example : Write assembly statement for the operation 0XFF || 0X55 MOVLW 0XFF ;move the value 0xFFin to WREG IORLW 0X55 ;OR the value in WREG with value 0x55
  • 28. Bit manipulation  The bit operations set, clear and toggle test only a single bit. The bit oriented instructions available to PIC family are BCF, BSF, BTFSC, BTFSS and BTG. BCF Bit Clear f Operation: 0 → f<b> BSF Bit Set f Operation: 1 → f<b>
  • 29. Bit manipulation Example: Write an assembly statement to make RB4 as input an RC7 as output using bit addressable. Solution: BSF TRISB,4 ; set RB4 as input BCF TRISC,7 ; make RC7 as output
  • 30. Rotate Instruction  PIC 18 families has four rotate instructions. Figure 2. Illustrates this four rotate instructions. RLCF Rotate Left f through Carry RLNCF Rotate Left f (No Carry) RRCF Rotate Right f through Carry RRNCF Rotate Right f (No Carry)
  • 32. Data serialization  One of the most widely used applications of the rotate instructions. Data serialization is a process of sending a byte of data, one bit at a time through a single pin of microcontroller.  The characteristic of data serialization are:  Using the serial port.  Using a programming technique to transfer data one bit at a time and control the sequence of data and spaces between them.
  • 33. Data serialization Example Write a program to bring in a byte of data serially via pin RC7 and save it in file register location 0x21. The byte comes in with the LSB first. Solution: RCNT EQU 0x20 MYREG EQU 0x21 BSF TRISC,7 MOVLW 0x8 MOVWF RCNT AGAIN BTFSC PORTC 7 BSF STATUS,C BTFSS PORTC,7 BCF STATUS,C RRCF MYREG,F DECF RCNT F BNZ AGAIN