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

  2. AT89C2051

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

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

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

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

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

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

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

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

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

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

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

Прошивка "A"

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

Прошивка "B"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Правильное соединение процессора с индикатором для прошивки 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Да смогу.

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

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

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

Отправил

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

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

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

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

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

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

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

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

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

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

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

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

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

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

У меня 7.7 SP2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Страницы

Добавить комментарий

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
CommentFile
Максимальный размер файла: 5 МБ.
Разрешённые типы файлов: jpg png.