- Aim: To display a character or letter on a 8x8 LED matrix.
- Code:
#define F_CPU 8000000UL
#include<avr/io.h>
#include<util/delay.h>
int main(){
DDRC=0xFF;
DDRD=0xFF;
DDRB=0x00;
while(1){
if(PINB==0x01){
PORTC=0x08;
PORTD=0xEF;
_delay_ms(100);
PORTC=0x1C;
PORTD=0xC7;
_delay_ms(100);
PORTC=0x3E;
PORTD=0x83;
_delay_ms(100);
PORTC=0x7F;
PORTD=0x01;
_delay_ms(100);
PORTC=0xFF;
PORTD=0x00;
_delay_ms(100);
PORTC=0x7F;
PORTD=0x01;
_delay_ms(100);
PORTC=0x3E;
PORTD=0x83;
_delay_ms(100);
PORTC=0x1C;
PORTD=0xC7;
_delay_ms(100);
PORTC=0x08;
PORTD=0xEF;
_delay_ms(100);
}
else if(PINB==0x02){
PORTC=0x02;
PORTD=0xF0;
_delay_ms(1);
PORTC=0x04;
PORTD=0xEF;
_delay_ms(1);
PORTC=0x08;
PORTD=0xDF;
_delay_ms(1);
PORTC=0x10;
PORTD=0xBF;
_delay_ms(1);
PORTC=0x20;
PORTD=0xDF;
_delay_ms(1);
PORTC=0x40;
PORTD=0xEF;
_delay_ms(1);
PORTC=0x80;
PORTD=0xF0;
_delay_ms(1);
}}}
#include<avr/io.h>
#include<util/delay.h>
int main(){
DDRC=0xFF;
DDRD=0xFF;
DDRB=0x00;
while(1){
if(PINB==0x01){
PORTC=0x08;
PORTD=0xEF;
_delay_ms(100);
PORTC=0x1C;
PORTD=0xC7;
_delay_ms(100);
PORTC=0x3E;
PORTD=0x83;
_delay_ms(100);
PORTC=0x7F;
PORTD=0x01;
_delay_ms(100);
PORTC=0xFF;
PORTD=0x00;
_delay_ms(100);
PORTC=0x7F;
PORTD=0x01;
_delay_ms(100);
PORTC=0x3E;
PORTD=0x83;
_delay_ms(100);
PORTC=0x1C;
PORTD=0xC7;
_delay_ms(100);
PORTC=0x08;
PORTD=0xEF;
_delay_ms(100);
}
else if(PINB==0x02){
PORTC=0x02;
PORTD=0xF0;
_delay_ms(1);
PORTC=0x04;
PORTD=0xEF;
_delay_ms(1);
PORTC=0x08;
PORTD=0xDF;
_delay_ms(1);
PORTC=0x10;
PORTD=0xBF;
_delay_ms(1);
PORTC=0x20;
PORTD=0xDF;
_delay_ms(1);
PORTC=0x40;
PORTD=0xEF;
_delay_ms(1);
PORTC=0x80;
PORTD=0xF0;
_delay_ms(1);
}}}
- Proteus Simulation:
LED matrix simulation |
- Constraints:
1) Only displays letter "V"
2)Can't be modified externally
- Conclusion:
Comments
Post a Comment