Свежие обсуждения
Микроконтроллеры

Простой таймер на ассемблере для пика

Всем доброго времени суток.

Не много о себе - я радиомеханик со стажем работы в сфере ремонта РЭА пять лет, поэтому со схематехникой дружу.

Мне нужно создать устройство которое бы коммутировало реле раз в определенный промежуток времени.
устройство на Pic, на каком конкретно пока незнаю . Желательно PIC16F628(A)-(04)(I)/P или PIC16F84(A)-(04)(I)/P они есть в продаже в моем городе. Хотел взять готовые программы на ассемблере часов-будильников для разных типов Pic и переделать под себя, но не смог разобраться (проги сильно навороченные). Надо именно на ассемблере, потому как с ассемблером отдаленно знаком, раньше пытался его освоить, с ним мне работать будет легче.

Задача такая: устройство должно отсчитывать определенных интервал времени, позавершении отсчета подавать на выход порта лог "1" на 0.5 сек, затем цикл повторяется. Интервалов отсчета восемь (хотел десять, но в бинарой системе восемь посчитал удобнее).
Также должна быть одна кнопка управления, переключающая интервалы по кругу.

Интервалы отсчета следующие:
циклы--------период----------индикация
0-------------1500 секунд------0--0--0
1--------------750 секунд-------0--0--1
2--------------500 секунд-------0--1--0
3--------------375 секунд-------0--1--1
4--------------300 секунд-------1--0--0
5--------------250 секунд-------1--0--1
6--------------214 секунд-------1--1--0
7--------------187 секунд-------1--1--1

0 - светодиод погашен (на выходе порта лог "1") 1 - светодиод всетится (на выходе порта лог "0")
индикация того какой цикл запущен, думал будет три всетодиода, бинарный код (поэтому и отказался от 10 циклов в пользу 8).

Pic будет с кварцем 4Mhz, то есть 4000 периодов кварца равно одной секунде.
Схема будет питатся от стабилизированного блока питания на 5 вольт (КРЕН5А).

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

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

Всем отозвавшимся заране спасибо.

 

Не могу понять почему не выкладывается схема, пробовал архивировать в zip, бесполезно

 

Nikolay_Crash: Pic будет с кварцем 4Mhz, то есть 4000 периодов кварца равно одной секунде.
4 МГц = 4 000 кГц = 4 000 000 Гц = 4 000 000 колебаний в секунду. У этих ПИКов 1 ассемблерная команда выполняется за 4 такта (кроме команд перехода, им нужно вдвое больше).

 

Если Вы: "Nikolay_Crash: с ассемблером отдаленно знаком", то такую довольно простую программу сможете и сами написать.
Ещё найдите в этом же разделе по МК тему типа "Ликбез по PIC" (за точность названия не ручаюсь), там рассматривался принцип написания программы таймера.

А картинки здесь пока не прикрепляются (сломалось), по этому ложите их куда нибудь на сторонний ресурс, а здесь давайте ссылку на неё.

 

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

 

Может лучше как раз Си начать изучать? Под конкретный проект это само то!

 

Дабы понять как оно работает - нужно изучить ассемблер