
Explore the tm4c123 tiva c launchpad as the microcontroller for practical labs, highlighting its 80 mhz speed, 256 kb flash, and 2 kb ram.
Explore gpio and spio on the arm cortex-m microcontroller, using direction, data, digital enable, and pc to registers to control inputs, outputs, and pull-up or pull-down resistors.
Write a readable embedded c program that blinks a green led on a cortex-m board by enabling port f, configuring the direction and data registers, and using a simple delay.
Learn to read a button on a low-cost launchpad using GPIO with a pull-up, enable the port clock, and toggle an LED in a simple loop.
Explore how the Hitachi HD44780 LCD controller works, including pin descriptions, command and data registers, and connecting it to a microcontroller in 4-bit mode with backlight and contrast control.
Divide the LCD pins into control, data, and power groups. Learn how RS and RW govern commands and data, connect D0–D7, Vcc, Gnd, and a contrast potentiometer to a microcontroller.
Learn to control the lcd by using rs to select command or data registers, enable the data register to send data, and issue commands like 0x01 and 0x08 with delays.
Explore a basic LCD program flowchart for embedded systems. Initialize the LCD, enter a while loop, clear the display, set the cursor, send data, with timing delays.
Explore the lcd initialization function, enable the ports and data/command pins, set up a two-line, 5x8 lcd using the internal command register (0x38), and enable auto-increment with 0x06.
Learn to send commands and data to an LCD from a Cortex-M microcontroller by selecting the command or data register, writing the value, pulsing the pin, and delaying for execution.
Introduce two delay types—milliseconds and microseconds—for LCD commands, show a force delay in a nested loop, and hint at using PLLs and timers for precise delays later.
Set up a new Keil uVision CMSIS-based project, configure the 16 MHz clock, initialize the LCD, and implement LCD command and data writes with basic delays.
Select the lcd data register and write data to the lcd. Learn command versus data modes, and apply enable pulses and timing for reliable lcd interfacing.
Learn to interface an LCD with an ARM Cortex-M, using delay functions, prototypes, and LCD commands to initialize, configure a two-line display, and write data.
Learn to program an lcd with arm cortex-m by typing characters, applying delays, and transferring data to the display, while noting efficiency and compilation steps.
Discover how to drive a character LCD in four-bit mode by pooling data lines and sending the upper nibble via port B pins 4–7, using RS for data or commands.
Implement LCD 4-bit write function to separate data and control pins, extract upper and lower four bits, and write commands or data to the LCD in 4-bit mode.
Create a 4-bit lcd interface by defining symbolic pin mappings, initializing ports, and implementing nibble-based data transfer for commands and data with timing delays.
Learn to implement LCD 4-bit programming by splitting data and commands into two 4-bit halves, sending commands, writing data, and handling initialization, delays, and cursor control.
Develop and implement the lcd 4-bit data transfer function, setting the upper nibble and control signals with precise timing, and outline the main function prototype for the arm cortex-m project.
Master 4-bit LCD programming by initializing the display, sending commands to clear and manage the screen, and using symbolic names for readability while compiling and running code.
Explore keypad interfacing using a row and column matrix to save pins, drive rows low and read columns with a microcontroller, identifying pressed keys using two 8-bit ports.
Discover how to initialize a keyboard matrix on an ARM Cortex-M, by defining symbolic port names, enabling port clocks, and setting rows as outputs and columns as inputs.
Learn to implement a 4x4 keypad scan on an ARM Cortex-M by building a key map, configuring rows and columns, and identifying pressed keys with a sensing loop.
Initialize the keypad, read key presses, and display them on the lcd with line wrap and clear screen. Build a reusable keypad driver and library for ARM Cortex-M.
Download Keil uVision5, run the installer, and configure CMSIS and compilers for various microcontrollers, and install necessary drivers to detect them.
Learn how to download and install USB drivers for the Tiva C microcontroller, locate the driver package from Texas Instruments, and update the in-circuit debug interface in Windows device manager.
Gain an overview of keil uvision 5, manage the runtime environment, install packages, and customize the editor—font size, font, and colors—to improve readability of code and assembly.
Write your own lcd code and keep it private in libraries, and explore future cortex courses on interface and codecs.
This course takes a step-by-step practical approach on how to write drivers and libraries that will allow your Cortex-Microcontroller to talk to Keyboards and Liquid Crystal Displays. It goes on to provide optimization methods such as accessing the LCD with 4-bits rather than 8-bits and also programming keyboards using the matrix arrangement approach.
We will start by differentiating between GPIO and SPIO, this will give students the understanding on how registers relates to IO ports then we shall write out the code to see how these registers actually work with inputs and outputs.
We shall look at how to write our own LCD Drivers and Libraries, we shall take a look at the pinout and how we interface with the microcontroller, take a look at how we control the shift registers inside the LCD, then we shall go on to code our own driver and library.The last section of the LCD chapter deals with writing data in 4-bits to reduce the number of IO pins used for LCD.
The final chapter of the course deals with interfacing to keyboards, I will introduce how keyboards also conserve the number of IO pins by using the matrix arrangement and then we shall go on to write our keyboard driver and library. In a nutshell, this are the key areas we shall be looking at in this course :
If you interested in having bare-metal level access to keyboards and LCDs then this course is for you.