Главная страница
Навигация по странице:

  • Цель работы

  • Контрольные вопросы 1. Приведите основные характеристики микроконтроллера ATmega16.Ответ.

  • Обозначение Номер вывода Тип вывода Описание

  • Вычислительные системы и сети. Лабораторная работа 6 по дисциплине Вычислительные системы и сети Вариант 25


    Скачать 0.53 Mb.
    НазваниеЛабораторная работа 6 по дисциплине Вычислительные системы и сети Вариант 25
    АнкорВычислительные системы и сети
    Дата19.09.2022
    Размер0.53 Mb.
    Формат файлаdoc
    Имя файлаPerepelkin_Igor_Sergeevich_ATPbz_21_1.doc
    ТипЛабораторная работа
    #685100

    МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ

    РОССИЙСКОЙ ФЕДЕРАЦИИ

    Федеральное государственное бюджетное образовательное учреждение

    высшего образования
    ИРКУТСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ

    ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

    Кафедра Вычислительные системы и сети

    Лабораторная работа №6 по дисциплине

    «Вычислительные системы и сети»

    Вариант 25

    Выполнил:

    студент группы: АТПбз_21_1 ________ Перепелкин И.С.

    (шифр группы) (подпись)
    Проверил:

    доцент каф. ТОМП: ______________ Беломестных А.С

    (подпись)

    Иркутск 2022

    Цель работы: Изучение основ программирования и отладки программ на микроконтроллере ATmega16.

    Используемое оборудование и средства: персональный компьютер, пакет «AVR Studio 4.0».

    Задание 1

    В поле программы записан код, представленный в лабораторной работе (рисунок 1.1). Исходя из задания, были устранены ошибки в написании кода, результат – на рисунке 1.2.



    Рисунок 1.1 Неверный код программы


    Рисунок 1.2 Код с исправленными ошибками
    Результат работы программы, а также время её выполнения представлены на рисунке 1.3:



    Рисунок 1.3 Результат работы программы
    Далее необходимо выполнить оптимизацию кода, с целью сокращения времени выполнения команд. Из данного кода можно убрать команду “nop” и “clr r16”. Кроме того, повысим частоту до 16МГц. Результаты работы – на рисунке 1.4:



    Рисунок 1.4 Работа программы после оптимизации
    В результате оптимизации программы, её быстродействие возросло и время выполнения стало 0,25мкс.

    Задание 2.

    Написать и отладить программу по выполнию заданной арифметической (логической) операции. Результат поместить в регистр R18 и вывести в заданный параллельный порт (PortХ). Ввод константы b выполнить с заданного порта (PortY). Параметры индивидуального задания выбираются из табл. 2.

    Таблица 2.1 Индивидуальное задание

    Константа a

    Константа b

    Константа с

    Операция

    Тактовая частота МК (МГц)

    Порт вывода X

    Порт ввода Y

    14

    11

    118

    a*b-c/8 (арифм.)

    1

    D

    B


    Для выполнения заданной операции, написана и отлажена программа. Результат помещен в регистр R18 и выведен заданный порт по заданию. Ввод константы b выполнен с заданного в задании порта. Заданные параметры приведены в таблице 2.1. Код и результат работы программы приведен на рисунках 2.5-2.8.


    Рисунок 2.5 Код программы и компиляция


    Рисунок 2.6 Окно Watch


    Рисунок 2.7 Окно I/O View


    Рисунок 2.8 Окно Processor
    Таблица 2.2 Время выполнения команд

    Операция

    Время (us)

    clr

    1

    ser

    2

    out

    3

    out

    4

    ldi

    5

    ldi

    6

    in

    7

    lsr

    8

    lsr

    9

    lsr

    10

    mul

    12

    sub

    13

    mov

    14

    out

    15

    Общее время выполнения

    15

    Сделаем проверку.



    Программа составлена и выполняется правильно.
    Вывод: в процессе выполнения лабораторной работы, получены практические навыки работы в среде AVRStudio 4 (составление, отладка, тестирование кода на языке ассемблер) для микроконтроллера ATmega16.

    Программа работает без ошибок.
    Контрольные вопросы

    1. Приведите основные характеристики микроконтроллера ATmega16.

    Ответ.

    Промышленностью выпускается множество различных МК, в данной работе будет использоваться МК ATmega16 фирмы Atmel. Это восьмиразрядный МК, изготовленный по малопотребляющей КМОП-технологии и имеющий усовершенствованную RISC-архитектуру. Благодаря этому он имеет высокое быстродействие и низкое энергопотребление.

    • AVR RISC-архитектура - архитектура высокой производительности и малого потребления;

    • система команд содержит 130 инструкций, большинство которых выполняется за один машинный цикл;

    • единый 16-разрядный формат команд;

    • производительность 16 MIPS на частоте 16 Мгц;

    • наличие аппаратного умножителя;

    • 16 Кбайт Flash ПЗУ программ, с возможностью до 1000 циклов стирания/записи;

    • 512 байт ЭСППЗУ (EEPROM) данных, с возможностью до 100000 циклов стирания/записи;

    • 1 Кбайт оперативной памяти (SRAM);

    • возможность программирования непосредственно в целевой системе через последовательные интерфейсы SPI и JTAG;

    • возможность самопрограммирования;

    • возможность внутрисхемной отладки в соответствии со стандартом IEEE 1149.1 (JTAG);

    • различные способы синхронизации: встроенный RC-генератор с внутренней и внешней задающей RC-цепочкой или с внешним резонатором (пьезокерамическим или кварцевым); внешний сигнал синхронизации;

    • 6 режимов пониженного энергопотребления (Idle, ADC Noise Reduction, Power-save, Power-down, Standby и Extended Standby);

    • детектор снижения напряжения питания (BOD);

    • программное снижение частоты тактового генератора;

    • 21 источник прерываний (внутренних и внешних);

    • многоуровневая система прерываний, поддержка очереди прерываний;

    • возможность защиты от несанкционированного чтения и модификации памяти программ и данных;

    • загрузочный сектор с независимыми битами защиты;

    • возможность чтения памяти программ во время ее записи;

    • два 8-разрядных таймера/счетчика с предварительным делителем частоты и режимом сравнения;

    • 16-разрядный таймер/счетчик с предварительным делителем частоты, режимом сравнения и режимом внешнего события;

    • сторожевой таймер WDT;

    • четыре канала генерации выходных ШИМ-сигналов;

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

    • 8-канальный 10-разрядный АЦП как с несимметричными, так и с дифференциальными входами;

    • полнодуплексный универсальный синхронный/асинхронный приемопередатчик USART;

    • последовательный синхронный интерфейс SPI, используемый также для программирования Flash-памяти программ;

    • последовательный двухпроводный интерфейс TWI (аналог I2C)

    • 32 программируемые линии ввода/вывода с уровнями ТТЛ; на эти линии выведена также поддержка периферийных функций;

    • напряжения питания 2.7 … 5.5 В.


    2. Охарактеризуйте назначение выводов микроконтроллера ATmega16.

    Ответ.

    В таблице 1 представлен электрический интерфейс микроконтроллера ATmega16. Тип вывода условно обозначен как: “I” – вход, “O”– выход, “I/O”– двунаправленный вывод, который может работать как вход или как выход в зависимости от режима или настройки, “P”– потенциальный вывод (например, напряжение питания).
    Таблица 1

    Описание выводов микроконтроллера AVR ATmega16(L)

    Обозначение

    Номер
    вывода

    Тип вывода

    Описание

    XTAL1

    13

    8

    I

    Вход тактового генератора

    XTAL2

    12

    7

    O

    Выход тактового генератора



    9

    4

    I

    Вход сброса

    AREF

    32

    29

    P

    Вход опорного напряжения для АЦП

    AGND

    31

    28

    P

    Общий вывод (аналоговый)

    AVCC

    30

    27

    P

    Вывод источника питания АЦП

    GND

    11

    6, 18, 39

    P

    Общий вывод

    VCC

    10

    5, 17, 38

    P

    Вывод источника питания

    PA0 (ADC0) - PA7 (ADC7)

    40 - 33

    37 - 30

    I/O

    A0 – А7 (Вход канала 0–7 АЦП)

    PB0 (T0/XCK)

    1

    40

    I/O

    B0 (Вход внешнего тактового сигнала таймера/счетчика Т0 / Вход/выход тактового сигнала USART)

    PB1 (T1)

    2

    41

    I/O

    B1 (Вход внешнего тактового сигнала таймера/счетчика Т1)

    PB2 (AIN0/INT2)

    3

    42

    I/O

    B2 (Положительный вход компаратора / Внешнее прерывание)

    PB3 (AIN1/OC0)

    4

    43

    I/O

    B3 (Отрицательный вход компаратора / Выход таймера/счетчика Т0 (режимы Compare, PWM))

    PB4 ( )

    5

    44

    I/O

    B4 (Выбор Slave-устройства на шине SPI)

    PB5 (MOSI)

    6

    1

    I/O

    B5 (Выход (Master) или вход (Slave) данных модуля SPI)

    PB6 (MISO)

    7

    2

    I/O

    B6 (Вход (Master) или выход (Slave) данных модуля SPI)

    PB7 (SCK)

    8

    3

    I/O

    B7 (Выход (Master) или вход (Slave) тактового сигнала модуля SPI)

    PC0 (SCL)

    22

    19

    I/O

    C0 (Тактовый сигнал модуля TWI)

    PC1 (SDA)

    23

    20

    I/O

    C1 (Линия данных модуля TWI)

    PC2 (TCK)

    24

    21

    I/O

    C2 (Тактовый сигнал JTAG)

    PC3 (TMS)

    25

    22

    I/O

    C3 (Выбор режима JTAG)

    PC4 (TDO)

    26

    23

    I/O

    C4 (Выход данных JTAG)

    PC5 (TDI)

    27

    24

    I/O

    C5 (Вход данных JTAG)

    PC6 (TOSC1)

    28

    25

    I/O

    C6 (Выход для подключения резонатора к таймеру/счетчику Т2)

    PC7 (TOSC2)

    29

    26

    I/O

    C7 (Вход для подключения резонатора к таймеру/счетчику Т2)

    PD0 (RXD)

    14

    9

    I/O

    D0 (Вход USART)

    PD1 (TXD)

    15

    10

    I/O

    D1 (Выход USART)

    PD2 (INT0)

    16

    11

    I/O

    D2 (Вход внешнего прерывания)

    PD3 (INT1)

    17

    12

    I/O

    D3 (Вход внешнего прерывания)

    PD4 (OC1B)

    18

    13

    I/O

    D4 (Выход B таймера/счетчика Т1 (режимы Compare, PWM))

    PD5 (OC1A)

    19

    14

    I/O

    D5 (Выход A таймера/счетчика Т1 (режимы Compare, PWM))

    PD6 (ICP)

    20

    15

    I/O

    D6 (Вход захвата таймера/счетчика Т1 (режим Capture))

    PD7 (OC2)

    21

    16

    I/O

    D7 (Выход таймера/счетчика Т2 (режимы Compare, PWM))



    3. Поясните принципы управления портами МК.

    Ответ.

    Каждый порт МК состоит из определенного числа выводов, через которые МК может принимать и посылать данные. МК ATmega16 имеет четыре 8-разрядных порта ввода/вывода – A,B,C и D. Обращение к портам происходит через регистры в/в. Для каждого порта их существует три:

    Регистр данных порта – PORTx (PORTA, PORTB, PORTC, PORTD)

    Регистр направления данных – DDRx (DDRA, DDRB, DDRC, DDRD)

    Регистр выводов порта – PINx (PINA, PINB, PINC, PIND)

    Названия регистров получаются заменой x на имя порта – A, B, C или D.

    Каждый разряд регистра DDRx определяет направление передачи данных через контакт (pin) порта в/в. Если он установлен в 1, то вывод порта является выходом, если сброшен в 0 – входом.

    Разряды регистра PORTx, при конфигурировании соответствующего вывода на выход, определяют состояние вывода: если разряд устанавливается в 1, на выводе устанавливается напряжение высокого уровня, если 0 – низкого. Если порт сконфигурирован на ввод, то разряд PORTx определяет состояние внутреннего подтягивающего резистора – при установке разряда в 1 внутренний резистор подключается между выводом МК и проводом питания.

    Состояние выводов МК может быть получено путем чтения регистра PINx, при этом неважно, как сконфигурированы эти выводы – на вход или на выход.

    Необходимо помнить, что записать данные в порт в/в можно только из РОН.
    4. Укажите алгоритм подготовки и отладки программ в среде «AVR Studio»

    Ответ.

    Подготовка и отладка проекта осуществляется в среде пакета AVR Studio.

    При запуске AVR Studio появляется окно Welcome to AVR Studio 4, где можно выбрать, открыть ли ранее сохраненный проект, или создать новый.

    Щелкнув по кнопке New Project, можно вызвать мастер создания проектов

    Следует задать имя проекта (Project name) и его расположение (Location). Щелкнув по кнопке Next, перейдём к следующему окну, где следует выбрать отладочную платформу и модель устройства.

    Щелчок по кнопке Finish завершает мастер создания проекта и открывает главное окно программы.

    Набрав код программы, его можно скомпилировать по кнопке на панели инструментов или F7 на клавиатуре. Если компиляция прошла без ошибок, в окне Build появится надпись:

    .

    Если же при компиляции были обнаружены ошибки, компилятор сообщит об этом:



    Нажатие кнопки (или Ctrl+F7) не только скомпилирует код, но и запустит отладчик, при этом ранее недоступные кнопки панели инструментов Debug станут доступными.

    В режиме отладки становится доступным окно Processsor, в котором можно просмотреть содержимое регистров МК, а в окне I/O View можно просмотреть различную информацию о портах в/в.

    Кроме того, в этих окнах можно не только просматривать информацию, но и редактировать её, например, щелкнув по квадратам, обозначающим состояние порта в/в, можно изменить его значение.
    5. Приведите последовательность действий по загрузке программы в отладочную плату.

    Ответ.

    Для программирования МК необходимо выполнить следующие действия:

    1. Подключить программатор к компьютеру и макетной плате (STK 500). STK 500 - универсальная отладочная система фирмы Atmel, облегчающая работу с AVR-микроконтроллерами и обеспечивающая поддержку программирования и отладку программ через параллельный и последовательный интерфейсы.

    2. Скомпилировать программу и убедится в отсутствии ошибок

    3. Нажать кнопку на панели инструментов.

    4. В появившимся окне следует выбрать программатор (STK500 or AVRISP) и порт (Auto), после чего нажать кнопку Connect…

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

    В дальнейшем это окно можно будет вызвать клавишей


    написать администратору сайта