
- •Введение
- •Список сокращений
- •1. Архитектура современных микропроцессоров
- •1.1. Термины и определения
- •1.2. Микропроцессорные системы управления
- •1.3. Архитектурные особенности микропроцессоров
- •1.3.1. Гарвардская и принстонская архитектура
- •1.3.2. Архитектура системы команд (cisc и risc)
- •1.4. Корпус микропроцессоров
- •1.5. Технология изготовления кристаллов
- •1.6. Общие положения об обозначении импортных цифровых микросхем
- •1.6.1. Система обозначений микросхем производства Atmel
- •2. Структура микропроцессорной системы
- •2.1. Модуль питания
- •2.2. Модуль сброса и синхронизации
- •2.2.1. Сторожевой таймер
- •2.2.2. Тактирование системы
- •2.3. Модуль памяти
- •2.3.1. Супервизор напряжения
- •2.3.2. Память микропроцессорного устройства
- •2.4. Контроллер прерываний
- •2.5. Терминал
- •2.6. Центральный процессор
- •2.7. Суперскалярный конвейер
- •3. Программирование микропроцессорных устройств
- •3.1. Основные этапы проектирования и отладки программного обеспечения
- •3.2. Языки высокого уровня
- •3.3. Язык Ассемблера
- •3.3.1. Способы адресации на языке ассемблера
- •3.4. Алгоритм выполнения команды
- •3.5. Типы данных микропроцессора
- •4. Микропроцессоры с архитектурой х86
- •4.1. Микропроцессор Pentium
- •4.2. Микропроцессор Pentium 4
- •4.3. Микропроцессоры компании amd
- •4.4. Микропроцессор к7
- •5. Микропроцессоры с архитектурой x64
- •5.1.Микропроцессор Itanium ia-64
- •Отличия архитектур процессоров х86 и ia-64
- •5.2. Микропроцессоры семейства Hammer
- •Микропроцессоры c архитектурой power pc и arm
- •6.1. Микропроцессоры с архитектурой power
- •Процессоры arm
- •6.2. Микропроцессоры с архитектурой arm
- •4. Микроконтроллеры семейства mcs-51
- •4.1. Структура микроконтроллеров семейства mcs-51
- •4.2 Способы адресации и система команд микроконтроллеров семейства mcs-51
- •4.3. Функции выводов
- •5. Микроконтроллеры семейства Motorola
- •5.1. Общая структура микроконтроллеров семейства 68нс05/705/08
- •4.2.2. Регистровая модель микроконтроллеров семейства 68нс05/705/08
- •4.2.3. Способы адресации и система команд микроконтроллеров семейства 68нс05/705/08
- •6. Микроконтроллеры avr компании Atmel
- •5.1. Архитектура микроконтроллеров avr
- •5.2. Процессор микроконтроллера avr
- •5.3. Запоминающее устройство FlashRom
- •5.4. Периферийные устройства
- •Микроконтроллеры семейства piCmicro
- •12.1. Младшие подсемейства picMicro
- •Основные характеристики микроконтроллеров младшего подсемейства
- •12.2. Архитектура микроконтроллеров младшего подсемейства
- •Стандартный набор операций алу микроконтроллеров PlCmicro
- •12.3. Среднее подсемейство picMicro
- •12.5. Старшее подсемейство picMicro
- •12.6 Архитектура микроконтроллеров старшего подсемейства
- •Ввод-вывод данных микропроцессорной системы
- •6.1 Аналоговый ввод/вывод микропроцессорной системы
- •6.2. Таймеры микропроцессорной системы
- •6.3. Параллельный ввод-вывод данных
- •6.2.2. Асинхронный последовательный обмен
- •6.2.3 Синхронный последовательный обмен
- •6.3. Микроконтроллерная сеть
- •6.3.1 Протокол i2c
- •6.3.2. Протокол can
- •Характеристика протокола can
- •Выбор скорости передачи данных исходя из расстояния
- •6.3.3. Протокол rs-485 и rs-422
- •Стандартные параметры интерфейсов rs-422 и rs-485
- •Лекция 7 Микропроцессорные системы управления
- •7.1. Подключение светодиодов
- •7.2. Подключение 7-сегментных светодиодных индикаторов
- •7.3. Ввод с матричной клавиатуры
- •7.4. Управление жидкокристаллическим индикатором
- •7.5. Управление соленоидом и реле
- •7.6. Управление электродвигателем
- •6.5.1. Управление шаговым двигателем
- •7.6. Управление мощной нагрузкой
- •Лекция 8 Цифровая обработка сигналов
- •8.1. Типовые задачи решаемые цос
- •8.2. Способы реализации алгоритмов цос
- •8.3. Структура процессора цифровой обработки сигналов
- •8.4. Пцос с фиксированной и плавающей точкой
- •8.5. Гибридные процессоры
- •Библиографический список
- •Фирмы-производители 8-, 16- и 32-разрядных микроконтроллеров
- •Высокопроизводительные 8-разрядные risc микроконтроллеры семейства avr
- •1.6.2. Система обозначений микросхем производства
- •1.6.3. Система обозначений микросхем производства Motorola
- •1.6.4. Система обозначений микросхем производства
3.3. Язык Ассемблера
Прежде чем начать разработку какого-либо устройства на базе МК очень важно познакомиться с основами программирования на языке Ассемблера.
Чтобы процесс изучения языка, написание и отладка программ на Ассемблере был более простым и понятным, используется два приема. Первый – визуализация процедур выполнения команд процессором. Второй – использование методов структурного программирования, чтобы сделать программы более простыми для чтения и понимания.
Например, формат команды MOV:
Метка: MOV Операнд1, Операнд2 ;комментарии
Алфавит Ассемблера включает большие и малые буквы латинского алфавита, символ подчеркивания (который также считается буквой), цифры и спецсимволы. По умолчанию различий между большими и малыми буквами не делается. Буквы кириллицы допустимы только в комментариях и в значениях символьных переменных и констант.
Каждая команда или директива пишется с отдельной строчки и состоит из четырех необязательных полей, отделяемых друг от друга любым количеством пробелов.
Формат команды:
Метка: Мнемокод Операнды ;Комментарий
Формат директивы:
Имя Мнемокод Операнды ;Комментарий
Визуализацию выполнения команд лучше всего осуществить, используя структурную схему МП или МК, на которой отмечается прохождение данных при выполнении каждой команды. В результате обеспечивается хорошее визуальное представление процесса выполнения команд.
Далее представлен листинг программы на языке ассемблера для МК AVR, которая включает светодиод при нажатии кнопки.
;***** Демонстрация использования светодиодов и кнопок в составе STK500
.include "8515def.inc"
.def Temp =r16 ; Регистр хранения временных данных
.def Delay =r17 ; Переменная 1 для генерации задержки
.def Delay2 =r18 ; Переменная 2 для генерации задержки
;***** Инициализация
RESET:
ser temp
out DDRB, temp ; Настройка порта В (PORTB) на вывод
;**** Тестирование ввода/вывода
LOOP:
out PORTB,temp ; Обновление состояния светодиодов
sbis PIND,0x00 ; Если PortD.0 = 0,
inc temp ; то уменьшение на 1 двоичного кода, формируемого свечением светодиодов
sbis PIND,0x01 ; Если PortD.1 = 0,
dec Temp ; то увеличение на 1 двоичного кода, формируемого свечением светодиодов
sbis PIND,0x02 ; Если PortD.2 = 0,
ror Temp ; то циклический сдвиг состояния светодиодов на 1 вправо
sbis PIND,0x03 ; Если PortD.3 = 0,
rol Temp ; то циклический сдвиг состояния светодиодов на 1 влево
sbis PIND,0x04 ; Если PortD.4 = 0,
com Temp ; то инверсия состояния всех светодиодов
sbis PIND,0x05 ; Если PortD.5 = 0,
neg Temp ; то инверсия состояния и прибавление 1
sbis PIND,0x06 ; Если PortD.6 = 0,
swap Temp ; то обмен тетрадами светодиодов
;**** Далее необходима задержка, чтобы сделать проделанные изменения видимыми
DLY:
dec Delay
brne DLY
dec Delay2
brne DLY
rjmp LOOP ; Повторение цикла заново
Применение некоторых методов структурного программирования делает ассемблерные программы более удобными для чтения.
Один из этих методов заключается в том, чтобы разделять функциональные блоки программного текста пустыми строками.