Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка по контроллерам.docx
Скачиваний:
3
Добавлен:
23.11.2019
Размер:
841.08 Кб
Скачать

Работа с контроллером

Для запуска контроллера следует подать на специально предназначенные ножки (ножка 10 корпуса контроллера) питающее напряжение и специальные ножки подключить к земле (ножки 11 и 31). Контроллер, используемый в лабораторной работе, ATmega8535-16PU может быть запитан напряжением 4.5-5.5V. Это напряжение надо подать на ножки Vcc(10), AVCC(30). Ножки с названием GND(11 и 31) следует подключить к нулевому значению напряжения на источнике питания. Ножка RESET(9) должна быть либо не подключена, либо подтянута к напряжению питания.

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

Рисунок 1. Расположение и функции ножек контроллера

Работа с портами ввода/вывода

За работу портов ввода/вывода отвечают 3 регистра:

  1. Регистр DDRx отвечает за направление передачи информации, где х- название порта.

Данный регистр доступен как для чтения, так и для записи.

Если в бит регистра записать 1, то соответствующая ножка контроллера будет электрически сконфигурирована на выход, иначе на вход.

Пример:

// Настроим ножки с 0 по 3 порта А контроллера на выход, а ножки с 4 по 7 порта А на вход

// На чипе контроллера на выход будут настроены ножки 37-40 на выход, а ножки 33-36

// настроены на вход.

// Все ножки порта В настроим на выход, ножки порта С все настроим на вход

DDRA=0b1111000;

DDRB=0xFF;

DDRC=0;

  1. Регистр PORTx (где х – название порта) меняет свои функции в зависимости от того, как направлен данных порт. Регистр доступен как для чтения так и для записи.

Если порт сконфигурирован на выход, то если в определенный бит регистра PORTx записать 1, то на ножке контроллера, соответствующей этому биту, будет высокое значение сигнала (в данном случае 5 В). Если в какой-то бит записать 0, то на выходной ножке этого бита будет низкое значение сигнала (т.е. 0 В)

Пример:

// Необходимо, чтобы на ножках 0 и 1 порта А было высокое значение напряжения. Ножки

// порта В должны чередовать высокое и низкое значение напряжений начиная с

// высокого. При этом порты настроены так, как показано в предыдущем примере.

PORTA.0=1;

PORTA.1=1;

PORTA.2=0;

PORTA.3=0;

PORTB=0b01010101;

В случае если порт настроен на вход, этот регистр подключает (если в нужный бит записана 1) подтягивающий регистр к напряжению питания или отключает его (если в нужный бит записан 0).

  1. Регистр PINx, где х – название порта. Данный регистр доступен только для чтения. При обращении к этому регистру он возвращает значения напряжений (в цифровой форме) на ножках этого порта в виде целого числа от 0 до 255 с учетом разряда ножки.

Пример:

// в переменную input_a4 и input_a5 запишем значения напряжения на ножках 4 и 5 порта А

// в переменную input_c запишем значение напряжения на всех ножках порта С. Вышеперечисленные переменные описаны // как глобальные целого типа.

input_a4=PINA.4;

input_a5=PINA.5;

input_c=PINC;

Для демонстрации работы с портами конструктивно на плате соединены (как видно на электрической схеме):

  • Кнопка К6 к ножке 2 порта А

  • Кнопка К7 к ножке 2 порта D

  • Переключатели К8 к ножкам 4 и 5 порта А

  • Фотоинтерраптор D3 к ножке 3 порта А

  • Фотоинтерраптор D4 к ножке 3 порта D

  • Полоска светодиодов: 8 светодиодов (с 0 по 7) подключены к ножкам порта С, два светодиода (8 и 9) подключены к ножкам 6 и 7 порта А соответственно.

Пример программы работы с портами.

Задание: при пересечении фотоинтерраптора D4 должны загореться все светодиоды, подключенные к порту С

Решение:

#include <mega8535.h> // подключения модуля описывающего регистры контроллера ATmega8535

