0 / 0 / 0
Регистрация: 11.11.2013
Сообщений: 2
1

(КМ1816ВЕ51) Создание таймера в 1 с

11.11.2013, 13:41. Показов 2271. Ответов 7
Метки нет (Все метки)

Прошу прощение если я не по теме.
Уже битый месяц ломаю голову как организовать таймер на КМ1816ВЕ51
Написала полностью алгоритмы, для управления МК-51, (организую временной контроль за проворным вибрированием бетонной смеси). И столкнулась с проблемой организации 1 секундного таймера.
Если кто нибудь сможет помочь советом или литературой, буду очень благодарна.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2013, 13:41
Ответы с готовыми решениями:

Управление Двигателем через КМ1816ВЕ51
Помогите с программой для управления скоростью двигателя. Не очень разбираюсь в микроконтроллерах....

Создание таймера
Кто-нибудь может скинуть туториал по созданию таймера?! Хотелось бы научиться делать на студию, но...

Создание таймера в PB
всем привет, такой вопрос: как сделать обычный таймер в pb? имеется ввиду без привязки к window....

Создание таймера
Здравствуйте. Дали задание создать в 14 маткаде таймер, который будет запускаться при нажатии на...

7
975 / 599 / 100
Регистрация: 15.05.2012
Сообщений: 3,530
11.11.2013, 18:28 2
Первое же нагугленное:
Таймер/счетчик

Два программируемых 16-битных таймера/счетчика (T/C0 и T/C1) могут быть использованы в качестве таймеров или счетчиков внешних событий. При работе в качестве таймера содержимое T/C инкрементируется в каждом машинном цикле, т.е. через каждые 12 периодов резонатора. При работе в качестве счетчика содержимое Т/С инкрементируется под воздействием перехода из 1 в 0 внешнего входного сигнал; подаваемого на соответствующий (T0, T1) вывод МК51. Опрос значения внешнего входного сигнала выполняется в момент времени S5P2 каждого машинного цикла. Содержимое счетчика будет увеличено на 1 в том случае, если в предыдущем цикле был считан входной сигнал высокого уровня (1), а в следующем _ сигнал низкого уровня (0). Новое (инкрементированное) значение счетчика будет сформировано в момент S3P1 в цикле, следующем за тем, в котором был обнаружен переход сигнала из 1 в 0. Так как на распознавание перехода требуется два машинных цикла, то максимальная частота подсчета входных сигналов равна 1/24 частоты резонатора. На длительность периода входных сигналов ограничений сверху нет. Для гарантированного прочтения входного считаемого сигнала он должен удерживать значение 1 как минимум течение одного машинного цикла МК51.
Настроить работу таймера от внутреннего генератора и с обработчиком прерывания. Обнулить счетчик в нужное время(время старта отсчета). В прерывании(сюда пришли после истечения нужного времени) делаем то, что надо.
0
11 / 11 / 0
Регистрация: 31.03.2009
Сообщений: 69
14.11.2013, 11:34 3
Цитата Сообщение от pyzhman Посмотреть сообщение
Первое же нагугленное:
Два программируемых 16-битных таймера
16-битный таймер на 8-битном процессоре?
0
975 / 599 / 100
Регистрация: 15.05.2012
Сообщений: 3,530
14.11.2013, 12:00 4
А разве что-то мешает использовать два байта в качестве одной, грубо так скажем, переменной?
0
11 / 11 / 0
Регистрация: 31.03.2009
Сообщений: 69
15.11.2013, 07:32 5
В общем так, я несколько путаюсь в названиях советских процессоров. Если это процессор Intel8080 или 8085(или клон), то там можно поставить тот же таймер, который ставится к Intel8086(первый IBM PC). Таймер этот имеет два режима: 8080 и 8086. В режиме 8086 он генерит на процессор команду INT с номером, соответствующим прерыванию от таймера(в разных ОС это могут быть разные INT, короче этот номер тоже программируется). Далее, есть режим для 8080: в этом режиме таймер посылает на процессор сигнал RST четыре с половиной либо пять с половиной либо шесть с половиной(кажется, зависит от того, к каким перемычкам что подсоединили). Далее, тут нужно понимать, что такое RST. В общем-то это аналог INT, но не совсем: если INT запрещает прерывания и кидает в стек слово состояния процессора и адрес возврата в виде CS:IP, то RST действует иначе. Не помню точно, запрещает ли RST прерывания, кажется да, но не уверен. RST записывает в стек IP, затем делает джамп на ячейку ПЗУ с номером её операнда, помноженным на 8. Т.е. RST четыре с половиной это как бы вызов подпрограммы с адресом 4.5*8=36=24h
Assembler
1
2
3
ORG 24h
PUSH PSW
JMP OBRABOTCHIK
а уж в программе обработчик прерывания нужно сперва записать в стек те регистровые пары, которые, кроме PSW и A, будут использоваться в обработчике, а в конце обработчика выемка регистров из стека и под конец выемка PSW, разрешение прерываний и команда RET.
На всякий случай в OBRABOTCHIK сделайте первой командой запрет прерываний, а то вдруг, хотя мне кажется, что эта команда не нужна и запрет прерываний происходит автоматически, но ведь не уверен.

Добавлено через 14 минут
Забыл указать: таймер не знает, к какому процессору он подсоединен и ему это нужно явно указать: записать в его ячейку либо в его порт команду на то, чтобы генерил прерывания соответствующего типа.
Код команды я не знаю: забыл, давно это дело изучал.
0
975 / 599 / 100
Регистрация: 15.05.2012
Сообщений: 3,530
15.11.2013, 07:37 6
Речь идет о MCS51. Увы.
0
1116 / 225 / 35
Регистрация: 15.03.2010
Сообщений: 680
16.11.2013, 09:17 7
Цитата Сообщение от gerodessa Посмотреть сообщение
...
Если кто нибудь сможет помочь советом или литературой, буду очень благодарна.
Ищи книгу "Микроконтроллеры серии 8051. Практический подход.pdf". На страницах 119-121 исчерпывающий ответ на твой вопрос с использованием 16 разрядного таймера на асм и С.
1
0 / 0 / 0
Регистрация: 11.11.2013
Сообщений: 2
20.11.2013, 12:12  [ТС] 8
Спасибо большое
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2013, 12:12

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

Создание таймера
Добрый вечер, уважаемые форумчане!))) Как сделать так, чтобы при запуске программы запускался...

Создание таймера.
Подскажите пожалуйста, как опрашивать таймер, чтобы сделать перемещение картинок каждые N секунд?

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.