/*****************************************************
Chip type : ATmega16
Program type : Application
Clock frequency : 4.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
*****************************************************/
#include <mega16.h>
#include <delay.h>
flash unsigned char led_7[8]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07};
flash unsigned char pos[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char time=0;
unsigned char j,k=0;
unsigned char buff[8]={8,7,6,5,4,3,2,1};
void main(void)
{
PORTA=0xFF;
DDRA=0xFF;
PORTC=0xFF;
DDRC=0xFF;
while (1)
{
unsigned char i;
for(i=0;i<=7-j;i++)
{
PORTA=led_7[j];
PORTC=pos[k];
delay_ms(2);
PORTC=0xff;
}
for(i=0;i<j;i++)
{
PORTA=led_7[i];
PORTC=pos[7-i];
delay_ms(2);
PORTC=0xff;
}
if(++time>=40)
{
time=0;
k++;
if(k==buff[j]){
k=0;
j++;
}
if(j==8){
j=0;
}
delay_ms(9);
}
};
}