Надпис ХОБИ ЕЛЕКТРОНЧИК electronic-hobbyist

 

 

 

Цифровой датчик температуры DS18B20 и микроконтроллер PIC16F628A


Jakeselectronics


В схеме используется цифровой термометр DS18B20 фирмы Dallas (Maxim) с интерфейсом «1-Wire»


Работа датчика
Выпускаемая фирмой Maxim микросхема DS18B20 представляет собой прямой преобразователь температуры в цифровой код с однопроводным интерфейсом 1-Wire. Для подключения микросхемы необходим лишь один вывод контроллера и один подтягивающий резистор, в отличие от аналоговых датчиков, которые, в общем случае, нуждаются в операционных усилителях и нескольких резисторах.

Программный интерфейс цифровых датчиков с интерфейсом 1-Wire также несложен. Если для аналоговых датчиков необходим АЦП с источником опорного напряжения и, возможно, операционный усилитель, для прямого преобразователя температуры с однопроводным интерфейсом Dallas требуется только точное соблюдение временной последовательности сигналов. В принципе, программа должна быть достаточно простой. Все что она делает – считывает информацию из датчика DS18B20 и отображает ее на 4-разрядном 7-сегментном дисплее. Но когда дело доходит до программирования, обнаруживается, что все несколько сложнее, чем кажется на первый взгляд. Вы сами почувствуете это, взглянув на файл .ASM.


Сначала программа инициализирует микроконтроллер PIC16F628A: конфигурирует входы и выходы, обнуляет нулевой банк ОЗУ, устанавливает в исходное состояние бит выбора столбца дисплея и конфигурирует TIMER 2. TIMER 2 используется для прерывания бесконечного цикла программы и обновления информации на светодиодном дисплее.
После включения питания микроконтроллер начинает опрос датчика температуры DS18B20. Вся процедура занимает чуть меньше половины общего объема программной памяти. Считав значение температуры и записав его в ОЗУ, микроконтроллер преобразует 12-битное целое в десятичное число и записывает его в четыре регистра общего назначения, расположенные в пространстве ОЗУ.
К примеру, посмотрим, как будет представлена в регистрах температура «95.8»:
HUNS register = 0 [регистр сотен]
TENS register = 9 [регистр десятков]
ONES register = 5 [регистр единиц]
TENTHS register = 8 [регистр десятых]


Содержимое этих регистров будет использоваться подпрограммой обработки прерываний для обращения к таблице кодировок.
Программа работает в бесконечном цикле, производя считывание температуры чуть чаще, чем 1 раз в секунду.


Основные характеристики датчика температуры:
• Скорость выборки более одного значения в секунду
• Дисплей регенерируется по прерываниям от TIMER 2
• В программе предусмотрена возможность увеличения количества датчиков, подключаемых к общей шине 1-Wire
• Диапазон измеряемых температур –55.0…127.9 °С
Детально ознакомиться с микросхемой DS18B20 можно здесь.

Наименование DS18B20
ROHS LEAD
Производитель MAX
Корпус TO-92-3pins
Интерфейс 1 Wire
Точность +/- 0,5 C
Рез.измерения, бит 9...12
Температурный диапазон, С -55...+125
Розн. цена 81,05 руб.


Видео


 

Перечень компонентов:

Обозначение на схеме Тип Количество Описание
U1 PIC16F628A 1 Микроконтроллер. (Возможна замена на PIC16F627A или  PIC16F648A)
U2   1 Цифровой датчик температуры
D1...D4   4 7-сегментные светодиодные индикаторы с общим катодом
Q1...Q4   4 NPN транзисторы
R1...R4   4 Резисторы
R5...R11   7 Резисторы
R12   1 Резистор
R13   1 Резистор
C1, C2   2 Многослойные керамические конденсаторы

 

 

4. digitaltemperaturesensorbasic.asm

https://rlocman.ru/i/File/2011/04/07/digitaltemperaturesensorbasic. asm

 

 
electro-tech-online.com                                      www.rcocman.ru

 

 

Материалите подготви за сайта:
Иван Парашкевов

e-mail:

 

 

Copyright2024  Design by