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

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

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

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

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

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

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

 
Опции темы
Непрочитано 25.06.2010, 13:07  
Pavel55
Частый гость
 
Регистрация: 13.04.2010
Сообщений: 33
Сказал спасибо: 14
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Pavel55 на пути к лучшему
По умолчанию PIC16F876

Здравствуйте! Помогите с таким вопрсом.
Pic 16F876 на вход А0 посажена кнопка S1 на выходе RC4 реле.
нужно реализовать задержку таким образом чтобы реле сработало
при удерживании кнопки примерно 2 секунды, а после сработки все вернулось в изночальное состояние. Схема собрана на макетке пока добился только того что после кратковременного нажатия через пару секунд срабатывает реле, а как реализовать удерживания.
Вложения:
Тип файла: pdf PIC 16F876 Model (1).pdf (35.6 Кб, 107 просмотров)
Реклама:
Pavel55 вне форума  
Непрочитано 25.06.2010, 13:33  
mrKirill
Вид на жительство
 
Аватар для mrKirill
 
Регистрация: 12.04.2007
Сообщений: 348
Сказал спасибо: 2
Сказали Спасибо 36 раз(а) в 32 сообщении(ях)
mrKirill на пути к лучшему
По умолчанию Re: PIC16F876

Так?

Код:
if (RA0==1)
  {
    запуск таймера 2сек;
    while (!таймер сработал);
    if (RA0==1) RC4=1;
  }

PS. Одна из многочисленных вариаций осуществления задуманного. Не самая оптимальная.
__________________
Гидравлика + электроника = POWER

Последний раз редактировалось mrKirill; 25.06.2010 в 13:37.
mrKirill вне форума  
Непрочитано 25.06.2010, 13:40  
dimanka
Временная регистрация
 
Регистрация: 30.03.2007
Адрес: Челябинск
Сообщений: 62
Сказал спасибо: 11
Сказали Спасибо 11 раз(а) в 9 сообщении(ях)
dimanka на пути к лучшему
По умолчанию Re: PIC16F876

Вход на мк обычно подтягивают к +5V а кнопкой садят на землю, но это к делу отношение неимеет. А по делу исходничек бы как вы кнопку анализируете? Я обычно просто по таймеру (периуд более возможного дребезга) проверяю состояние если изменилось - нажали или отпустили. А теперь при отрицательном перепаде ставите флажёк и обнуляете программный счётчик. По таймеру если флажёк то считием. При определённом значении включаете реле и снимаете флажёк. Если на входе +5V флаг снять досрочно.
dimanka вне форума  
Непрочитано 25.06.2010, 13:42  
Pavel55
Частый гость
 
Регистрация: 13.04.2010
Сообщений: 33
Сказал спасибо: 14
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Pavel55 на пути к лучшему
По умолчанию Re: PIC16F876

Извените вы могли бы на асемблере показать
я только начинаю программировать
Pavel55 вне форума  
Непрочитано 25.06.2010, 14:00  
Pavel55
Частый гость
 
Регистрация: 13.04.2010
Сообщений: 33
Сказал спасибо: 14
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Pavel55 на пути к лучшему
По умолчанию Re: PIC16F876

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

;================ Начало 1step-876.asm ================
;Файл: 1step-876.asm

processor 16F876 ;Используемый процессор.
radix dec ;Десятичная система счисления по умолчанию.
include "p16f876.inc" ;Заголовочный файл для микроконтроллера PIC16F876.
;Файл расположен в директории установленной MPLAB-IDE.

__CONFIG ( _CP_OFF & _BODEN_OFF & _HS_OSC & _WDT_OFF & _PWRTE_ON & _DEBUG_ON & _CPD_OFF & _LVP_OFF )

org 0x0000 ;Вектор сброса процессора, после сброса программа
;начинает выполняться отсюда.
nop ;Этот nop жизненно необходим для корректной работы MPLAB-ICD
clrf INTCON ;Перестраховываемся, запрещаем все прерывания.
clrf PCLATH ;Перестраховываемся, выбираем Bank 0 Памяти Программ.

goto Start ;Обход вектора прерывания и блока подпрограмм.

org 0x0004 ;Вектор прерывания.
;********** Начало обработчика прерываний **********
;В этой простой программе не используются прерывания
;********** Конец обработчика прерываний************

;***************** Блок подпрограмм ****************
;В этой простой программе нет подпрограмм
;************* Конец блока подпрограмм *************


Start ;Тело программы начинается здесь.

;********** Начало Инициализации процессора ********
BSF STATUS, RP0;1 bank-TRIS
MOVLW 0x06 ; Configure all pins
MOVWF ADCON1 ; as digital inputs
BSF TRISA, 0;input
clrf PORTC ;Все выводы PORTC переводим в '0'
movlw b'00100000' ;
movwf STATUS ;Выбираем Bank 1 RAM (адреса 80h - FFh)
movlw b'00000000' ;
movwf TRISC ;Все линии PORTC переключаем на выход
clrf STATUS ;Возвращаемся в Bank 0 RAM (адреса RAM 00h - 7Fh)



;********** Конец Инициализации процессора *********
Chek: BTFSS PORTA, 0
GOTO Chek
bsf PORTC,4 ;Зажигаем Светодиод
nop ;Тянем время...
nop ;Тянем время...
nop ;Тянем время...
bcf PORTC,4 ;Гасим светодиод
goto Chek ;Бесконечный цикл.

END ;Конец исходного кода программы

;============= Конец 1step-876.asm =====================
Pavel55 вне форума  
Непрочитано 25.06.2010, 14:24  
Pavel55
Частый гость
 
Регистрация: 13.04.2010
Сообщений: 33
Сказал спасибо: 14
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Pavel55 на пути к лучшему
По умолчанию Re: PIC16F876

dimanka, скажите так правильно будет? и наминал резистора такой или нет?
Вложения:
Тип файла: pdf PIC 16F876 .pdf (35.3 Кб, 83 просмотров)
Pavel55 вне форума  
Непрочитано 28.06.2010, 08:35  
dimanka
Временная регистрация
 
Регистрация: 30.03.2007
Адрес: Челябинск
Сообщений: 62
Сказал спасибо: 11
Сказали Спасибо 11 раз(а) в 9 сообщении(ях)
dimanka на пути к лучшему
По умолчанию Re: PIC16F876

Сообщение от Pavel55 Посмотреть сообщение
так правильно будет?
5.1k вполне годится. Но можно и без него если на PORTB подключить там подтягивающие резисторы внутри подключаются битик RBUP кажется
dimanka вне форума  
Непрочитано 28.06.2010, 12:10  
Pavel55
Частый гость
 
Регистрация: 13.04.2010
Сообщений: 33
Сказал спасибо: 14
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Pavel55 на пути к лучшему
По умолчанию Re: PIC16F876

Подскажите как прописывать паузы, а то я NOP использую их там очень много получается. вообщем до чего я дошел.
;********** Конец Инициализации процессора *********
Chek: BTFSS PORTA, 0
GOTO Chek
nop ;Тянем время...
nop ;Тянем время...
nop ;Тянем время...
nop ;Тянем время...
nop ;Тянем время...
nop ;Тянем время...
nop ;Тянем время...
nop ;Тянем время...
Chek: BTFSS PORTA, 0
GOTO Chek
bsf PORTC,4 ;Зажигаем Светодиод
nop ;Тянем время...
nop ;Тянем время...
nop ;Тянем время...
nop ;Тянем время...
nop ;Тянем время...
nop ;Тянем время...
nop ;Тянем время...
nop ;Тянем время...
nop ;Тянем время...
bcf PORTC,4 ;Гасим светодиод
goto Chek ;Бесконечный цикл.

Так то вроде все работает но есть несколько моментов которые я не могу победить
1. при подаче питания на контроллер кратковременно на порте С 4 проскальзывает единичка.
2. если отпустить кнопку в тот момент когда на выходе единица то она там и остается и реле остается подтянутым.
Pavel55 вне форума  
Непрочитано 28.06.2010, 12:35  
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: PIC16F876

Классика однако, если что-то повторяется - использовать цикл. Это самый простой метод.
Код:
        movlw    delay  ;delay - длительность задержки 
        movwf    TEMP
wait: decfsz    TEMP
        goto wait
Нужно учитывать, что
если во время ожидания нужно что-то еще делать, то применяют таймеры и прерывания. Но это отдельная и большая тема.
__________________
misterdi<@>i.ua
MisterDi вне форума  
Сказали "Спасибо" MisterDi
Pavel55 (28.06.2010)
Непрочитано 29.06.2010, 15:39  
Pavel55
Частый гость
 
Регистрация: 13.04.2010
Сообщений: 33
Сказал спасибо: 14
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Pavel55 на пути к лучшему
По умолчанию Re: PIC16F876

Сообщение от MisterDi Посмотреть сообщение
Код:
movlw delay ;delay - длительность задержки
movwf TEMP
wait: decfsz TEMP
goto wait
Помогите пожалуйсто вставить этот фрагмент кода в мой код
Pavel55 вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
pic16f877 и pic16f877A определяются PicKit2 как pic16f876 avr123-nm-ru Микроконтроллеры, АЦП, память и т.д 31 18.05.2010 23:04


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


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