Перейти к содержимому


Добро пожаловать на vip-cxema.org


Войти 

Регистрация
Добро пожаловать на vip-cxema.org

На форуме открыт раздел для гостей, в котором можно задать свои вопросы без регистрации http://forum.vip-cxe...prosy-i-otvety/

Зарегистрировавшись, вы сможете отправлять личные сообщения, получать уведомления об ответах в темах. Вам всегда могут отправить сообщение, снимутся многие ограничения.
 
Guest Message by DevFuse

Фотография

Счет нажатий кнопки на 7 сегментных индикаторах


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 29

  #1 werter

werter

    Пользователь

  • Пользователи
  • PipPip
  • Репутация
    1
  • 17 сообщений

Отправлено 13 Октябрь 2018 - 08:43

У меня есть два одноразрядных 7 сегментных индикатора с общим катодом размером 1,8". Я хочу сделать на этих индикаторах счетчик нажатий кнопки применяя програмирование на PicBasicPro, с помощью МК PIC16F84 или 84A или 628A. Я попытался использовать тему : Счетчик с кнопками из урока 8_1 из ветки Микроконтроллеры, счетчик считает правильно, но все сегменты индикатора мигают.

Индикаторы мигают также в Proteus. Если я использую двухразрядный индикатор, все работает правильно - мигания нет.

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

Заранее благодарен.



  #2 Evgeniy

Evgeniy

    Администратор

  • Администраторы
  • Репутация
    230
  • 1 423 сообщений

Отправлено 13 Октябрь 2018 - 12:34

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

В этом случае моргать ничего не должно.



Я в понедельник смогу код накидать.



  #3 werter

werter

    Пользователь

  • Пользователи
  • PipPip
  • Репутация
    1
  • 17 сообщений

Отправлено 13 Октябрь 2018 - 15:32

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

В этом случае моргать ничего не должно.



Я в понедельник смогу код накидать.

Да, я подожду, большое спасибо. 



  #4 Evgeniy

Evgeniy

    Администратор

  • Администраторы
  • Репутация
    230
  • 1 423 сообщений

Отправлено 15 Октябрь 2018 - 10:54

В архиве проект в PicBasic и Proteus.

Установил 3 кнопки (+, -, обнуление). Индикация по прерыванию. Частота обновления индикатора в районе 60Гц.

Счёт от 0 до 99. Можно изменить как угодно.

Прикрепленные файлы



  #5 werter

werter

    Пользователь

  • Пользователи
  • PipPip
  • Репутация
    1
  • 17 сообщений

Отправлено 15 Октябрь 2018 - 15:02

В архиве проект в PicBasic и Proteus.

Установил 3 кнопки (+, -, обнуление). Индикация по прерыванию. Частота обновления индикатора в районе 60Гц.

Счёт от 0 до 99. Можно изменить как угодно.

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



  #6 Evgeniy

Evgeniy

    Администратор

  • Администраторы
  • Репутация
    230
  • 1 423 сообщений

Отправлено 15 Октябрь 2018 - 15:31

А в железе не проверяли? Индикаторы что так, что по другому работают по очереди, в моём случае с частотой ~60Гц. Глазами сложно увидеть.

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

У меня ничего не мигает. И разницы нет, что 2 одинарных индикатора, что один сдвоенный.

 

Можно ваш код и модель протеуса? С протеуса желательно скриншот.



  #7 werter

werter

    Пользователь

  • Пользователи
  • PipPip
  • Репутация
    1
  • 17 сообщений

Отправлено 15 Октябрь 2018 - 18:10

А в железе не проверяли? Индикаторы что так, что по другому работают по очереди, в моём случае с частотой ~60Гц. Глазами сложно увидеть.

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

У меня ничего не мигает. И разницы нет, что 2 одинарных индикатора, что один сдвоенный.

 

Можно ваш код и модель протеуса? С протеуса желательно скриншот.

Я просто взял файл, который Вы прислали и заменил индикатор на одноразрядный. Код и прошивка остались те же. Proteus 8.6 SP2, скриншот не могу отправить т.к. не понял как это сделать. 

Попробую собрать в железе и о результате сообщу. Большое спасибо за сотрудничество.



  #8 werter

werter

    Пользователь

  • Пользователи
  • PipPip
  • Репутация
    1
  • 17 сообщений

Отправлено 15 Октябрь 2018 - 19:39

Я просто взял файл, который Вы прислали и заменил индикатор на одноразрядный. Код и прошивка остались те же. Proteus 8.6 SP2, скриншот не могу отправить т.к. не понял как это сделать. 

Попробую собрать в железе и о результате сообщу. Большое спасибо за сотрудничество.

Разобрался с картинкой.

Прикрепленные файлы

  • Прикрепленный файл  Counter.png   463,32К   7 Количество загрузок:


  #9 Evgeniy

Evgeniy

    Администратор

  • Администраторы
  • Репутация
    230
  • 1 423 сообщений

Отправлено 16 Октябрь 2018 - 12:25

Дак схема рассчитана на 2 индикатора, а прицеплен один!?

Если надо с одним, то программа резко упростится.



  #10 werter

werter

    Пользователь

  • Пользователи
  • PipPip
  • Репутация
    1
  • 17 сообщений

Отправлено 16 Октябрь 2018 - 15:31

Дак схема рассчитана на 2 индикатора, а прицеплен один!?

Если надо с одним, то программа резко упростится.

Нет, надо два,но отдельно. Один я взял для проверки. А, что это мешает работе?

Я собрал на макетной плате с одним индикатором, использовал Вашу прошивку, но не работает вообще, сегменты не светятся.

Может быть надо использовать другую конфигурацию фьюзов? Сейчас конфигурация  3FF1.



  #11 Evgeniy

