Перейти к содержанию

yurimo

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

Рекомендуемые сообщения

Если выставить биты конфигурации 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 работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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

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

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

81.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
 

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
 

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

CMCON = %00000111

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

В самом верху, около регистров 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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

В самом верху, около регистров 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. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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

CMCON = %00000111

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
 

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти



×
  • Создать...