3. Микропроцессорное управление шаговым двигателем с

advertisement
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
________________________________________________________________________________________________
ФИЛИАЛ ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО
БЮДЖЕТНОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ «МЭИ»
В Г. СМОЛЕНСКЕ
В.С. Луферов
В.С. Ковженкин
О. Е. Аверченков
СБОРНИК ЛАБОРАТОРНЫХ РАБОТ
по курсу
«Основы микропроцессорной защиты»
Смоленск
2014
1
УДК 004.3 (076.5)
А19
Утверждено учебно-методическим Советом филиала МЭИ в качестве
Методических указаний для студентов, обучающихся по направлению
«Электроэнергетика и электротехника».
Подготовлено на кафедре Электроэнергетических систем
Рецензент
к.т.н., доцент Смоленского филиала МЭИ И.Е. Митрофанов
Луферов В.С., Ковженкин В.С., О.Е. Аверченков Сборник лабораторных работ
по курсу «Основы микропроцессорной защиты»[Текст]:методические указания/
В.С.Луферов, В.С. Ковженкин, О.Е. Аверченков – Смоленск: РИО филиала МЭИ в
г. Смоленске, 2014. – 24 с.
А19
Работы посвящены ознакомлению с принципом действия и использования
элементной
базы
микропроцессорных
систем
для
построения
защит
электроэнергетической системы на основе однокристальных ВМ семейств AVR.
Программное управление и взаимодействие с внешними устройствами осуществляется
путем реализации стандартных интерфейсов параллельного и последовательного типа.
Учебно-методическое издание
Луферов Виктор Сергеевич
Ковженкин Виктор Сергеевич
Олег Егорович Аверченков
Сборник лабораторных работ
по курсу «Основы микропроцессорной защиты»
Технический редактор М. А. Андреев
Корректор Л. И. Чурлина
Темплан издания филиала МЭИ в г. Смоленске, 2014 г., метод.
Подписано в печать 01.07.2014 г.
Формат 60×84. Тираж 30 экз. Печ.л. 1,5. Усл.печ.л. 1,4.
Издательский сектор филиала МЭИ в г. Смоленске.
214013, г. Смоленск, Энергетический проезд, 1.
© Филиал МЭИ в г. Смоленске, 2014.
2
ВВЕДЕНИЕ
Внедрение новых технологий в современные энергосистемы – это
абсолютная необходимость. Управляемые силовые электронные устройства в
сетях постоянного и переменного тока, гибкие системы передачи
переменного тока способствуют, при их надежности функционирования,
повышению устойчивости электроснабжения.
Все изменения первичного оборудования требуют комплексного
подхода ко вторичным цепям. Развитие цифровых компьютерных технологий
преобразуют системы релейной защиты, автоматики и управления.
Внедрение новых технологий – очень ответственный шаг, для которого
требуется высокое качество инструментальных средств. Любое
интеллектуальное устройство нового поколения для энергетики – это изделие
наукоемкое, которое должно обслуживаться в течении всего срока
эксплуатации специалистами высокой квалификации. Эти специалисты
должны в равной степени быть подготовлены как в области процессов
происходящих в энергетических объектах в нормальных и аварийных
режимах, так и в информационных технологиях. Для повышения уровня
освоения информационных технологий и служит курс микропроцессорные
системы. Методические указания к лабораторным работам простроены таким
образом чтобы студенты выполнив эти работы, были готовы к
самостоятельному творчеству и могли разрабатывать новые устройства на
базе микропроцессоров и микроконтроллеров.
3
1. Введение в программирование ОВМ AVR на языке Си
Домашнее задание
Ознакомиться с рабочим заданием. Изучить часть лекционного курса и
литературу [1,3,4], относящиеся к особенностям программирования ОВМ
AVRMega на языке Си c использованием компилятора AtmelStudio 6.
Ознакомиться с первичным кодом, который генерируется средой разработки.
Обратить внимание на программу Proteus для моделирования электрических
схем.
Разработать три варианта программы на языке СИ:
- мигание через 1 секунду одним из индикаторов порта B;
- поочередное мигание двух индикаторов порта B;
- мигание через 1 секунду сразу пятью индикаторами с использованием
транзисторного ключа pn2222.
Рабочее задание
1. Собрать схему и проверить работоспособность программы в
симуляторе Proteus.
2. Записать работоспособную программу в ОВМ, с использованием
программатора.
3. Собрать схему на макетной плате.
4. После проверки схемы преподавателем подать питание на макетную
плату.
5. Аналогично проверить работоспособность других программ.
Порядок выполнения задания
Открываем Proteus. Для моделирования схемы необходимо сделать
следующие действия:
1. Создать новый проект. Задать имя проекта и путь сохранения.
Завершить первичную настройку проекта.
2. В пункте меню нажать кнопочку
(SchematicCapture).
3. Ознакомиться с горячими кнопками поля построения схем.
4. Во вкладке ComponentMode нажать на кнопочку P.
5. Найти по ключевым словам следующие элементы:
- Резистор – Ключевое слово res.
-Микроконтроллер AVRATMega8 – atmega8.
- Световой индикатор (диод) – led-green.
- Транзисторный ключ –pn2222.
6. Во вкладке TerminalsMode
взять элемент моделирования земли –
GROUND.
7. Собрать схему для подключения диода к порту B (бит по указанию
4
преподавателя) микроконтроллера ATMega8 через резистор 100 Ом
как на Рис.1.
Рис.1. Схема подключения диодного индикатора к микроконтроллеру.
8. Собрав схему в симуляторе Proteus можно приступать к написанию
кода программы.
9. Открыть AtmelStudio 6. Создать новый проект – Файл, Создать,
Создать проект.
10. В
окне
выбираем,
исполняемый
проект
GCCCExecutableProjectC/C++. Задаем имя проекта и путь
расположения.
11.В окне выбора микроконтроллера выбираем ATMega8. После
нажатия кнопки OK среда сгенерирует первичный код.
#include<avr/io.h>//Подключение библиотеки ввода/вывода
intmain(void)
{
while(1)
{
//TODO:: Please write your application code
}
}
12.Чтобы использовать функции задержки [_delay_ms(ms:int),
_delay_us(us:int)] необходимо подключить библиотеку задержек. Это
можно сделать конструкцией #inlude<util/delay.h>, написав ее ниже
конструкции подключения библиотеки ввода вывода.
13.Выше главного цикла программы необходимо выполнить настройку
портов на ввод или вывод, а так же установить уровень логического
нуля или единицы. Настройка портов на выход или вход
5
осуществляется с помощью ключевого слова DDRB для порта B,
DDRC
для
порта
C
и
DDRD
для
порта
D.
Рассмотрим установку порта B на выход. Присвоение заданному биту
порта логической единицы означает, что бит порта настроен на
выход. При присвоении биту порта логического нуля, бит порта
будет настроен на вход. Настройку порта можно сделать несколькими
способами:
a. DDRB = 0b11111111; – установка в двоичном коде.
b. DDRB = 0xFF; – установка в шестнадцатеричном коде.
c. DDRB = 255; – установка в десятичном коде.
d. DDRB |= _BV(PB0); – с помощью функции сдвига.
e. DDRB |= (1<<DDB7)| (1<<DDB6)| (1<<DDB5)| (1<<DDB4)|
(1<<DDB3)| (1<<DDB2)| (1<<DDB1)| (1<<DDB0); – установка
регистрами сдвига – предпочтительнее.
14. После настройки порта B на выход необходимо установить значение
пора: 0 или 1. Это можно сделать с помощью ключевого слова
PORTB. Для установки значения порта действуют те же правила, что
и для установки настроек порта. Задаем значение логического нуля
используя конструкцию PORTB = 0x00;.
15. После настроек порта микроконтроллера можно перейти к
написанию основного кода программы в главном цикле.
Нулевой бит порта B будет зажигать и гасить с помощью оператора
исключающего или – ^. Для задержки между миганиями диода будем
использовать задержку в 1 секунду с помощью функции
_delay_ms(1000);.
16. Для корректной работы функции задержки необходимо задать
частоту работы внутреннего RC генератора. Это необходимо сделать
конструкцией #defineF_CPU 8000000. Данный микроконтроллер
будет работать с тактовой частотой 8МГц.
17. В результате должен получиться такой код программы:
#defineF_CPU8000000 //Установка тактовой частоты
#include<avr/io.h>//Библиотекаввода/вывода для работы с портами
#include<util/delay.h>//Библиотеказадержек
intmain(void)
{
DDRB=0xFF; //Настройка порта Bна выход
PORTB=0x00; //Установка логического нуля на порту B
while(1)//Главный бесконечный цикл
{
//TODO:: Please write your application code
PORTB^=(1<<PB0);//Зажигаем или гасим 0 бит порта B
6
_delay_ms(1000);//Задержка в 1000мс = 1с
}
}
18. Для компилирования полученного результата необходимо нажать
комбинацию клавиш Ctrl+Shift+Bили в меню Построение →
Построить решение. Среда сгенерирует рабочий файл с расширением
hex. Это файл будет лежать в папке Debug, которая находится там же,
где сохранен проект.
19. Сгенерированный файл необходимо подключить к симулятору
Proteus. Для этого в симуляторе на визуальной модели
микроконтроллера ATMega8 нужно нажать правой кнопкой мыши и
зайти в настройки (Editproperties). В свойство ProgramFile
необходимо открыть файл с расширением hex. В свойство
CKSELFuses необходимо указать частоту Int. RC 8MHz и нажать OK.
20.Если вы выполнили все правильно, то диод должен замигать через 1
секунду.
21. Установить микроконтроллер, в программатор, зажав его лапкой
зажима. Подключить программатор к компьютеру через
параллельный порт USB. Запустить программу MiniProProgrammer.
Открыть в программе файл с расширением hex сгенерированный
средой AtmelStudio 6. Нажать кнопочку Programming chip
.
22. После записи программы в микроконтроллер необходимо собрать
схему на макетной плате. После проверки схемы преподавателем
подать питание на контакты.
Контрольные вопросы
Какую структуру имеет программа на Си?
Как организовать бесконечный цикл в программе?
Как в языке Си объявлять константы, переменные, массивы, функции?
Пояснить работу побитовых логических операторов.
7
2. Моделирование работы выключателя
Домашнее задание
Ознакомиться с рабочим заданием и изучить часть лекционного курса,
относящегося к
организации портов ввода/вывода. Ознакомиться с
регистрами входных данных PIN.
Разработать для ОВМ AVRATMEGA8 программу на языке Си для
управления выключателем. Для вывода состояния выключателя
включен/отключен предусмотреть динамическую индикацию двух диодов
(зеленый – отключено, красный – включено). Подключить один бит порта D,
по усмотрению преподавателя, для управления нагрузкой через
транзисторный ключ.
Рабочее задание
1. Собрать схему в симуляторе Proteus (Рис. 2).
2. Написать программу в AtmelStudio 6 и проверить работоспособность
программы.
2. Записать программу в микроконтроллер через программатор.
3. Собрать схему на макетной плате и после проверки преподавателем
подать питание.
4. Изменить схему моделирования (Рис. 2) на схему с одной кнопкой,
написать программу, записать в микропроцессор и смоделировать на
макетной плате.
5. В отчете описать алгоритм работы модели с одной кнопкой.
Рис. 2. Схема моделирования работы выключателя с двумя кнопками
Алгоритм работы схемы
При нажатии кнопки «Включить» загорается красный диод D2,
сигнализирующий включенное состояние выключателя, и диод D3,
означающий нагрузку.
8
При нажатии кнопки «Выключить» загорается зеленый диод D1,
сигнализирующий отключенное состояние выключателя. Диод D2 и
D3должны погаснуть.
Примерный код программы представлен ниже:
#defineF_CPU8000000
#include<avr/io.h>
#include<util/delay.h>
voidpreset(void)
{
DDRB=0x00;
PORTB=0x00;
DDRC=0xFF;
PORTC=0x00;
DDRD=0xFF;
PORTD=0x00;
}
intmain(void)
{
preset();
while(1)
{
if(PINB&(1<<PB0))
{
PORTC|=(1<<PC1);
PORTC&=~(1<<PC0);
PORTD|=(1<<PD0);
_delay_ms(5);//Защитаотдребезга
}
if(PINB&(1<<PB1))
{
PORTC&=~(1<<PC1);
PORTC|=(1<<PC0);
PORTD&=~(1<<PD0);
_delay_ms(5);//Защита от дребезга
}
_delay_us(20);
}
}
9
Контрольные вопросы
Пояснить алгоритм программы управления состоянием выключателя.
Как настроить порты микроконтроллера AVR на вход и выход?
Как получить состояние портов?
Как изменить состояние бита с помощью сдвига?
Для чего нужна защита от дребезга?
Объявление и применение переменных. Типы переменных.
Что такое операторы ветвления? Типы и примеры применения.
Назначение и объявление функций в Си.
10
3. Микропроцессорное управление шаговым двигателем с
использованием драйвера L293D
Домашнее задание
Ознакомиться с рабочим заданием и изучить часть лекционного курса,
относящегося к организации шаговых двигателей. Ознакомиться с
внутренним устройством двигательного драйвера L293D.
Разработать для ОВМ AVRATMEGA8 на языке Си две программы:
1. Управление простым двигателем постоянного тока (Рис.3).
2. Управление шаговым двигателем постоянного тока (Рис.4).
Для управления двигателем использовать 2 кнопки «Вперед» и «Назад».
Рабочее задание
1. Собрать схему в симуляторе Proteus (Рис. 3).
2. Написать программу в AtmelStudio 6 и проверить работоспособность
программы.
3. Записать программу в микроконтроллер через программатор.
4. Собрать схему на макетной плате и после проверки преподавателем
подать питание.
5. Изменить схему моделирования (Рис. 3) на схему с шаговым
двигателем (Рис. 4), написать программу, записать в микропроцессор и
смоделировать на макетной плате.
6. В отчете описать алгоритм работы модели с шаговым двигателем.
Рис. 3. Схема моделирования управления двигателем постоянного тока.
Алгоритм работы схемы
После нажатия кнопки «Вперед» двигатель должен закрутиться по
часовой стрелке, а после нажатия кнопки «Назад» против часовой.
Примерный код программы представлен ниже:
11
#defineF_CPU8000000
#include<avr/io.h>
#include<util/delay.h>
voidpreset(void)
{
DDRB=0x00;
PORTB=0x00;
DDRC=0xFF;
PORTC=0x00;
}
intmain(void)
{
preset();
while(1)
{
if(PINB&(1<<PB0))
{
PORTC|=(1<<PC0);
PORTC&=~(1<<PC1);
_delay_ms(25);//Защитаотдребезга
}
if(PINB&(1<<PB1))
{
PORTC&=~(1<<PC0);
PORTC|=(1<<PC1);
_delay_ms(25);//Защитаотдребезга
}
_delay_ms(20);
}
}
Код программы для управления шаговым двигателем немного сложнее.
Управление шагового двигателя в отличие от обычного двигателя
осуществляется по 4 проводам. Последовательность шагов представлена в
таблице 1.
Шаги
1
2
3
4
Таблица 1. Движение по часовой стрелки ШД по шагам
1 порт
2 порт
3 порт
4 порт
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
При написании программы для управления ШД необходимо учитывать
текущий шаг и смену направления вращения.
12
Рис. 4. Схема моделирования управления шаговым двигателем постоянного тока.
Примерный код управления шаговым двигателем представлен ниже
#defineF_CPU8000000UL
#include<avr/io.h>
#include<util/delay.h>
unsignedcharu=1;
unsignedcharvector=3;
if(PINB&(1<<PC1))
{
if(vector==0)
u=vector_res(u);
intmain(void)
{
preset();
while(1)
{
if(PINB&(1<<PC0))
{
switch(u)
{
case1:
PORTC|=_BV(PC0);
PORTC|=_BV(PC3);
PORTC&=~_BV(PC1);
PORTC&=~_BV(PC2);
u++;
break;
case2:
PORTC&=~_BV(PC0);
PORTC&=~_BV(PC1);
PORTC|=_BV(PC2);
PORTC|=_BV(PC3);
u++;
break;
case3:
PORTC&=~_BV(PC0);
PORTC&=~_BV(PC3);
PORTC|=_BV(PC1);
PORTC|=_BV(PC2);
u++;
break;
case4:
PORTC&=~_BV(PC2);
PORTC&=~_BV(PC3);
PORTC|=_BV(PC0);
PORTC|=_BV(PC1);
u=1;
break;
if(vector==1)
u=vector_res(u);
}
vector=1;
_delay_ms(300);
voidpreset()
{
//Порт В на вход
DDRB=0x00;
PORTB=0x00;
//Порт С на выход
DDRC=0xFF;
PORTC=0x00;
}
charvector_res(charu)
{
switch(u)
{
case1:u=2;break;
case2:u=1;break;
case3:u=4;break;
case4:u=3;break;
}
returnu;
}
}
switch(u)
13
{
case1:
PORTC|=_BV(PC0);
PORTC|=_BV(PC1);
PORTC&=~_BV(PC2);
PORTC&=~_BV(PC3);
u++;
break;
case2:
PORTC&=~_BV(PC0);
PORTC&=~_BV(PC3);
PORTC|=_BV(PC1);
PORTC|=_BV(PC2);
u++;
break;
case3:
PORTC&=~_BV(PC0);
PORTC&=~_BV(PC1);
PORTC|=_BV(PC2);
PORTC|=_BV(PC3);
u++;
break;
case4:
PORTC&=~_BV(PC1);
PORTC&=~_BV(PC2);
PORTC|=_BV(PC0);
PORTC|=_BV(PC3);
}
}
u=1;
break;
}
vector=0;
_delay_ms(300);
}
Контрольные вопросы
Пояснить назначение шагового драйвера L293D.
Диапазон питания микросхемы L293D. В чем различие питания
микросхемы и двигателей через микросхему.
Пояснить возможность питания двух двигателей через L293D.
Пояснить назначение разрешающих входов Enable 1 и Enable 2 шагового
драйвера.
Описать работу программы для управления шаговым двигателем.
Описать назначение оператора выбора switch.
14
4. Подключение LCD дисплея к микроконтроллеру
Домашнее задание
Ознакомиться с рабочим заданием. Просмотреть распиновку выходов
LCD дисплеев. Изучить интерфейс программы CodeVizion.
Разработать программу на языке СИ для вывода информации в среде
CodeVizion. Информация должна содержать номер группы и номер бригады.
Рабочее задание
1. Собрать схему и проверить работоспособность программы в
симуляторе Proteus.
2. Записать работоспособную программу в ОВМ, с использованием
программатора.
3. Собрать схему на макетной плате.
4. После проверки схемы преподавателем подать питание на макетную
плату.
Для работы с LCD дисплеем в CodeVizion существует специальная
библиотека alcd.h. Библиотека имеет набор функций для управления.
Функция lcd_init(16); инициализирует дисплей на 16 символов и очищает его.
Функция lcd_putsf(“text”); выводит статический текст, а lcd_puts(char [] mass);
массив символов char – строку. Подключение LCD дисплея к
микроконтроллеру осуществляется по 7 портам. Три порта управления и
четыре порта данных.
Рис. 5. Схема подключения LCD дисплея к микроконтроллеру.
Настроить конфигурацию микроконтроллера для подключения LCD к
порту D необходимо во вкладке меню «Проект» →Configure → CCompiler→
15
Libraries→AlphanumericLCD (alcd.h) → Установить галочку Enable.
Примерный код программы представлен ниже:
#include<io.h>
#include<delay.h>
#include<alcd.h>
voidpreset()
{
DDRD=0xFF;
PORTD=0x00;
lcd_init(16);
}
voidmain(void)
{
preset();
while(1)
{
lcd_gotoxy(0,0);
lcd_putsf("Laboratorka 4");
lcd_gotoxy(0,1);
lcd_putsf("Brigada 12");
}
}
Контрольные вопросы
В чем состоит отличие сред разработки CodeVizion и AtmelStudio?
Функции для управления LCD дисплеем.
Преимущества и недостатки LCD дисплеев.
Назначение выходов LCD дисплея (распиновка 14 выходов).
Как подключать LCD к разным портам?
Функции преобразования типа float и int в string.
16
5. Использование встроенного АЦП
Домашнее задание
Ознакомиться с рабочим заданием и выданными файлами. Изучить
литературу [3], относящуюся к описанию встроенного АЦП семейства AVR.
Подключить LCD дисплей для вывода информации с АЦП.
Нарисовать схему подключения входного напряжения и модуля
индикации к процессору.
Разработать программу для реализации чтения встроенного АЦП,
например, один раз в секунду.
Рабочее задание
1. Смоделировать разработанную дома схему в Proteus,загрузить первый
вариант программы в ОВМ с визуализацией результата на индикаторе и
добиться ее правильного функционирования.
Исследовать и нарисовать передаточную характеристику АЦП, задавая
напряжение на входе от 0 до 4 В (с шагом 0,5 В).
Оценить погрешность характеристики и разрешающую способность
АЦП (величину дискреты).
2. Выполнить индивидуальное задание по указанию преподавателя
(изменить частоту оцифровки, запуск по нажатию кнопки и др.).
Контрольные вопросы
В чем преимущества и недостатки различных типов АЦП?
Описать разновидности АЦП и области их применения.
Пояснить принципы действия АЦП разных типов.
Пояснить алгоритмы работы АЦП на основе ЦАП и компаратора.
Чем ограничена разрядность встроенных АЦП?
От чего зависит время преобразования АЦП?
Сравнить особенности внешних и встроенных АЦП.
Зачем во время работы АЦП иногда приостанавливают процессор?
Как задать номер канала или коэффициент усиления встроенного АЦП?
Каков диапазон входного напряжения АЦП?
Какие регистры имеет встроенный АЦП?
17
6. Программное управление семисегментным индикатором
Домашнее задание
Ознакомиться с рабочим заданием и изучить часть лекционного курса и
литературу [5], относящиеся к динамическому обслуживанию индикаторов с
использованием прерывания по таймеру и программным преобразованием
двоичного кода в код управления сегментами.
Разработать для ОВМ ATMega8 три варианта программы на языке Си
для управления :
1. Организовать секундомер или таймер (один внешний ключ пуск/стоп, второй - сброс);
2. Реализовать счет времени (секунды и минуты).
Рабочее задание
1. Смоделировать разработанную схему в Proteus, убедиться в
правильности работы программного кода.
2. Собрать схему на макетной плате и после проверки преподавателем
подать питание. Не подключая семисегментника, проверить правильность
работы с помощью осциллографа.
3. Подключив модуль индикации, добиться правильной работы первого
варианта программы.
4. Аналогично проверить работу другого варианта программы.
5. Выполнить индивидуальное задание по указанию преподавателя
(погасить отдельные индикаторы, мигание индикаторов и др.).
Контрольные вопросы
Пояснить принципиальную схему модуля индикации.
Для чего нужны транзисторы в схеме модуля индикации?
Как описать в программе подключение отдельных сегментов?
Как оформить таблицу для преобразования двоичного кода в код
управления семью сегментами?
Пояснить алгоритм обслуживания динамического индикатора.
Почему при управлении индикатором не следует применять процедуры
программной задержки типа delay?
Как организовать мигание отдельных индикаторов?
18
7. Использование таймеров AVR
Домашнее задание
Ознакомиться с рабочим заданием. Изучить часть лекционного курса и
литературу [2, 3, 5], относящуюся к описанию ОВМ и простейших программ.
Изучить работу таймеров ОВМ и механизм обработки прерываний по
переполнению таймера.
Разработать два варианта программы на языке Си:
1. мигание через 1 секунду одним из индикаторов порта А;
2. «бегущий огонек» на индикаторах порта А.
Используя компилятор AtmelStudio, освоить на примере разработанных
программ получение бинарного файла для загрузки в память ОВМ.
Рабочее задание
1. Смоделировать разработанную схему в Proteus, убедиться в
правильности работы программного кода.
2. Собрать схему на макетной плате и после проверки преподавателем
подать питание. Не подключая диодных индикаторов проверить
правильность работы с помощью осциллографа.
3. Подключив модуль индикации (диод или ленту диодов), добиться
правильной работы первого варианта программы.
4. Аналогично проверить работу другого варианта программы.
5. Выполнить индивидуальное задание по указанию преподавателя
(погасить отдельные индикаторы, мигание индикаторов и др.).
Контрольные вопросы
Какие спец.регистры используются для задания режима работы портов?
Как конфигурировать бит порта на вывод данных?
Как установить, сбросить или инвертировать отдельный бит порта?
Как задать частоту входных импульсов таймеров?
Как осуществить пуск и остановку таймеров?
Как разрешить прерывания по переполнению таймеров?
Как оформить прерывающую процедуру?
Где размещены флажки прерываний и как они сбрасываются?
Как при помощи таймера отсчитать секундный интервал времени?
19
ЛИТЕРАТУРА
1. АВЕРЧЕНКОВ О.Е. Схемотехника: аппаратура и программы. ДМК
Пресс, 2012.– 588 с.
2. ХАРТОВ В.Я. Микроконтроллеры AVR. Практикум. – М.: Изд.
МГТУ им. Баумана, 2007. – 240 с.
3. ПРОКОПЕНКО В.С. Программирование микроконтроллеров ATMEL
на языке С. –К.: МК-Пресс, 2012. – 320 с.
4. ЕВСТИФЕЕВ А.В. Микроконтроллеры AVR семейства Mega. – М.:
«Додэка-XXI», 2007. – 592 с.
5. АВЕРЧЕНКОВ О.Е. Основы схемотехники аналого-цифровых
устройств. – СФМЭИ, 2010.– 56 с.
20
СОДЕРЖАНИЕ
ВВЕДЕНИЕ .................................................................................................. 3
1. Введение в программирование ОВМ AVR на языке Си ..................... 3
2. Моделирование работы выключателя. ................................................. 8
3. Микропроцессорное управление шаговым двигателем
сиспользованием драйвера L293D................................................................... 11
4. Подключение LCD дисплея к микроконтроллеру ............................. 15
5. Использование встроенного АЦП ....................................................... 17
6. Программное управление семисегментным индикатором ............... 18
7. Использование таймеров AVR. ........................................................... 19
ЛИТЕРАТУРА ........................................................................................... 20
21
Download