Evgeniy

    Администратор

  • Администраторы
  • Репутация
    230
  • 1 423 сообщений

Отправлено 17 Октябрь 2018 - 02:18

Индикаторы точно с общим катодом? Контроллер pic16f84a? Для 628 нужно конфигурацию в прошивке менять.

При прошивки нужно указать только осциллятор XT, остальное не так важно.



  #12 werter

werter

    Пользователь

  • Пользователи
  • PipPip
  • Репутация
    1
  • 17 сообщений

Отправлено 17 Октябрь 2018 - 14:04

Индикаторы точно с общим катодом? Контроллер pic16f84a? Для 628 нужно конфигурацию в прошивке менять.

При прошивки нужно указать только осциллятор XT, остальное не так важно.

Все так и с индикатором и МК тот и конфигурацию менял, прочитал даташит по конфигурации все понятно, но в протеус мигает и считает, а в железе индикатор не светится. Скажите, а на 628А нужно изменить программу?



  #13 Evgeniy

Evgeniy

    Администратор

  • Администраторы
  • Репутация
    230
  • 1 423 сообщений

Отправлено 17 Октябрь 2018 - 14:35

Индикатор нужно проверить. Для этого батарейкой на 3В или блоком питания на 3В нужно проверить свечение сегментов, какой всё таки общий провод + или -. С общим катодом общий минус, с анодом - плюс. Программа написана под общий катод, и если прицепить индикатор с общим анодом, то светиться он не будет.

Все сегменты индикатора нужно к контроллеру подключать через резисторы 330-470Ом!

для 628 нужно конфигурацию дописать (нужно отключить внутренний компаратор), сам код такой же. В 628 есть внутренний генератор, можно его включить, тогда кварц с парой конденсаторов можно не устанавливать.



  #14 werter

werter

    Пользователь

  • Пользователи
  • PipPip
  • Репутация
    1
  • 17 сообщений

Отправлено 17 Октябрь 2018 - 14:45

Индикатор нужно проверить. Для этого батарейкой на 3В или блоком питания на 3В нужно проверить свечение сегментов, какой всё таки общий провод + или -. С общим катодом общий минус, с анодом - плюс. Программа написана под общий катод, и если прицепить индикатор с общим анодом, то светиться он не будет.

Все сегменты индикатора нужно к контроллеру подключать через резисторы 330-470Ом!

для 628 нужно конфигурацию дописать (нужно отключить внутренний компаратор), сам код такой же. В 628 есть внутренний генератор, можно его включить, тогда кварц с парой конденсаторов можно не устанавливать.

Индикатор проверял, точно общий катод. Как в 628А отключить внутренний компаратор и включить внутренний генератор?



  #15 Evgeniy

Evgeniy

    Администратор

  • Администраторы
  • Репутация
    230
  • 1 423 сообщений

Отправлено 17 Октябрь 2018 - 15:43

1. В зелёной строчке XT_OSC заменить на: INTRC_OSC_NOCLKOUT

2. В этой же строчке поменять pic16f84a на pic16f628a
3. Для отключения компараторов добавить эту строку: CMCON = %00000111

4. В компиляторе выбрать контроллер pic16f628a



  #16 werter

werter

    Пользователь

  • Пользователи
  • PipPip
  • Репутация
    1
  • 17 сообщений

Отправлено 18 Октябрь 2018 - 13:25

1. В зелёной строчке XT_OSC заменить на: INTRC_OSC_NOCLKOUT

2. В этой же строчке поменять pic16f84a на pic16f628a
3. Для отключения компараторов добавить эту строку: CMCON = %00000111

4. В компиляторе выбрать контроллер pic16f628a

Может быть пожете мне с программой для компиляции, закончилось 15 дней и программа PBP + Code visio studio перестала компилировать.



  #17 Evgeniy

Evgeniy

    Администратор

  • Администраторы
  • Репутация
    230
  • 1 423 сообщений

Отправлено 18 Октябрь 2018 - 13:43

Под моими видео в ютубе есть архивы програм, в том числе и PBP + Code visio studio, у которых нет пробдем с регистрацией.

https://www.youtube....b8zB4EEWtberB-v

http://vip-cxema.org...es/pbp_2.60.rar



  #18 werter

werter

    Пользователь

  • Пользователи
  • PipPip
  • Репутация
    1
  • 17 сообщений

Отправлено 22 Октябрь 2018 - 16:49

Под моими видео в ютубе есть архивы програм, в том числе и PBP + Code visio studio, у которых нет пробдем с регистрацией.

https://www.youtube....b8zB4EEWtberB-v

http://vip-cxema.org...es/pbp_2.60.rar

Все сделал, считает вперед и назад, обнуляет, но мигает по очереди. И еще во второй строчке кода написано: define osc 4,это правильно, нулей не должно быть?

Прилагаю схему.

Прикрепленные файлы



  #19 werter

werter

    Пользователь

  • Пользователи
  • PipPip
  • Репутация
    1
  • 17 сообщений

Отправлено 25 Октябрь 2018 - 11:29

Все сделал, считает вперед и назад, обнуляет, но мигает по очереди. И еще во второй строчке кода написано: define osc 4,это правильно, нулей не должно быть?

Прилагаю схему.

Evgeniy Вы не могли бы прокомментировать мое сообщение?



  #20 Evgeniy

Evgeniy

    Администратор

  • Администраторы
  • Репутация
    230
  • 1 423 сообщений

Отправлено 25 Октябрь 2018 - 15:24

Частота задаётся в мегагерцах, поэтому строчка OSC 4 написана правильно (если кварцевый резонатор установлен на ту же частоту).

Схема нарисована правильно, но можно упростить. Необходимо всего 8 резисторов, незачем их лепить на каждый индикатор.

По очереди мигают где? В симуляторе может неправильно работать!






Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных