Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 27.04.2004, 13:31  
Olegas
Гость
 
Сообщений: n/a
По умолчанию Помогите с кнопками PIC16f84

Уважаемые спецы, помогите.
Пытаюсь сделать программу, чтобы по нажатию кнопки, подключенной к AO (резистор 22к на +, и кнопка на -.) включались светодиоды B'01010101'
потом при повторном нажатии гасились.
За основу взял пример кода http://www.kazus.ru/modules.php?name...article&sid=20
пытаюсь модифицировать. Прицепил кнопку, но программа упорно не видит единицу на А0. Несморя на
;Инициализация порта А
BCF STATUS,RP ;Выбор банка 0
CLRF CNTRLPORT ;Очистить регистр CNTRLPORT
MOVLW INITA ;Загpузить B'111111111' в pегистp W
BSF STATUS,RP ;Выбор банка 1
MOVWF TRISA ;Все разряды порта А установить как входы


КАК ГРАМОТНО НАПИСАТЬ КОД ОТСЛЕЖИВАНИЯ НАЖАТИЯ КНОПКИ,
КАК ГРАМОТНО ИНИЦИАЛИЗИРОВАТЬ ПОРТ А НА ВВОД.

ПРОШУ ПОМОЧЬ БЕЗ ЛИРИЧЕСКИХ ОТСТУПЛЕНИЙ ТИПА КНИГИ ЧИТАЙ (ЧИТАЮ) И УМНИЧАНИЯ.
Прошу привести "разжеванный" блок кода.
Спасибо.
Реклама:
 
Непрочитано 27.04.2004, 20:25  
mikesmith
Администратор
 
Аватар для mikesmith
 
Регистрация: 10.05.2003
Сообщений: 1,739
Сказал спасибо: 497
Сказали Спасибо 2,686 раз(а) в 595 сообщении(ях)
mikesmith на пути к лучшему
По умолчанию

MOVLW INITA ; - а где запись в переменную INITA значения '11111' ?
__________________
C уважением, Михаил
Ищите даташиты на KAZUS.RU: http://kazus.ru/datasheets/index.html
mikesmith вне форума  
Сказали "Спасибо" mikesmith
warel (24.06.2019)
Непрочитано 10.06.2004, 20:31  
walrus
Временная регистрация
 
Регистрация: 26.12.2003
Сообщений: 49
Сказал спасибо: 0
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
walrus на пути к лучшему
По умолчанию Не видит единицу

В пике легче сканировать нулём а не единицей
walrus вне форума  
Сказали "Спасибо" walrus
warel (24.06.2019)
Непрочитано 11.06.2004, 11:48  
DK
Почётный гражданин KAZUS.RU
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,528
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
DK на пути к лучшему
По умолчанию

я вот так делал - мож не совсем правильно, но работает.

Код:
             |
         ____|____
        |_________| Инициализация 
             |
   |--------›|‹-------|
   |     ____|____    |
   |    |__A0=0___|---| Проверка нажатия
   |      да |     нет
   |         |
   |     ____|____
   |    |_________| Задержка на дребезг 
   |         |      контактов
   |         |
   |нет  ____|____    
   |----|__A0=0___| помеха
          да |        
             |
             |‹-------|
         ____|____    |
        |__A0=1___|---| Ждем, пока не отпустят 
          да |     нет        кнопку
             |
         ____|____
        |_________| Кнопка была нажата, обрабатываем
             |       нажатие

в принципе, проверку помехи можно убрать, если сделать задержку побольше.
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
DK вне форума  
Сказали "Спасибо" DK
warel (24.06.2019)
Непрочитано 11.06.2004, 17:18  
walrus
Временная регистрация
 
Регистрация: 26.12.2003
Сообщений: 49
Сказал спасибо: 0
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
walrus на пути к лучшему
По умолчанию

Теоретически всё верно, но лучше убирать дребезг не ожиданием а несколькими опросами, и принятием решения на основе мажоритарности, так и ресурсы освобождаются для других дел. Незачем попусту крутится на одном месте. а нажатие быстрее 0,1 сек это верный дребезг. В то время как 100 тыс микросекунд ценный резерв вермени. Да кстати что это за выпад: не знаешь закон Ома сиди дома ? Для меня клавиатура давно пройденный этап , и мой совет на счёт 0 можно, в принципе ,если человек вдумчиво читает доки, найти и самому.
walrus вне форума  
Сказали "Спасибо" walrus
warel (24.06.2019)
Непрочитано 11.06.2004, 23:41  
DK
Почётный гражданин KAZUS.RU
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,528
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
DK на пути к лучшему
По умолчанию

Сообщение от walrus
ресурсы освобождаются для других дел. Незачем попусту крутится на одном месте. а нажатие быстрее 0,1 сек это верный дребезг. В то время как 100 тыс микросекунд ценный резерв вермени.
у меня основной цикл был минимум 500 мс, поэтому задержка на несколько мс незаметна. Впрочем, и на на несколько десятков мс тоже
Сообщение от walrus
что это за выпад: не знаешь закон Ома сиди дома ?
эте не выпад, это подпись Если ТЕБЯ ЛИЧНО не устраивает, могу поменять. Хех, только новая не лучше будет
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
DK вне форума  
Сказали "Спасибо" DK
warel (24.06.2019)
Непрочитано 12.06.2004, 14:48  
walrus
Временная регистрация
 
Регистрация: 26.12.2003
Сообщений: 49
Сказал спасибо: 0
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
walrus на пути к лучшему
По умолчанию

Тогда вообще всё легко и чудесно крутишь основной цикл, время от времени поглядываеш на кнопки, если есть два нажатия подряд, то это точно палец человека а не дребезг. Лучше три нажития оптимальное число для мажоритарных методов отбора.
walrus вне форума  
Сказали "Спасибо" walrus
warel (24.06.2019)
Непрочитано 12.06.2004, 21:01  
DK
Почётный гражданин KAZUS.RU
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,528
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
DK на пути к лучшему
По умолчанию

ну это слишком уже Все зависит от требований. Если все пофиг, то и моя схема пойдет А мажор - это кнечно, хорошо... А все равно на дребезг задержку делать придется.... И не такая уж маленькая она. А можно и не делать - если в кнопке микруха стоит магнитоуправляемая

ИМХО: если возможности позволяют, так лучше вообще в прерывании обрабатывать нажатия.

З.Ы. Тов. Olegas только начал, как я понимаю (врочем, я не намного от этого ушел), и ему общий принцип нужен.
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
DK вне форума  
Сказали "Спасибо" DK
warel (24.06.2019)
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Корпус с кнопками и экраном BITk0der Делимся опытом 14 10.11.2009 23:08
Помогите переводить код с pic16f84 в 18f242! nhudan Микроконтроллеры, АЦП, память и т.д 12 14.08.2007 13:36
Таймер на PIC16F84 488 Микроконтроллеры, АЦП, память и т.д 8 25.06.2007 12:27
pic16f84 alexd1 Микроконтроллеры, АЦП, память и т.д 4 07.10.2005 01:09
Помогите написать программу для микросхемы pic16f84 lexacs Микроконтроллеры, АЦП, память и т.д 0 27.01.2005 00:45


Часовой пояс GMT +4, время: 20:50.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot