Здесь я хочу показать Вам принцип соединения термодатчика с компьютером, чтобы освоить роботу передачи данных на ПК.
Итак, приступим. Берем функции от прошлых проектов.
а вот сам код программы:
#include <mega8.h>
#asm
.equ __w1_port=0x18 ;PORTB
.equ __w1_bit=0
#endasm
#include <1wire.h>
#include <delay.h>
#include <ds18b20.h>
#include <stdio.h>
void main(void)
{
int temp;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600 (Double Speed Mode)
UCSRA=0x02;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x67;
w1_init();
printf(“Start PC Termometr\r”);
while (1)
{
temp=ds18b20_temperature(0);
if(temp>1000)
{ temp=4096-temp;
temp=-temp;
}
printf(“Temp=%i\xf8C”,temp);
delay_ms(1000);
printf(“\n\r”);
};
}
Фюзы прошить на 8 МГц.
Дальше, чтобы проверить работоспособность схемы делаем следующее.
Запускаем программу Hуper Terminal, выбираем порт к которому подключились (СОМ1 или СОМ2….),
потом выставляем скорость обмена 9600 и жмем подключить.
We will see the following inscription
Start PC Termometr
Temp=27*
Мы видим, что термометр рабочий, “свежие” данные от термометра будут приходить с интенсивностью в 1 секунду.
Наш термометр готов. Вы спросите меня:”А вот зачем использовать такую дорогую микросхему для сопряжения термометра с ПК, если есть
простые схемы, где используются только 2 транзистора?”. Отвечаю: эту штуку мы будем доделывать и переделывать, но это попозже…