https://github.com/rezagooner/dotmatrix-textscroll
A simple AVR project that scrolls the name "RezaGooner" (or other text) across a dot matrix display using ATmega32.
https://github.com/rezagooner/dotmatrix-textscroll
arduino assembly atmega32 codevision dotmatrix microprocessor processor proteus scrolling
Last synced: 11 months ago
JSON representation
A simple AVR project that scrolls the name "RezaGooner" (or other text) across a dot matrix display using ATmega32.
- Host: GitHub
- URL: https://github.com/rezagooner/dotmatrix-textscroll
- Owner: RezaGooner
- License: mit
- Created: 2025-04-14T07:00:13.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-04-15T06:32:17.000Z (12 months ago)
- Last Synced: 2025-04-25T19:13:14.213Z (11 months ago)
- Topics: arduino, assembly, atmega32, codevision, dotmatrix, microprocessor, processor, proteus, scrolling
- Language: Assembly
- Homepage:
- Size: 51.8 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# LED Matrix Scrolling
A simple AVR project that uses an **ATMega32** microcontroller to slowly scroll the name **"RezaGooner"** on an 8x8 LED Dot Matrix display from **right to left**.
## ๐ Project Goal
The goal of this project is to design and implement the hardware and software required to scroll a name (or any other text) on an 8x8 dot matrix using an AVR microcontroller. In this project, I have used "REZAGOONER" for the text, which you can implement to customize your own text with your own font.
---
## โ๏ธ Hardware Components
- 1x8x8 LED Dot Matrix
- 1 x ATMega32 Microcontroller
---
## ๐ Hardware Connections
- **PORTA** โ Connects to **Columns** of Dot Matrix
- **PORTB** โ Connects to **Rows** of Dot Matrix
Make sure the dot matrix wiring is aligned with the direction used in the software (horizontal movement requires proper row/column mapping).
---
## ๐ง Software Features
- Bitmapped characters are stored in hexadecimal arrays** by column.
- Scroll text **from right to left**, one column at a time.
- Delay added for smooth and readable movement.
- Efficient column shifting using bit manipulation.
---
## ๐งช Simulation
The circuit has been fully simulated and tested using **Proteus**.
- The compiled ".hex" file was loaded into the ATMega32.
- Proper behavior and text movement across the matrix display was visually verified.
---
## ๐ป Code Overview
```c
void scroll_continuous_text() {
int start_col, i, j;
for (start_col = 0; start_col < TOTAL_COLUMNS + 8; start_col++) {
for (j = 0; j < 10; j++) {
for (i = 0; i < 8; i++) {
int text_col = start_col - i;
unsigned char col_data = (text_col >= 0 && text_col < TOTAL_COLUMNS) ? continuous_text[text_col] : 0x00;
send_to_matrix(~(1 << i), col_data);
}
}
}
}
```
- PORTA controls the active column selection (~(1 << i))
- PORTB outputs the corresponding row pattern for each column.
- scroll_continuous_text() handles the animation by looping over all columns.
- A small delay ensures that each frame is displayed clearly.
---
## โถ๏ธ How it works
The character bitmaps are predefined for the full name.
The microcontroller continuously scans and updates the display one column at a time.
For each change step, 8 columns are drawn sequentially to simulate motion.
The text appears to "scroll" slowly from right to left.
## Circuit

