1. Таймер обратного отсчета на ретро-процессоре AT89C2051

  2. AT89C2051

Внезапно понадобился таймер, для включения на короткое время УФ лампы. Под рукой как раз оказался AT89C2051 после экспериментов с термометром. В результате получился вот такой таймер:

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

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

Таймер умеет считать назад до нуля. Начальное время выставляется от 1 минуты до 99 часов 59 минут. Есть звуковая индикация окончания обратного отсчета. По окончании отсчета нагрузка включается или, наоборот, отключается в зависимости от режима, выбранного при начальной установке.

Таймер очень удобно использовать при засветке ультрафиолетом плат с фоторезистом. Или, например, обеззараживании помещений УФ лампой.

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

Прошивка в варианте "C" может быть использована как кухонный таймер. В ней выставляется только время (часы и минуты). Сигнал окончания всегда включен, звучит 1 минуту, выход управления нагрузкой имеет высокий уровень во время обратного отсчета.

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

Печатная плата

Печатная плата изготовлена по лазерно-утюжной технологии.

Печатная плата таймера обратного отсчета на AT89C2051
Печатная плата таймера обратного отсчета на AT89C2051

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

Прошивка "A"

Прошивка с установкой часов-минут. Версия A-1.0: (доступно зарегистрированным пользователям)

Прошивка "B"

Прошивка с установкой часов-минут-секунд. Версия B-1.1: (доступно зарегистрированным пользователям)

Прошивка "B" проверена только в протеусе, требуется проверка в железе!

Прошивка "C"

Прошивка "кухонный таймер" с установкой часов-минут. Версия C-1.0: (доступно зарегистрированным пользователям)

Прошивка "C" проверена только в протеусе, требуется проверка в железе!

Файл для Протеуса

Скриншот симуляции в Протеусе

По просьбам трудящихся:

DSN файл для протеуса для проверки работоспособности прошивки: (доступно зарегистрированным пользователям)

Коллега mcm777 пишет в комментариях, что успешно повторил конструкцию, заменив микроконтроллер AT89C2051 на AT89C51.

Я продублирую тут его замечания по адаптации схемы под AT89C51:

Программируются они по разному, C51 нужно указывать адрес, а C2051 содержит счетчик адреса....

По подключению - индикатор нужно подключать к тем же портам, но у C51 они выдают меньший ток (около 10mA). При использовании современных китайских индикаторов яркость получается достаточной, резисторы R6-R13 можно увеличить до 1кОм чтоб не перегружать порты.

Вывод 31(EA - переключает с внешней памяти программ на внутреннюю) необходимо подтянуть резистором 4,7-10 кОм к +5 Вольт (40 нога C51). 20 нога - общий.

Выводы AT89C51 (DIP-40):

  • 40 - +5В;
  • 20 - Общий;
  • 31 - EA (подтянуть резистором 4,7-10 кОм к +5В);
  • 9 - Reset (аналогично как C2051);
  • 18,19 - кварц;
  • 10,11 - P3.0, P3.1 (кнопки);
  • 12 - P3.2 (на R4);
  • 13 - P3.3 (на Horn1);
  • 1 - P1.0 (Ind - 10);
  • 2 - P1.1 (Ind - 5);
  • 3 - P1.2 (Ind - 11);
  • 4 - P1.3 (Ind - 7);
  • 5 - P1.4 (Ind - 4);
  • 6 - P1.5 (Ind - 2);
  • 7 - P1.6 (Ind - 1);
  • 8 - P1.7 (Ind - 3);
  • 14 - P3.4 (Ind - 12);
  • 15 - P3.5 (Ind - 9);
  • 17 - P3.7 (Ind - 8);

У индикаторов 6-й вывод может отсутствовать, но он как бы есть)) т.е. посчитан..

ОБСУЖДЕНИЯ

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

Для включения на короткое время УФ лампы очень желательно изменить диапазон, т.е.начальное время должно выставлятся от 1 секунды до 99 минут 59 секунд.

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

Большая просьба к автору, если он сюда заглядывает,сделать вариант прошивки с шагом 1сек. Мне ,например,нужна выдержка 1 мин.15сек.

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

Большая просьба к автору, если он сюда заглядывает,сделать вариант прошивки с шагом 1сек. Мне ,например,нужна выдержка 1 мин.15сек.

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

Такую прошивку сделать можно, но до Нового года нет свободного времени. Как сделаю - выложу.

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

Спасибо, если нужно,могу протестировать.

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

Сделал прошивку с установкой секунд. Проверил только в симуляторе, проверяйте в железе.

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

К сожалению в прошивке "Версия B-1.0" информация на индикаторы выводится нечитабельная (ни цифры ни символы),т.е. что то выставлять и переключать можно, но что оно значит ??? можно только догадыватся.

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

Вот видео работы http://my-files.ru/vsjcve

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

Вопрос к автору.Понимаю что не хватает свободного времени, но может есть возможность модифицировать версию "А": вместо часов сделать минуты, а вместо минут секунды( т.е. ускорить отсчет времени в 60 раз), даже символ "h" можно не менять. Будет лимит до 99 минут 60 сек.

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

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

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

Правильное соединение процессора с индикатором для прошивки B:

P1.0 - E
P1.1 - D
P1.2 - A
P1.3 - DP
P1.4 - F
P1.5 - C
P1.6 - G
P1.7 - B

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

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

Спасибо. При такой разводке всё корректно отображается и работает в "железе". Но иногда возникает маленький нюанс при установке секунд связанный или с некорректным запуском контроллера или,возможно,с наводками.Он заключается в том, что установка секунд начинается со случайного числа и тогда возле цифры установки десятков секунд может появлятся точка или вообще какой то случайный символ на месте десятков. Отсчет в таком случае доходит до 99 сек и дальше до нуля.Если цифры с точкой "прощелкать" и остановится на цифре без точки - то отсчет проходит корректно.

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

Заменил прошивку на B-1.1
Теперь с секундами должен быть порядок.
И схему заменил.

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

Теперь всё отлично. Еще раз спасибо за труд.
Принципиальную схему в формате Splan7 я не могу скачать.Вместо загрузки открываются крякобразы: "SPLAN70‰W@�������������
Íîâûé ëèñò��������������������)��¤���
���r��k��...и т.д...."

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

Попробуйте ссылку "сохранить как"

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

<Попробуйте ссылку "сохранить как"> Спасибо, скачалось.

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

Немного модифицировал и проверил в работе схему для управления УФ светодиодной матрицей (для засветки фоторезиста).

ВложениеРазмер
Иконка изображения timer-at89c2051_mosfet_2.jpg276.05 КБ
Аватар пользователя kotiaj

Можно применить только один MOSFET, но тогда необходимо изменять прошивку, а это уже
допонительнаянагрузка для автоора.

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

Как я понимаю, вопрос в полярности управляющенго сигнала?

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

Скорее не в полярности а в необходимости инвертировать уровни на выходе Р3.2 МК (в случае управления нагрузкой одним мосфетом). Сейчас при "1" нагрузка выключена , а при "0" включается. Поэтому пришлось использовать для инверсии дополнительный Р-канальный мосфет(без него прожектор работает "наоборот").
p.s. Можно и с этой прошивкой управлять только одним мосфетом, но при условии использования питания 12В с изолированным от GND минусом (как вариант, я исппользовал два отдельные БП на 5В и 12В).

ВложениеРазмер
Иконка изображения timer-at89c2051_mosfet_1.jpg457 КБ
Аватар пользователя Leog - Linker.Ru

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

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

Цитата: < ...после выставления секунд идет выбор рабочего уровня на выходе P3.2. Так что можно управлять нагрузкой либо высоким, либо низким уровнем, как пожелаете.>
Все именно так и есть...но сразу с момента подачи питания и все время ,пока я эти параметры вибираю и выставляю на выходе Р3.2 сохраняется высокий уровень , соответственно светодиодная матрица будет светится .

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

