Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник по МК-МИА-16.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7.24 Mб
Скачать

Индивидуальные задания к выполнению лабораторной работы №2

  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.1).

Таблица 3.1

варианта

Временная

диаграмма

варианта

Временная

диаграмма

8.1

8.3

8.2

8.4

Контрольные вопросы к лабораторной работе №2

  1. Назначение параллельных портов МК.

  2. Приведите примеры применения параллельных портов.

  3. Как производит настройка параллельных портов на ввод или вывод данных? Приведите пример настройки портов.

  4. Какие регистры используются для настройки параллельных портов?

  5. В чем отличие регистров DDRx, PORTx и PINx (где x-A, B, С, D и т.д.)

  6. Назначение регистров DDRx, PORTx и PINx параллельных портов.

  7. Перечислите команды обращения к портам и приведите их форматы.

  8. Привести схему подключения набора кнопок и светодиодной линейки индикации к параллельным портам МК. Разработать программу отображения состояния кнопок на светодиодной линейке индикации.

Лабораторная работа №3 Подсистема ввода аналоговых сигналов микроконтроллера

Цель работы. Изучение принципов работы АЦП. Получение навыков разработки и отладки программ управления АЦП и обработки данных.

Краткие теоретические сведения

ATmega8535 содержит 10-разрядный АЦП последовательного приближения. АЦП связан с 8-канальным аналоговым мультиплексором, 8 однополярных входов которого связаны с линиями порта A.

Источник опорного напряжения (ИОН) для АЦП (VИОН) определяет диапазон преобразования АЦП. Если уровень однополярного сигнала свыше VИОН, то результатом преобразования будет 0x3FF. В качестве VИОН могут выступать AVCC, внутренний ИОН 2,56В или внешний ИОН, подключенный к выв. AREF. AVCC подключается к АЦП через пассивный ключ. Внутреннее опорное напряжение 2,56В генерируется внутренним эталонным источником VBG, буферизованного внутренним усилителем. В любом случае внешний вывод AREF связан непосредственно с АЦП и, поэтому, можно снизить влияние шумов на опорный источник за счет подключения конденсатора между выводом AREF и общим. Напряжение VИОН также может быть измерено на выводе AREF высокоомным вольтметром. Обратите внимание, что VИОН является высокоомным источником и, поэтому, внешне к нему может быть подключена только емкостная нагрузка.

Регистр управления мультиплексором АЦП– ADMUX

-D7,D6–REFS1,0. Биты выбора источника опорного напряжения

00-AREF, внутренний VИОН отключен

01-AVCC с внешним конденсатором на выводе AREF

10-Зарезервировано

11-Внутренний источник опорного напряжения 2.56В с внешним конденсатором на выводе AREF

-D 5–ADLAR. Бит управления представлением результата преобразования. Бит ADLAR влияет на представление результата преобразования в паре регистров результата преобразования АЦП. Если ADLAR=1, то результат преобразования будет иметь левосторонний формат, в противном случае - правосторонний.

-D4-D0–MUX4:0. Биты выбора аналогового канала и коэффициента усиления (более подробно см. раздел ХХХХ).

Регистр управления и статуса АЦП – ADCSRA

-D7–ADEN: Разрешение работы АЦП.

-D6 – ADSC. Запуск преобразования АЦП.

-D5 – ADFR. Выбор режима автоматического перезапуска АЦП

-D4 – ADIF. Флаг прерывания АЦП. Данный флаг устанавливается после завершения преобразования АЦП и обновления регистров данных. Если установлены биты ADIE и I (регистр SREG), то происходит прерывание по завершении преобразования.

-D3–ADIE. Разрешение прерывания АЦП 11001111

-D2-D0 – ADPS2:0: Биты управления предделителем АЦП. Данные биты определяют на какое значение тактовая частота ЦПУ будет отличаться от частоты входной синхронизации АЦП (более подробно см. раздел 2.7).

Пример программы разработки программы управления АЦП

Аналоговый сигнал –по входу ADC0/PA0.

Считывание результата преобразования из регистров данных АЦП и запись их в PC –по сигналу «Запрос прерывания»

Разрядность результата преобразования -8. ИОН- внешний AREF.

.include "m8535def.inc"

;---------------------------------------------------------------

;настройка векторов прерывания

.cseg

.org 0x000

rjmp RESET ;прерывание после сброса

.org $00e

;прерывание при окончании преобразования

rjmp AD_CONV

Reset:

;---------------------------------------------------------------

;Инициализация стека

ldi r16, low(RAMEND) ;загрузить в r16 младший байт

;RAMEND

out SPL,r16 ;вывести значение r16 в SPL

ldi r31, high(RAMEND) ;загрузить в r16 старший байт

;RAMEND

out SPH,r16 ;вывести значение r16 в SPH

;---------------------------------------------------------------

;Инициализация АЦП

sei ;устанавливаем флаг разрешения прерываний

ldi r16,0xсf ;разрешение работы

out adcsr,r16 ;разрешение прерывания и старт

clr r16 ;сбрасываем все биты в r16

out admux,r16 ;выбор 0 канала АЦП (порт PA0)

;и параметр усиления

ser r16 ;устанавливаем все биты в r16

out ddrc,r16 ;настройка PORTC на вывод

;---------------------------------------------------------------

;цикл ожидания

loop:

nop

nop

rjmp loop

;---------------------------------------------------------------

;подпрограмма обслуживания АЦП

AD_CONV:

sei ;устанавливаем флаг разрешения прерываний

in r16,adch ;загрузка байта результата в регистр r16

out portc,r16 ;вывод содержимого r16 в PORTC

ldi r16,0xсf ;разрешение работы

out adcsr,r16 ;разрешение прерывания и старт

reti ;возврат