Wyświetlacz 7-segmentowy
Od 0 do 9999.
Kompilator: Code::Blocks
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
int display(int x)
{
switch(x)
{
case 0:
return 192;
case 1:
return 249;
case 2:
return 164;
case 3:
return 176;
case 4:
return 153;
case 5:
return 146;
case 6:
return 130;
case 7:
return 248;
case 8:
return 128;
case 9:
return 144;
default:
return 192;
}
}
int main(void)
{
DDRD = 0xFF;
DDRA = 0xFF;
int z=0;
int i=0;
int t,s,d,j;
for(i;i<9999;i = i+1){
z=i;
t=z/1000;
z=z-1000*t;
s=z/100;
z=z-s*100;
d=z/10;
z=z-d*10;
j=z;
PORTA=254;
PORTD=display(j);
_delay_ms(100);
PORTA=253;
PORTD=display(d);
_delay_ms(100);
PORTA=251;
PORTD=display(s);
_delay_ms(100);
PORTA=247;
PORTD=display(t);
_delay_ms(100);
}
}