<...светодиодная матрица будет светится > если управлять по схеме только с одним мосфетом.

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

Да, верно, это я не учёл

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

Есть одна мысль на эту тему, если появится время - сделаю.

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

А так было б проще, и с MOC3061 можно подружить.

ВложениеРазмер
Иконка изображения timer-4.jpg462.76 КБ
Иконка изображения moc3061_inv.jpg456.48 КБ
Аватар пользователя koipo95

У вас есть программа в Proteus? если она есть у вас отправте на koipo95@bk.ru .Мне просто нужно посмотреть, работает ли устройство!

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

К сожалению для протеуса ничего не осталось, хотя вроде был файл. Давно дело было. У меня это устройство с прошивкой "А" сейчас на ходу, на прошлой неделе фоторезист засвечивал. Если что-то интересует подробнее, например управление - могу выложить видео.

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

Только я уже переделал силовую часть, там вместо симистора стоит твердотельное реле. А микроконтроллер, обвязку и прошивку не трогал.

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

Пожалуйста, присылайте мне, если найдете Proteus!

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

Пожалуйста, присылайте мне, если найдете Proteus!

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

Для этого таймера файла нет. Есть файл для гругого похожего проекта:

https://www.linker.ru/article/prostoy-termometr-na-processore-at89c2051.htm

Надо только чуть-чуть поправить, убрать термометр, добавить кнопки. Сможете?

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

Да смогу.

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

Отправляйте пожалуста.

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

Отправил

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

У вас есть код в ассемблере. Схема не работает у меня.Я отправлю проекты в Proteus.

ВложениеРазмер
Иконка изображения at89c2051vfromterm.jpg23.53 КБ
Иконка изображения at89c2051.jpg27.53 КБ
Аватар пользователя Leog - Linker.Ru

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

Зачем вы превратили ZIP архивы в JPG? Не даёт прицепить в комменты .zip?

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

Я смогу проверить Ваш проект вечером или завтра утром

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

Большое спасибо заранее!

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

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

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

Извините меня за то, что беспокоию вас, но у меня не работает проект в Proteus. Вы не знаете, это из-за версии Proteus? Какой протеум вы используете?

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

У меня 7.7 SP2

Вы же не забываете в протеусе в свойствах микроконтроллера указать где лежит файл прошивкой?

Иначе протеус будет искать и не находить прошивку там, где она лежала у меня. У Вас она наверняка лежит на диске в другом месте.

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

Проект не работает у меня.

ВложениеРазмер
Иконка изображения 7.7.jpg451.26 КБ
Аватар пользователя Leog - Linker.Ru

Покажите скриншот с открытыми свойствами процессора.

Кварц в симуляции не нужен, и так работает.

Если хотите эффективной помощи, дайте доступ через Тимвьюер, я посмотрю, в чём может быть проблема. Если надумаете - пришлите логин, пароль и удобное время на почту root собака linker.ru

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

Собрал на AT89C51 - почему-то не горит один сегмент, на P1.7. Может быть отличается вывод в этот порт?

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

Именно на AT89C51,а не на AT89C2051?

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

Да, на AT89C51. Заработало, видимо в безпаечной монтажке контакт пропал...

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

Напишите, если были какие-то тонкости. Это интересная информация про C51, для тех, у кого с программированием C2051 сложности. Или они одинаково программируются?

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

В какой среде пишете для MCS-51? Можете скинуть ее мне на почту? mcm777собакаYandex.ru Лежат несколько камней, надо что-нибудь сделать))

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

Пишу без всякой среды в обычном текстовом редакторе. Компилирую с c51asm, который подключен а протеусе и прямо оттуда сам вызывается перед запуском на симуляцию, если исходник поменялся.

Страницы