Код: Выделить всё
#include <math.h>
#include <io.h>
#include <mega8.h>
#include <delay.h>
#include <stdio.h>
#include <1wire.h>
//////////////////////////////////////////////
//Дисплей на порт D //
//#asm //
// .equ __lcd_port=0x12 ;PORTD //
//#endasm //
//#include <lcd.h> //
//////////////////////////////////////////////
//Датчик подключен к порту B, бит номер 2 //
#asm //
.equ __w1_port=0x18 ;PORTB //
.equ __w1_bit=2 //
#endasm //
#include <ds18b20.h> //
//////////////////////////////////////////////
//char lcd_buf[17];
int dvoich(int x1) //функция перевода десятичного числа в двоичное
{
int i,b;
long c=0;
for(i=0; x1>0; i++)
{
b=x1%2;
x1=(x1-b)/2;
c+=b*pow(10,i);
return c;
}
}
void main()
{
int a=20;
float temper;
DDRC=0x01;
//lcd_init(16);
w1_init(); //поиска датчика
ds18b20_init(0,-20,50,DS18B20_12BIT_RES); //настройка датчика(id, -, +, режим работы)
while (1)
while (PINB.3==1)
{
}
if (PINB.3==0)
{
a=a++;
}
while (PINB.3==0)
{
}
while (PINB.4==1)
{
}
if (PINB.4==0)
{
a=a--;
}
while (PINB.4==1)
{
}
{
temper=ds18b20_temperature(0);
dvoich(a);
if (temper<a) {
PORTC.0=1; }
else {
PORTC.0=0; }
// sprintf(lcd_buf,"t=%.1f\xdfC",temper);
// lcd_clear();
// lcd_puts(lcd_buf);
// delay_ms(1500);
};
}
- Вложения
-
- ds18b20.rar
- (29.92 КБ) 125 скачиваний

