1. Простой термометр на процессоре AT89C2051

  2. AT89C2051

    DS1820

    DS18B20

Основное отличие данной конструкции от других многочисленных и замечательных термометров на всевозможных микропроцессорах - это спартанский минимум деталей, в том числе - отсутствие транзисторных ключей. Кроме того, термометр работает с двумя типами датчиков - DS1820 и DS18B20. Практика показывает, что один из первых вопросов в комментариях - "А нельзя ли это переделать на другой тип датчика?", сбор средств и поиски волонтёров. Поэтому было решено делать сразу под оба типа. Нужный тип датчика выбирается перемычкой. Термометр определяет и отсутствие или обрыв датчика температуры, высвечивая на дисплее 'Err'.

Температура отображается на трехразрядном светодиодном индикаторе с общим катодом. Диапазон измерений -55°C…+125°C. Точность измерения температуры - 0.5°C во всём диапазоне.

С индикацией младшего разряда (пол градуса) пришлось схитрить. В диапазоне -55°C…-10°C и больше +100°C температура помещается на индикаторе с точностью до 1°C в младшем разряде. Для индикации 0.5°C в этом диапазоне зажигается точка после младшего разряда. Например -37 это -37°C, а вот -37. означает -37.5°C, а 117. соответственно означает 117.5°C.

Отдельной проблемой оказалось программирование этого микропроцессора. Процессор с индексом 'C' поддерживает только параллельное программирование. Ни один из имеющихся в наличии программаторов этого не умел. Все схемы программаторов, найденные в интернете не вызвали особого энтузиазма. В этих тяжелых условиях, руководстуясь идеями Чучхе было решено самостоятельно делать программатор на коленке, в смысле, на макетке, прямо рядом с термометром, где случайно осталась воткнута Mega32 от какого-то предыдущего проекта. В итоге, это удалось успешно осуществить, и один из ближайших постов будет про этот программатор.

Принципиальная схема контроллера

Принципиальная схема, AT89C2051, микроконтроллер, DS18B20 DS1820

Принципиальная схема в формате Splan7: (доступно зарегистрированным пользователям)

Перечень элементов

ОбозначениеНоминалПримечание
DD1AT89C2051 
 
U1DS1820/DS18B20 
 
7Seg1E30361 
 
C133pF 
C233pF 
C310uF 
 
Cr112 MHz 
 
R11k 
R24k7 
R310k 
R4620 
R5620 
R6620 
R7620 
R8620 
R9620 
R10620 
R11620 

Прошивка

Версия v1.0 от 10.12.2012: (доступно зарегистрированным пользователям)

В налаживании данная конструкция не нуждается и начинает работать сразу после включения, в случае правильного монтажа исправных деталей и успешной прошивки микроконтроллера. Возможно только понадобится поставить или снять перемычку под нужный тип датчика температуры.

Задавайте интересующие Вас вопросы в комментах к материалу.

Успехов!

Даташиты

Продолжение следует...

ОБСУЖДЕНИЯ

Аватар пользователя Anonymous

Простая схемка, попробую собрать

Аватар пользователя Anonymous

Всё получилось на макетке, спасибо автору! Нет ли печатки?

Аватар пользователя Leog - Linker.Ru

К сожалению нету. Если кто-то сделает - шлите, размещу

Аватар пользователя aleks237

Попробуем собрать.

Аватар пользователя Leog - Linker.Ru

Какой программатор используете?

Аватар пользователя aleks237

Програматор SP200S

Аватар пользователя Leog - Linker.Ru

Покупной, видимо

Аватар пользователя aleks237

Да покупной,но он недорогой(10-11$).Самому под USB сделать сложновато.

Аватар пользователя Leog - Linker.Ru

Интересно, что его можно купить или в Китае, или на Украине. При пересечении границы РФ он дорожает до 900 руб. И исчезает :)

Аватар пользователя aleks237

Давно пользуюсь aliexpress ничего не пропало и не подорожало.

Аватар пользователя Leog - Linker.Ru

А не подскажете, где посмотреть список программируемых микросхем? Не нашел что-то.

Аватар пользователя aleks237
Аватар пользователя Leog - Linker.Ru

Спасибо, попробую заказать. Жаль, что пики не программирует.

Аватар пользователя aleks237

Для пиков самое лучшее PICKit2.

Аватар пользователя Leog - Linker.Ru

Я им и пользуюсь, собрал пару лет назад. Просто хотел один на всё.

Аватар пользователя TESTTEST

Когда про программатор (или способ как вы прошили AT89C2051) напишите?

Аватар пользователя Leog - Linker.Ru

Если есть интерес - напишу. Но всё было сделано на макетной плате на Mega8 (понадобится программатор для меги). Шьющая программа на написана Java, интерфейса нет, только командная строка. Так что если есть желание повозиться, могу выложить всё. Если нет - наверное проще купить вот такой программатор, как выше обсуждался.

В итоге я выложу это, просто пока не было смысла спешить с этим.

Аватар пользователя TESTTEST

У меня есть программаторы для ATMEGA, есть atmega8 atmega 16 atmega328 и макетки, и интересно использовать еще кучу at89c2051 которые просто валяются без дела. Выкладывайте :) или на почту пришлите, желание повозиться полно :) Спасибо

Аватар пользователя Leog - Linker.Ru

Да, хорошо, выложу, как будет свободное время.

Аватар пользователя OLEG

Когда выложите материалы по программатору?

Аватар пользователя Leog - Linker.Ru

Выложил

Аватар пользователя electronik777

Хотелось бы попробовать Ваш проект на Atmega8,поскольку есть программатор для него и сам контроллер.

Аватар пользователя ravencrow1

Хотел собрать такой же, только у меня индикаторы с общим анодом, да и
хотел немного подкорректировать программу для вывода температуры без
десятых долей градуса и отдельный индикатор для плюса и минуса.
Не могли бы вы прислать исходник программы.

Аватар пользователя Leog - Linker.Ru

Боюсь что такой же с общим анодом не получится. Придется внешние ключи вешать.

Аватар пользователя evgi

А можно исходник--мне нуно чтоб по температуре 70С включался порт--как сигнализатор. или прошивку готовую если не трудно.

Аватар пользователя ilyawg

минусовую температуру не показывает

Аватар пользователя Leog - Linker.Ru

Заглянул в код - отрицательные температуры должен показывать.

Аватар пользователя mcm777

Собрал на AT89C51 - работает! А вот в таймере почему-то не горит один сегмент, на P1.7.

Аватар пользователя DenLab

Можно получить исходник?