4.4 Задания на лабораторную работу
Задание: Разработать алгоритм, написать, отладить и исследовать программу для МК ATmega8515, которая выводит на диодный четырехразрядный семисегментный индикатор четыре произвольные цифры от 0 до 9. Вывод заданной цифры при нажатии на кнопки S1, S2, S3, S4 всегда осуществляется в первый (младший) разряд индикатора, при этом отображаемые до этого цифры в старших разрядах сдвигаются влево, а четвертый разряд исчезает. Схема подключения четырехразрядного семисегментного индикатора к МК показана на рис. 4.4. Используемые порты ввода/вывода в зависимости от варианта приведены в табл. 4.1.
Рис. 4.4 – Схема подключения светодиодного семисегментного индикатора
к управляющему микроконтроллеру
Таблица 4.1 – Таблица заданий для лабораторной работы №4
Вариант |
Порт ввода PX (подкл. кнопок S1, S2, S3, S4) |
Порт вывода PY (сегменты) |
Порт вывода PZ (выбор знакоместа: VT1; VT2; VT3, VT4) |
Выво-димые цифры |
1 |
PA3, PA2, PA1, PA0 |
PB7 ÷ PB0 |
PC3, PC2, PC1, PC0 |
1, 2, 3, 4 |
2 |
PB3, PB2, PB1, PB0 |
PC7 ÷ PC0 |
PD3, PD2, PD1, PD0 |
2, 3, 4, 5 |
3 |
PC3, PC2, PC1, PC0 |
PD7 ÷ PD0 |
PA3, PA2, PA1, PA0 |
3, 4, 5, 6 |
4 |
PD3, PD2, PD1, PD0 |
PA7 ÷ PA0 |
PB3, PB2, PB1, PB0 |
4, 5, 6, 7 |
5 |
PA5, PA4, PA3, PA2 |
PB7 ÷ PB0 |
PC5, PC4, PC3, PC2 |
5, 6, 7, 8 |
6 |
PB5, PB4, PB3, PB2 |
PC7 ÷ PC0 |
PD5, PD4, PD3, PD2 |
6, 7, 8, 9 |
7 |
PC5, PC4, PC3, PC2 |
PD7 ÷ PD0 |
PA5, PA4, PA3, PA2 |
7, 8, 9, 0 |
8 |
PD5, PD4, PD3, PD2 |
PA7 ÷ PA0 |
PB5, PB4, PB3, PB2 |
0, 2, 4, 6 |
9 |
PA4, PA3, PA2, PA1 |
PB7 ÷ PB0 |
PC4, PC3, PC2, PC1 |
1, 3, 5, 7 |
10 |
PB4, PB3, PB2, PB1 |
PC7 ÷ PC0 |
PD4, PD3, PD2, PD1 |
2, 4, 6, 8 |
11 |
PA7, PA6, PA5, PA4 |
PB7 ÷ PB0 |
PC7, PC6, PC5, PC4 |
3, 5, 7, 9 |
12 |
PB7, PB6, PB5, PB4 |
PC7 ÷ PC0 |
PD7, PD6, PD5, PD4 |
4, 6, 8, 0 |
13 |
PC7, PC6, PC5, PC4 |
PD7 ÷ PD0 |
PA7, PA6, PA5, PA4 |
0, 3, 6, 9 |
14 |
PD7, PD6, PD5, PD4 |
PA7 ÷ PA0 |
PB7, PB6, PB5, PB4 |
1, 4, 7, 0 |
15 |
PA1, PA0, PA7, PA6 |
PB7 ÷ PB0 |
PC1, PC0, PC7, PC6 |
0, 4, 8, 2 |
16 |
PB1, PB0, PB7, PB6 |
PC7 ÷ PC0 |
PD1, PD0, PD7, PD6 |
1, 5, 9, 3 |
17 |
PC1, PC0, PC7, PC6 |
PD7 ÷ PD0 |
PA1, PA0, PA7, PA6 |
2, 6, 0, 4 |
18 |
PD1, PD0, PD7, PD6 |
PA7 ÷ PA0 |
PB1, PB0, PB7, PB6 |
3, 7, 1, 5 |
19 |
PC0, PC7, PC6, PC5 |
PD7 ÷ PD0 |
PA0, PA7, PA6, PA5 |
4, 8, 2, 6 |
20 |
PD0, PD7, PD6, PD5 |
PA7 ÷ PA0 |
PB0, PB7, PB6, PB5 |
5, 9, 3, 7 |
При разработке алгоритма программы динамической индикации необходимо предусмотреть эффективные меры по борьбе с дребезгом кнопок. При нажатии на очередную кнопку должна выводится соответствующая цифра только один раз.
