#include <main.h>
#include <var.h>
void main(void)
{
unsigned char i,j;
float Temp;
char Lcd_Buffer[33];
// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0xff;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0xff;
DDRD=0x00;
// KHOI TAO CHUAN 1 WIRE
// 1 Wire Data port: PORTC
// 1 Wire Data bit: 5
// Note: 1 Wire port settings must be specified in the
// Project|Configure|C Compiler|Libraries|1 Wire IDE menu.
w1_init();
lcd_init(16);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(" MINHHAGROUP");
lcd_gotoxy(0,1);
lcd_puts("1 WIRE BUS DEMO");
delay_ms(2000);
lcd_clear();
// Xac dinh so IC DS18b20 co tren Bus
ds18b20_devices = w1_search(0xf0,ds18b20_rom_codes);
sprintf(Lcd_Buffer,"SO THIET BI\nDS18B20: %u",ds18b20_devices);
lcd_puts(Lcd_Buffer);
delay_ms(3000);
/*
//Hien thi ROM CODE cua tung IC tren Bus
if (ds18b20_devices)
{
for (i=0;i<ds18b20_devices;i++)
{
sprintf(Lcd_Buffer," IC DS18b20 #%u\nROM CODE:",i+1);
lcd_clear();
lcd_puts(Lcd_Buffer);
delay_ms(2000);
lcd_clear();
for (j=0;j<8;j++)
{
sprintf(Lcd_Buffer,"%02X ",ds18b20_rom_codes[i][j]);
lcd_puts(Lcd_Buffer);
if(j==3)
lcd_gotoxy(0,1);
};
delay_ms(2000);
};
}
else
while (1); // Khong co IC tren Bus */
// Cau hinh do phan giai 12 Bit cho cac IC DS18b20 tren Bus
for (i=0;i<ds18b20_devices;)
if (!ds18b20_init(&ds18b20_rom_codes[i++][0],20,30,DS18B20_12BIT_RES))
{
sprintf(Lcd_Buffer,"Init error for\ndevice #%u",i);
lcd_clear();
lcd_puts(Lcd_Buffer);
while (1); // Qua trinh khoi tao co loi
};
/*
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts("NHIET DO TAI:");
*/
while (1)
{
j=1;
// Cap nhat nhiet do tai cac diem va hien thi len LCD1602
for (i=0;i<ds18b20_devices;i++)
{
Temp = ds18b20_temperature(&ds18b20_rom_codes[i][0]);
sprintf(Lcd_Buffer,"t%u=%2.2f\xdfC",j++,Temp);
lcd_clear();
lcd_puts(Lcd_Buffer);
delay_ms(1500);
}
}
}
// ------------------END OF FILE--------------------
// -------------------------------------------------