void main(void) // начало главной функции

{

DDRD.4=0; // Настраиваем ножку 4 порта D на вход

DDRC=255; // Настраиваем все ножки порта С на выход

while (1) //начался главный цикл

{

if (PIND.4==1) // если фотоинтерраптор D4 который подключен к ножке 4 порта D пересечен

{ PORTC=0b11111111; } // тогда зажечь всю линейку светодиодов

else // иначе (если фотоинтерраптор не пересечен)

{ PORTC=0b00000000; } // погасить всю линейку светодиодов.

} // конец главного цикла

} // конец главной функции

Порядок выполнения работы №1

  1. Подробно ознакомиться с работой микроконтроллера и способами его программирования;

  2. Подробно ознакомиться с электрической принципиальной схемой лабораторной установки;

  3. Обсудить с преподавателем схемные решения, использованные в лабораторном стенде.

  4. Подключить питание, программатор и включить компьютер.

  5. Просмотреть и уяснить пример написания программы, ее компилирования и прошивки микроконтроллера преподавателем.

  6. Самостоятельно написать предложенную преподавателем программу и записать ее в память микроконтроллера.

  7. Оформить отчет, который должен содержать:

  • Титульный лист;

  • Цель работы и решаемые в процессе работы задачи;

  • Электрическую принципиальную схему устройств, использованных в данной лабораторной работе;

  • Текст кода программы, использованной для работы.

  • Выводы

Контрольные вопросы для лабораторной работы №1:

  1. Где используются микроконтроллеры?

  2. Какое напряжение питания требуется микроконтроллеру для работы?

  3. Каким образом можно записать программу в микроконтроллер?

  4. Как настроить порты ввода-вывода на ввод или на вывод информации?

Порядок выполнения работы №2

  1. Подробно ознакомиться с набором периферийных устройств микроконтроллера;

  2. Ознакомиться с типом и режимами работы АЦП, встроенного в микроконтроллер;

  3. Запрограммировать микроконтроллер программой обрабатывающей сигнал с АЦП микроконтроллера;

  4. Ознакомиться со схемой и настройками обработчика прерываний.

  5. Написать программу, использующую прерывания и прошить этой программой микроконтроллер;

  6. Ознакомиться с режимами работы таймеров-счетчиков, встроенных в микроконтроллер;

  7. Написать программы, использующие каждый режим таймера-счетчика.

  8. Оформить отчет, который должен содержать:

  • Титульный лист;

  • Цель работы и решаемые в процессе работы задачи;

  • Электрическую принципиальную схему устройств, использованных в данной лабораторной работе;

  • Текст кода программы, использованной для работы.

  • Выводы

Контрольные вопросы для лабораторной работы №2:

  1. Какой набор периферийных устройств представлен в данном микроконтроллере?

  2. Какие ножки микроконтроллера могут быть использованы для генерирования внешних прерываний?

  3. В каких режимах может работать Таймер-счетчик 0?

  4. Что означает левое и правое смещение результатов преобразования АЦП микроконтроллера?

Порядок выполнения работы №3

  1. Ознакомиться с принципом управления сервомашинкой;

  2. Написать программу управления сервомашинкой от потенциометра и записать ее в микроконтроллер;

  3. Ознакомиться с работой схемы источника тока на основе операционного усилителя.

  4. Ознакомиться со стендом управления электрогидравлическим следящим приводом.

  5. Внимательно наблюдать за сборкой преподавателем электрогидравлической следящей системы на основе микроконтроллера;

  6. Оформить отчет, который должен содержать:

  • Титульный лист;

  • Цель работы и решаемые в процессе работы задачи;

  • Электрическую принципиальную схему устройств, использованных в данной лабораторной работе;

  • Текст кода программы, использованной для работы;

  • Выводы.

Контрольные вопросы для лабораторной работы №3:

  1. Каким образом два аналоговых сигнала обрабатываются одним АЦП;

  2. В чем преимущества и недостатки использования цифровой и аналоговой схемы управления.