Сборка лекции, страница 4

2017-12-27СтудИзба

Описание файла

Документ из архива "Сборка лекции", который расположен в категории "". Всё это находится в предмете "электроника" из , которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "электроника и микропроцессорная техника" в общих файлах.

Онлайн просмотр документа "Сборка лекции"

Текст 4 страницы из документа "Сборка лекции"

BST - Bit Store from Bit in Register to T flag in SREG

CBI - Clear Bit in I/O Register

SBI - Set bit to I/O Register

Последние 2 команды работают только с младшими 32 регистрами ввода/вывода.

Команды управления.

В группу команд управления входят команды безусловного и условного переходов, перехода в энергосберегающий режим, перезапуска сторожевого таймера и «холостая команда».

При запуске программ на языке ассемблера в мнемокодах команд RJMP и RCALL вместо приращения k указывается метка, записанная перед мнемокодом команды, к выполнению которой нужно перейти.

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

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

Команды условного перехода второй подгруппы анализируют состояние регистров ОН и РВВ. В зависимости от результатов анализа происходит переход либо к очередной команде, либо к следующей за очередной.

Лекция 6. 03.10.2006.

RCALL – Relative Call to Subroutine.

В стек записывается содержимое программного счетчика + 1. После выполнения подпрограммы будет выполняться следующая за RCALL инструкция.

RJMP –Relative Jump.

Пример:

Bmt:

rjmp Bmt

Команды безусловных переходов:

Команды, которые анализируют состояние одного из признаков регистров состояния МК:

BREQ - Branch if Equal

Т.е. это уже категория команд условных переходов, в отличие от предыдущих.

Периферийные устройства AVR-МК.

В группу периферийных устройств входят:

• Параллельные порты ввода/вывода

• Последовательные порты ввода/вывода

• Таймеры счетчики общего назначения

• Сторожевой таймер

• АЦП

• Аналоговый компаратор

• Программируемый аппаратный модулятор

• Блок прерываний

Параллельные порты ввода/вывода (каналы связи):

ППВВ предназначены для обмена данными с внешними устройствами. AVR МК имеет в своем составе от 1 до 6 каналов, каждый из которых поддерживает от 3 до 8 линий связи. Выводы портов могут быть программно установлены на ввод, либо на вывод информации.

Некоторые выводы регистра, кроме функций ввода/вывода могут использоваться для выполнения альтернативных функций.

Работоспособность каждого канала связи обеспечивают регистра (DDRX, PORTX, PINX), входящих в адресное пространство (DDRX, PORTX, PINX). Регистр PINX не имеет аппаратной реализации. Это имя используется в командах.

Регистр с именем DDRX (X=A,B,C,D,E) служит для выбора направления обмена каждого вывода соответствующего порта. При записи 1 в соответствующий разряд регистра, вывод порта с таким же номером программируется на вывод, а при записи 0 на ввод.

В режиме ввода состояние разряда регистра PORTX определяет состояние вывода т.о., что при записи 1 в соответствующий разряд этого регистра вывод с таким же номером соединяется через внутренний резистор сопротивлением 30-120кОм с плюсом напряжения питания.

В этом же режиме (ввода) запись 0 в разряд регистра переводит вывод МК в высокоимпедансное (3-е Z) состояние.

В любом случае вывод МК в режиме ввода соединен с внутренней шиной данных.

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

При пуске и перезапуске МК все разряды регистров DDRX и PORTX всех портов обнуляются и выводы портов работают в режиме ввода и находятся в Z-состоянии.

DDRX,Y

PORTX,Y

PX,Y

0

0

Ввод(z)

0

1

Ввод (r)

1

0

Вывод (0)

1

1

Вывод (1)

X – канал

Y – линия этого канала

Значение входного сигнала на отдельном выводе порта может быть определено с использованием команд условного перехода с мнемокомандами SBIC PINX,Y или SBIS PINX,Y.

Команда In Rd, Pinx позволяет считывать информацию со всех выводов портов одновременно.

Задание значения выходного сигнала на отдельных выводах порта выполняется с использованием команд с мнемокодами CBI PORTX, Y и SBI PORTX,Y. Команда OUT PORTX, Rr позволяют установить все выводы порта одновременно.

SBIC - Skip if Bit I/O Register is Cleared

SBIS - Skip if Bit I/O Register is Set

Register Summary

Adress Name

0x3F

(0x5F)

SREG

0x3E

(0x5E)

SPH

0x3D

(0x5D)

SPL

0x1B

(0x3B)

PORTA

0x1A

(0x3A)

DDRA

0x19

(0x39)

PINA

0x18

(0x38)

PORTB

0x17

(0x37)

DDRB

0x16

(0x36)

PINB

0x15

(0x35)

PORTC

0x14

(0x34)

DDRC

0x13

(0x33)

PINC

0x12

(0x32)

PORTD

0x11

(0x31)

DDRD

0x10

(0x30)

PIND

1-ое – адреса регистров ввода/вывода

2-ое – адреса в едином адресном пространстве

В 1-ом – 64 регистра

Во 2-ом – 32+64

DD3 – синтезатор частот

DD3 – цифровой потенциометр

МК=СРU

Необходимо задать направление портов B,C и D.

D – это ввод – «0»

B,C – это вывод – «1» → подсоединены к индикаторам

Порт b ответственен за выбор одного из 4 индикаторов,

порт с - за вывод информации на один из этих индикаторов.

DDRX, PORTX, PINX

DDRX (X = A,B,C,D,..)

PORTX,Y; PINX,Y; DDRX,Y ( Y = 0 -7)

port_init:

ser temp ; устанавливает все разряды регистра временного хранения данных в 1

out ddrc,temp ; канал с программируем на ввод

clr temp ; устанавливает все разряды регистра временного хранения данных в 0

out ddrd,temp ; канал в программируем на вывод

ret

Задание: Определить номер индикатора и данные, которые он отображает в процессе выполнения следующей программы.

Восьмисегментный светодиодный индикатор:

include "m8535def.inc" ;Подключить файл описаний имен РВВ

; Инициализация (начальная загрузка) указателя стека

ldi r25, LOW(RAMEND) ; Записать в регистр (16-31) младший байт адреса вершины стека

out spl, r25 ; Переслать его в регистр УС

ldi r25, HIGH(RAMEND) ; Записать в регистр (16-31) младший байт адреса вершины стека

out sph, r25; Переслать его в регистр УС

;

ldi r25,$ff ; запись в регистр 25 восьми единиц

out ddrb, r25 ; программируем канал b на вывод

out ddrc, r25 ; программируем канал с на вывод

main: ; метка

LDI r16,$7f ; R16 → 0111 1111 → 8

OUT portc, r16 ; записывает данные из R16 в порт с (ответственен за вывод)

LDI r16,$fe ; R16 → 1111 1110 → 1 индикатор

OUT portb, r16 ; записывает данные из R16 в порт b (ответственен за выбор индикатора)

rcall wait ; вызывает подпрограмму wait в пределах ±2К слов (4кБайт)

LDI r16,$06 ; R16 → 0000 0110 → 1

OUT portc, r16 ; записывает данные из R16 в порт с (ответственен за вывод)

LDI r16,$fd ; R16 → 1111 1101 → 2 индикатор

OUT portb, r16 ; записывает данные из R16 в порт b (ответственен за выбор индикатора)

rcall wait ; вызывает подпрограмму wait в пределах ±2К слов (4кБайт)

LDI r16,$5b ; R16 → 0101 1011 → 2

OUT portc, r16 ; записывает данные из R16 в порт с (ответственен за вывод)

LDI r16,$fb ; R16 → 1111 1011 → 3 индикатор

OUT portb, r16 ; записывает данные из R16 в порт b (ответственен за выбор индикатора)

rcall wait ; вызывает подпрограмму wait в пределах ±2К слов (4кБайт)

LDI r16,$4f ; R16 → 0100 1111 → 3

OUT portc, r16 ; записывает данные из R16 в порт с (ответственен за вывод)

LDI r16,$f7 ; R16 → 1111 0111 → 4 индикатор

OUT portb, r16 ; записывает данные из R16 в порт b (ответственен за выбор индикатора)

rcall wait ; вызывает подпрограмму wait в пределах ±2К слов (4кБайт)

Время выполнения каждой команды очень мало, поэтому заметить на индикаторе изменения информации невозможно, поэтому:

rjmp main ; относительный переход по адресу метки main в пределах ±2К слов (4кБайт)

; текущего состояния счётчика команд

wait: ; метка

LDI r17,10 ; R17 → 0A → 0000 1010

LDI r18,25 ; R18 → 19 → 0001 1001

m1: ; метка

DEC r18 ; уменьшение содержания R18 на 1: R18 → 18 → 0001 1000

brne m1 ; если бит регистра состояния Z не равен 0, переход по метке m1

m: ; метка

DEC r17 ; уменьшение содержания R17 на 1: R17 → 9 → 0000 1001

brne m ; если бит регистра состояния Z не равен 0, переход по метке m

ret ; возвращает туда, откуда был произведён вызов (rcall)

Посчитаем время задержки к этой части программы:

20МГц – тактовая частота микроконтроллера

10+25=35 – операций производит МК в процедуре wait

LDI – 1 цикл

DEC – 1 цикл

brne – 1 цикл, если бит регистра состояния Z не равен 0

2 цикла, если бит регистра состояния Z равен 1

ret – 4 цикла

За один вызов wait:

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее