Методическое обеспечение комплекса для выполнения лабораторных и практических работ по дисциплине «Применение микропроцессоров»
Краткие теоретические сведения Последовательный порт UART используется, для организации обмена данными между несколькими устройствами в последовательном коде. По порту можно одновременно и передавать и получать данные. Для этого используются отдельные линии связи. Скорость приема-передачи можно изменять программно. Разрядность данных может быть 8 или 9 бит. Микроконтроллер ATmega8535 имеет 4… Читать ещё >
Методическое обеспечение комплекса для выполнения лабораторных и практических работ по дисциплине «Применение микропроцессоров» (реферат, курсовая, диплом, контрольная)
Рассматриваемый ниже, набор работ, позволяет провести цикл лабораторных работ и практических занятий по дисциплине «Применение микропроцессоров». Набор включает в себя 3 работы, рассматриваемые ниже.
Лабораторная работа № 1.
Подсистема памяти микроконтроллера.
Цель работы. Изучение принципов построения подсистемы памяти МК. Разработка и отладка обращения к EEPROM.
Краткие теоретические сведения.
EEPROM память данных. EEPROM память данных организована как отдельное пространство данных с возможность считывания и записи отдельного байта. EEPROM обеспечивает 100 000 циклов стирания/записи. Взаимодействие между EEPROM и CPU определяется регистром адреса EEARH_L, регистром данных EEDR и регистром управления EECR.
Назначение битов регистра управления:
- · D7-D4 — зарезервированны.
- · D3-EERIE — разрешение прерывания по готовности EEPROM.
- · D2-EEMWE — управление записью в EEPROM, при установленном бите и бите EEWE производится запись байта данных из регистра данных в EEPROM по адресу хранящемуся в регистрах адреса.
- · D1-EEWE — разрешение записи EEPROM, процесс записи выполняется следующим образом:
- 1. Подождать, пока EEWE не сброситься.
- 2. Записать новый адрес в EEARH_L.
- 3. Записать данные в регистр данных EEDR.
- 4. Установить EEMWE в «1»
- 5. В течение 4 тактовых циклов после установки EEMWE установить в единичное состояние EEWE.
- · D0-EERE — разрешение чтения. сигнал является командой чтения данных из ячейки памяти, адрес которой находится в регистрах адреса.
Пример программ обращения к EEPROM.
;подпрограмма записи данных в EEPROM.
EEPROM_write:
cli.
;ожидание завершение предыдущей записи.
EE_W:
sbic EECR, EEWE.
rjmp EE_W.
;запись адреса в (r27:r26).
out EEARH, XH.
out EEARL, XL.
;запись данных (r16) в регистр данных.
out EEDR, r16.
;установка бита EECR регистра EEMPE в 1.
sbi EECR, EEMWE.
;инициализация записи в EEPROM.
sbi EECR, EEWE.
sei.
ret.
;подпрограмма чтения данных из EEPROM.
EEPROM_read:
cli.
;ожидание завершение предыдущей записи.
EE_r:
sbic EECR, EEWE.
rjmp EE_r.
;запись адреса в (r27:r26).
out EEARH, XH.
out EEARL, XL.
;инициализация чтения EEPROM установкой EERE.
sbi EECR, EERE.
;чтение данных с регистра данных.
in temp, EEDR.
sei.
ret.
Индивидуальные задания к выполнению лабораторной работе № 1.
Разработать программу (варианты).
- 1. считывания данных из EEPROM и записи их в PA.
- 2. считывания данных из порта C и записи в EEPROM.
- 3. перемещения данных из EEPROM в ОЗУ.
- 4. перемещения данных из ОЗУ в EEPROM.
- 5. перестановки массива из 10 чисел, расположенных в EEPROM.
- 6. записи трех двухбайтовых чисел из портов, А и В в EEPROM.
- 7. преобразования аналогового сигнала в код с сохранением результата в EEPROM по сигналу «Запрос прерывания» от АЦП.
- 8. определения суммы 2-х байтовых чисел, расположенных в различных областях EEPROM. Результат сохранить вместо первого операнда.
- 9. определения разности 2-х байтовых чисел, расположенных в различных областях EEPROM. Результат сохранить вместо первого операнда.
- 10. использования EEPROM и порта С для формирования временных диаграмм заданного вида (см. табл. ххх).
Контрольные вопросы к лабораторной работе № 1.
- 1. Назначение блока памяти EEPROM и основные параметры EEPROM.
- 2. Что означает «единое адресное пространство памяти» МК?
- 3. Формат регистра управления ECR и назначение битов регистра управления.
- 4. Как определить сегмент данных в EEPROM?
- 5. Как резервировать ячейки в EEPROM для хранения байтов или слов?
- 6. Приведите и прокомментируйте подпрограмму записи данных в EEPROM.
- 7. Приведите и прокомментируйте подпрограмму чтения данных из EEPROM.
- 8. Вектор прерывания от EEPROM. Назначение и пример использования.
- 9. Методы программирования памяти микроконтроллера.
Лабораторная работа № 2.
Универсальный асинхронный приемопередатчик — UART.
Цель работы. Изучение принципа работы UART порта. Получение навыков использования UART порта для приема/передачи данных. Разработка и отладка управляющих программ приема/передачи и программ обработки данных.
Краткие теоретические сведения Последовательный порт UART используется, для организации обмена данными между несколькими устройствами в последовательном коде. По порту можно одновременно и передавать и получать данные. Для этого используются отдельные линии связи. Скорость приема-передачи можно изменять программно. Разрядность данных может быть 8 или 9 бит.
Управление портом производится с помощью регистров: UDR, UCSRnA, UCSRnB, UCSRnC, UBRRnL и UBRRnH (более подобно см. раздел 2.10).
Пример программирования UART порта.
Фрагменты программы, реализующие настройку порта, передачу и прием данных.
;—————————————————————————————-;
;Инициализация передатчика.
ldi r16, 0×55.
out UBRRl, $ 55 ;установка скорости передачи.
ldi r16, (1<<
out UCSRB, r16.
;установка формата кадра передачи: 8-data, 2-stop bit.
ldi r16, (1<<<
out UCSRC, r16.
ret.
;—————————————————————————————-;
;Передачи данных.
Transmit:
sbis UCSRA, UDRE ;ожидание готовности передачи.
rjmp Transmit.
out UDR, r16 ;поместить данные в буфер
ret.
;—————————————————————————————-;
;Прием данных.
Receive:
sbis UCSRA, RXC ;ожидания приёма данных.
rjmp Receive.
in r16, UDR ;получения принятых данных из буфера.
ret.
Индивидуальные задания к выполнению лабораторной работы № 2.
- (прием и передачу осуществить по сигналу «Запрос прерывания» и по опросу флажка готовности UART)
- 1. Разработать программу передачи 3-х байт данных, расположенных в ОЗУ. Передачу осуществлять в 8-ми битном режиме с минимальной скоростью.
- 2. Разработать программу приема 3-х байт данных. Прием осуществлять в 8-ми битном режиме с минимальной скоростью. Данные сохранить в ОЗУ.
- 3. Разработать программу передачи данных из порта В. Передачу осуществлять в 9-ти битном режиме с контролем по четности.
- 4. Разработать программу приема байта данных. Прием осуществлять в 9-ти битном режиме с максимальной скоростью. Данные выводить в PORTC.
- 5. Разработать программу передачи 10-ти байтов данных, расположенных в ОЗУ. Передачу осуществлять по сигналу внешнего прерывания INT0 в 8-ми битном режиме.
- 6. Разработать программу обмена данными двух УЛС по UART порту.
- 7. Разработать программу одновременного приема и передачи данных по UART порту.
- 8. Разработать программу передачи подпрограмм и запуска их на приемной стороне по окончании приема.
Контрольные вопросы к лабораторной работе № 2.
- 1. Назначение UART порта МК и его основные характеристики.
- 2. Формат регистра статуса UART-порта и назначение битов регистра. Привести пример использования регистра статуса UART порта.
- 3. Регистр управления UART-порта и назначение битов регистра. Привести пример использования регистра управления UART порта.
- 4. Назначение бод-генератор (Baud Rate Generator) UART порта и регистра бод-генератора UARTUBRR.
- 5. Назначение регистра данных UDR UART-порта.
- 6. Для чего проводится тестирование выборки битов принимаемых символов?
- 7. Формат кадра и его содержание. Назначение старт — и стоп-битов
- 8. Привести пример считывания содержимого регистра статуса UART-порта, записи данных в регистры: бод-генератора UART, управления и данных UART-порта.
- 9. Каким образом задается скорость приема/передачи данных.
- 10. Вектора прерываний UART-порта и их назначение. Привести пример организации приема/передачи в режиме прерывания.
- 11. Привести схему соединения приемника и передатчика по UART-порта.
- 12. Режимы работы UART-порта и их отличительные особенности.
- 13. Приведите временные диаграммы приема/передачи информации по UART-порту.
- 14. В чем различие между UART-портом МК и последовательным интерфейсом RS-232?
Лабораторная работа № 3.
Параллельные порты ввода/вывода микроконтроллера.
Цель работы: Изучение принципа работы портов. Получение навыков использования параллельных портов для ввода/вывода данных. Разработка и отладка управляющих программ и программ ввода/вывода данных.
Краткие теоретические сведения.
Микроконтроллер ATmega8535 имеет 4 восьмиразрядных параллельных порта ввода-вывода: PA, PB, PC и PD. В состав каждого порта входят 3 регистра ввода-вывода с именами DDRх, PORTх, PINх (где х=A, B, C и D. например, порт A имеет регистры DDRA, PORTA, PINA). Регистр PINх не имеет аппаратной реализации. Это имя используется в командах, по которым выполняется чтение байтов на выводах порта.
Состояния разрядов регистра DDRх определяет направление передачи бита через выводы порта. Если i-й разряд регистра DDRх равен 1, то соответствующий вывод порта работает в режиме выхода, а если равен нулю, то в режиме входа.
Например, следующие две команды настраивают порт PB на вывод данных:
ser r16 ;установить все биты регистра r16 в «1».
;в r16 записывается число $FF.
out DDRB, r16 ;вывести содержимое r16 в регистр DDRB.
;все 8 разрядов порта B настроены на вывод.
Значение входного сигнала на отдельном выводе порта может быть определено с использованием команд условного перехода. Например:
SBIC PINA, 5; пропустить следующую команду, если 5-ый бит в порте, А установлен.
SBIS PINC, 7 ;пропустить следующую команду, если 7-ый бит в порте, А сброшен.
При пуске и перезапуске микроконтроллера все разряды регистров DDRх и PORTх всех портов сбрасываются в нулевое состояние и выводы портов работают в режиме входов и находятся в Z состоянии.
Пример программы управления ввод/выводом по параллельным портам.
Программная реализация 8 разрядного распределителя импульсов (порт РА) с программно изменяемой скоростью (порт РВ).
Порт, А настаиваем на вывод, а порт В — на ввод.
.include «m8535def.inc» .
;———————————————————————————————;
;Инициализация стека.
ldi r16, low (ramend) ;загрузить в r16 младший байт RAMEND.
out spl, r16 ;вывести значение r16 в SPL.
ldi r16, high (ramend) ;загрузить в r16 старший байт RAMEND.
out sph, r16 ;вывести значение r16 в SPH.
;———————————————————————————————;
;Инициализация портов МК.
clr r16 ;сброс всех битов в регистре r16.
out ddrd, r16 ;настраиваем все биты PORTD на ввод.
ser r16 ;устанавливаем все биты в регистре r16.
out ddra, r16 ;настраиваем все биты PORTA на вывод.
;———————————————————————————————;
;Основная программа.
ldi r18,$ 01 ;записываем в r16 1.
start:
rol r16 ;команда циклического сдвига влево.
out porta, r18 ;вывод содержимого r18 в PORTA.
rcall delay ;вызов подпрограммы формирование задержки.
rjmp start ;команда безусловного перехода на метку Start.
delay: ;подпрограмма формирования временной задержки.
in r16, portd ;вводим значения из PORTD в r16.
m:
dec r16 ;уменьшаем на 1 содержимое r16.
breq m ;если не равно 0 переходим на метку m.
ret ;выход их подпрограммы Индивидуальные задания к выполнению лабораторной работы № 3.
- 1. Разработать программу для подсчета количества единиц в 8 разрядном слове порта РВ. Результат записать в РС, если РВ0=1, иначе в РА.
- 2. Разработать программу для реализации 8 разрядного двоичного счетчика (порт РС). Режим суммирования при РВ0=1, режим вычитания РВ0=0.
- 3. Разработать программу реализации 8 разрядного распределителя импульсов. Сдвиг слева направо, если PD0=1, справа налево, если PD0=0.
- 4. Разработать программу для реализации 8 разрядного двоичного счетчика в режиме суммирования (порт РD). При РА0 = 1 с шагом +1импульс, а при РА0=0 с шагом +2 импульса.
- 5. Разработать программу для реализации 8 разрядного двоичного счетчика в режиме суммирования (порт РD) с прогаммно-изменяемой скоростью работы. Скорость определяется значением порта С.
- 6. Разработать программу для реализации следующих логических условий: если (РА0=1 и РС0=1) или РА3=1, то записать в РD число FF, иначе в РD число 00.
- 7. Разработать программу для реализации следующих логических условий: если РА0 = 1 или РС0 = 1, то вызов подпрограммы сдвига данных влево и запись их в РА, иначевправо.
- 8. Разработать программу формирования на выводах параллельного порта МК временных диаграмм заданного вида (см. таблицу 3.2).
Таблица 3.2.
№ варианта. | Временная диаграмма. | № варианта. | Временная диаграмма. |
Контрольные вопросы к лабораторной работе № 3.
- 1. Назначение параллельных портов МК.
- 2. Приведите примеры применения параллельных портов.
- 3. Как производит настройка параллельных портов на ввод или вывод данных? Приведите пример настройки портов.
- 4. Какие регистры используются для настройки параллельных портов?
- 5. В чем отличие регистров DDRx, PORTx и PINx (где x-A, B, С, D и т. д.)
- 6. Назначение регистров DDRx, PORTx и PINx параллельных портов.
- 7. Перечислите команды обращения к портам и приведите их форматы.
- 8. Привести схему подключения набора кнопок и светодиодной линейки индикации к параллельным портам МК. Разработать программу отображения состояния кнопок на светодиодной линейке индикации.