Четверг, 01.10.2020, 04:45
Микроконтроллерная техника AVR
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум » Микроконтроллеры » Вопросы по статьям » Простой термометр на LCD (DS18B20)
Простой термометр на LCD (DS18B20)
UpgraderДата: Пятница, 06.11.2009, 19:40 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 19
Репутация: 1
Статус: Offline
Объясните пожалуйста кто-нибудь эту строчку из программы:

sprintf(lcd_buffer,"t=%i.%u\xdfC",temp,temp%1);

Но это не так важно, с этим еще не сложно разобраться.

А вот что не могу понять вообще:

#asm //сообщаем куда подключен датчик
.equ __w1_port=0x15; PORTC
.equ __w1_bit=3

0x15 - что это за адрес? И как узнать куда что подключено?
И назначение w1_bit=3 тоже не очень понятно.

Аналогично вопросы возникают и тут:
#asm //сообщаем куда подключён экран
.equ __lcd_port=0x18

Спасибо.

Сообщение отредактировал Upgrader - Суббота, 07.11.2009, 00:00
 
vit701-Дата: Воскресенье, 08.11.2009, 23:12 | Сообщение # 2
Рядовой
Группа: Пользователи
Сообщений: 11
Репутация: 1
Статус: Offline
Quote (Upgrader)
А вот что не могу понять вообще:

#asm //сообщаем куда подключен датчик
.equ __w1_port=0x15; PORTC
.equ __w1_bit=3

Означает, что устройство 1wire подключено к 3 ножке порта C( 26-ая ножка мк ).

Quote (Upgrader)
налогично вопросы возникают и тут:
#asm //сообщаем куда подключён экран
.equ __lcd_port=0x18

Означает, что дисплей подключен к порту B.

Посмотрев внимательно схему, этих вопросов мог бы избежать.

 
UpgraderДата: Воскресенье, 08.11.2009, 23:20 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 19
Репутация: 1
Статус: Offline
Немного не так спросил... Да, по схеме это конечно понятно.
Не понял как узнать какой адрес относится к какому порту. 0x15, 0x18 и т.п. Они должны быть описаны в даташите или это каким-то образом можно определить самому?

На асме в двоичном коде более понятно, а тут - не понял.

Сообщение отредактировал Upgrader - Воскресенье, 08.11.2009, 23:22
 
vit701-Дата: Воскресенье, 08.11.2009, 23:26 | Сообщение # 4
Рядовой
Группа: Пользователи
Сообщений: 11
Репутация: 1
Статус: Offline
Quote (Upgrader)
Немного не так спросил... Да, по схеме это конечно понятно.
Не понял как узнать какой адрес относится к какому порту. 0x15, 0x18 и т.п. Они должны быть описаны в даташите или это каким-то образом можно определить самому?

CodeVisionAvr создаешь проект через CodeWizardAVR, там думаю разберешься. Выбираешь например 1wire, там будет выбор на какой порт и пин зацепить. После того как все настроишь file->Generate, Save and Exit. И эти адреса ты увидишь в исходном коде. =)

 
UpgraderДата: Воскресенье, 08.11.2009, 23:32 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 19
Репутация: 1
Статус: Offline
Понятно. Но все-таки, как их узнать не используя мастер CodeWizardAVR? :-)
 
vit701-Дата: Воскресенье, 08.11.2009, 23:39 | Сообщение # 6
Рядовой
Группа: Пользователи
Сообщений: 11
Репутация: 1
Статус: Offline
Я как-то не задумывался по этому вопросу. Как вариант запомнить, у 8 меги не много портов Ж)

Добавлено (08.11.2009, 23:39)
---------------------------------------------
Кстати в этой схеме lcd дисплей) В Новосибирске зимой его использовать не вариант))) Я сделал пока-что для RS232. Потом на 7 сегментный индикатор хочу переделать.

Сообщение отредактировал vit701- - Воскресенье, 08.11.2009, 23:40
 
Vladimir-19Дата: Четверг, 07.01.2010, 15:47 | Сообщение # 7
Рядовой
Группа: Пользователи
Сообщений: 3
Репутация: 0
Статус: Offline
hello

Quote (Upgrader)
Понятно. Но все-таки, как их узнать не используя мастер CodeWizardAVR? :-)

Если трудно заморачиватся с HEX-калькулятором то можно записывать в формате
DDRB = 0b11111111; //(0xFF)
DDRB = 0b10101010; //(0xAA)

А вообще для дальнейшего программирования (не только МК) нужно научится переводить HEX-BIN-HEX в уме smile

 
HiSERДата: Вторник, 19.01.2010, 13:42 | Сообщение # 8
Продвинутый автор!
Группа: Проверенные
Сообщений: 254
Репутация: 11
Статус: Offline
HEX-BIN-HEX легко переводятся по 4-е бита ))) число от 0-15, 0-F, 0000-1111 ))))
 
aleksytДата: Вторник, 09.02.2010, 16:55 | Сообщение # 9
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
В книге по CVAVR где-то было написано, что данные о номерах портов для LCD и DS18b20 находятся в соотве. файлах с расширением h. Но я бегло просмотрел и не нашел.

Добавлено (09.02.2010, 16:55)
---------------------------------------------
Нашел где найти адрес порта, на находится в файле MEGA8.H, т.е. в файле соотв. МК.h

 
HiSERДата: Пятница, 12.02.2010, 09:00 | Сообщение # 10
Продвинутый автор!
Группа: Проверенные
Сообщений: 254
Репутация: 11
Статус: Offline
для lcd в главном файле
Code

#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>

и в lib\lcd.lib
Code

#asm
     .equ __lcd_direction=__lcd_port-1
     .equ __lcd_pin=__lcd_port-2
     .equ __lcd_rs=0
     .equ __lcd_rd=1
     .equ __lcd_enable=2
     .equ __lcd_busy_flag=7
#endasm

для ds18xx в главном файле
Code

#asm
         .equ __w1_port=0x18
         .equ __w1_bit=3
#endasm
#include <1wire.h>
 
YaroslavShДата: Понедельник, 13.12.2010, 22:21 | Сообщение # 11
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
А как из этого термометра, сделать терморегулятор с фазоимпульсным или числоимпульсным регулированием.

Добавлено (13.12.2010, 22:21)
---------------------------------------------
Напишите, пожалуйста, хоть кто-то, алгоритм работы выше упомянутого регулятора. Может быть у меня получится написать программу для этого прибора.

 
HiSERДата: Вторник, 14.12.2010, 14:10 | Сообщение # 12
Продвинутый автор!
Группа: Проверенные
Сообщений: 254
Репутация: 11
Статус: Offline
Что будет подключено к устройству для регулирования?
 
YaroslavShДата: Вторник, 14.12.2010, 14:36 | Сообщение # 13
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Через оптосимистор, будут подключены ТЭНы.
 
HiSERДата: Четверг, 16.12.2010, 10:58 | Сообщение # 14
Продвинутый автор!
Группа: Проверенные
Сообщений: 254
Репутация: 11
Статус: Offline
Не вижу смысла в регулировании напряжения на тэнах, лучше их включать и выключать когда это нужно.
 
YaroslavShДата: Четверг, 16.12.2010, 12:21 | Сообщение # 15
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Уважаемый, HiSER.
Вы пишете:
Quote

Не вижу смысла в регулировании напряжения на тэнах, лучше их включать и выключать когда это нужно.

А я вижу.

Так вы опишите алгоритм?

 
Форум » Микроконтроллеры » Вопросы по статьям » Простой термометр на LCD (DS18B20)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Хостинг от uCoz