Jump to content

yurimo

Счетчик с кнопками из урока 8_1

Recommended Posts

Если выставить биты конфигурации 3F50, светодиод должен моргать. 

 

Покажите код с моргающим светодиодом

TRISB = %00000000
Led var portB.3
Led1 var portB.5
 main:
 Led = 1
 pause 500
 Led1 = 1
 pause 500
Led = 0
pause 500 
Led1 = 0
pause 500
goto main
 
В PROTEUS работает.

Share this post


Link to post
Share on other sites
 

Конфигурация 2150 вместо 3F50. Работа с кварцем. Прольётся, только работать без кварца не сможет.

Если Вы это написали для меня, то объясните пожалуйста: 1. Как выставить конфигурацию 2150?   2. Что значит прольётся?

Share this post


Link to post
Share on other sites
 

Конфигурация 2150 вместо 3F50. Работа с кварцем. Прольётся, только работать без кварца не сможет.

 

Почему работа с кварцем? По скриншоту битов конфигурации я бы так не сказал. Может PicKit по своему как то считает число значения конфигурации?

Я прошил контроллер в PicKit c конфигурацией 2150, а потом этот контроллер прочитал в WinPic800 другим программатором - им прочиталось 3F50

Share this post


Link to post
Share on other sites
 

Вопчем, не удержался я, решил попробовать собрать схему на макетке. Собрал, контроллер прошил в PicKit2, включаю - не работает, а именно результат как в 18 посту, три индикатора горят, четвертый тусклый и че то там считает. Прошил контроллер в WinPic800 LPT программатором - результат тот же самый. Начал разбираться. Дизассемблировал программу и обнаружил в коде что не отключены компараторы. Евгений наверно забыл в спешке)))  Добавил пару строк, скомпилировал программу, прошил PicKit-ом, и все заработало как надо.

yurimo - будете делать, биты конфигурации выставляйте как на моем скрине выше.

Файл прошивки

81.rar

Share this post


Link to post
Share on other sites
 
 

Вопчем, не удержался я, решил попробовать собрать схему на макетке. Собрал, контроллер прошил в PicKit2, включаю - не работает, а именно результат как в 18 посту, три индикатора горят, четвертый тусклый и че то там считает. Прошил контроллер в WinPic800 LPT программатором - результат тот же самый. Начал разбираться. Дизассемблировал программу и обнаружил в коде что не отключены компараторы. Евгений наверно забыл в спешке)))  Добавил пару строк, скомпилировал программу, прошил PicKit-ом, и все заработало как надо.

yurimo - будете делать, биты конфигурации выставляйте как на моем скрине выше.

Файл прошивки

Ура,Ура, Ура заработало, я уже разочаровался было, но Вы поставили все на свои места. Огромное Вам спасибо.

 И пожалуйста сделайте Ваше доброе дело до конца, пришлите текст кода для полного счастья. Best Regards!!!!!

Share this post


Link to post
Share on other sites
 

Я рад что у Вас все получилось )))

Но "полного счастья " я Вам дать не могу. Исходной программы, при том на PicBasic-е, у меня никогда не было и нет. Я программирую на Ассемблере.

За текстом программы - к Evgeniy. Я просто помог вам собрать схему.

Share this post


Link to post
Share on other sites
 

Я рад что у Вас все получилось )))

Но "полного счастья " я Вам дать не могу. Исходной программы, при том на PicBasic-е, у меня никогда не было и нет. Я программирую на Ассемблере.

За текстом программы - к Evgeniy. Я просто помог вам собрать схему.

Еще раз Большое спасибо Вам, очень приятно, что профессионалы помогают новичкам.

Share this post


Link to post
Share on other sites
 

Evgeniy, не могли бы Вы прокомментировать сообщение serega061  #54 и подсказать какие две строчки и куда их надо вставить

Share this post


Link to post
Share on other sites
 
 

Для отключения компараторов следует добавить такую строчку:

CMCON = %00000111

А куда ее надо вставить?

Share this post


Link to post
Share on other sites
 

В самом верху, около регистров TRIS.

 

 

@ device pic16f628a, cpd_off, protect_off, mclr_off, pwrt_on, wdt_off, INTRC_OSC_NOCLKOUT 
'*******************************************************************************
TRISA = %11110000
TRISB = %00000000
CMCON = %00000111
'*******************************************************************************
LED   var portB
ind1  var portA.0

 

 

Share this post


Link to post
Share on other sites
 

В самом верху, около регистров TRIS.

 

 

@ device pic16f628a, cpd_off, protect_off, mclr_off, pwrt_on, wdt_off, INTRC_OSC_NOCLKOUT 
'*******************************************************************************
TRISA = %11110000
TRISB = %00000000
CMCON = %00000111
'*******************************************************************************
LED   var portB
ind1  var portA.0

 

 

Спасибо большое все заработало, после того, что я дополнительно изменил конфигурацию на 3F50 т.е. 0101 0000. Приношу свои извинения, за то, что так долго морочил Вам голову и большое Вам спасибо за спокойствие и терпимость а также за высокий проффессионализм. Best Regards. 

Share this post


Link to post
Share on other sites
 

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

Share this post


Link to post
Share on other sites
 

Lookup n,[$C0,$F9,$A4,$B0,$99,$92,$82,$F8,$80,$90],led

Плюс инвертировать сигналы. Т.е. если раньше подавали "1", то нужно изменить на "0" и на оборот.

Share this post


Link to post
Share on other sites
 

Lookup n,[$C0,$F9,$A4,$B0,$99,$92,$82,$F8,$80,$90],led

Плюс инвертировать сигналы. Т.е. если раньше подавали "1", то нужно изменить на "0" и на оборот.

Большое спасибо за ответ, я нашел в более ранних, Евгений выставил вариант с использованием индикаторов с общим анодом. Проверил работу в Proteus. Все в порядке, работает. Перехожу на проверку в железе.

Share this post


Link to post
Share on other sites
 

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

CMCON = %00000111

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

Share this post


Link to post
Share on other sites
 
 

Именно этот код отключает компараторы

Что же мешает работать в железе? Проверю еще раз все соединения и код.

Share this post


Link to post
Share on other sites
 

Собрал в железе, но увы не работает правильно т.е. третий разряд индикатора (третий слева) не работает совсем, не получает питание с ножки 1 МК PIC16F628A

RA2, во всех разрядах не работает сегмент "С" 8 ножка МК RB2. Счет, при нажатии кнопок "+" и "-" идет и переключается из одного разряда в другой правильно, кнопка обнуления работает. Прошивал с конфигурацией 2150, фьюзы  0101 0000. Может быть надо изменить конфигурацию, но не знаю на какую. Компараторы отключены. Индикатор проверил, все разряды и сегменты работают. Индикатор с общим анодом. В PROTEUS все работает.

Share this post


Link to post
Share on other sites
 

Покажите код, может в нём ошибка. Если не работает только 1 вывод, значит компаратор точно отключен. 8 вывод!? может в коде дешифровки ошибка. Хотя, если в протеусе цифры правельные, дело не в коде. Может сопля где... Можно контроллер вытащить и пробовать проводками ножки в панельке позамыкать и проверить, как отрабатывает индикатор.

Share this post


Link to post
Share on other sites
 

Для увеличения яркости в некоторых пределах можно поиграться паузой в цикле отображения информации на индикаторе (третья строчка кода снизу pauseus 500). Можно паузу увеличить с 500мкс до 5-10мс (pauseus 1000 - 5000 и более, пока заметность мерцания индикатора не появиться).

Share this post


Link to post
Share on other sites
 

 

Индикатор проверил, все разряды и сегменты работают.

 

А, что насчет фьюзов?

Share this post


Link to post
Share on other sites
 

Покажите код, может в нём ошибка. Если не работает только 1 вывод, значит компаратор точно отключен. 8 вывод!? может в коде дешифровки ошибка. Хотя, если в протеусе цифры правельные, дело не в коде. Может сопля где... Можно контроллер вытащить и пробовать проводками ножки в панельке позамыкать и проверить, как отрабатывает индикатор.

Этот код я взял у Вас в  #21 

Share this post


Link to post
Share on other sites
 
 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
  • Create New...