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

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

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

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

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

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

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

 
Опции темы
Непрочитано 26.12.2004, 00:28  
li$ergin
Гость
 
Сообщений: n/a
По умолчанию Подскажите, как лучше всего бороться с дребезгом контактов

Расскажите, кто как справлялся с дребезгом контактов, а то совсем замаялся изобретать. За кусочек кода буду очень признателен, а еще больше за аппаратное решение проблемы, а то ресурсы надо. Контроллер PIC16f84A. заранее спавибки.
Реклама:
 
Непрочитано 26.12.2004, 18:08  
VIRGIS
Гость
 
Сообщений: n/a
По умолчанию антидребезг

Есть програма антидребезга для АТ89C2051,для обработки сигнала с датчика поварота антены,довольно
хитра по описанию (отстройка от ВЧ и НЧ помех),но вполне прилична програмно-45 слов (сколько получится
для ПИЦ-а - незнаю).Если что,пиши.
 
Непрочитано 26.12.2004, 18:46  
li$ergin
Гость
 
Сообщений: n/a
По умолчанию

Если не сложно, вышли на genich78@mail.ru или выложи здесь, чтоб народ видел. Интересно ведь не просто код в програмулину втулить, а понять идею. Спасибо
 
Непрочитано 26.12.2004, 20:58  
TsAN
Частый гость
 
Регистрация: 06.11.2004
Сообщений: 31
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
TsAN на пути к лучшему
По умолчанию Re: Подскажите, как лучше всего бороться с дребезгом контакт

Сообщение от li$ergin
за аппаратное решение проблемы
Классический аппаратный вариант.
Триггер типа R-S. Переключается по первому импульсу при нажатию кнопки и сохраняет это состояние. Если кнопка с переключающим контактом, то возврат в исходное состояние за счет срабатывания от подключенного к другому входу триггера нормально замкнутого контакта при отпускании кнопки, в противном случае требуется переодический сброс. Недостаток - на каждую кнопку нужен триггер...

Сообщение от li$ergin
Интересно ведь не просто код в програмулину втулить, а понять идею
Идею можно так же посмотреть в описании компьютеров в журнале "Радио" начала девяностых. Вроде при описании "Радио-80" или "Радио-86" материал о программном опросе кнопок был изложен достаточно подробно.

Удачи!
TsAN вне форума  
Непрочитано 27.12.2004, 01:33  
VIRGIS
Гость
 
Сообщений: n/a
По умолчанию антидребезг на AT89C2051

Ввод и обработка сигналов с геркона
на AT89C2051
*********************************************

ingerk;setb iger

;----первый этап (от ВЧ помех)

mov r0,#10 ;иниц. счётчика принятых бит
mov a,#0 ;oбнуление акума

ing0; mov c,iger ;десятикратный ввод
addc a,#0 ;сумирование всех введённых
;битов
djnz r0,ing0
subb a,#5 ;сума больше или меньше 5?

;----второй этап (от НЧ помех)

jnc ing2
cjne sger,#0,ing1 :если значение дост-
clr flgis ;игло 0,сбросить
;флаг гистерезиза
ret
ing1: dec sger ;уменьшение значения
;интегратора
ret
ing2: mov a,#tger;сравнить с верхним пределом
subb a,sger
jc ing3
inc sger ;увеличение значения
;интегратора
ret
ing3: mov c,flgis;проверка флага гистерезиса
setb flgis
jc ing10

Далее следует обработка полученного сигнала для
управления направлением вращения мотора антены.

Програма взята из книги А.В.Белова "Самоучитель
по микропроцесорной технике"
 
Непрочитано 27.12.2004, 13:49  
Shurik2
Прохожий
 
Регистрация: 24.12.2004
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Shurik2 на пути к лучшему
По умолчанию

Интегрирующая цепочка-›триггер Шмитта
Shurik2 вне форума  
Непрочитано 27.12.2004, 21:34  
Zebio
Прохожий
 
Регистрация: 03.12.2004
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Zebio на пути к лучшему
По умолчанию опрос клавиш с антидребезгом

include "p16f84.inc"

CBLOCK 0x20
Flags ; register to hold key flag bit
Debounce ; debounce counter
KeyVal ; value of key press
Columns ; columns monitor
Rows ; rows monitor
Count ; delay counter

ENDC

