Микроконтроллеры | Разработка таймера на основе PIC16F628(A) с программой на языке С |
|
---|---|---|
Эта ветка - "филиал" Ликбеза по С для микроконтроллеров PIC. Поскольку я избран координатором проекта - для начала изложу некоторые общие правила. |
|
|
Техзадание на разработку простого бытового таймера. Составил picmaniac 25.01.2007. Разработать бытовой таймер, предназначенный для неподготовленных пользователей, совершенно ничего не понимающих в электронике - например, детей или домохозяек. Максимальная выдержка времени 99 минут, минимальная выдержка времени 1 минута, дискретность установки 1 минута. Точность отсчёта не хуже 0,1%. Таймер должен представлять собой устройство на основе микроконтроллера PIC16F628(A), с автономным питанием (от батареек, номинальное напряжение 4,5 В, допустимо снижение до 3,3 В). Индикатор применить светодиодный, семисегментный, двухразрядный (88). Использование сегмента "точка" не требуется. Для подачи звуковых сигналов в процессе работы и по окончании выдержки применить пьезоизлучатель, или любой другой звукоизлучатель сопротивлением не менее 270 Ом. Для управления устройством служат три однополюсные кнопки без фиксации, расположенные на корпусе устройства горизонтально в ряд. Условные обозначения кнопок (слева направо) - "Кнопка десятков минут" (КД), "Кнопка единиц минут" (КЕ), "Кнопка старт-стоп" (КС). исправленному верить. Обеспечить функционирование устройства следующим образом. После подачи напряжения питания устройство переходит в режим "сон" с минимальным энергопотреблением. В этом режиме индикатор погашен, выход должен находиться в Z-состоянии (высокоимпедансном). При нажатии на любую из кнопок длительностью не менее 100 мс устройство переходит в режим установки выдержки времени. Переход сопровождается коротким звуковым сигналом (бип!). Выход при этом остаётся в Z-состоянии. Индикаторы зажигаются и отображают 00. Установка выдержки выполняется пользователем при помощи кнопок КД и КЕ. Причём в каждый момент времени может быть нажата лишь одна кнопка. Нажатие двух или трёх кнопок одновременно считается ошибочным, и должно игнорироваться устройством. Нажатие пользователя на КС длительностью не менее 100 мс при ненулевом значении выдержки является командой "Старт". Устройство переходит в режим отсчёта времени. Переход сопровождается коротким звуковым сигналом. В этом режиме индикаторы мигают с частотой 1 Гц и скважностью 4, отображая оставшееся до окончания выдержки время в минутах. Выход остаётся в Z-состоянии. Обсуждаем предложенное техзадание, прошу высказывать замечания и предложения. |
|
|
Предлагаю: |
|
|
Принято. Техзадание исправлено. Первое замечание - это я просто досадную очепатку допустил. Расположение кнопок соответствует расположению цифр на индикаторе. Со вторым согласен, но считаю, что 100 мс мало. Пусть лучше 500 мс. |
|
|
Надо бы изучить существующие в продаже таймеры чтоб делать не хуже. |
|
|
Один нюанс. На работу девайса никак не повлияет, но все же...Думаю лучше будет, если максимальная выдержка времени будет 90 минут. Полтора часа как-никак. А полтора часа и 9 минут - как-то не так. |
|
|
Был у меня когда-то простой механический таймер. Как раз в кухонный шкаф он и был вмонтирован. Одна ручка-крунтик и шкала со стрелкой. Ручку крутанул, стрелка вместе с ней повернулась - выдержку указала. Заодно и пружину завёл. Ручку отпустил - время пошло. Не нужно стало - можно ручку принудительно на ноль вернуть. Но там недостаток был - уж если завёл, то обязательно прозвенит! а иногда это не нужно. Вот на замену тому девайсу я и хочу посовременнее сделать. Maksim_86: лучше будет ... 90 минут. Вообще-то, конечно, мы сможем задавать максимальную выдержку константой в программе. Только как в этом случае с набором цифр выдержки быть? И если пользователь хочет 99 минут поставить, ну вот хочет и всё, а оно не ставится! Зачем искусственные ограничения вводить и "заказчика" злить? |
|
|
|
||
Ну и основы "таймеровединия" для CCS и PIC. |
|
|
У меня ещё мысль. 1.5 часа x 2 семисегментника - на сколько таких запусков хватит батареек? Насчёт 90 минут - зачем отнимать у потребителя 9 минут? Влезает 99 - пусть будет 99! |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |