Здесь я хочу показать Вам принцип соединения термодатчика с компьютером, чтобы освоить роботу передачи данных на ПК.
Итак, приступим. Берем функции от прошлых проектов.
Справа блок, который присоединен к МК, а это схема на MAX232, присоединена к СОМ порту.
а вот сам код программы:
#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 и жмем подключить.
Мы увидим следующую надпись
Start PC Termometr
Temp=27*
Мы видим, что термометр рабочий, «свежие» данные от термометра будут приходить с интенсивностью в 1 секунду.
Наш термометр готов. Вы спросите меня:»А вот зачем использовать такую дорогую микросхему для сопряжения термометра с ПК, если есть
простые схемы, где используются только 2 транзистора?». Отвечаю: эту штуку мы будем доделывать и переделывать, но это попозже…