Разобрался.
Может кому пригодится
Код:
/********
По поводу портов описаны они в даташите к atmega16
укажу здесь список портов и их 16-ти ричный адрес
PORTA = 0x1b;
PORTA = 0x18;
PORTA = 0x15;
PORTA = 0x12;
********/
#include <mega16.h> //библиотека нашей atmega16
#include <ds1820.h> // библиотека температурного датчика ds1820
#include <1wire.h> //библиотека шины 1wire
#asm
.equ __w1_port=0x18;PORTB //Порт Б будем использовать для шины
.equ __w1_bit=0 //пин 0 или PB0
#endasm
#include <stdio.h> //библиотека ввода-вывода необходима в данном случае для функции sprintf
#include <lcd.h> //библитека lcd
#asm
.equ __lcd_port=0x1b;PORTA
#endasm
#include <delay.h>
unsigned char lcd_buffer[33];
void main(void){
char sign;
int temp;
lcd_init(16);
w1_init();
#asm("sei");
while(1){
//char text;
temp=ds1820_temperature_10(0)/10;
sign='+'; //читаем температуру
if (temp>1000){ //если датчик выдаёт больше 1000
//sign='-';
//temp=-temp;
temp=4096-temp; //отнимаем от данных 4096
temp=-temp; //и ставим знак "минус"
}
sprintf(lcd_buffer,"Temp1: %d\n\r", temp) ;//записуемв масив для экрана температуру и всё такое
lcd_clear(); //чистим дисплей перед выводом
lcd_puts(lcd_buffer); //выводим масив на LCD
delay_ms(500); //ждём 500мс
};
}