1 / 37

Introduction to Microcontroller

Introduction to Microcontroller. Microcontroller Fundamentals & Programming. Microprocessors. What is a microprocessor? Only a Central Processing Unit (CPU) Has Address, Data and Control Buses Note: By itself, it is totally useless. Microcontrollers . What is a microcontroller?

simeon
Download Presentation

Introduction to Microcontroller

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Microcontroller Microcontroller Fundamentals & Programming

  2. Microprocessors • What is a microprocessor? • Only a Central Processing Unit (CPU) • Has Address, Data and Control Buses • Note: By itself, it is totally useless.

  3. Microcontrollers • What is a microcontroller? • A processor • Parallel and serial digital I/O • Analog I/O • Counters and timers • Internal ROM and/or EPROM

  4. Microcontrollers • What are microcontrollers used in? • Watches • Microwaves • Stereo Receivers • Some products that you might know: • NASA’s Sojourner Rover – 8-bit Intel 80C85 • Palm Vx handheld – 32-bit Motorola Dragonball EZ • Sonicare toothbrush – 8-bit Zilog Z8 • The Vendo V-MAX 720 Soda Machine – Motorola HC11

  5. Microcontrollers Microcontrollers are a large market

  6. Microcontrollers So what languages are they being programmed in? 1998-1999 1999-2000 Source: TRON Association Survey 1998/99 & 1999/2000

  7. 68HC11 • Motorola 68HC11E9 (features) • ROM (12KB), EEPROM (512B), RAM (512B) • Counter/Timer system • A/D converter • Parallel I/Os • Expansion bus • Serial communication

  8. 68HC11 68HC11E9 Architecture 12 KBYTES ROM 512 BYTES RAM

  9. 68HC11 CPU Memory Map of MC68HC11E9

  10. 68HC11 CPU 68HC11 Programmer’s Model

  11. 68HC11 CPU 68HC11 Programmer’s Model

  12. D7 D6 D5 D4 D3 D2 D1 D0 0 1 1 0 0 1 1 1 68HC11 CPU Accumulator A and B ACCA or ACCB • ACCA or ACCB is a 8-bit general-purpose registers. • Stores temporary data from memory or I/O devices. • Stores result of allarithmetic and logic operations.

  13. 68HC11 CPU Accumulator A & B Example: • 1. LDAA $8000 ; loads contents of memory ; location $8000 into ACCA • 2. ADDA #$25 ; ACCA = ACCA + $25 • 3. STAA $9000 ; store result of ACCA into ; memory location $9000

  14. 68HC11 CPU 68HC11 Programmer’s Model

  15. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 68HC11 CPU Accumulator D ACCD ACCB ACCA • ACCD represents Accumulator-D • ACCD = (ACCA + ACCB) to form a 16-bit register. • ACCA represents most significant byte (MSByte) • ACCB represents least significant byte (LSByte)

  16. 68HC11 CPU 68HC11 Programmer’s Model

  17. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 68HC11 CPU Index Register X and Y IX or IY registers • Index register X and Y are two 16-bit registers. • Use in Index Addressing Mode. • Examples: • LDX #$1000 ;loads $1000 into IX • LDAA $10,X ;memory ($10+IX) content • ;load to ACCA.

  18. 68HC11 CPU 68HC11 Programmer’s Model

  19. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 0 68HC11 CPU Stack Pointer (SP) SP Register • Stack occupied a small section in RAM memory. • Stack Pointer (SP) register: • a 16-bit register. • contains address of the stack. • Application of stack : • used in subroutine and interrupts operations • storing all the CPU registers contents.

  20. 68HC11 CPU 68HC11 Programmer’s Model

  21. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 0 68HC11 CPU Program Counter (PC) Program Counter • Program Counter (PC) is a 16-bit register . • PC contains address of next instruction to be executed. • Example: • If PC = $0100, then; • CPU starts executing from memory location $0100 onwards.

  22. 68HC11 CPU 68HC11 Programmer’s Model

  23. D7 D6 D5 D4 D3 D2 D1 D0 S X H I N Z V C 68HC11 CPU Condition Code Register (CCR) Condition Code Register (CCR) • CCR is an 8-bit register. • Bits 7 to 0 labeled as S X H I N Z V C respectively. • H, N, Z, V, C bits indicatestatus of last arithmetic or logic operation. • S, X, I bits indicate the masking bits.

  24. 7 6 5 4 3 2 1 0 S X H I N Z V C 68HC11 CPU CCR Explained Carry Overflow Zero Negative Stop Disable X-Interrupt Mask Half Carry I-Interrupt Mask

  25. 7 6 5 4 3 2 1 0 S X H I N Z V C 68HC11 CPU CCR Explained Carry Overflow Zero Negative Stop Disable X-Interrupt Mask Half Carry I-Interrupt Mask

  26. 68HC11 CPU N (Negative) bit • When the result of last arithmetic or logical operation is negative; then • N = “1” (MSB = “1”) • Whenever the result is positive; then • N = “0” (MSB = “0”) • Example • (1) LDAA #$7F ; N = “0” , msb = “0” (2) LDAB #$80 ; N = “1” , msb = “1”

  27. 7 6 5 4 3 2 1 0 S X H I N Z V C 68HC11 CPU CCR Explained Carry Overflow Zero Negative Stop Disable X-Interrupt Mask Half Carry I-Interrupt Mask

  28. 68HC11 CPU Z (Zero) bit • Z = “1” - result of last operation produces zero. • - accumulator content = $00 • Z = “0” - result of last operation greater than zero. • - accumulator content = $00 Example (1) LDAA #$00 ; Z = “1”, ACCA = 0 (2) LDAB #$01 ; Z = “0”, ACCB > 0

  29. 7 6 5 4 3 2 1 0 S X H I N Z V C 68HC11 CPU CCR Explained Carry Overflow Zero Negative Stop Disable X-Interrupt Mask Half Carry I-Interrupt Mask

  30. 68HC11 CPU C (Carry) bit • C =“1” - addition or subtraction produces a • carry or a borrow. • C =“0” - after addition or subtraction • no carry or no borrow. • *Note: C-bit also used in shift and rotate instructions. Example: LDAA #$80 ADDA #$90 ; C=“1” WAI ; bit-7 carries “1” to C-bit

  31. 7 6 5 4 3 2 1 0 S X H I N Z V C 68HC11 CPU CCR Explained Carry Overflow Zero Negative Stop Disable X-Interrupt Mask Half Carry I-Interrupt Mask

  32. 68HC11 CPU V (Overflow) bit • V =“1” - result is wrong,after an addition • or subtraction on 2’s complement • signed number caused an overflow • V =“0” - result is correct, after an addition • or subtraction on 2’s complement • signed number, no overflow

  33. 7 6 5 4 3 2 1 0 S X H I N Z V C 68HC11 CPU CCR Explained Carry Overflow Zero Negative Stop Disable X-Interrupt Mask Half Carry I-Interrupt Mask

  34. 68HC11 CPU H (Half-carry) bit • H =“1” - an 8-bit addition, produces a carry from bit-3 to bit-4. • H =“0” - an 8-bit addition, produces • no carry from bit-3 to bit-4. Example: LDAA #% 0011 1000 ADDA #% 0011 1010 ; H=“1” WAI ; (after adding) 1+1 produces a carry

  35. 7 6 5 4 3 2 1 0 S X H I N Z V C 68HC11 CPU CCR Explained Carry Overflow Zero Negative Stop Disable X-Interrupt Mask Half Carry I-Interrupt Mask

  36. HC11 CPU Command Register I Interrupt Mask X XIRQ mask S Disable STOP instructions Note: Bits set by the user to tell the processor how to dothings

  37. HC11 CPU Thank You

More Related