Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: помогите пожалуйста с курсовиком - часы
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
mahadeva
Ребят, помогите пожалуйста с курсовой работой - я что-то не понимаю как всё это реализовывается( вот само задание :

Разработать на основе однокристальной ЭВМ электронные часы для пульта оператора с заданными характеристиками.
Режимы работы:
отсчет и индикация текущего времени в формате (часы - минуты);
установка времени с пульта оператора;
установка будильников (часы, минуты);
включение будильника подачей сигнала зуммера и мигания лампочки на пульте.
На пульте предусмотрены клавиши установки "Время", "Будильник-1","Будильник-2","Будильник-3", "Час", "Мин" и линейный дисплей из пяти 7-сегментных индикаторов (2 для часов, 2 для минут и 1 для разделительного дефиса).
Разработать алгоритмы и программы процедур ввода, отсчета и вывода на дисплей.
Для отладки программ использовать виртуальную систему моделирования VSM из пакета PROTEUS. При отладке программы использовать виртуальные внешние устройства: кнопки, 7-сегментные индикаторы или ЖКД для отображения времени.

прошу хоть какой-либо помощи.
заранее спасибо.
tazik
1) Семейство МК как-то оговорено (AVR, x51, PIC)?
2) Часы встроены в пульт оператора, или это какое внешнее устройство?
mahadeva
1) Тип МК Atmel AT89C51
Количество будильников 3
Время работы зуммера 30с
Частота мигания 0,5 Гц

2) как я понимаю, это должны быть часы встроенные в пульт оператора
Omen_13
т.е. надо разработать только часы, пульт оператора разрабатывать не надо?
mahadeva
да, только часы с тремя будильниками разработать надо. к счастью больше ничего... я просто сейчас сам пытаюсь в этом разобраться, но как-то не особо получаетсяsad.gif
tazik
Цитата(mahadeva @ Mar 30 2008, 19:31) *
да, только часы с тремя будильниками разработать надо. к счастью больше ничего... я просто сейчас сам пытаюсь в этом разобраться, но как-то не особо получаетсяsad.gif


А в чем конкретно проблема? Может имеет смысл сначала разобраться с динамической индикацией? Или с этим-то как раз все нормально?

А.В. Фрунзе "Микроконтроллеры - это же просто!" Том1, страница 109 - подключение семисегментных индикаторов. В Вашем случае нет нужды экономить выводы контроллера, поэтому можно обойтись без дешифраторов. Только тогда придется дописать подпрограммку перекодировки двоичного кода в код для семисегментного индикатора. Ну и понятно, что подпрограмму обновления индикаторов лучше запускать по прерыванию таймера. Потом в это же прерывание можно будет добавить отсчет текущего времени
rezident
mahadeva, вы бы написали с чем именно у вас проблемы: с аппаратной реализацией часов, индикации, связи с пультом или с программной реализацией какой-либо функции ваших часов?
rv3dll(lex)
генератор часовых импульсов можно сделать только внешний

на генераторе делителе на серии 176 и завести его на вход прерывания.
использование встроенного генератора не обеспечит требуемой точности, даже если использовать режим автоперезагрузки таймера - в неше время за это ставили "3"
K_AV
Цитата(rv3dll(lex) @ Mar 31 2008, 06:25) *
генератор часовых импульсов можно сделать только внешний
на генераторе делителе на серии 176 и завести его на вход прерывания.
использование встроенного генератора не обеспечит требуемой точности, даже если использовать режим автоперезагрузки таймера - в неше время за это ставили "3"
Просветите, пожалуйста, чем встроенный генератор (с внешним кварцем, разумеется) хуже внешнего генератора с таким же кварцем? Если речь о накоплении задержек при программной обработке прерываний по таймеру - кто мешает их заранее учесть или программно же компенсировать? Вроде как часы с коррекцией точности хода изобретены не вчера.
Тут ведь вроде бы часы - это только часы (контроллер не выполняет побочных задач неопределенной/переменной длительности).
rv3dll(lex)
Цитата(K_AV @ Mar 31 2008, 11:01) *
Просветите, пожалуйста, чем встроенный генератор (с внешним кварцем, разумеется) хуже внешнего генератора с таким же кварцем? Если речь о накоплении задержек при программной обработке прерываний по таймеру - кто мешает их заранее учесть или программно же компенсировать? Вроде как часы с коррекцией точности хода изобретены не вчера.
Тут ведь вроде бы часы - это только часы (контроллер не выполняет побочных задач неопределенной длительности).


если таймер без автоперезапуска это когда все 16 бит используются и идёт загрузка с помощью команд в векторе прерывания то

переход на вектор прерывания происходит не сиюсекундно а только после завершения текущей команды

так как длина команд различна, то задержка будет тоже различна и никакому подсчёту и коррекции не поддаётся.

кварц который на контроллере кривой и генерит выше
поэтому в нормальных контроллерах всегда есть ещё и часовой кварц

но лучше поставить внешний генератор делитель на микросхеме для часов в 176 серии или 4000 аналоге такая есть.
XVR
Цитата(rv3dll(lex) @ Mar 31 2008, 11:16) *
если таймер без автоперезапуска это когда все 16 бит используются и идёт загрузка с помощью команд в векторе прерывания то
переход на вектор прерывания происходит не сиюсекундно а только после завершения текущей команды
Так
Цитата
так как длина команд различна, то задержка будет тоже различна и никакому подсчёту и коррекции не поддаётся.
Не так, исходный таймер продолжает считать, так что его значение вполне можно использовать для учета той самой задержки. Обычно это делается просто путем прибавления константы к регистру таймера внутри прерывания.
Цитата
кварц который на контроллере кривой и генерит выше
Это бред. В контролере кварца вообще нет, кварц внешний. Точность этого внешнего кварца (какой бы кривой генератор не был в контролере) будет в несколько раз выше, чем у часового кварца (да еще вкупе с 176 серией)

