Справочник от Автор24
Поделись лекцией за скидку на Автор24

Специальное программное обеспечение микроконтроллеров

  • 👀 395 просмотров
  • 📌 375 загрузок
  • 🏢️ ЧВВМУ им. П.С.Нахимова
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Специальное программное обеспечение микроконтроллеров» pdf
Черноморское Высшее Военно-Морское училище имени П.С. Нахимова Дисциплина «Цифровые устройства и микропроцессоры» Лекция № 26 ТЕМА: СПЕЦИАЛЬНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ МИКРОКОНТРОЛЛЕРОВ ТЕМА: : СПЕЦИАЛЬНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ МИКРОКОНТРОЛЛЕРОВ Цель : получить знания по особенностям системы команд и специальному программному обеспечению для микроконтроллеров семейства AVR. Вопросы 1.Классификация команд микроконтроллера и особенности их применения. 2.Понятие о языке Ассемблер для микроконтроллеров. 3.Специальные пакеты прикладных программ для работы с МКС. Литература 1.Курс лекций по дисциплине «Информационно-управляющие технологии», Севастополь, ЧВВМУ, 2016 г, лекция № 26 (электронный вариант). 2. Микропроцессорные системы: Уч. пос. / В.Я.Хартов - 2 изд - М.:ИЦ Академия,2014 - 368с. 3. Шпак Ю.А. Программирование на языке С для AVR и PIC микроконтроллеров. –СПб.:»КОРОНА-ВЕК», 2011. -544 с.,ил. 2 1. КЛАССИФИКАЦИЯ КОМАНД МИКРОКОНТРОЛЛЕРА И ОСОБЕННОСТИ ИХ ПРИМЕНЕНИЯ. Система команд микроконтроллеров ATMEL семейства AVR имеет определенные отличия, свойственные всем микроконтроллера. Одной из отличительных особенностей микроконтроллеров AVR является то, что почти все команды выполняются за 1 тактовый цикл. Исключение составляют команды перехода. Это существенно увеличивает производительность микроконтроллера даже при относительно невысокой тактовой частоте. Все команды можно классифицировать на 5 типов: 1. Арифметические команды. 2. Логические команды. 3. Команды перехода. 4. Команды пересылки (передачи) данных. 5. Побитовые команды и команды тестирования битов. 3 2. КЛАССИФИКАЦИЯ КОМАНД МИКРОКОНТРОЛЛЕРА И ОСОБЕННОСТИ ИХ ПРИМЕНЕНИЯ. Команды пересылки данных не требуют выполнения никаких операций над операндами. Операнды просто пересылаются (точнее, копируются) из источника (Source) в приемник (Destination). Источником и приемником могут быть внутренние регистры процессора, ячейки памяти или устройства ввода/вывода. АЛУ в данном случае не используется. Арифметические команды выполняют операции сложения, вычитания, умножения, деления, увеличения на единицу (инкрементирования), уменьшения на единицу (декрементирования) и т.д. Этим командам требуется один или два входных операнда. Формируют команды один выходной операнд. 4 2. КЛАССИФИКАЦИЯ КОМАНД МИКРОКОНТРОЛЛЕРА И ОСОБЕННОСТИ ИХ ПРИМЕНЕНИЯ. Логические команды производят над операндами логические операции, например, логическое И, логическое ИЛИ, исключающее ИЛИ, очистку, инверсию, разнообразные сдвиги (вправо, влево, арифметический сдвиг, циклический сдвиг). Этим командам, как и арифметическим, требуется один или два входных операнда, и формируют они один выходной операнд. Команды переходов предназначены для изменения обычного порядка последовательного выполнения команд. С их помощью организуются переходы на подпрограммы и возвраты из них, всевозможные циклы, ветвления программ, пропуски фрагментов программ и т.д. Команды переходов всегда меняют содержимое счетчика команд. Переходы могут быть условными и безусловными. Именно эти команды позволяют строить сложные алгоритмы обработки информации. 5 2. КЛАССИФИКАЦИЯ КОМАНД МИКРОКОНТРОЛЛЕРА И ОСОБЕННОСТИ ИХ ПРИМЕНЕНИЯ. Команды работы с битами Особую группу команды микроконтроллеров составляют команды для работы с битами. Эта группа команд позволяет обращаться (читать состояние, сбрасывать в 0, устанавливать в 1, инвертировать и т.д.) отдельные биты регистров микроконтроллера. Наличие таких команд связано с относительной ограниченностью аппаратных ресурсов МК и необходимостью точечного управления имеемыми аппаратными средствами при минимальном количестве команд обращения к аппаратным средствам. Системные команды осуществляют разрешение (EI) или запрещение (DI) внешних прерываний, формируют пустую операцию NOP (например для временной задержки), останавливают процессор ( операция HLT). 6 2.Понятие о языке Ассемблер для микроконтроллеров Ассемблер – это инструмент, с помощью которого создаётся программа для микроконтроллера. Ассемблер транслирует ассемблируемый исходный код программы в объектный код, который может использоваться в симуляторах или эмуляторах AVR. Также ассемблер генерирует код, который может быть непосредственно введен в программную память микроконтроллера. При работе с ассемблером нет никакой необходимости в непосредственном соединении с микроконтроллером. Исходный файл, с которым работает ассемблер, должен содержать мнемоники, директивы и метки. 7 2.Понятие о языке ассемблер для микроконтроллеров. Перед каждой строкой программы можно ставить метку, которая является алфавитно-цифровой строкой, заканчивающейся двоеточием. Метки используются как указания для безусловного перехода и команд условного перехода. Строка программы может быть в одной из четырёх форм: [ Метка:] директива [операнды] [Комментарий] [ Метка:] команда [операнды] [Комментарий] Комментарий Пустая строка Примечение: Символы квадратной скобки […]означают, что использование элемента необязательно. Комментарий имеет следующую форму: ; [Текст] Таким образом любой текст после символа “ ; ” игнорируется ассемблером и имеет значение только для пользователя. 8 2.Понятие о языке ассемблер для микроконтроллеров. Таким образом любой текст после символа “ ; ” игнорируется ассемблером и имеет значение только для пользователя. Операнды можно задавать в различных форматах: - десятичный: 10, 255 - шестнадцатеричный (два способа): 0х1а или $1а - двоичный: 0b00001010, 0b11111111 - восьмеричный: 010, 077 9 2.Понятие о языке ассемблер для микроконтроллеров. •Директивы ассемблера •Ассемблер поддерживает множество директив. Директивы не транслируются непосредственно в коды операции. Напротив, они используются, чтобы корректировать местоположение программы в памяти, определять макрокоманды, инициализировать память и так далее. То есть это указания самому ассемблеру, а не команды микроконтроллера. 10 ДИРЕКТИВЫ АССЕМБЛЕРА. Директива Описание BYTE Зарезервировать байт под переменную CSEG Сегмент кодов DB Задать постоянным(и) байт(ы) в памяти DEF Задать символическое имя регистру DEVICE Задать для какого типа микроконтроллера компилировать DSEG Сегмент данных DW Задать постоянное(ые) слово(а) в памяти EQU Установите символ равный выражению ESEG Сегмент EEPROM EXIT Выход из файла INCLUDE Включить исходный код из другого файла LIST Включить генерацию .lst - файла NOLIST Выключить генерацию .lst - файла ORG Начальный адрес программы SET Установите символ равный выражению 11 СИНТАКСИС ДИРРЕКТИВ АССЕМБЛЕРА .<директива> Перед директивой должна стоять точка. Иначе ассемблер воспринимает это как метку. .CSEG - Code segment Директива CSEG указывает на начало сегмента кодов. Ассемблируемый файл может иметь несколько кодовых сегментов, которые будут объединены в один при ассемблировании. Синтаксис: .CSEG Пример: .DSEG ; Начало сегмента данных vartab: .BYTE 4 ; Резервируется 4 байта в СОЗУ .CSEG ; Начало сегмента кодов const: .DW 2 ; Записать 0x0002 в программной памяти mov r1,r0 ; Что-то делать 12 2.Понятие о языке ассемблер для микроконтроллеров. Особенности программирования на Ассемблере Память данных почти полностью доступна программе пользователя и большинство команд ассемблера предназначено для обмена данными с ней. Команды пересылки данных предоставляют возможность непосредственной и косвенной адресации ячеек СОЗУ, непосредственной адресации регистров ввода/вывода и регистров общего назначения. Так как каждому регистру сопоставлена ячейка памяти, то обращаться к ним можно не только командами адресации регистров, но и командами адресации ячеек СОЗУ. Например, команда: MOV R10,R15 ; скопировать регистр R15 в регистр R10 делает ; абсолютно то же самое, что и команда: LDS R10,$0015 ; загрузить в регистр R10 содержимое ячейки с ; адресом $0015 13 3.Специальные пакеты прикладных программ для работы с микроконтроллерными системами. Почти каждая фирма - производитель микроконтроллеров разрабатывает интегрированную среду для разработки программного обеспечения микроконтроллеров своего производства. Как правило, эти среды весьма схожи и выполнены по принципу интерфейса в виде Windows-подобных систем. Рассмотрим такую среду на примере среды AVR Studio — интегрированная среда разработки (IDE) для разработки 8- и 32-битных AVR приложений от компании Atmel, работающая в операционных системах Windows NT/2000/XP/Vista/7/8. AVR Studio содержит компилятор C/C++ и симулятор, позволяющий отследить выполнение программы. Текущая версия поддерживает все выпускаемые на сегодняшний день контроллеры AVR и средства разработки. AVR Studio содержит в себе менеджер проектов, редактор исходного кода, 14 ИНТЕГРИРОВАННАЯ СРЕДА РАЗРАБОТКИ Характеристики AVR Studio: Интегрированный компилятор Ассемблер и C/C++; Интегрированный симулятор; При помощи плагина возможна поддержка компилятора GCC в виде сборки WinAVR; Поддержка инструментов Atmel, совместимых с 8-разрядной AVR архитектурой, в том числе AVR ONE!, JTAGICE mkI, JTAGICE mkII, AVR Dragon, AVRISP, AVR ISPmkII, AVR Butterfly, STK500 и STK600; 15 ИНТЕГРИРОВАННАЯ СРЕДА РАЗРАБОТКИ. РАБОЧЕЕ ОКНО AVR STUDIO 4.0 2 1 4 3 – окно проекта «Project». Здесь отображается структура проекта, которая содержит его имя и список подключенных файлов и библиотек ( окно «1»); – центральная рабочая область, в которой осуществляется непосредственно набор программы (окно «2»); – окно текущих сообщений «built» программы (окно «3»); – окно регистров микроконтроллера «I/O View» (окно «4»). 16 ИНТЕГРИРОВАННАЯ СРЕДА РАЗРАБОТКИ. СОЗДАНИЕ ПРОЕКТА. 17 ИНТЕГРИРОВАННАЯ СРЕДА РАЗРАБОТКИ. ПРИМЕР СОЗДАНИЯ ПРОГРАММЫ. ;---------------------------------------------------------------;Пробная программа для микроконтроллера ATMEGA32 ;Входы: PORTB0 ;Выходы: PORTC0...PORTC7 .include "m32def.inc" ;подключение библиотеки контроллера .cseg ;начало сегмента кода .org 0 reset: ldi r16,0xFF out DDRC,r16 clr r16 out DDRB,r16 main: sbis PINB,0 rjmp PINB0_is_0 ldi r16,0xAA out PORTC,r16 rjmp main ;назначение PORTC на вывод ;назначение PORTB на ввод ;если на PINB0=0, то ;переход на "PINB0_is_0" ;иначе вывод на PORTC числа 0xAA (1010 1010) ;далее – возврат на main PINB0_is_0: ;PINB0=0 ldi r16,0x55 ;вывод на PORTC числа 0x55 (0101 0101) out PORTC,r16 rjmp main ;далее – возврат на main ;----------------------------------------------------------------- 18
«Специальное программное обеспечение микроконтроллеров» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ
Получи помощь с рефератом от ИИ-шки
ИИ ответит за 2 минуты

Тебе могут подойти лекции

Смотреть все 55 лекций
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot