Part 8 of a microcontroller tutorial series moves beyond blinking LEDs by introducing real-world hardware peripherals. The author describes a custom docking board featuring a 4x20 HD44780 LCD, 4x4 button matrix, LEDs, DIP switches, and an ADC potentiometer for AVR and STM32 experiments. The main focus is driving the HD44780 LCD in 4-bit mode: wiring, initialization sequence, calibrating microsecond and millisecond software delays, and using the busy flag to speed up display writes by ~33%. Complete AVR C code is provided for lcd_init, lcd_display, lcd_putc, and delay functions, along with oscilloscope signal analysis and notes on GPIO data corruption risks for both AVR and STM32.

24m read timeFrom embeddedrelated.com
Post cover image
Table of contents
When 2 LEDs Just Don't Cut It Anymore4 x 20 LCD Character Display4 x 4 Button MatrixLEDsConfiguration SwitchesADC (Analog to Digital Converter) PotentiometerFirst Step - Adding An LCD DisplayTangent: Software Delays - MillisecondsTangent: Software Delays - MicrosecondsBut What About The Included Delay Functions?Back To Our LCD DisplayLCD InitializationLCD Put StringLCD Clear DisplayThe LCD Source Code - AVR VersionBut Wait, There's More!A Little Trick For Waiting EfficientlyLCD-SpeakSome Details As Seen On The ScopeDo We Have Any Potential Data Corruption Issues - AVR Version?The LCD Source Code - STM32 VersionDo We Have Any Potential Data Corruption Issues - STM32 Version?Next
1 Impression