Цитата
поэтому в нормальных контроллерах всегда есть ещё и часовой кварц
Есть, но для других целей. Он вешается на отдельный генератор и счетчик, которые будут продолжать считать, пока основной процессор находится в режиме SLEEP, прерывания от часового счетчика будут его будить. Делается это все для обеспечения режима низкого энергопотребления на фоне работающих часов (например при работе от батареек)
Цитата
но лучше поставить внешний генератор делитель на микросхеме для часов в 176 серии или 4000 аналоге такая есть.
Ага, и микроконтролер выкинуть (они иногда подвесают) и собрать все на 155 серии - 100% надежность lol.gif
rv3dll(lex)
Цитата(XVR @ Mar 31 2008, 11:35) *
Не так, исходный таймер продолжает считать, так что его значение вполне можно использовать для учета той самой задержки. Обычно это делается просто путем прибавления константы к регистру таймера внутри прерывания.

только в том случае если запрещать разрешать прерывания, что не всегда удаётся сделать

Цитата(XVR @ Mar 31 2008, 11:35) *
Это бред. В контролере кварца вообще нет, кварц внешний. Точность этого внешнего кварца (какой бы кривой генератор не был в контролере) будет в несколько раз выше, чем у часового кварца (да еще вкупе с 176 серией)


про встроенный генератор никто не говорит
если применить телекоммуникационные кварцы на 4096 килогерц который стоит 10 долларов - да. с обычным точность будет никакая


даже внутри навороченных часов Casio есть кварц 32768 несмотря на кварц на 20
по поводу точности хода предлагаемых устройств можно судить по точности хода часов аонов, сделанных на контроллерах 51 семейства.
rezident
Чтобы не бредить насчет точности хода часов на МК можно почитать апликухи. Например, вот эту от Maxim/Dallas http://www.maxim-ic.com/appnotes.cfm/an_pk/58
Или вот эти от TI
http://focus.ti.com/analog/docs/techdocsab...actName=slua051
http://focus.ti.com/mcu/docs/mcusupporttec...actName=slaa225
http://focus.ti.com/mcu/docs/mcusupporttec...ctName=slaa076a
XVR
Цитата(rv3dll(lex) @ Mar 31 2008, 12:01) *
только в том случае если запрещать разрешать прерывания, что не всегда удаётся сделать
В прерывании от таймера (где надо его корректировать) они уже запрещены

Цитата
про встроенный генератор никто не говорит
если применить телекоммуникационные кварцы на 4096 килогерц который стоит 10 долларов - да. с обычным точность будет никакая
Посмотрел на 'обычные' (в чип-дип) при цене 10-20р точность 15-20ppm, часовые кварцы - 20ppm, при той же цене. Правда по температурной зависимости обычные хуже, но не думаю, что найти нормальный кварц будет стоить $10.
Цитата
даже внутри навороченных часов Casio есть кварц 32768 несмотря на кварц на 20
Экономили энергию (наверное)

Цитата
по поводу точности хода предлагаемых устройств можно судить по точности хода часов аонов, сделанных на контроллерах 51 семейства.
Это говорит об уровне програмистов, писавших прошивку, или об примененых кварцах - можно найти кварц и с 100ppm
rv3dll(lex)
Цитата(XVR @ Mar 31 2008, 13:30) *
Экономили энергию (наверное)

Это говорит об уровне програмистов, писавших прошивку, или об примененых кварцах - можно найти кварц и с 100ppm


этот кварц застабилизирован на температуру тела человека

точность кварца не при чём
у меня было много аонов разных и выглядит всё очень интересно
можно настроить коррекцию на 1 минуту за пару недель, если не звонить по телефону будет всё хорошо

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

теперь прекратим звонить и пошло поехало
XVR
Цитата(rv3dll(lex) @ Mar 31 2008, 14:23) *
этот кварц застабилизирован на температуру тела человека
Может быть, часы/пульт топикстартера будут носить на цепи на шее или примотанными к запястью (вместо булыжника)?
Цитата
точность кварца не при чём
Да ну wacko.gif

Цитата
у меня было много аонов разных и выглядит всё очень интересно
можно настроить коррекцию на 1 минуту за пару недель, если не звонить по телефону будет всё хорошо
если начать звонить пользоваться книжками много и часто чтото менять часы начинают уходить если скорректировать их и пользоваться так дальше они опять примерно будут сохранять точность
О! Это оно и есть - кривая программа. Например запрещающая прерывания на время приема всей посылки АОНа без коррекции часов, которые пропустят пачку прерываний от таймера за это время. Даже если коррекция и была, то она не точная.
Цитата
теперь прекратим звонить и пошло поехало
Насколько я понял с часов/пульта топикстартера никто звонить не собирается, так что его вполне устроит точность кварца самого процессора, а если не устроит, то это легко лечится применением более точного кварца, а не дублированием аппаратуры yeah.gif
tazik
Что-то автора поста не видно... Так не интересно 05.gif
K_AV
Цитата(tazik @ Mar 31 2008, 16:26) *
Что-то автора поста не видно... Так не интересно 05.gif
Да вроде и rv3dll(lex) неплохо развлекает. А автору ветки тут пока читать рано было (как раз из-за этого).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.