Привет. На этом примере я хочу показать Вам принцип соединения термодатчика с компьютером, чтобы освоить роботу передачи данных на ПК. Итак, приступим.Берем функции от прошлых проектов. Справа блок, который присоединен к МК, а это схема на 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 транзистора?". Отвечаю: эту штуку мы будем доделывать и переделывать, но это попозже...
|