Microcontrollers and Embedded Systems - 16 Series
This page consists of how I program microcontrollers, background on the processes involved and just some of my projects. I will try to aim the start of these projects to people with little or no knowledge of programming or microcontrollers, a basic understanding of electronics would be helpful. The code I will be using is Assembly language as it's about the lowest level programming you will ever use, machine code is the lowest level but a little too cryptic to follow.
Note 2021 : The MPLAB assembly is no longer the standard as shown in these projects, while the code may still apply to some systems it can now be considered obsolete. I have upgraded to C language as that is standard and compatible with several platforms. I shall not be updating the contents of any of these pages ever again, but will keep them as records.
The Basics of Programming
16F628A - Microcontroller? / Software / Code / Hardware
16F628A - Microcontrollers 2 - Flashing LED
16F628A - Microcontrollers 3 - Configuration settings
16F628A - Microcontrollers 4 - Commands
16F628A - Microcontrollers 5 - Parallel LCD
16F628A - Microcontrollers 6 - Keypad Input
16F628A - Microcontrollers 7 - Memory and Addressing
16F628A - Microcontrollers 8 - EEPROM
16F887 - Microcontrollers 9 - A Different Chip
16F887 - Microcontrollers 10 - ADC
16F887 - Microcontrollers 11 - Interrupts
16F887 - Microcontrollers 12 - Serial
16F628A / 16F887 - Microcontrollers 13 - Segment LED Multiplexing
16F628A - Microcontrollers 14 - Synchronous Serial - Bit Banging
16F690 - Microcontrollers 15 - SPI Serial
16F690 - Microcontrollers 17 - Dot Matrix Display
16F887 - Microcontrollers 18 - Graphic LCD
Microcontroller Math - Addition, Subtraction, Multiplication, Division, Square and Root
16F690 - Microcontrollers 16 - I2C Serial - Not Complete
Programming Projects
16F628A - Asynchronous Serial Character LCD
16F690 - Asynchronous and SPI Serial Keypad
16F690 - LED Matrix Snake Game
16F690 - Asynchronous Serial 4x40 LCD
SD Card, BMP, FAT32 and OLED - Part 1 - The OLED Display
SD Card, BMP, FAT32 and OLED - Part 2 - The SD Card
SD Card, BMP, FAT32 and OLED - Part 3 - The FAT32 Structure + BMP
SD Card, BMP, FAT32 and OLED - Part 4 - SD Card to OLED
Assembly Code Template
16F628A - Asynchronous Serial Receive
16F628A - Asynchronous Serial Character LCD
16F628A - Asynchronous Serial - 3 x 7-Segment - Common Anode
16F628A - Asynchronous Serial - 3 x 7-Segment - Common Cathode
16F887 - Asynchronous Serial Receive
16F887 - Asynchronous Serial Transmit
16F887 - Asynchronous Serial Transmit - Rev 2