This repository showcases multiple embedded systems projects developed on the Texas Instruments TM4C123GXL (Tiva C Series LaunchPad) using C and Code Composer Studio.
Each project integrates timers, GPIO, LCD display, and audio feedback to create interactive real-time systems.
🎮 Simon Says Memory Game
A memory-based game inspired by Simon Says, where the player replicates increasingly long LED sequences. Audio tones and LCD feedback enhance interactivity.
- LED sequence generation using SysTick and Timer1A
- Audio tones via 4-bit resistor DAC
- Correct/incorrect feedback with buzzer tones
- LCD messages: “Round X Passed” or “Game Over”
- Dynamic sequence-tracking logic using arrays and GPIO switch input
- System flashes a sequence (e.g., Red → Green → Yellow).
- Player repeats the sequence using switches.
- Correct → next round with extended sequence.
- Incorrect → buzzer + “Game Over” message.
⚡ LED Reaction Time Game
A game that measures how quickly the player reacts to a randomly lit LED. Reaction times are displayed on the LCD in milliseconds.
- Random LED activation with SysTick
- Reaction time measurement via Timer1A
- Switch-based user input detection
- LCD display: “Reaction Time: XXX ms”
- LED lights up after a random delay.
- Player presses the switch as quickly as possible.
- LCD displays the reaction time result.
⏱️ Digital Stopwatch
A digital stopwatch with start, stop, and reset controls, displaying elapsed time on the LCD in real time.
- Controlled via GPIO switches (Start / Stop / Reset)
- Time tracking with Timer1A (HH:MM:SS format)
- Periodic tick sound via SysTick + DAC (4-bit binary weighted resistor DAC)
- Dynamic LCD updates
- Press Start to begin timing.
- Press Stop to pause.
- Press Reset to clear to 00:00:00.
🕒 LCD Digital Clock
A real-time digital clock displayed on the ST7735 LCD, capable of showing time in 12-hour AM/PM format with manual adjustment.
- Real-time tracking using SysTick
- LCD display in HH:MM:SS AM/PM format
- Manual time setting controls via GPIO switches
- AM/PM toggle functionality
- Periodic tick sound using DAC output via 4-bit binary weighted resistor DAC
- Clock updates continuously every second.
- Use buttons to adjust hours, minutes, or toggle AM/PM.
- LCD reflects all changes in real time.
| Component | Description |
|---|---|
| TM4C123GXL LaunchPad | Main microcontroller board |
| ST7735 LCD | SPI interface for text and graphics |
| 4-bit Binary Weighted Resistor DAC + Speaker | Generates audio tones |
| LEDs | Red, Green, Yellow indicators |
| Push-button Switches | Used for input and control |
🧑💻 Tools Used
- Language: C
- IDE: Code Composer Studio
- Debugger/Programmer: Onboard ICDI
🚀 Getting Started
- Clone this repository.
- Open the desired project in Code Composer Studio.
- Connect the TM4C123GXL via USB.
- Build and flash the program.
- Interact using the switches and LCD display.
| Project | Planned Enhancements |
|---|---|
| Simon Says | Add difficulty scaling and high-score tracking |
| Reaction Game | Support multiple rounds with average time scoring |
| Stopwatch | Add lap-time tracking functionality |
| LCD Clock | Add alarm feature and 24-hour time option |
This project is provided for educational and personal use.
🛠 These were summer passion projects developed using Code Composer Studio and the TM4C123GXL Tiva C LaunchPad.