
Contrast microprocessors and microcontrollers, highlighting shared data and program memory, common buses and control lines, and why microcontrollers integrate memory and input/output for compact, cost-effective designs.
Explore the Microchip PIC family and its 8-, 16-, and 32-bit microcontrollers, including architecture differences, memory ranges, and the baseline, mid-range, and enhanced mid-range lines for diverse applications.
introduces the PIC18 microcontroller architecture, detailing program memory, data RAM, volatile memory behavior, banks and address space, and key peripherals such as ports, ADC, and serial interfaces.
Explore the working register, the W register, and how assembly language uses them for arithmetic and logic. See how lw and add fetch literals from program memory and update flags.
Install MPLAB X IDE and use the simulator to build, assemble, and run a basic PIC18 program, create a new project, and analyze memory and program flow.
Explore PIC18 memory architecture, focusing on the W register and file registers, general purpose and special function registers, RAM banks, and bank switching for data access.
Explore the Harvard architecture of the PIC18, with separate program space and data memory, a program counter, and 16-bit instructions stored as two bytes, and understand endianness and address space.
Discover how PIC18 I/O pins are configured as input or output with TRIS, PORT, and LAT registers, and how to read and write pins on ports A–E.
Learn to set up MPLAB X with XC8, install the C compiler, create a simple C program to blink an LED on a PIC18, and use the simulator.
Learn to glow an LED from a switch using a PIC18 microcontroller, with RB0 as input and RB1 as output, using masking and bitwise operations, configuring settings and disabling watchdog.
Explore how a switch input drives a glowing led on a PIC18 microcontroller using a simulator, with visual board outputs shown and values displayed line by line.
Learn to configure timer 0 on a PIC18 microcontroller to generate millisecond delays by selecting 8- or 16-bit mode, clock source, prescaler, and overflow handling.
Learn to program timer 0 in counter mode on a PIC18 using an external clock, selecting edge transitions, applying a prescaler, and reading the timer value.
Configure the PIC18 oscillator and configuration bits, set up a 16-bit timer, load the initial value, wait for overflow, and toggle the LED to blink every 50 ms.
Configure an 8-bit timer on a PIC18 microcontroller with a 4 MHz crystal to blink an LED at 50 ms, using a prescaler and preload values to manage overflow.
Learn to write a program for a PIC18 microcontroller to blink an LED at 50 ms using a simulator, exploring 16-bit timing and output logic.
Write a program for the PIC18 microcontroller that configures timer0 as a counter, enables the timer, and displays the value on a four-bit port using RB0-RB3.
Write a program that uses timer0 as a counter and displays the value in the simulator. Use a prescaler to slow the clock and prevent random outputs.
Explore serial communication using uart registers spbrg, txreg, rxreg, including baud rate generation, framing with start and stop bits, and ascii data transfer, contrasting parallel and serial.
Write a program to send a character continuously using the PIC18 serial interface, enabling the serial pins, configuring BRG16 and baud rate, and waiting for the transmission to complete.
Demonstrate a program on a PIC18 microcontroller that transmits a character continuously, by simulating the code, loading the transmitting register, and executing the code line by line.
Learn how to use the printf function via the serial port on a PIC18 microcontroller, including initializing the port, redirecting stdio, and transmitting data for a 'hello world' output.
Learn how a PIC18 microcontroller handles external and internal events with interrupts, using high and low priority levels, global enable, and vectors to jump to the interrupt handler.
Explore how the PIC18 ADC converts analog inputs to digital values, using 256, 1024, or 4096 levels for 0-5 V or -5 to 5 V, and configure channels and reference.
Read adc channel 0, start conversion with the adc rc oscillator, assemble the 8-bit result from the bytes, and drive leds on a port based on value ranges.
Read ADC channel 0, simulate input voltages, and drive LEDs via the simulator. See how ADC values correspond to LED outputs on a PIC18 microcontroller.
Explore the compare mode of the CCP in PIC18 microcontrollers, including how timer 1 and timer 3 drive capture and compare events, set actions, and generate timed outputs.
Explore how to configure the compare mode register for a PIC18 timer, selecting clock sources, enabling timer 3, and calculating a 1 ms period using a 1 MHz internal clock.
Configure CCP1 as an output and use timer3 in compare mode to generate a 40 ms square wave, monitoring the CCP1 flag to drive the waveform.
Learn to write a program for the PIC18 simulator to generate a 40 ms square wave and observe the output with a logic analyzer.
Explore the capture mode of the PIC18 CCP module, capturing timer values on external events and rising or falling edges, using 16-bit capture registers to measure frequency and period.
Configure the capture mode register for the CCP module to capture on a falling edge, using timer 1 for capture and timer 3 for compare.
Configure timer 3 as the CCP1 block in 16-bit mode to measure the duty cycle. Capture on the falling edge and print the values to the serial port.
Write a program to find the duty cycle of an input wave using a simulator, with step-by-step guidance and captured values for practical implementation.
Learn how PWM on a PIC18 uses a timer and CCP registers to set period and duty cycle, enabling DC motor control and power supply regulation.
Demonstrate writing a program to generate a pwm on a PIC18 microcontroller. Configure the pwm cycle, timer, and prescale values, and load the duty cycle into ccp registers.
PIC 18 is a family of microcontrollers made by Microchip Technology. PIC devices are popular with both industrial developers and hobbyists due to their low cost, wide availability, large user base, extensive collection of application notes, availability of low cost or free development tools, serial programming, and re-programmable Flash-memory capability.
For this course you will need a computer software for development known as MPLAB X IDE and XC8 compiler.
The course aims at teaching the various concepts of embedded systems and Peripheral Interface Controller. The course covers the basic simulations on MPLABx software. The course also covers various aspects of programming and focuses over advanced interfaces like Analog and Serial interface with PIC18 using the software.