Jump to content

Welcome to vip-cxema.org

logo3.png

The forum has a section for guests, where you can ask your questions without registration: Вопросы и ответы

By registering, you will be able to send private messages, receive notification of replies to topics. You can always send a message, many restrictions are removed.


werter

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

Recommended Posts

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

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

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

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

Share this post


Link to post
Share on other sites
 

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

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



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

Share this post


Link to post
Share on other sites
 

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

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

 

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

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

Share this post


Link to post
Share on other sites
 

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

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

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

Счётчик.rar

Share this post


Link to post
Share on other sites
 

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

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

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

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

Share this post


Link to post
Share on other sites
 

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

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

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

 

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

Share this post


Link to post
Share on other sites
 

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

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

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

 

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

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

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

Share this post


Link to post
Share on other sites
 

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

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

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

Counter.png

Share this post


Link to post
Share on other sites
 

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

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

Share this post


Link to post
Share on other sites
 

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

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

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

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

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

Share this post


Link to post
Share on other sites
 

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

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

Share this post


Link to post
Share on other sites
 

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

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

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

Share this post


Link to post
Share on other sites
 

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

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

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

Share this post


Link to post
Share on other sites
 

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

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

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

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

Share this post


Link to post
Share on other sites
 

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

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

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

Share this post


Link to post
Share on other sites
 

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

2. В этой же строчке поменять pic16f84a на pic16f628a

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

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

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

Share this post


Link to post
Share on other sites
 
 

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

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

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

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

Counter_compressed.png

Share this post


Link to post
Share on other sites
 

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

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

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

Share this post


Link to post
Share on other sites
 

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

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

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

Share this post


Link to post
Share on other sites
 

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

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

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

По очереди мигают в Proteus.

Собрал на макетной плате, обновил прошивку, но цифры светятся невпопад и на нажатие кнопок не реагируют,хотя при нажатии любой кнопки сегменты изменяют силу свечения. Прошивал МК на PICkit 2 и он показал конфигурацию 2170 или по битам 

- - 1 -   - - - 1   0 1 1 1   0 0 0 0  первый слева 15 бит, первый справа 0 бит.

Share this post


Link to post
Share on other sites
 

Индикатор точно с общим катодом? Потому как ведёт себя как с общим анодом! Сегменты в принципе не могут яркость менять.

Share this post


Link to post
Share on other sites
 

Индикатор точно с общим катодом? Потому как ведёт себя как с общим анодом! Сегменты в принципе не могут яркость менять.

Точно. 

Минус подключаю к общему катоду индикатора, а плюс через резистор 240 ом зажигает каждый сегмент: a, b, c, d, e, f, g, точка. 

Извините, долго не отвечал, был в отъезде,

Share this post


Link to post
Share on other sites
 

В прошивку внёс изменения для использования её в pic16f628

на схеме поменял индикаторы на 2 одинарных.

https://www.youtube.com/watch?v=HExDJQdBxUU

На работе нет программы для захвата экрана, поэтому снято телефоном.

Счётчик_628.rar

Share this post


Link to post
Share on other sites
 

В прошивку внёс изменения для использования её в pic16f628

на схеме поменял индикаторы на 2 одинарных.

https://www.youtube.com/watch?v=HExDJQdBxUU

На работе нет программы для захвата экрана, поэтому снято телефоном.

Большое спасибо за Вашу помощь. В PROTEUS все прекрасно работает, попробую собрать на макетной плате. О результате напишу. 

Share this post


Link to post
Share on other sites
 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...



×
  • Create New...