- •Конспект лекций по дисциплине Микропроцессоры и микропроцессорные системы управления
- •Раздел 1 Основы микропроцессорной техники Тема 1.1 Принцип программного управления – основной принцип работы мп
- •Тема 1.2 Принцип централизации управления мпс. Шинная связь
- •Урок №5
- •Тема 1.3 Регистровая модель микропроцессора
- •1.3.1 Классификация внутренних регистров мп
- •1.3.2 Две архитектуры мп: аккумуляторная и регистровая
- •1.3.4* Внутренняя структура мп i8080
- •1.3.5* Регистровая модель мп i8080
- •Урок № 6
- •Урок №7 Лабораторная работа №1 Ввод, компиляция и отладка программ в avr Studio
- •Урок №8 Лабораторная работа №2 Анализ работы ядра микроконтроллера
- •Тема 1.4 Режимы работы микропроцессорной системы
- •Урок №11 Тема: Упражнения. Подготовка к лабораторным работам №3, 4
- •Урок №12 Лабораторная работа №3 Анализ работы микропроцессора в программном режиме и в режиме вызова подпрограмм
- •1 Практические задания и методические указания по их выполнению
- •3 Контрольные вопросы:
- •Урок №13 Лабораторная работа №4 Анализ работы микропроцессора в режиме прерывания программы
- •2 Практические задания и методические указания по их выполнению
- •3 Оформление отчета
- •4 Контрольные вопросы:
- •Урок №14
- •Тема 1.5 Микроконтроллеры
- •Раздел 2 микроконтроллеры семейства avr
- •Тема 2.1 История создания, классификация микроконтроллеров семейства avr
- •Тема 2.2 Типы корпусов микроконтроллеров семейства avr
- •Урок №17
- •Тема 2.3 Основные параметры, назначение выводов мк aTtiny2313
- •Урок №18
- •Тема 2.4 Основные параметры, назначение выводов мк aTmega8535
- •Урок №17
- •Тема 2.3 Основные параметры, назначение выводов мк aTtiny2313
- •Урок №18
- •Тема 2.4 Основные параметры, назначение выводов мк aTmega8535
- •Урок №19
- •Тема 2.5 Синхронизация работы мк avr
- •Урок №20
- •Тема 2.6 Система сброса
- •Урок №21
- •Тема 2.7 Параллельные порты микроконтроллеров семейства avr
- •Урок №22
- •Тема 2.8 Команды обращения к параллельным портам микроконтроллеров семейства avr
- •Урок №27 Лабораторная работа № 5 Методика отладки программ на лабораторном стенде «Программирование мк aTmega8535»
- •Урок №28 Лабораторная работа № 6 Разработка и отладка программы «Copy»
- •Урок № 29
- •Тема 2.9 Типичные схемы подключения светодиодов к выходам мк
- •Урок №30
- •Урок №31
- •Тема 2.10 Типичные схемы подключения семисегментных индикаторов к выходам мк
- •Урок №32
- •Урок №33
- •Урок №34 Лабораторная работа № 7 Исследование работы схемы статической индикации на лабораторном стенде «Программирование мк aTmega8535
- •2 Практические задания и методические указания по их выполнению.
- •Урок № 35
- •Тема 2.11 Типичные схемы подключения двоичных датчиков
- •Урок № 36
- •Урок №37
- •Тема 2.12 Программирование микроконтроллеров
- •Урок № 38 Подготовка к лабораторным работам № 8, 9
- •Урок № 39 Лабораторная работа №8 Программирование микроконтроллера с помощью программатора Phyton
- •Урок № 40 Лабораторная работа №9 Отладка программ на стенде «Цифровые микросхемы»
- •Урок № 41
- •Тема 2.13 Система прерываний
- •Урок №42
- •Урок №43
- •Урок №45 Лабораторная работа №10 Исследование логики прерывания от внешнего устройства
- •1 Краткие сведения из теории
- •2 Практические задания и методические указания по их выполнению
- •3 Оформление отчета
- •Урок № 46
- •Урок № 47
- •Тема 2.14 Таймеры
- •Урок № 49
- •Урок № 50
- •Урок № 51 Лабораторная работа № 11 Исследование работы таймера-счетчика t/c0
- •1 Краткие сведения из теории
- •3 Оформление отчета
- •Тема 2.12 Лабораторный комплекс «Микроконтроллеры и автоматизация»
- •Тема 2.13 Примеры программ ввода-вывода
- •Раздел 4 специальные возможности микроконтроллеров семейства avr Тема 4.1 Система прерываний
Урок №11 Тема: Упражнения. Подготовка к лабораторным работам №3, 4
Упражнение 1
В исходном состоянии содержимое регистра r0 равно нулю: r0=0. Определите содержимое регистра r0 после выполнения фрагмента программы:
.org 0
inc r0
rjmp 10
inc r0
inc r0
.org 10
rjmp 20
inc r0
.org 20
inc r0
inc r0
nop
Упражнение 2
Исследуйте работу счетчика команд в процессе выполнения фрагмента программы. Установите указатель стека на адрес $ 025f: sph=02, spl=$5f. Составьте схему заполнения стека. Результаты занесите в таблицу
.org $0
rjmp $30
.org $30
nop
rcall $40
nop
rcall $20
nop
rjmp $34
.org $20
nop
rcall $40
nop
ret
.org $40
nop
ret
Адрес |
Команда |
Счетчик команд |
Указатель стека SP, hex |
Стек |
|||
02 |
5e |
02 |
5f |
||||
|
|
|
025f |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Упражнение 3
Программа обработки прерывания от внешнего устройства int0 начинается метки ind, какую команду необходимо записать в вектор прерывания int0. Укажите адрес вектора int0.
Упражнение 4
По сигналу прерывания int0 необходимо очистить регистр r0. Заполните вектор прерывания и составьте текст подпрограммы прерывания.
Упражнение 5
Как организовать стек начиная с адреса $025f&
.
Урок №12 Лабораторная работа №3 Анализ работы микропроцессора в программном режиме и в режиме вызова подпрограмм
Цель работы: закрепить навыки ввода, компиляция и отладки программ в AVR Studio, исследовать работу счетчика команд в различных режимах работы МП.
1 Практические задания и методические указания по их выполнению
Задание 1 Исследуйте работу счетчика команд в программном режиме
Исследуемый фрагмент программы progr_counter.asm:
.org 0 ;организовать запись следующей команды в ячейку
;с адресом 0
rjmp 10 ;прыжок на ячейку с адресом 10 (000а)
clr r0 ;очистить регистр r0
clr r1
rjmp 12 ;прыжок на ячейку с адресом 12 (000с)
clr r2
.org 10 ;организовать запись следующей команды в ячейку
;с адресом 10
clr r16
rjmp 1 ;прыжок на ячейку с адресом 1
rjmp 0 ;прыжок на начало
Определите порядок очистки регистров. Все ли регистры, указанные в программе будут очищены?
Составим схему выполнения фрагмента
Таблица 1
Адрес |
текст |
СК |
0 |
rjmp 10 |
10=$0a |
10 |
clr r16 |
11=$0b |
11 |
rjmp 1 |
1 |
1 |
clr r0 |
2 |
2 |
clr r1 |
3 |
3 |
rjmp 12 |
12=$0c |
12 |
rjmp 0 |
0 |
0 |
rjmp 10 |
10=$0a |
10 |
clr r16 |
11=$0b |
11 |
rjmp 1 |
1 |
и т. Д. |
|
|
Запишем и откомпилируем программу в AVR Studio.
Запустим отладчик. Введем в регистры r0, r1, r2, r16 число ff.
Выполним программу по шагам. Убедимся, что схема выполнения фрагмента составлена правильно. Какой регистр остался неочищенным?
Задание 2 Исследуйте работу счетчика команд в режиме вызова подпрограмм
Исследуем фрагмент программы call.asm:
установим sp=$0061
;*********основная программа********
.org 0 ;записать следующую строку в ячейку с ;адресом 0
nop ;нет операции
rcall $30 ;вызов подпрограммы, с начальным адресом ;$30
nop ;нет операции
rjmp 0 ;прыжок на начало
;*********подпрограмма***********
.org $30
nop ;нет операции
ret ;возврат из подпрограммы
Составим схему выполнения фрагмента
Таблица 2
Адрес, hex |
Команда |
Счетчик команд |
Указатель стека SP, hex |
Стек |
|||
|
|
60 |
61 |
||||
0000 |
nop |
0001 |
0061 |
|
|
ff |
ff |
0001 |
rcall $30 |
0030 |
005f |
|
|
00 |
02 |
0030 |
nop |
0031 |
005f |
|
|
00 |
02 |
0031 |
ret |
0002 |
0061 |
|
|
00 |
02 |
0002 |
nop |
0003 |
0061 |
|
|
|
|
0003 |
rjmp 0 |
0000 |
0061 |
|
|
|
|
|
|
|
|
|
|
|
|
Запишем и откомпилируем программу в AVR Studio.
Запустим отладчик. Прежде чем начать пошаговое выполнение программы, установим стек. Для этого в окне I/O запишем в регистр «Указатель стека» начальный адрес spl=$61 (рисунок 1).
Рисунок 1
Чтобы наблюдать за работой стека, откроем окно памяти данных в меню View (рисунок 1).
Выполним программу по шагам. Убедимся, что схема выполнения фрагмента составлена правильно.
Рисунок 1
Задание 3 (выполняется самостоятельно)
Исследуйте работу счетчика команд в процессе выполнения фрагмента программы. Установите указатель стека на адрес $ 66: sph=00, spl=$66. Составьте схему заполнения стека. Результаты занесите в таблицу
.org $30
nop
rcall $20
nop
rjmp $32
.org $20
nop
rcall $40
nop
ret
.org $40
nop
ret
Таблица 3
Адрес |
Команда |
Счетчик команд |
Указатель стека SP, hex |
Стек |
|||
63 |
64 |
65 |
66 |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 Оформление отчета
В отчете необходимо указать:
3.1 Название цель работы
3.2 Задания 1-3: тексты фрагментов, схемы выполнения
3.3 Выводы