
- •1 Вивчити систему роботи стека мк51. 32
- •1 Вивчити систему роботи стека мк51. 38
- •1 Вивчити систему роботи стека мк51. 41
- •1 Вивчити систему роботи стека мк51. 49
- •1 Загальні положення
- •1.1 Вступ
- •1.2 Вимоги з техніки безпеки
- •1.3 Загальні вимоги до підготовки, проведення та здавання лабораторних робіт
- •1.1Порядок підготовки до лабораторної роботи
- •1.2Порядок проведення лабораторної роботи
- •1.3Здавання лабораторних робіт
- •1.4Вимоги до форми та змісту звіту
- •1.3.4.1 Вимоги до змісту звіту до однієї лабораторної роботи
- •1.4 Робота зі стендом
- •2 Лабораторна робота 1. Вивчення стенда і команд однокристальної еом сімейства mcs-51
- •Порядок виконання лабораторної роботи
- •Приклад виконання лабораторної роботи 1
- •Короткі теоретичні відомості Системи відображення інформації.
- •Система переривань еом 80c51
- •Структура переривань
- •Приклад програми:
- •Режими роботи таймерів-лічильників
- •Приклад програми
- •Порядок виконання лабораторної роботи
- •Приклад програми
- •Варіанти індивідуальних завдань
- •Список літератури
- •Абрайтис в.Б. Быстродействующие интегральные микросхемы " Электронная промышленность ", 1989.
- •Додаток а (довідковий) Теоретичні відомості.
- •Система команд mk51 Структура інформаційних зв'язків
- •Група команд операцій з бітами
Короткі теоретичні відомості Системи відображення інформації.
Найпростішими приладами відображення інформації в цифрових пристроях є світлодіоди і цифрові індикатори.
Рисунок 6 - Увімкнення одиничних індикаторів
У напівпровідникових світлодіодах використовується властивість pn-переходу випромінювати світло у видимій частині спектра при проходженні через нього прямого струму (Іпр = 5-20мА, Uпр = 2-3В). Варіанти увімкнення індикаторів на рис.6.
Для відображення цифрової інформації найбільшого поширення набули семисегментні індикатори, в яких зображення цифри складають з семи лінійних світлодіодних сегментів, розміщених у вигляді цифри 8.
На основі світлодіодів і семисегментних індикаторів будують підсистеми відображення інформації. При побудові підсистем відображення інформації розрізняють два підходи - динамічну та статичну схеми побудови підсистеми індикації.
Статична індикація полягає у постійному підсвічуванні індикаторів HL1-n від одного джерела інформації (рис.7).
Рисунок 7 - Структурна схема статичної індикації:
DA - дешифратор адреси, необхідний для вибирання відповідного регістра;
R1-R4-регістри, в яких тимчасово зберігається значення коду числа для відображення (відповідний регістр вибирають DA);
DC1-DC4 - семисегментні дешифратори, які перетворюють двійковий код у семисегментний код;
HL1-HL4 - семисегментні індикатори;
ШД - шина даних, по ній здійснюється передавання даних у цифровому форматі.
У такій системі кожен індикатор HL1-n увімкнений через власний дешифратор DC1-n і регістр RG1-n до шини даних, вибирання регістрів RG1-n проводиться за допомогою селектора адреси СА. Апаратні витрати при такій організації становлять n пар регістр + дешифратор при n десяткових розрядів індикатора.
Сутність динамічної індикації полягає в почерговому циклічному увімкненні кожного індикатора HL1-n до джерела інформації через загальну шину даних (рис.8).
Вибирання індикатора здійснюється дешифратором DА. У регістрі RD зберігається цифровий код, призначений для відображення. У регістрі RA зберігається адреса індикатора.
Рисунок 8 - Структурна схема динамічної індикації:
RD-регістр даних для тимчасового зберігання відображуваного числа або символу;
RA-регістр адреси для тимчасового зберігання двійкового коду адреси вибраного індикатора;
DA-дешифратор адреси, позиція задається двійковим кодом;
HL1-HL4 - семисегментні індикатори.
При такому увімкненні значно зменшуються апаратні витрати. Але необхідно забезпечити достатній час світіння одного індикатора, для того щоб не зменшувалася яскравість. Також необхідно забезпечити таку частоту перебору індикаторів, щоб не було помітно мерехтіння. Переваги такого способу помітні при кількості розрядів індикації більше 5.
У віртуальному стенді статична індикація реалізована за допомогою чотирьохразрядного семисегментного індикатора. Управління індикацією здійснюється за допомогою порту Р3 системного контролера, сигнали вибирання відповідного індикатора надходять від лінії порту Р3.0, Р3.1, Р3.2 і Р3.3.
Дані передаються на порт Р2. Формат даних формується відповідно до рис. 9.
Рисунок 9 – Схема підключення індикатора
Також у стенді є лінійка світлодіодів HL1-HL8, доступ до яких здійснюється через порт Р1. Світлодіоди запалюються записом логічних нулів у відповідні розряди.
Приклад програми для статичної індикації
На статичному індикаторі по черзі відображати цифру 5 на першому і третьому, а потім на другому та четвертому знакосинтезувальних місцях. Організувати почергове миготіння лінійки світлодіодів у шаховому порядку:
$ NOMOD51
$ Include (D:\ Sum_GU_STUD\MPP\ BIN\ASM51\mod51)
ORG 0
Begin:
mov R1, # 03h; записати в R1 число 3
mov R4, # 02h; записати в R4 число 2
mov A, R1; записати в A значення R1
add A, R4; скласти значення в А і R4, результат суми в А
mov R3, A
mov P1, # 01010101b; вивід результату на лінійку світлодіодів
mov A, R3
call decod; виклик підпрограми декодування
mov P3, # 0101b
mov P2, A
call DEL; виклик підпрограми затримки
mov A, R3
call decod; виклик підпрограми декодування
mov P3, # 1010b
mov P2, A
mov P1, # 10101010b
call DEL; виклик підпрограми затримки
jmp Begin, перехід у початок програми
decod:
mov DPTR, # TabDecod; запис у DPTR адреси символів
movc A, @ A + DPTR; непряме звернення до символу
ret
TabDecod:
db 11000000b; симв "0"
db 11111001b; симв "1"
db 10100100b; симв "2"
db 10110000b; симв "3"
db 10011001b; симв "4"
db 10010010b; симв "5"
db 10000010b; симв "6"
db 11111000b; симв "7"
db 10000000b; симв "8"
db 10010000b; симв "9"
db 10001000b; симв "А"
ret
DEL:; підпрограма затримки
mov R6, # 0FFh
mov R5, # 0Ah
C2: mov R7, # 0FFh
C4: djnz R7, C4
djnz R6, C2
djnz R5, C2
ret; вихід з підпрограми
END
Таблиця 2 - Варіанти індивідуальних завдань до ЛР 2
Номер вар. |
Текст індивідуального завдання |
1,11, 21 |
Занести до регістра R1число 09Н, віднімаючи від числа "1", відображати результат на статичному індикаторі у молодшому розряді до нуля. Вмикають переміщення світлодіода на HL1-HL8. |
2,12, 22 |
Занести до регістра R1 число 05Н. Організувати біжучий рядок на статичному індикаторі справа наліво. Увімкнути в шаховому порядку світлодіоди HL1-HL8 |
3,13, 23 |
Занести до регістра R5 00Н, додаючи до числа "1", відображати результат на статичному індикаторі у молодшому розряді до 9. Вмикати переміщення світлодіода на HL1-HL8 |
4,14, 24 |
Почергово відображати на статичному індикаторі числа від 0 до 9, дублювати ці числа на лінійці світлодіодів (у двійковій формі) |
5,15, 25 |
Вмикати переміщення світлодіода на HL1-HL8 зліва направо, а потім справо наліво. На статичному індикаторі відображати номер варіанта у форматі ХХН |
6,16 |
Занести до регістра R7 число 08Н, віднімаючи від числа "2" відображати результат на статичному індикаторі в старшому розряді до нуля. Вмикати переміщення світлодіоду на HL1-HL8 |
7,17 |
Занести до регістра R1 число 08Н. Організувати біжучий рядок на статичному індикаторі зліва направо. Вмикати в шаховому порядку світлодіоди HL1-HL8 |
8,18 |
Занести до регістр R0 число 00Н, додаючи до числа "2", відображати результат на статичному індикаторі у молодшому розряді до 0АН. Вмикати переміщення світлодіода на HL1-HL8 |
9,19 |
Почергово відображати на статичному індикаторі числа від 9 до 0, дублювати ці числа на лінійці світлодіодів (у двійковій формі). |
10,20 |
Вмикати переміщення світлодіода на HL1-HL8 справа наліво, а потім з ліво на право. На статичному індикаторі відображати номер варіанта у форматі ХХН |
Примітка. Де Х – цифра від 0 до 9.
Рисунок 10 - Схема до лабораторної роботи 2
4 Лабораторна робота 3. Робота зі стеком
Тема «Робота зі стеком».
Мета роботи - вивчити принцип роботи стека ЕОМ.
Порядок виконання лабораторної роботи
1 Вивчити систему роботи стека МК51.
2 Розробити алгоритм для виконання індивідуального завдання.
3 Розробити програму для виконання індивідуального завдання.
4 Ввести програму індивідуального завдання на ПК.
5 За допомогою ПОЗ проаналізувати виконання індивідуальної програми.
6 Завантажити програму в стенд ЕОМ. Переконатися у правильному виконанні індивідуального завдання, при негативному результаті змінити алгоритм або програму. Повторити завантаження програми на стенд ЕОМ.
7 Роздрукувати лістинг правильно працюючої програми.
8 Відповісти на контрольні питання викладача.
Короткі теоретичні відомості
Восьмибітний покажчик стека (SP) може адресувати будь-яку область ОЗУ. Його вміст інкрементується, перш ніж дані будуть запам’ятовані у стеку в ході виконання команд PUSH і CALL. Вміст SP декрементується після виконання команд POP і RET. Подібний спосіб адресації елементів стека називають передінкрементним/постдекрементним. У процесі ініціалізації мікроконтролера після сигналу RST в SP автоматично завантажується код 07Н. Це означає, що якщо прикладна програма не перевизначає стек, то перший елемент даних у стеку буде розміщуватися у комірці ОЗУ з адресою 08Н.
Приклад програми для роботи зі стеком
Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW1. Проміжний результат записати у стек. Після досягнення кількості натискань 8 вивести на статичний індикатор проміжні результати у зворотному порядку:
$ NOMOD51
$ Include (D:\ Sum_GU_STUD\MPP\ BIN\ASM51\mod51)
ORG 0
mov R5, # 00h
mov R2, # 08h
mov R1, # 08h
mov P2, # 0h
start:
jb p1.0, $
mov A, R5
inc Acc
jnb p1.0, start
mov P2, A
mov R5, A
PUSH Acc
djnz R2, start
vivod:
POP Acc
MOV P2, A
call DEL
djnz R1, vivod
DEL: ; підпрограма затримки
mov R6, # 0FFh
mov R5, # 0Ah
C5: mov R7, # 0FFh
C4: djnz R7, C4
djnz R6, C5
djnz R5, C5
ret ; вихід із підпрограми
END
Таблиця 3 - Варіанти індивідуальних завдань до ЛР 3
Номер Вар. |
Текст індивідуального завдання |
1,11, 21 |
Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW5. Проміжний результат записати в стек. Після досягнення кількості натискань 5 вивести на статичний індикатор суму проміжних результатів |
2,12, 22 |
Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW3. Проміжний результат записати в стек. Після досягнення кількості натискань 8 вивести на статичний індикатор середнє арифметичне проміжних результатів |
3,13, 23 |
Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW7. Проміжний результат записати в стек. Після досягнення кількості натискань 6 вивести на статичний індикатор кожне друге проміжне значення |
4,14, 24 |
Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW4. Проміжний результат записати в стек. Після досягнення кількості натискань 8 вивести на статичний індикатор суму кожного другого проміжного значення |
5,15, 25 |
Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW1. Проміжний результат записати в стек. Після досягнення кількості натискань 9 вивести на статичний індикатор кожне третє проміжне значення |
6,16 |
Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW2. Проміжний результат записати в стек. Після досягнення кількості натискань 9 вивести на статичний індикатор суму кожного третього проміжного значення |
7,17 |
Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW6. Проміжний результат записати в стек. Після досягнення кількості натискань 9 вивести на статичний індикатор суму проміжних результатів |
8,18 |
Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW8. Проміжний результат записати в стек. Після досягнення кількості натискань 8 вивести на статичний індикатор середнє арифметичне проміжних результатів |
9,19 |
Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW5. Проміжний результат записати в стек. Після досягнення кількості натискань 8 вивести на статичний індикатор кожне друге проміжне значення |
10,20 |
Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW4. Проміжний результат записати в стек. Після досягнення кількості натискань 9 вивести на статичний індикатор суму кожного третього проміжного значення |
Рисунок 11 - Схема до лабораторної роботи 3
5 Лабораторна робота 4. Робота з регістром слово стану програми (PSW)
Тема «Робота з регістром PSW. Умовні переходи. Схеми відображення інформації».
Мета роботи - вивчити принцип роботи регістра PSW і умовних переходів.
Порядок виконання лабораторної роботи
1 Вивчити систему роботи стека МК51.
2 Розробити алгоритм для виконання індивідуального завдання.
3 Розробити програму для виконання індивідуального завдання.
4 Ввести програму індивідуального завдання на ПК.
5 За допомогою ПОЗ проаналізувати виконання індивідуальної програми.
6 Завантажити програму в стенд ЕОМ. Переконатися у правильному виконанні індивідуального завдання, при негативному результаті змінити алгоритм або програму. Повторити завантаження програми на стенд ЕОМ.
7 Роздрукувати лістинг правильно працюючої програми.
8 Відповісти на контрольні питання викладача.
Таблиця 4 - Перелік прапорців
Символ |
Позиція |
Ім’я і призначення |
||||||||||||||||||||
P |
PSW.0 |
Прапорець пріоритету. Встановлюється і скидається апаратно в кожному циклі команди і фіксує непарне/парне число одиничних біт в акумуляторі |
||||||||||||||||||||
- |
PSW.1 |
Не використовується |
||||||||||||||||||||
OV |
PSW.2 |
Прапорець переповнення. Встановлюється і скидається апаратно при виконанні арифметичних операцій |
||||||||||||||||||||
RS0 - RS1 |
PSW.3 - PSW.4 |
Біти вибору використовуваного банку регістрів. Можуть бути змінені програмним шляхом
8H - 1FH
|
Продовження табл. 4
F0 |
PSW.5 |
Прапорець користувача. Може бути встановлений, скинутий або перевірений програмою користувача |
АС |
PSW.6 |
Прапорець допоміжного перенесення. Встановлюється і скидається тільки апаратними засобами при виконанні команд додавання і віднімання і сигналізує про перенесення або позички в біті 3 акумулятора |
C |
PSW.7 |
Прапорець перенесення. Встановлюється і скидається як апаратно, так і програмним шляхом |
Як початковий код використовувати програму, розроблену в лабораторній роботі 3.
Приклад програми для роботи зі стеком
Занести в акумулятор число і виконати перевірку прапорця паритету. Якщо прапорець дорівнює «0», вивести на статичний індикатор число 00h, якщо прапорець дорівнює «1», вивести число 11h.
$ NOMOD51
$ Include (D:\ Sum_GU_STUD\MPP\ BIN\ASM51\mod51)
ORG 0
mov A, # 01000100b
jb PSW.0, Chetnoe
mov P2, # 11h
jmp Stop
Chetnoe:
mov P2, # 00h
Stop:
jmp Stop
END
Таблиця 5 - Варіанти індивідуальних завдань до ЛР 4
Номер вар |
Текст індивідуального завдання |
1,11, 21 |
Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW1. Після досягнення кількості натискань 5 занести кількість натискань в акумулятор і перевірити прапорець паритету. При натисканні кнопки SW2 виконати перевірку прапорця паритету. Якщо прапорець дорівнює «0», вивести на статичний індикатор число 00h, якщо прапорець дорівнює «1», вивести число 11h |
2,12, 22 |
Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW3. Після досягнення кількості натискань 6 занести кількість натискань в акумулятор і перевірити прапорець паритету. При натисканні кнопки SW4 виконати перевірку прапорця паритету. Якщо прапорець дорівнює «0», вивести на статичний індикатор число 00h, якщо прапорець дорівнює «1» вивести число 11h |
3,13, 23 |
Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW5. Після досягнення кількості натискань 7 занести кількість натискань в акумулятор і перевірити прапорець паритету. При натисканні кнопки SW6 виконати перевірку прапорця паритету. Якщо прапорець дорівнює «0», і вивести на статичний індикатор число 00h, якщо прапорець дорівнює «1», вивести число 11h |
4,14, 24 |
Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW7. Після досягнення кількості натискань 8 занести кількість натискань в акумулятор і перевірити прапорець паритету. При натисканні кнопки SW8 виконати перевірку прапорця паритету. Якщо прапорець дорівнює «0», і вивести на статичний індикатор число 00h, якщо прапорець дорівнює «1», вивести число 11h |
5,15, 25 |
Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW1. Після досягнення кількості натискань 9 занести кількість натискань в акумулятор і перевірити прапорець паритету. При натисканні кнопки SW2 виконати перевірку прапорця паритету. Якщо прапорець дорівнює «0», і вивести на статичний індикатор число 00h, якщо прапорець дорівнює «1», вивести число 11h |
Продовження табл. 5
6,16 |
Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW3. Після досягнення кількості натискань 4 занести кількість натискань в акумулятор і перевірити прапорець паритету. При натисканні кнопки SW4 виконати перевірку прапорця паритету. Якщо прапорець дорівнює «0», і вивести на статичний індикатор число 00h, якщо прапорець дорівнює «1», вивести число 11h |
7,17 |
Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW5. Після досягнення кількості натискань 5 занести кількість натискань в акумулятор і перевірити прапорець паритету. При натисканні кнопки SW6 виконати перевірку прапорця паритету. Якщо прапорець дорівнює «0», і вивести на статичний індикатор число 00h, якщо прапорець дорівнює «1», вивести число 11h |
8,18 |
Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW7. Після досягнення кількості натискань 6 занести кількість натискань в акумулятор і перевірити прапорець паритету. При натисканні кнопки SW8 виконати перевірку прапорця паритету. Якщо прапорець дорівнює «0», і вивести на статичний індикатор число 00h, якщо прапорець дорівнює «1», вивести число 11h |
9,19 |
Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW1. Після досягнення кількості натискань 7 занести кількість натискань в акумулятор і перевірити прапорець паритету. При натисканні кнопки SW2 виконати перевірку прапорця паритету. Якщо прапорець дорівнює «0», і вивести на статичний індикатор число 00h, якщо прапорець дорівнює «1», вивести число 11h |
10,20 |
Підрахувати і відобразити на статичному індикаторі кількість натискань кнопки SW3. Після досягнення кількості натискань 8 занести кількість натискань в акумулятор і перевірити прапорець паритету. При натисканні кнопки SW4 виконати перевірку прапорця паритету. Якщо прапорець дорівнює «0», і вивести на статичний індикатор число 00h, якщо прапорець дорівнює «1», вивести число 11h |
Рисунок 12 - Схема до лабораторної роботи 4
6 Лабораторна робота № 5. Робота з масивами
Тема «Робота з масивами».
Мета роботи - вивчити принцип роботи з масивами.
Порядок виконання лабораторної роботи
1 Вивчити систему роботи стека МК51.
2 Розробити алгоритм для виконання індивідуального завдання.
3 Розробити програму для виконання індивідуального завдання.
4 Ввести програму індивідуального завдання на ПК.
5 За допомогою ПОЗ проаналізувати виконання індивідуальної програми.
6 Завантажити програму в стенд ЕОМ. Переконатися у правильному виконанні індивідуального завдання, при негативному результаті змінити алгоритм або програму. Повторити завантаження програми на стенд ЕОМ.
7 Роздрукувати лістинг правильно працюючої програми.
8 Відповісти на контрольні питання викладача.
Приклад програми для роботи зі стеком
Ввести масив даних і знайти суму 1-го і 3-го елементів. Суму вивести на статичний індикатор.
$ NOMOD51
$ Include (D:\ Sum_GU_STUD\MPP\ BIN\ASM51\mod51)
ORG 0
mov R5, # 0h
mov R0, # 0h
mov R3, # 00h
mov R4, # 02h
Begin:
mov A, R3
mov DPTR, # Mas
movc A, @ A + DPTR
mov R5, A
mov A, R4
mov DPTR, # Mas
movc A, @ A + DPTR
add A, R5
mov P2, A
jmp Begin
Mas: DB 01h, 02h, 04h, 08h, 07h, 03h, 05h, 09h
ret
END
Таблиця 6 - Варіанти індивідуальних завдань до ЛР 5
Номер вар |
Текст індивідуального завдання |
1,11, 21 |
Ввести масив даних і знайти суму 1-го, 3-го та 5-го елементів. Результат вивести на статичний індикатор |
2,12, 22 |
Ввести масив даних і знайти середнє арифметичне перших п'яти елементів масиву. Результат вивести на статичний індикатор. |
3,13, 23 |
Ввести масив даних і знайти добуток 2-го та 7-го елементів. Результат вивести на статичний індикатор |
4,14, 24 |
Ввести масив даних і знайти середнє арифметичне останніх чотирьох елементів масиву. Результат вивести на статичний індикатор |
5,15, 25 |
Ввести масив даних і знайти добуток перших чотирьох елементів. Результат вивести на статичний індикатор |
6,16 |
Ввести масив даних і знайти різницю 8-го і 1-го елементів. Результат вивести на статичний індикатор |
7,17 |
Ввести масив даних і знайти суму 2-го, 4-го та 7-го елементів. Результат вивести на статичний індикатор |
8,18 |
Ввести масив даних і знайти добуток 3-го і 8-го елементів. Результат вивести на статичний індикатор |
9,19 |
Ввести масив даних і знайти добуток останніх трьох елементів. Результат вивести на статичний індикатор |
10,20 |
Ввести масив даних і знайти суму всіх елементів масиву. Результат вивести на статичний індикатор |
Масив даних: 01h, 02h, 04h, 08h, 07h, 03h, 05h, 09h
Рисунок 13 - Схема до лабораторної роботи 5
7 Лабораторна робота 6. Система переривань МК51
Тема «Система переривань».
Мета роботи - вивчити режими роботи системи переривання ЕОМ, програмну обробку дискретних сигналів.
Порядок виконання лабораторної роботи
1 Вивчити систему роботи стека МК51.
2 Розробити алгоритм для виконання індивідуального завдання.
3 Розробити програму для виконання індивідуального завдання.
4 Ввести програму індивідуального завдання на ПК.
5 За допомогою ПОЗ проаналізувати виконання індивідуальної програми.
6 Завантажити програму в стенд ЕОМ. Переконатися у правильному виконанні індивідуального завдання, при негативному результаті змінити алгоритм або програму. Повторити завантаження програми на стенд ЕОМ.
7 Роздрукувати лістинг правильно працюючої програми.
8 Відповісти на контрольні питання викладача.
Короткі теоретичні відомості
Опитування
дискретних сигналів. Для введення
інформації широко застосовуються
кнопкові перемикачі та контактні
клавіатури. Сигнал таких перемикачів
формується шляхом замикання (розмикання)
електричного кола. Сигнал, що формується
контактною парою, супроводжується
дзенькотом контактів, тривалість якого
становить ~ 8-12мс (рис. 14).
Рисунок 14 - Сигнал контактної пари
Для усунення дзенькоту контактів у вихідному сигналі на виході контактної пари встановлюють спеціальні формувачі. Приклад такого формувача, що базується на принципі безпосередньої установки RS-тригера, наведено на рисунку 15.
Рисунок 15 - Схема усунення дзенькоту контактів за допомогою RS-тригера
Для зменшення апаратних витрат застосовують програмне фільтрування дзенькоту контактів. Воно полягає у повторному опитуванні контактної пари із затримкою в 12мс, при збігу результатів опитування кнопка була натиснута, інакше в результаті першого опитування був зафіксований збій.