Friday, May 1, 2020

ATMega32 interface to a single 8x8 dot matrix display

ATMega32 interface to a single 8x8 dot matrix display A LED dot matrix display, is used to display human readable information. It is made of LED matrix consist of rows and columns. For example a 8x8 LED matrix has 8 row and 8 columns.

Red 8x8 5 mm LED dot matrix


Internal arrangement of the 8x8 led matrix, common cathode
Each row make a common of LED anode
Each column make a common of LED cathode

For a simple programming interface, A character pattern are 8x8. To display information, we display the pattern row by row. Each row active for about 1 ms.

In the example below, I display a character 'A' on the LED matrix. I use Microsoft Excel to generate character data.
using Excel worksheet to make dot matrix character
PORTD is use to generate row character pattern,
PORTC is use to enable each column

Source code:

#include <avr/io.h> 

#define F_CPU 16000000UL 
#include "util/delay.h" 

#define dTime 1 

char letterA[8]={0x10,0x38,0x6C,0xC6,0xC6,0xFE,0xC6,0xC6}; 

char dotControl[8]={1,2,4,8,16,32,64,128}; 

int main(void) 
 { 
     DDRD=0xFF; 
     DDRC=0xFF; 
     while (1)  
     { 
     for (int i=0;i<8;i++) 
     { 
     PORTD=0x00; 
     PORTC=letterA[i]; 
     PORTD=dotControl[i]; 
     _delay_ms(dTime); 
     } 
   } 
}

 

Click here to download its source file.Back to main tutorial page ATMega32 tutorials in C with Atmel Studio 7.

3 comments:

Search This Blog

Labels

25AA010A (1) 8051 (7) 93AA46B (1) ADC (30) Analog Comparator (1) Arduino (15) ARM (6) AT89C52 (7) ATMega32 (54) AVR (57) CCS PICC (28) DAC (1) DHT11 (2) Display (105) Distance Sensor (3) DS18B20 (3) dsPIC (2) dsPIC30F1010 (2) EEPROM (5) Environment Sensor (4) esp8266 (1) I2C (29) Input/Output (67) Interrupt (19) Keil (5) Keypad (10) LCD (46) Master/Slave (1) MAX7221 (1) MCP23017 (5) MCP23S17 (4) Meter (3) MikroC (2) Motor (15) MPLABX (66) Nokia 5110 LCD (3) OLED (2) One-Wire (6) Oscillator (8) PCB (6) PCD8544 (3) PCF8574 (5) PIC (107) PIC12F (2) PIC16F628A (2) PIC16F630 (1) PIC16F716 (3) PIC16F818 (10) PIC16F818/819 (2) PIC16F84A (15) PIC16F876A (1) PIC16F877A (9) PIC16F88 (1) PIC16F887 (60) PIC18 (19) PIC18F1220 (4) PIC18F2550 (3) PIC18F4550 (12) PWM (11) RTC (8) Sensor (10) SH1106 (1) Shift Register (11) Shift Registers (2) SPI (24) STM32 (6) STM32 Blue Pill (6) STM32CubeIDE (6) STM32F103C8T6 (6) SysTick (3) temperature sensor (11) Thermometer (21) Timer/Counter (30) TM1637 (2) UART (7) Ultrasonic (4) Voltmeter (7) WDT (1) XC16 (2) XC8 (94)