|
|||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
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 – Варианты индивидуальных заданий
Содержание отчета В отчете необходимо привести следующее: характеристики лабораторной вычислительной системы; исходный модуль разработанной программы; анализ полученных результатов и краткие выводы по работе, в которых необходимо отразить особенности считывания данных с матричной клавиатуры в режиме программного обмена с помощью микроконтроллера AVR ATMEGA 128.
2.5 Контрольные вопросы и задания 1. Поясните принцип функционирования матричной клавиатуры 3*4, входящей в состав лабораторного макета. 2. Поясните алгоритм программного опроса клавиатуры. 3. Возможно ли обращение к портам ввода/вывода как к ячейкам памяти в микроконтроллере AVR ATMEGA? 4. Поясните принцип работы клавиатуры 1*3, входящей в состав лабораторного макета. 5. В чем заключаются преимущества и недостатки режима программного опроса клавиатуры? 6. Перечислите и поясните основные команды и приемы для логического анализа двоичных данных. AVR ATMEGA 128 при обращении к памяти и портам ввода/вывода.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |