#include <tiny2313.h>
#include <delay.h>
#include <stdio.h>  // нужен для sprintf отжирает 
                    // один вывод отжирает 900 байт памяти

// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>

typedef unsigned char byte;
char lcd_buffer[11];

int b=0;    

void main(void)
 {
  #pragma optsize-
  CLKPR=0x80;
  CLKPR=0x00;
  #ifdef _OPTIMIZE_SIZE_
  #pragma optsize+
  #endif

  DDRB=0xFF; // сконфиг. как выходы 
  PORTB=0x00;

  DDRD=0x00;  // сконфиг. как вход
  PORTD=0xFF; // подтяжка чтоб не вылезло джитер

  lcd_init(8); // LCD module initialization
        
  while(1) 
  {
   if (PIND.0==0)
    {
     b=b+1;
     delay_ms(50);
     sprintf(lcd_buffer,"%u",b);
     lcd_gotoxy(0,0);
     lcd_puts(lcd_buffer);
     delay_ms(50);
    }
 
  }
 }