/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.9 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project : digit 7
Version : 
Date    : 
Author  :                   
Company :                     
Comments: 
7 segmentnii indikator 8(9) znakomest


Chip type           : ATmega8
Program type        : Application
Clock frequency     : 8,000000 MHz
Memory model        : Small
External SRAM size  : 0
Data Stack size     : 256

PORTD=0x00;
DDRD=0xFF;

PORTC=0x00;
DDRC=0xFF;

PORTB=0x00;
DDRB=0xFF;
*****************************************************/

#include <mega8.h>
#include <delay.h>

#define digit1 PORTC.1                     
#define digit2 PORTC.0      
#define digit3 PORTB.5      
#define digit4 PORTB.4      
#define digit5 PORTB.3 
#define digit6 PORTB.2
#define digit7 PORTB.1
#define digit8 PORTB.0


flash char digits[] = {       
0b00111111,                   //0
0b00000110,                   //1
0b01011011,                   //2
0b01001111,                   //3
0b01100110,                   //4
0b01101101,                   //5
0b01111101,                   //6
0b00000111,                   //7
0b01111111,                   //8
0b01101111                    //9
};

char digit_out[8], cur_dig ,a ,c ;
unsigned long int indication;
unsigned long int i;

 void recoding(void) 
 {       
 if (indication<100000000) 
 {                         
 digit_out[0]=indication%10;   
 indication=indication/10;     
 digit_out[1]=indication%10;
 indication=indication/10;     
 digit_out[2]=indication%10;
 indication=indication/10;     
 digit_out[3]=indication%10;
  indication=indication/10;     
 digit_out[4]=indication%10;
  indication=indication/10;     
 digit_out[5]=indication%10;
  indication=indication/10;     
 digit_out[6]=indication%10;
  indication=indication/10;     
 digit_out[7]=indication%10;
 }
 } 


interrupt [TIM2_OVF] void timer2_ovf_isr(void)
 {
  switch (cur_dig)
  {
  case 0:{digit8=1;digit1=0;break;};  
  case 1:{digit1=1;digit2=0;break;};
  case 2:{digit2=1;digit3=0;break;};  
  case 3:{digit3=1;digit4=0;break;};
  case 4:{digit4=1;digit5=0;break;};
  case 5:{digit5=1;digit6=0;break;};
  case 6:{digit6=1;digit7=0;break;};
  case 7:{digit7=1;digit8=0;break;};
  }  
  PORTD=digits[digit_out[cur_dig]];
  if(cur_dig==1)if(a==1)PORTD.7=1; 
  if(cur_dig==2)if(a==2)PORTD.7=1; 
  if(cur_dig==3)if(a==3)PORTD.7=1; 
  if(cur_dig==4)if(a==4)PORTD.7=1; 
  if(cur_dig==5)if(a==5)PORTD.7=1; 
  if(cur_dig==6)if(a==6)PORTD.7=1; 
  if(cur_dig==7)if(a==7)PORTD.7=1; 
  if(cur_dig==8)if(a==8)PORTD.7=1; 
  if(cur_dig==3)if(c==1)PORTD=0b01110111;  
  cur_dig++;                                     
  if (cur_dig==8) cur_dig=0; 
  }     
 
void main(void)
{

PORTD=0x00;
DDRD=0xFF;

PORTC=0x00;
DDRC=0x03;

PORTB=0x00;
DDRB=0xFF;

TCCR0=0x00;
TCNT0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
ASSR=0x00;
TCCR2=0x03;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00;
TIMSK=0x40;
ACSR=0x80;
SFIOR=0x00;

i=12345678;

#asm("sei")

while (1)
{
indication=i;   //показать на индикаторе
recoding();
a=7;       //если а=2 или 3--другие точки
//i++;
//delay_ms(100);
//c=1;
//i++;
//delay_ms(1000);
//{
//delay_ms(500);
//i++;
//} 
//if(PINC.3==0)
//{
//delay_ms(500);
//i=i-1;
//} 
}    
}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         