Summary of PIC16 Microcontrollers Video Tutorial Series
The lecture covers PIC microcontroller fundamentals from Wilmshurst: embedded systems, CPU types, memory models, PIC history and families, 16F84A features, memory and I/O organization, timing and reset, parallel ports and interfacing, oscillator and power, development tools (MPLABX, assembler, simulator), assembly programming techniques (branching, subroutines, delays, look-up tables, macros, indirect addressing), hardware prototyping, and peripheral topics including interrupts, keypads, LCDs, PWM, serial and ADC.
Parts used in the Intro to Microprocessors lecture:
- PIC16F84A microcontroller
- PIC12F508 microcontroller (block diagram reference)
- Power supply components
- LEDs
- Switches
- Keypad (for later chapters)
- LCD (for later chapters)
- ADC-related analog input components
- PCB prototyping tools (Eagle CAD)
- Programmer hardware (for programming device)
- General-purpose prototyping components (resistors, capacitors)
Lecture on “Intro to Microprocessors” using Wilmshurst’s “Designing Embedded Systems with PIC Microcontrollers”
Chapter 1, sections 1-3
Topics: What is an Embedded system?, Embedded examples, CISC vs. RISC, Memory: Volitile vs. non-volitile, Memory Organization: Von Neumann vs. Harvard
Chapter 1, sections 4-6
Topics: Microcontrollers vs. Microprocessors, Microcontroller families, Microchip Inc. History and background, Table of PIC 8-bit Families, Block diagram of 12F508
Chapter 2, sections 1-2
Topics: Why use 16F84A?, PIC mid-Range Family, pinout, Block Diagram, Status Register
Chapter 2, sections 3-4
Topics: Program Memory and Stack, Data memory and Special Funct. Reg. Map, Interfacing with Peripherals, Configuration Word
Chapter 2, sections 5-7
Topics: Pipelining, Reset
Chapter 3, sections 3.1 – 3.2.1
Topics: Parallel Ports, Bi-directional
Chapter 3, sections 3.2.2 – 3.3
Topics: Parallel Ports: elect. char., switches, LEDs
Chapter 3, section 3.3
Topics: Parallel Ports: 16F84A
Chapter 3, section 3.5-3.7
Topics: Oscillator Configuration, Power supply
Chapter 3, section 2
Topics: Parallel Output Port Timing Diagram
Chapter 3, section 2
Topics: Parallel Input Port Read Timing, HW Prob. 3.2
Chapter 4, section 4-9
Topics: Hardware Tools
Chapter 4, section 1-3
Topics: Software Tools, Assembly Language, A Simple Program
Chapter 4, section 4-6
Topics: MPLABX Tutorial, First Assembly Language Program, MPLABX Simulator
Chapter 4, section 7-10
Topics: MPLABX, Compiling Assembly Code, Programming a Device, Ping Pong Game
Chapter 4, section 5
Topics: Configuration Word Setup, Ping Pong Project Tips
Chapter 4, section x
Topics: Prototyping a PCB in Eagle CAD, Ping Pong Game
Chapter 4, section 7-8
Topics: Assembly Move Commands
Chapter 5, section 1
Topics: Flow Diagrams, State Diagrams
Chapter 5, section 1
Topics: Ping Pong Game Student Designs in Eagle CAD
Chapter 5, section 2.1
Topics: Conditional Branching, BitSet Code
Chapter 5, section 5.1
Topics: Conditional Branching Example: BitSet
Chapter 5, section 5.1
Topics: MPLABX Simulation Tutorial: Bitset.asm
Chapter 5, section 2.1
Topics: MPLABX Hardware Download Tutorial: BitSet.asm
Chapter 5, section 2.2
Topics: Arithmetic & Branching
Chapter 5, section 3
Topics: Subroutines in Assembly
Chapter 5, section 4
Topics: Assembly Time Delays
Chapter 5, section 2
Topics: Branching, MPLAB X Watch Window, Exercise 5.2
Chapter 5, section 5.1
Topics: MPLAB X Simulator: Breakpoints, Exercise 5.5, Fibonacci Full
Chapter 5, section 5.2
Topics: MPLAB X Simulator: StopWatch, Exercise 5.6 and 5.7
Chapter 5, section 6
Topics: Assembly Logical Instructions, Exercise 5.9 Flashing LEDs 2, Example 5.7
Chapter 5, section 6
Topics: RRF command clarification
Chapter 4, section 6
Topics: MPLAB X Sim Tips: Watch & Trace Window (Update)
Chapter 5, section 7
Topics: Assembly Language: Look-up Tables, RETLW Command
Chapter 5, section 7
Topics: MPLAB X Look-up Simulation Example, Exer. 5.10, Exam. 5.8, Flashing LEDs 3
Chapter 5, section 8
Topics: Include Files, Macros, List Directives in Assembly
Chapter 5, section 12
Topics: Indirect Addressing
Chapter 6,8,9,10,11
Topics: Interrupts, Keypads, LCDs, PWM, Serial, ADC
- What is an embedded system?
An embedded system is a dedicated computer system integrated into a larger device to perform specific control functions, as introduced in the lecture. - What are examples of embedded systems?
The lecture presents examples including microcontroller-based devices using LEDs, switches, keypads, LCDs, and peripherals like ADC, PWM, and serial interfaces. - What is the difference between CISC and RISC?
The lecture contrasts CISC and RISC CPU philosophies as part of processor fundamentals. - What is the difference between volatile and non-volatile memory?
Volatile memory loses data when power is removed while non-volatile memory retains data without power, as covered in the memory section. - How do Von Neumann and Harvard memory organizations differ?
Von Neumann uses a single shared memory for code and data; Harvard uses separate memories for program and data, as discussed in the lecture. - How do microcontrollers differ from microprocessors?
Microcontrollers integrate CPU, memory, and peripherals on one chip for embedded tasks, whereas microprocessors are general-purpose CPUs requiring external components; this distinction is explained in the lecture. - Why use the PIC16F84A?
The lecture explains PIC16F84A selection for mid-range PIC family features, pinout, block diagram, and status register suitability for learning and projects. - What does the PIC configuration word specify?
The configuration word sets device options such as oscillator and reset behavior, and is discussed in relation to program and peripheral setup. - What development tools are covered?
The lecture covers software tools (MPLABX IDE, assembler, simulator), hardware programmers, and prototyping tools like Eagle CAD. - How are parallel ports used with PIC microcontrollers?
The lecture covers parallel port operation, timing diagrams for input/output, bi-directional use, and interfacing with switches and LEDs, including 16F84A specifics.