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

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

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

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

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

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

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

 
Опции темы

Помогите с кнопками PIC16f84

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

Уважаемые спецы, помогите.
Пытаюсь сделать программу, чтобы по нажатию кнопки, подключенной к AO (резистор 22к на +, и кнопка на -.) включались светодиоды B'01010101'
потом при повторном нажатии гасились.
За основу взял пример кода http://www.kazus.run/modules.php?nam...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, 21:25  
mikesmith
Администратор
 
Аватар для mikesmith
 
Регистрация: 10.05.2003
Сообщений: 2,649
Сказал спасибо: 495
Сказали Спасибо 2,635 раз(а) в 579 сообщении(ях)
mikesmith на пути к лучшему
По умолчанию

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

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

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

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

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

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

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

Тогда вообще всё легко и чудесно крутишь основной цикл, время от времени поглядываеш на кнопки, если есть два нажатия подряд, то это точно палец человека а не дребезг. Лучше три нажития оптимальное число для мажоритарных методов отбора.
walrus вне форума  
Сказали "Спасибо" walrus
warel (24.06.2019)
Непрочитано 12.06.2004, 22:01  
DK
Почётный гражданин KAZUS.RUN
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,480
Сказал спасибо: 734
Сказали Спасибо 1,899 раз(а) в 777 сообщении(ях)
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 26.01.2005 23:45


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.