Key equ 0h ; flag for keypress

org 0000h

clrf PORTA
clrf PORTB
bsf STATUS,RP0 ; ram page 1
clrf TRISA ; portA = all outputs
movlw b'11110111' ; PortB 7 - 4 = inputs
movwf TRISB ; 3 - 0 = outputs
movlw b'11000010' ; set TMR0 internal clk
movwf OPTION_REG ; prescale 1:256
bcf STATUS,RP0 ; ram page 0

clrf Debounce ; these registers need to be
clrf Flags ; initialised to zero

MnLoop btfss INTCON,T0IF ; wait for TMR0 overflow
goto MnLoop ; approx 65mS @ 4MHz clock

bcf INTCON,T0IF

movf Debounce ; if Debounce = 0, test keypad
btfsc STATUS,Z
goto TestKP

decf Debounce ; else decrement it
goto MnLoop ; and ignore keypad
;
; TEST FOR A KEYPRESS ON THE KEYPAD
;
TestKP call KeyCheck ; check keypad

btfss KeyVal,7 ; if = 1 then no key pressed
goto KeyIsDown

btfss Flags,Key ; no key pressed
goto MnLoop ; and key is already released

bcf Flags,Key ; flag key is released
movlw 3h ; set debounce period
movwf Debounce
goto MnLoop

KeyIsDown btfsc Flags,Key ; if = 0 then key just pressed
goto MnLoop ; key is still pressed

bsf Flags,Key ; flag key is pressed
movlw 3h ; set debounce period
movwf Debounce

movf KeyVal,W ; service key
movwf PORTA ; write KeyVal to PORTA

goto MnLoop
;
; SUBROUTINE:
; Check the keypad for a keypress
; Enable each of the 4 rows one at a time (logic high)
; test each of the 4 columns to see if any are logic high
; If so, a key is pressed
;
; ON RETURN:
; KeyVal = value of keypress, bit 7 will be 0 (0xxx xxxx)
; If no keys are pressed, bit 7 of KeyVal = 1 (1xxx xxxx)
;
KeyCheck movlw b'00000001' ; make ready to set Row 1 high (RB0)
movwf Rows
clrf KeyVal ; initialise Key Value

RowLoop movf Rows,W ; set a Row high
movwf PORTB

movlw 4h ; small delay while PORTB stabilizes
movwf Count
DLoop decfsz Count
goto DLoop

movf PORTB,W ; read portB
andlw b'11110000'
movwf Columns ; save the data - only interested in upper 4 bits
btfss STATUS,Z
goto ChkColm ; Z = clear, key must be pressed

movlw 4h ; no bits set for this row
addwf KeyVal ; looking at next row
goto NextRow

ChkColm bcf STATUS,C ; clear the carry bit
rlf Columns ; if Carry = 1, key is pressed
btfsc STATUS,C
goto LowRow ; key is pressed, KeyVal = key

incf KeyVal ; on next column so increment Key Value
movf Columns ; if = 0, then all columns checked for this row
btfss STATUS,Z
goto ChkColm ; check value of next column

NextRow bcf STATUS,C ; clear the carry bit
rlf Rows ; make ready to set next Row = high
btfss Rows,4 ; test if all Rows have been set
goto RowLoop ; not yet, bit 4 will be set when all rows checked

movlw 0xFF ; no keys pressed
movwf KeyVal
LowRow clrf PORTB ; all rows = low
return ; no key was pressed, KeyVal bit 7 still = 1


end
Zebio вне форума  
Непрочитано 08.01.2005, 22:27  
li$ergin
Гость
 
Сообщений: n/a
По умолчанию

Крыша хлопает в ладоши, всем спасибо, код хороший!!!!
 
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлообменники и как с ними бороться delay Делимся опытом 111 14.02.2012 10:15
Как бороться с похмельем? sanitar249 Отвлекитесь, эмбеддеры! 12 31.10.2009 21:41
Народ! Подскажите по алгоритму CRC16. Какой лучше выбрать Don_Ambrosio Микроконтроллеры, АЦП, память и т.д 4 20.06.2008 08:43
Подскажите, как лучше реализовать автоматический обогрев. asis_xxx Поиск схем. Делимся схемами 13 09.05.2008 07:02
Дрейф нуля. Как с ним бороться? radarr Делимся опытом 16 26.04.2008 09:10


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


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