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.

5 comments:

  1. you should comment each line code

    ReplyDelete
  2. Oh on newer post I put comment on code. Thanks for your comment.

    ReplyDelete
  3. Your blog is a fantastic resource, offering insightful and well-researched content. The way you break down topics makes it easy to understand, yet it remains engaging for more knowledgeable readers. I always look forward to your posts as they consistently provide valuable perspectives. Keep up the great work—your efforts are truly making a difference! Enrgtech
    Dot Matrix Display

    ReplyDelete

Search This Blog

Labels

25AA010A (1) 8051 (7) 93AA46B (1) ADC (30) Analog Comparator (1) Arduino (15) ARM (6) AT89C52 (7) ATMega32 (56) 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 (47) Master/Slave (1) MAX7221 (1) MCP23017 (5) MCP23S17 (4) Meter (3) MikroC (2) Motor (15) MPLABX (71) 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 (3) SPI (24) STM32 (6) STM32 Blue Pill (6) STM32CubeIDE (6) STM32F103C8T6 (6) SysTick (3) temperature sensor (11) Thermometer (21) Timer/Counter (31) TM1637 (2) UART (7) Ultrasonic (4) Voltmeter (7) WDT (1) XC16 (2) XC8 (94)