спасибо проблему удалось решить
все оказалось намного проще
кто хочет пользуйтесь
код С=
/*AVR mega8535 LCD v1.1
конрольная мрограмма
наборный массив
управление
*/
#asm
.equ __lcd_port=0x1b ;выбор порта под LCD
#endasm
char lcd_biffer[33]; //LCD буфер
#include ‹mega8535.h›
#include ‹lcd.h›
#include ‹delay.h›
#include ‹stdio.h›
#include ‹string.h›
int znak1 = 8; //для примера
int znak2 = 7;
int znak3 = 4;
int znak4 = 575;
char adres1[12]; //промежуточные массивы LCD (равнять по самому большому слову)
char adres2[12];
char adres3[12];
char adres4[12];
flash char lcd1[] = {"ERROR \0"}; // рамещение во флеш
flash char lcd2[] = {"menu \0"};
flash char lcd3[] = {"rabota \0"};
flash char lcd4[] = {"nastoika \0"};
flash char lcd5[] = {"vebor \0"};
flash char lcd6[] = {"temperatura \0"};
flash char lcd7[] = {"ustavka \0"};
flash char lcd8[] = {"vvod \0"};
flash char lcd9[] = {"sushka \0"};
flash char lcd10[] = {""};
void inicializacia(void){ //делаем инициализацию
PORTA=0x00;
// PORTC=0x00; //устанавливаем клавиотуру
PORTD=0x00;
PORTB=0x00;
DDRA=0xFF;
DDRC=0xFF;
DDRD=0xFF;
DDRB=0xFF;
lcd_init(16); //инициализация ЖКИ
//ADCSRA=0xEE; //мы записали в ADCSR число 0xEE или 1110 1110 ???
}
void indikacia (void) { //выводим инфомацию на экран LCD
lcd_gotoxy(0,0); //верхняя строка
sprintf(lcd_biffer,"%-s%-s%-i %-i",adres1,adres2,znak1,znak2); //ограничение 16 симоволов
lcd_puts (lcd_biffer);
lcd_gotoxy(0,1); //нижняя строка
sprintf(lcd_biffer,"%-s%-s%-i %-i",adres3,adres4,znak3,znak4); //комбинируй как угодно
lcd_puts (lcd_biffer);
}
void main (void) {
inicializacia();
strcpyf(adres1,lcd
; //функция копирует сроку из flash в sdram
strcpyf(adres2,lcd10);
strcpyf(adres3,lcd10);
strcpyf(adres4,lcd10);
while(1){
indikacia ();
}
}