АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Ldi R24,0b00000000

out 02,R20 настройка линий E0-3 на ввод, а E4-7 на вывод;

out 0x11,R23 установить режим вывода для порта D;

out 0x12, R23 погасить все светодиоды;

loop1: стартовая метка цикла опроса;

out 03,R18 обнулить бит E4 для опроса клавиш 1-го столбца;

nop установить задержку в один такт;

in R16,01 считать данные из регистра PINE в R16;

out 03,R19 обнулить бит E5 для опроса клавиш 2-го столбца;

nop установить задержку в один такт;

in R17,01 считать данные из регистра PINE в R16;

or R16,R20 установить в 1 биты старшей тетрады R16;

or R17,R20 установить в 1 биты старшей тетрады R17;

swap R17 поменять местами старшую и младшую тетрады в R17;

and R17,R16 объединить информацию о нажатии клавиш в R17;

out 0x12,R17 вывести данные о номерах нажатых клавиш в порт D;

in R26,0 считать данные из регистра ввода порта F;

and R26,R22 обнулить все биты регистра R26, кроме 7-го.

cpi R26,0 сравнить значение в регистре R26 с нулем.

brne loop1 если клавиша не нажата – то выполнить переход для повторения опроса, иначе –

out 0x12,r24 выполнить команду включить все светодиоды;

#endasm завершение кода ассемблерной вставки;

} завершающая операторная скобка программы.

Для установки и обнуления битов регистров ввода/вывода можно использовать команды sbi и cbi соответственно. Однако эти команды необходимо будет использовать попарно, что ухудшает наглядность исходного кода программы.

 

 

Рисунок 2.7 – Алгоритм программы считывания данных с клавиатуры

 

 

Таблица 2.1 – Варианты индивидуальных заданий

№ п.п. Задание
  Разработать программу, фиксирующую нажатия клавиш 1, 6 и 12 матричной клавиатуры включением светодиодов 1, 2 и 3 соответственно. Выход из цикла опроса осуществляется при нажатии клавиши F1.
  Разработать программу, фиксирующую нажатия клавиш 3, 7 и 11 матричной клавиатуры включением светодиодов 5, 6 и 7 соответственно. Выход из цикла опроса осуществляется при нажатии клавиши F2.
  Разработать программу, фиксирующую нажатия клавиш 4, 7 и 10 матричной клавиатуры включением светодиодов 1, 2 и 3 соответственно. Выход из цикла опроса осуществляется при нажатии клавиши F1.
  Разработать программу, фиксирующую нажатия клавиш 1, 2 и 3 матричной клавиатуры включением светодиодов 4, 5 и 6 соответственно. Выход из цикла опроса осуществляется при одновременном нажатии клавиш F1+F3.
  Разработать программу, фиксирующую нажатия клавиш 2, 5 и 9 матричной клавиатуры включением светодиодов 1, 2 и 3 соответственно. Выход из цикла опроса осуществляется при одновременном нажатии клавиш F1+F2.
  Разработать программу, фиксирующую нажатия клавиш 4, 8 и 11 матричной клавиатуры включением светодиодов 1, 2 и 3 соответственно. Выход из цикла опроса осуществляется при нажатии клавиши F3.
  Разработать программу, фиксирующую нажатия клавиш 3, 7 и 10 матричной клавиатуры включением светодиодов 1, 2 и 3 соответственно. Выход из цикла опроса осуществляется при нажатии клавиши F1.
  Разработать программу, фиксирующую нажатия клавиш 5, 6 и 7 матричной клавиатуры включением светодиодов 1, 2 и 3 соответственно. Выход из цикла опроса осуществляется при одновременном нажатии клавиш F2+F3.
  Разработать программу, фиксирующую нажатия клавиш 1, 6 и 8 матричной клавиатуры включением светодиодов 1, 2 и 3 соответственно. Выход из цикла опроса осуществляется при нажатии клавиши F2.
  Разработать программу, фиксирующую нажатия клавиш 9, 10 и 11 матричной клавиатуры включением светодиодов 1, 2 и 3 соответственно. Выход из цикла опроса осуществляется при нажатии клавиши F1.

Содержание отчета

В отчете необходимо привести следующее:

характеристики лабораторной вычислительной системы;

исходный модуль разработанной программы;

анализ полученных результатов и краткие выводы по работе, в которых необходимо отразить особенности считывания данных с матричной клавиатуры в режиме программного обмена с помощью микроконтроллера AVR ATMEGA 128.

 

 

2.5 Контрольные вопросы и задания

1. Поясните принцип функционирования матричной клавиатуры 3*4, входящей в состав лабораторного макета.

2. Поясните алгоритм программного опроса клавиатуры.

3. Возможно ли обращение к портам ввода/вывода как к ячейкам памяти в микроконтроллере AVR ATMEGA?

4. Поясните принцип работы клавиатуры 1*3, входящей в состав лабораторного макета.

5. В чем заключаются преимущества и недостатки режима программного опроса клавиатуры?

6. Перечислите и поясните основные команды и приемы для логического анализа двоичных данных. AVR ATMEGA 128 при обращении к памяти и портам ввода/вывода.

 

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)