Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

МИКРОПРОЦЕССОРНЫЕ СРЕДСТВА И СИСТЕМЫ МИКРОПРОЦЕССОРНЫЕ СРЕДСТВА И СИСТЕМЫ Одобрено

Работа добавлена на сайт samzan.net:


МЕТОДИЧЕСКОЕ ПОСОБИЕ

к выполнению лабораторных работ по курсу

«МИКРОПРОЦЕССОРНЫЕ

СРЕДСТВА И СИСТЕМЫ»


МИКРОПРОЦЕССОРНЫЕ

СРЕДСТВА И СИСТЕМЫ»

Одобрено

учебно-методической комиссией филиала ЮУрГУ в г. Златоусте

Т19

Микроконтроллеры: учебное пособие к выполнению лабораторных работ / П.А. Торопыгин, И.Н. Таранов, О.В. Терентьев. – Челябинск: Изд-во ЮУрГУ, 2007. – 59 с.

Издательство ЮУрГУ, 2007

  1.  ТЕХНИЧЕСКОЕ ОПИСАНИЕ ЛАБОРАТОРНОГО КОМПЛЕКСА

Лабораторный модуль (в дальнейшем изложении модуль) предназначен для обучения студентов различных специальностей, изучающих дисциплины по программированию интегральных микроконтроллеров (однокристальных микроЭВМ).

Комплекс предназначен для изучения программирования микроконтроллеров AVR семейства Mega, выпускаемых фирмой Atmel.

  1.  . Состав одного рабочего места обучаемого

Комплекс включает в себя следующие изделия и блоки:

– ПЭВМ (системный блок, монитор, клавиатура, мышь);

– модуль связи с ПК;

– лабораторный модуль «Микроконтроллеры»;

– кабель соединительный «Модуль связи с ПК – ПЭВМ  (COM-port)».      

1.2. Технические данные лабораторного модуля

Масса изделия, кг ………………………………………..…………...не более 1,5

Габаритные размеры изделия, мм…..………………..……не более 255×205×60

Максимальная электрическая мощность, потребляемая                           комплексом, Вт……………………………………………………………...не более 15

Напряжение питания комплекса, В..………………..…….…………………...220

Частота напряжения питания, Гц……………………..….………………..…....50

Тип программируемых микроконтроллеров – АTmega8 фирмы Atmel.

Технические характеристики микроконтроллеров AVR представлены в табл. 1.1, в которой приведены данные и для микроконтроллера АTmega8 [3].

Таблица 1.1

Технические характеристики микроконтроллеров семейства AVR

Тип прибора

Память программ (FLASH) [Кбайт]

Память данных (EEPROM) [байт]

Память данных (ОЗУ)

[байт]

Кол-во линий ввода/

вывода

Напряжение питания

[В]

Тактовая частота

[МГц]

Тип корпуса

ATmega8

8

512

1К

23

4,5…5,5

0..16

DIP-28

TQFP-32

MLF-32

ATmega8L

2,7…5,5

0…8

ATmega8515

8

512

512

35

4,5…5,5

0…16

DIP-40

TQFP-44

PLCC-44

MLF-44

ATmega8515L

2,7…5,5

0…8

Окончание табл. 1.1.

Тип прибора

Память программ (FLASH) [Кбайт]

Память данных (EEPROM) [байт]

Память данных (ОЗУ)

[байт]

Кол-во

линий

ввода/

вывода

Напряжение питания

[В]

Тактовая частота

[МГц]

Тип корпуса

ATmega16

16

512

32

4,5…5,5

0…16

DIP-40

TQFP-44

ATmega16L

2,7…5,5

0…8

ATmega161

16

512

1K

35

4,0…5,5

0…8

DIP-40

TQFP-44

ATmega161L

2,7…5,5

0…4

ATmega162

16

512

1K

35

4,5…5,5

0…16

DIP-40

TQFP-44

MLF-44

ATmega162L

2,7…5,5

0…8

ATmega162V

1,8…3,6

0…1

ATmega163

16

512

1K

32

4,0…5,5

0…8

DIP-40

TQFP-44

ATmega163L

2,7…5,5

0…4

ATmega323

32

1K

2K

32

4,0…5,5

0…8

DIP-40

TQFP-44

ATmega323L

2,7…5,5

0…4

ATmega32

32

1K

2K

32

4,5…5,5

0…16

DIP-40

TQFP-44

MLF-44

ATmega32L

2,7…5,5

0…8

ATmega64

64

2K

4K

53

4,5…5,5

0…16

TQFP-64

ATmega64L

2,7…5,5

0…8

ATmega128

128

4K

4K

53

4,5…5,5

0…16

TQFP-64

ATmega128L

2,7…5,5

0…8

1.3. Структура комплекса и общие принципы работы

Структура комплекса с указанием связей между составляющими комплекса представлена на рис. 1.1. По этому рисунку может осуществляться сборка рабочего места перед проведением лабораторных работ.

Основой рабочего места является ПЭВМ, включающая в свой состав системный блок, монитор, мышь и клавиатуру. Все подключения к ПЭВМ осуществляются через ее штатные разъемы.

В качестве ПЭВМ может быть использован любой компьютер, начиная от 486-го и до самых современных компьютеров, совместимых с архитектурой IBM PC.

Системный блок ПЭВМ, в несетевом варианте работы комплекса, должен включать в себя:

  •   CD ROM;
  •   дисковод для 3,5-дюймовых дискет или USB-порт;
  •   жесткий диск;
  •   EGA, VGA или SVGA видеоплату;
  •   последовательный COM-порт.

Рис. 1.1. Структурная схема лабораторного комплекса

Лабораторный модуль представляет собой программно-аппаратный комплекс и может работать на всех IBM-совместимых компьютерах. Программная часть комплекса работает под управлением «Windows».

Лабораторный модуль подключается к компьютеру через последовательный COM-порт.

Питается лабораторный комплекс от сети 220 В, 50 Гц, подключается к сети посредством евровилки (с заземлением), потребляемая мощность не более 15 Вт.

Микроконтроллер ATmega8 оснащен внутрисистемной программируемой Flash памятью емкостью 8 Кбайт и 512 байтами EEPROM памяти данных. В данном лабораторном модуле предусматривается использование программирования Flash памяти в режиме низковольтного программирования. Этот режим является обычным способом загрузки программы и данных в микроконтроллер, находящийся непосредственно в системе пользователя. Число перепрограммирований Flash памяти – 1000, а EEPROM – 100 000.

Внешний вид лабораторных модулей представлен на рис. 1.2 – 1.5.


Рис. 1.2. Внешний вид лабораторного модуля «Микроконтроллеры»: 1 – блок семисегментных индикаторов с дешифратором; 2 – порты ввода/вывода;                        3 – пъезоизлучатель; 4 – сопряжение по протоколу UART; 5 – блок семисегментных индикаторов для изучения динамической индикации; 6 – выводы семисегментного индикатора; 7 – блок формирования аналогового сигнала (реализация ЦАП)

Рис. 1.3. Внешний вид лабораторного модуля «Задание сигналов и логические   элементы»: 1 – блок задания логических сигналов; 2 – блок задания сигналов без дребезга; 3 – логические элементы; 4 – светодиодная индикация; 5 – коннекторы

Рис. 1.4. Внешний вид лабораторного модуля «Модуль питания и измерений»: 1 – семисегментные индикаторы вывода результата измерения тока и напряжения; 2 – децимальная точка вывода старшего разряда; 3 – гнезда для включения измерительного прибора в цепь исследуемой схемы; 4 – регуляторы напряжений; 5 – светодиод, индицирующий наличие напряжения питания; 6 – тумблер включения питания лабораторного комплекса

Функционально лабораторный модуль «Микроконтроллеры» состоит из трёх частей: платы контроллера, платы индикации и платы сопряжения с ПК (платы программатора). Упрощенная схема электрическая принципиальная модуля представлена в прил. А.

В верхней части лабораторного модуля приведено расположение выводов микроконтроллера ATmega8. В скобках дано функциональное назначение отдельных выводов микроконтроллера (в частности: предназначенных для программирования – SCK, MISO, MOSI; для ввода аналоговых сигналов – ADC0…ADC5; для последовательного приема и передачи данных – RXD, TXD).

Блоки семисегментных индикаторов HL1, HL2, HL3, HL4 (см. прил. А), расположенных слева и справа от изображения микроконтроллера, предназначены для вывода цифровой  информации с микроконтроллера. Для уменьшения числа занятых выводов, в одном из блоков используются семисегментные дешифраторы двоичного кода DD2 и DD3, четырехразрядные входы которых соединены с портами микроконтроллера PB2…PB5, PC2…PC5.

С помощью регуляторов напряжений и вольтметра, расположенных в модуле «Модуль питания и измерений», осуществляется плавное регулирование выходного напряжения в диапазоне 0…5 В. Контроль напряжения осуществляется с помощью вольтметра, на вход которого подается измеряемая величина. Выходы блока задания напряжения можно соединить со входами аналоговых сигналов ADC0…ADC5 или компаратора AIN0 и AIN1, выведенных на лицевую панель лабораторного модуля.

Рис. 1.5. Внешний вид лабораторного модуля «Функциональный генератор»: 1 – семисегментные индикаторы; 2 – кнопки для выбора необходимого диапазона частот; 3 – кнопка выбора режима работы встроенного частотомера; 4 – регулятор скважности; 5 – тумблер включения режима изменения скважности или несимметрии сигнала; 6 – гнездо для подачи входного сигнала; 7 – регулятор плавной установки частоты; 8 – гнездо  выхода основного сигнала; 9 – тумблер включения питания; 10 – регулятор амплитуды выходного сигнала; 11 – регулятор смещения выходного сигнала постоянным напряжением; 12 – тумблер переключения полярности смещения выходного сигнала; 13 – кнопки выбора необходимой формы выходного сигнала; 14 – индикатор размерности частоты/периода сигнала; 15 – индикатор «Период» режима работы частотомера; 16 – кнопка переключения режима измерения частоты или периода; 17 – индикатор «Частота»

Блок пьезоизлучателя предназначен для вывода звуковых частот, для чего на его вход можно подавать прямоугольное напряжение заданной частоты.

Светодиоды для индикации логических уровней, расположенные на модуле «Задания сигналов и логические элементы», могут быть соединены или с выводом микроконтроллера, или с блоком задания логических уровней и сигналов.

Для задания логического сигнала (логического нуля или логической единицы) предназначены тумблеры SA1–SA10. С помощью кнопок SB3 и SB4 осуществляется подача перехода логического сигнала из 1 в 0 (       ), а с помощью кнопок SB1 и SB2 – из 0 в 1 (       ).

При помощи модуля «Функциональный генератор» осуществляется подача последовательности импульсов с заданными частотами. При помощи регулятора «Частота» возможно плавное регулирование частоты импульсов от 0 Гц до 1 МГц.

Коммутирование осуществляются при помощи набора соединительных проводников, входящих в комплект лабораторного комплекса.

На задней стороне модуля расположен разъем для подключения к COM-порту ПК. На передней панели модуля «Микроконтроллеры» расположен разъем  с выводами микроконтроллера RxD и TxD, предназначенных для обмена и сбора информации микроконтроллером и внешним устройством или управления внешним устройством по протоколу UART.

2. ПОРЯДОК ВЫПОЛНЕНИЯ ЛАБОРАТОРНЫХ РАБОТ

  1.  К выполнению лабораторных работ студент может приступить после инструктажа по технике безопасности в лаборатории (о чем студент расписывается в журнале по технике безопасности).
  2.  Получить задание на лабораторную работу (свой вариант).
  3.  Перед проведением лабораторных работ студент должен изучить техническое описание лабораторного стенда, ознакомиться с назначением основных элементов, принципиальной схемой лабораторного модуля, последовательностью подготовки и проведения лабораторных работ [5].
  4.  Изучить теоретический материал, достаточный для выполнения лабораторной работы. Ответить на контрольные вопросы и получить у преподавателя разрешение к проведению лабораторной работы.
  5.  Измерительные приборы и аппаратура используются только по их прямому назначению. Студенты несут материальную ответственность за поврежденные по их вине приборы и аппараты.
  6.  Сборка электрической цепи и любые изменения в ней осуществляются при отключенных источниках электропитания.
  7.  Перед написанием программы студент анализирует поставленную задачу и разрабатывает алгоритм. Алгоритм может быть представлен в виде блок-схемы, помогающей при программировании не упустить какие-либо операции, переходы и зацикливания в программе. Примеры алгоритмов и тексты программ приведены в описании лабораторных работ.
  8.  Разработка программы на языке ассемблера включает следующие этапы:

а) подготовку исходного текста программы;

б) компиляцию программы (получение объектного кода);

в) отладку программы.

Изменение текста программы в ассемблере AVR Studio (прил. Б) в соответствии со своим заданием.

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

  1.  Программирование микроконтроллера при помощи программы PonyProg (прил. В). О нахождении модуля в режиме программирования свидетельствует загорание светодиода «PROG.» на его верхней панели.
  2.  Сборка схемы лабораторного стенда и выполнение лабораторной работы.
  3.   Работа в лаборатории считается законченной, если

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

б) отключенная цепь после разрешения преподавателя полностью разобрана;

в) рабочее место приведено в порядок.

  1.  Каждый студент оформляет индивидуальный отчет в объеме, указанном преподавателем. Отчет оформляется согласно требованиям ЕСКД и стандартов предприятия. К выполнению следующей лабораторной работы без сдачи отчета о предыдущей работе студент не допускается.

3. ТЕХНИКА БЕЗОПАСНОСТИ ПРИ ВЫПОЛНЕНИИ ЛАБОРАТОРНЫХ РАБОТ

При выполнении лабораторных работ, питание которых осуществляется от сети с напряжением 220 В, на металлических корпусах приборов может, при нарушении изоляции, возникнуть опасное для жизни человека напряжение. В связи с этим студентам не разрешается самостоятельно вскрывать корпуса блоков питания, стендов и производить электромонтажные присоединения в приборах.

При выполнении лабораторных работ студентам запрещается:

курить, осуществлять приём пищи и напитков в лаборатории;

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

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

самостоятельно подключать силовое питание лабораторных стендов;

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

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

приводить в негодное состояние как отдельные комплектующие лабораторного стенда, так и весь стенд в целом;

подавать на стенд сигналы, не предусмотренные данной лабораторной работой;

производить какие-либо переключения на стенде при включенном питании;

уходить из лаборатории по окончании лабораторной работы, не отчитавшись о комплектности стенда и его исправности преподавателю или техническому персоналу.

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

ознакомиться с рабочим местом, проверить наличие необходимых приборов и соединительных проводов (в случае отсутствия какого-либо комплектующего элемента лабораторного стенда необходимо немедленно сообщить об этом преподавателю или техническому персоналу);

если во время проведения опыта замечены какие-либо неисправности оборудования, необходимо немедленно сообщить об этом преподавателю или техническому персоналу;

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

4. Лабораторные работы

4.1. Лабораторная работа № 1                

изучение принципов работы функций ввода/вывода МК

 Цель работы: научиться использовать программные средства, представленные в работе, для осуществления процедур ввода/вывода.

Для создания программы используется программный пакет AVR Studio. Программа позволяет осуществлять ввод двоичного числа в микроконтроллер с ключей SA1–SA4 и вывод этого числа на цифровую индикацию и светодиоды.

Таблица 4.1

Таблица используемых выводов микроконтроллера

Выводы контроллера

Направление передачи

Назначение вывода

PD3 – PD6

Ввод

Двоичный код числа, заносимый в микроконтроллер

PC0, PC1, PB0, PB1

Вывод

Вывод числа на светодиодную индикацию

PB2

Вывод

Вывод числа на цифровую индикацию

Схема электрическая принципиальная и алгоритм  программы,   реализующей   данную   процедуру,   представлены на рис. 4.1 и рис. 4.2 соответственно.

Выводы микроконтроллера, используемые в программе, представлены в табл. 4.1.

Рис. 4.1. Схема электрическая принципиальная лабораторной работы

Рис. 4.2. Алгоритм процедуры ввода/вывода

Текст программы, реализующей процедуры ввода/вывода

.include "m8def.inc"

.org 0x00                     ;начальный адрес программы

start:

cli

ldi r19,high(RAMEND) ;инициализация указателя стека

out SPH,r19

ldi r19,low(RAMEND) ;инициализация указателя стека

out SPL,r19

clr r16

out $11,r16                ;настройка на ввод битов порта D

ldi r16,0b11

out $14,r16

ldi r16,0b111111      ;настройка на вывод битов порта С

out $17,r16               ;настройка на вывод битов порта B

loop:                         ;подпрограмма

in r0,$10                   ;считать с порта D  в регистр r0

ldi r25,0b1111000

and r0,r25

lsr r0                         ;сдвиг вправо в регистре r0

mov r20,r0               ;копирование регистра r0 в r20

lsr r20

lsr r20                       ;два сдвига вправо в регистре r20

mov r21,r20             ;копирование регистра r20 в r21

andi r21,0b0011       ;оставляяет в регистре r21 значения двух младших разрядов

out $15,r21              ;выводит значение регистра r21 в порт С

mov r22,r20             ;коприрование регистра r20 в r22

lsr r22

lsr r22                        ;два сдвига вправо в регистре r22

andi r22,0b0011        ;оставляет в регистре r21 значения двух младших разрядов

add r22,r0                  ;r22=r22+r0

out $18,r22                ;вывод регистра r22 в порт B

  rjmp loop

Для запуска программы под управлением микроконтроллера необходимо создать файл с расширением *.hex (см. прилож. Б). При помощи программного пакета PonyProg, программа заносится в память микроконтроллера.

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

  1.  Изучить материалы лабораторной работы, представленные выше.
  2.  Номера выводов порта для каждого варианта задаются преподавателем.
  3.  Составить алгоритм и программу, позволяющую осуществлять процедуры ввода/вывода в соответствии с вариантом (табл. 4.2), разработать схему электрическую принципиальную в соответствии с заданием [1].
  4.  Осуществить отладку программы в программном пакете AVR Studio.
  5.  Компилировать программу (Ctrl+F7), проверить её на симуляторе (ViewNew IO View).
  6.  Произвести запись программы в память микроконтроллера.
  7.  Соединить проводниками выводы  PD3–PD6 c выводами тумблеров SA1–SA4, выводы PС0–PC1 и PB0–PB1 соединить со светодиодами VD1–VD4  (выводы PB и PC в примере программы настроены на вывод сигнала на светодиоды).  Схема соединений представлена на рис. 4.3.
  8.  Проверить работу программы, изменяя логический уровень на входе порта ввода.
  9.  Составить отчёт по лабораторной работе.

                                                                                                                  Таблица 4.2

Таблица вариантов

Варианты

1

2

3

4

5

6

7

8

Порт ввода

PC0,

PC1

PD2,

PD3

PD4,

PD5

PD3,

PD4

PD5,

PD6

PD6,

PD7

PB2,

PB3

PB1,

PB2

Порт вывода на цифровую индикацию

2..5

PB2..5

PC2..5

PC2..5

PB2..5

PC2..5

PC2..5

PC2..5

Порт вывода на светодиодную индикацию

PD2,

PD3

PC0,

PC1

PB1,

PB2

PB0,

PB1

PC0,

PC1

PB0,

PB1

PD3,

PD4

PD6,

PD7

Контрольные вопросы

  1.  Что собой представляет микроконтроллер ATmega8?
    1.  Перечислите основные особенности микроконтроллеров AVR семейства Mega.
    2.  Перечислите основные параметры данного микроконтроллера.
    3.  Перечислите периферийные устройства, входящие в состав микроконтроллера семейства Mega.
    4.  Последовательность действий выполнения лабораторной работы.
    5.  Приведите условно-графическое обозначение гнезда и штыря.
    6.  Приведите условно-графическое обозначение кнопки и тумблера.
    7.  Изобразите схему электрическую принципиальную включения элемента индикации при помощи тумблера и кнопки.

Рис. 4.3. Схема соединений лабораторных модулей  

4.2.  Лабораторная работа № 2                                                                         изучение логических операций

Цель работы: научиться использовать программные средства, представленные в лабораторной работе, для создания и отладки программы, выполняющей логические операции [6].

Алгоритм программы, реализующий логическую операцию «И», представлен на рис. 4.4.

Выводы микроконтроллера, используемые в программе, представлены в табл. 4.3.

Таблица 4.3

Таблица используемых выводов микроконтроллера

Выводы контроллера

Направление передачи

Назначение вывода

PB0, PC0

Ввод

Разряды, заносимые в микроконтроллер

PD2

Вывод

Вывод результата на светодиодную индикацию

Текст программы, реализующей операцию логическое «И»

.include " m8def.inc"

.org 0x00                       ;начальный адрес программы

rjmp start

start:

cli

ldi r19,high(RAMEND) ;инициализация указателя стека

out SPH,r19

ldi r19,low(RAMEND)

out SPL,r19  

clr r16

out ddrb,r16                 ;настройка на ввод бита порта B0

out ddrc,r16                 ;настройка на ввод бита порта С0

ldi r16,0b100

out ddrd,r16                 ;настройка на вывод бита порта D2

loop:

in r0,pinb                     ;загрузка данных из pinb в регистр r0(X1)

in r20,pinc                   ;загрузка данных из pinc в регистр r0(X2)

com r20                       ;

andi r20,0b1                ;инвертирование

and r0,r20                    ;логическое умножение (“И”,конъюнкция)

lsl r0

lsl r0

out portd,r0                 ;вывод из регистра r0 в порт D

rjmp loop

Для запуска программы под управлением микроконтроллера необходимо создать файл с расширением *.hex (см. прил. Б). При помощи программного пакета PonyProg, программа заносится в память микроконтроллера.

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

  1.  Изучить материалы лабораторной работы, представленные выше.
  2.  Составить алгоритм и программу, позволяющую осуществлять логические операции над переменными в соответствии с вариантом (табл. 4.4), разработать схему электрическую принципиальную в соответствии с заданием [7].
  3.  Осуществить отладку программы в программном пакете AVR Studio.
  4.  Компилировать программу (Ctrl+F7), проверить её на симуляторе (ViewNew IO View).
  5.  Произвести запись программы в память микроконтроллера.
  6.  Соединить проводниками выводы  PB0, PС0 c выводами тумблеров SA1–SA2, вывод PD2 соединить со светодиодом VD1. Соединения производить по примеру схемы соединений, представленной на рис. 4.3.
  7.  Проверить работу программы, изменяя логические уровни на входе порта ввода. Составить таблицу истинности.
  8.  Составить отчет по лабораторной работе.

                                                                                                                       Таблица 4.4

Таблица вариантов

Номера портов для ввода/вывода данных брать из таблицы 4.2 (в первой лаб.работе)

Вариант

1

2

3

4

5

6

7

8

Функция

Контрольные вопросы

  1.  Назовите основные операции булевой алгебры. Как они описываются с помощью таблиц истинности; с помощью алгебраических выражений; в словесной форме?
  2.  Что такое таблица истинности? Приведите пример.
  3.  Что такое логическая переменная и логический сигнал? Какие значения они могут принимать?
  4.  Какие логические элементы составляют базовый набор?
  5.  Приведите условно-графическое обозначение базовых логических элементов.
  6.  Что собой представляет микроконтроллер ATmega8?
  7.  Перечислите основные особенности микроконтроллеров AVR семейства Mega.
  8.  Перечислите  основные параметры данного микроконтроллера.
  9.  Перечислите периферийные устройства, входящие в состав микроконтроллера семейства Mega.
  10.    Перечислите группу команд логических операций, которыми располагает данный микроконтроллер.

4.3.  Лабораторная работа № 3     

изучение арифметических операций

Цель работы: научиться использовать программные средства, представленные в лабораторной работе, для создания и отладки программ, выполняющих арифметические операции [8].

Составить программы, которые реализуют операции:

  1.  сложения;
  2.  вычитания;
  3.  умножения;
  4.  сравнения.

Программы используют операнды в виде констант и переменных, введенные с ключей.

Операнды и результат выводятся на цифровую индикацию.

Реализация операции суммирования чисел. Программа суммирует числа с учетом бита переноса.

Алгоритм программы, реализующей операцию вычитания, представлен на рис. 4.5.

Выводы микроконтроллера, используемые в программе, представлены в табл. 4.5.

Таблица 4.5

Таблица используемых выводов микроконтроллера

Выводы контроллера

Направление передачи

Назначение вывода

PD4, PD5;

PD6, PD7

Ввод

Двоичный код двухбитных чисел, заносимый в микроконтроллер

PB1

Вывод

Вывод знака на цифровую индикацию

PB2…PB5

Вывод

Вывод числа на цифровую индикацию

Текст программы, реализующей операцию вычитания

.include " m8def.inc"

.org $000

;функция X1-X2

;ввод PD4, PD5 – вычитаемое; PD6, PD7 – уменьшаемое

;вывод знака на светодиодную индикацию PB1

;вывод числа на цифровую индикацию PB.

ldi r16,0b100

out ddrd, r16

out portd, r16

ldi r16,0b111110

out ddrb, r16

m00:

ldi r16, 0b0

ldi r17, 0b0

ldi r18, 0b0

ldi r19, 0b0

in r16, pind

andi r16, 0b11110000

mov r17, r16

lsr r16

lsr r16

andi r16, 0b110000  ;уменьшаемое

andi r17, 0b110000  ;вычитаемое

cp r16, r17

brge m01

mov r18, r17

mov r17, r16

mov r16, r18

ldi r19, 0b10

m01:

com r17

andi r17, 0b1110000

ldi r18, 0b10000

add r17, r18

andi r17, 0b1110000

add r16, r17

andi r16, 0b1110000

lsr r16

lsr r16

andi r16, 0b1100

or r16, r19

out portb, r16

rjmp m00

Для запуска программы под управлением микроконтроллера необходимо создать файл с расширением *.hex (см. прил. Б). При помощи программного пакета PonyProg программа заносится в память микроконтроллера.

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

  1.  Изучить материалы лабораторной работы, представленные выше.
  2.  Составить алгоритм и программу, позволяющую осуществлять арифметические операции над переменными в соответствии с вариантом       (табл. 4.6), разработать схему электрическую принципиальную в соответствии с заданием.
  3.   Осуществить отладку программы в программном пакете AVR Studio.
  4.  Компилировать программу (Ctrl+F7), проверить её на симуляторе (ViewNew IO View).
  5.  Произвести запись программы в память микроконтроллера с помощью программного пакета PonyProg.
  6.  Соединить проводниками выводы в соответствии с заданием. Соединения производить по примеру схемы соединений, представленной на рис. 4.3.
  7.  Проверить работу программы, изменяя уровень сигнала на входе порта ввода.
  8.  Составить отчёт по лабораторной работе.

Таблица 4.6

Таблица вариантов

Вв Вариант

1

2

3

4

5

6

7

8

Функция

X1·X2

X1–X2

2·X2

X1 – 1

X1·X1

X1+X2

X1+ X1

X1·3

Вводы контроллера

D2,D3

D4,D5

D3,D4

D5,D6

D4,D5

D2,D3

D6,D7

D6,D7

D2,D3

D5,D6

D5,D6

Выводы контроллера

C2..C5

B2..B5

B2..B5

C2..C5

C2..C5

B2..B5

C2..C5

B2..B5

Контрольные вопросы

  1.  Что собой представляет микроконтроллер ATmega8?
  2.  Перечислите основные особенности микроконтроллеров AVR семейства Mega.
  3.  Перечислить основные параметры данного микроконтроллера.
  4.  Перечислите периферийные устройства, входящие в состав микроконтроллера семейства Mega.
  5.  Последовательность действий выполнения лабораторной работы.
  6.  Перечислите группу команд арифметических операций, которыми располагает данный микроконтроллер.
  7.  Приведите условно-графическое обозначение гнезда и штыря.
  8.  Приведите условно-графическое обозначение кнопки и тумблера.
  9.  Изобразите схему электрическую принципиальную включения элемента индикации через тумблер и кнопку.

4.4.  Лабораторная работа № 4                                                                       изучение работы с памятью данных

Цель работы: научиться использовать программные средства, представленные в лабораторной работе, для создания и отладки программ, выполняющих операции с памятью данных.

Составить программу, которая осуществляет последовательную запись и вывод пяти трехбитных чисел. Программа использует переменные, введенные с ключей, и выводит их на цифровую индикацию. Ввод осуществить через выводы PD4…PD6, ввод сигнала внешнего прерывания – PD3 (INT1), а вывод – через PB2…PB5 (табл. 4.7).

Схема электрическая принципиальная и алгоритм программы, реализующей данную процедуру, представлен на рис. 4.6–4.8 соответственно.

Для запуска программы под управлением микроконтроллера необходимо создать файл с расширением *.hex (см. прилож. Б). При помощи программного пакета PonyProg программа заносится в память микроконтроллера.

Таблица 4.7

Таблица используемых выводов микроконтроллера

Выводы контроллера

Направление передачи

Назначение вывода

PD4…PD6

Ввод

Двоичный код числа, заносимый в микроконтроллер

PD3

Ввод

Тактовый сигнал

PB2…PB5

Вывод

Вывод числа на цифровую индикацию

Рис. 4.6. Схема электрическая принципиальная

  

               

           а)                б)

Рис.4.7. Алгоритмы программы, выполняющей операции с памятью данных: а) – подпрограммы ввода;

б) – подпрограммы вывода

 а)       б)

Рис. 4.8. Алгоритмы программы, выполняющей операции с памятью данных:

а – программы; б – внешнего прерывания


Текст программы, выполняющей операции с памятью данных

.include    "m8def "

.org 0x00

 rjmp start

.org 0x002

 rjmp prer

start:

cli

ldi  r19,low(RAMEND)

out SPL,r19

ldi r20,0b111100

out DDRB,r20

ldi r20,0b000000

out DDRD,r20

ldi r21,0b1100

out mcucr,r21

ldi r21,0b10000000

out gimsk,r21

ldi r20,0b0

sei

main:

nop

rjmp main

prer:

sbis pind,3

reti

inc r20

cpi r20,0b1011

brne loop11

ldi r20,0b1

ldi r21,0b0

rcall podpr2

loop11:

cpi r20,0b1

brne loop1

rcall podpr

mov r23,r21

reti

loop1:

cpi r20,0b10

brne loop2

rcall podpr

mov r24,r21

reti

loop2:

cpi r20,0b11

brne loop3

rcall podpr

mov r25,r21

reti

loop3:

cpi r20,0b100

brne loop4

rcall podpr

mov r26,r21

reti

loop4:

cpi r20,0b101

brne loop5

rcall podpr

mov r27,r21

reti

loop5:

cpi r20,0b110

brne loop6

mov r21,r23

rcall podpr2

reti

loop6:

cpi r20,0b111

brne loop7

mov r21,r24

rcall podpr2

reti

loop7:

cpi r20,0b1000

brne loop8

mov r21,r25

rcall podpr2

reti

loop8:

cpi r20,0b1001

brne loop9

mov r21,r26

rcall podpr2

reti

loop9:

cpi r20,0b1010

brne loop10

mov r21,r27

rcall podpr2

loop10:

reti

podpr:

in r21,PIND

andi r21,0b1110000

lsr r21

lsr r21

lsr r21

lsr r21

ret

podpr2:

lsl r21

lsl r21

out PORTB,r21

    ret


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

  1.  Изучить материалы лабораторной работы, представленные выше.
  2.  Составить алгоритм и программу, осуществляющую последовательную запись и вывод пяти трехбитных чисел, в соответствии с вариантом (табл. 4.8), разработать схему электрическую принципиальную в соответствии с заданием [7].

Таблица 4.8

Таблица вариантов

         Вариант

1

2

3

4

5

6

7

8

Константы

0–2

1–3

2–4

3–5

4–6

5–7

6–8

0, 5, 8

  1.  Осуществить отладку программы в программном пакете AVR Studio.
  2.  Компилировать программу (Ctrl+F7), проверить её на симуляторе (ViewNew IO View).
  3.  Произвести запись программы в память микроконтроллера с помощью программного пакета PonyProg.
  4.  Соединения производить в соответствии с заданной схемой, по примеру схемы соединений, представленной на рис. 4.3.
  5.  Проверить  работу  программы.
  6.  Составить отчет по лабораторной работе.

Контрольные вопросы

  1.  Что собой представляет микроконтроллер ATmega8?
  2.  Перечислите основные особенности микроконтроллеров AVR семейства Mega.
  3.  Перечислите основные параметры данного микроконтроллера.
  4.  Перечислите периферийные устройства, входящие в микроконтроллер семейства Mega.
  5.  Последовательность действий выполнения лабораторной работы.
  6.  Приведите условно-графическое обозначение гнезда и штыря.
  7.  Приведите условно-графическое обозначение кнопки и тумблера.
  8.  Какие регистры используются для работы с памятью данных?

4.5. Лабораторная работа № 5                                                                        изучение режимов работы таймера-счетчика

Цель работы: изучить приёмы создания программ, которые позволяют использовать основные режимы работы таймера-счётчика.

Составить программы для следующих функций таймера-счётчика:

1) счётчик событий. Выбор режима, пуск, остановка – вручную, от ключей;

2) таймер, выполнение операции через заданный промежуток времени. Источником тактового сигнала могут служить тактовые импульсы контролера, а также внешние импульсы, переданные на входы Т0, T1;

3) генерация сигнала с широтно-импульсной модуляцией.

Ниже представлен пример работы таймера-счетчика в режиме счетчика внешних событий.

Выводы   микроконтроллера,   используемые     в   программе,   представлены    в табл. 4.9.

Таблица 4.9

Таблица используемых выводов микроконтроллера

Выводы контроллера

Направление передачи

Назначение вывода

PB4

Ввод

Ввод тактового сигнала

PB2…PB5

Вывод

Вывод числа на светодиодную индикацию

Алгоритм программы представлен на рис. 4.9.

Текст программы, выполняющей операции через заданный промежуток времени

.include " m8def.inc"

.org 0x00

 rjmp start

start:

cli

ldi r19,low(RAMEND)

out SPL,r19

ldi r20,0b111100

out DDRB,r20

ldi r20,0b00

out TIMSK,r21

ldi r21,0b10

out TIFR,r21

ldi r21,0b111

out TCCR0,r21

sli

main:

nop

in r20,TCNT0

lsl r20

lsl r20

out PORTB,r20

rjmp main

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

1. Изучить материалы лабораторной работы, представленные выше.

  1.  Составить алгоритм и программу, позволяющую осуществить работу таймера-счётчика в режиме в соответствии с вариантом (табл. 4.10), разработать схему электрическую принципиальную в соответствии с заданием [4].

Таблица 4.10

Таблица вариантов

Вариант

1

2

3

4

Задание

Таймер с выдержкой 5 с (по истечении инвертировать сигнал на светодиоде)

Реализовать “секундомер” со счётом до 9

Счётчик внешних событий (задаём сигнал с кнопки, выводим на динамическую индикацию)

Реализация ЦАП используя режим ШИМ

  1.  Осуществить отладку программы в программном пакете AVR Studio.
  2.  Компилировать программу (Ctrl+F7), проверить её на симуляторе (ViewNew IO View).
  3.  Произвести  запись  программы  в  память  микроконтроллера  с  помощью программного пакета PonyProg.
  4.  Соединения производить в соответствии с заданной схемой, по примеру схемы соединений, представленной на рис. 4.3.
  5.  Проверить  работу программы: для варианта 1 – изменяя значения  на  входе порта ввода и замеряя промежуток времени, через который включится светодиод VD1, для варианта 2 – подав сигнал с выхода МК на RC-цепь и замерить выходное напряжение цифровым вольтметром.
  6.  Составить отчёт по работе.

Контрольные вопросы к лабораторной работе №5

  1.  Что собой представляет микроконтроллер ATmega8?
  2.  Перечислите основные особенности микроконтроллеров AVR семейства Mega.
  3.  Перечислите основные параметры данного микроконтроллера.
  4.  Перечислите периферийные устройства, входящие в состав микроконтроллера семейства Mega.
  5.  Последовательность действий выполнения лабораторной работы.
  6.  Перечислите таймеры-счётчики общего назначения и их основные функции.
  7.  Какие выводы используются для работы таймеров-счётчиков?
  8.  Как осуществляется прерывание от таймеров-счётчиков?
  9.  Приведите примеры основных разрядов регистра TIMSK.
  10.   Приведите примеры основных разрядов регистра TIFR.

4.6. Лабораторная работа № 6                                                                          изучение работы компаратора

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

Составить программу, реализующую режим работы компаратора. Результат сравнения представить в цифровом виде [4].

Выводы микроконтроллера, используемые  в программе, представлены в  табл. 4.11.

Таблица 4.11

Таблица используемых выводов микроконтроллера

Выводы контроллера

Направление передачи

Назначение вывода

PC1

Вывод

Выход

PD6, PD7

Ввод

Входы компаратора

Входами аналогового компаратора являются выводы порта PD6, PD7. Для их использования необходимо сконфигурировать порт на ввод и отключить подтягивающие резисторы. Для этого следует записать единицы в 7 и 6 разряд регистра порта DDRx, а также необходимо записать нули в 7 и 6 разряд регистра порта PORTx. После этого настроить сам компаратор. Для этого необходимо заполнить разряды его регистра управления, в соответствии с табл. 4.12.

Алгоритм программы представлен на рис. 4.10.

Таблица 4.12

Регистр ACSR

Разряд

Название

Описание

7

ACD

Включение компаратора (0 – включён, 1 – выключен)

6

AINBG

Подключение к неинвертирующему входу внутреннего ИОН (0 – не подключён, 1 – подключён)

5

ACO

Результат сравнения (выход компаратора)

4

ACI

Флаг прерывания от компаратора

3

ACIE

Разрешение прерывания от компаратора

2

ACIC

Подключение компаратора к схеме захвата таймера счётчика Т1 (1 – подключён, 0 – не подключён)

1, 0

ACIS1; ACIS0

Условие возникновения прерывания от компаратора

Рис. 4.10. Алгоритм  

программы сравнения

напряжений

Текст программы сравнения аналогового уровня напряжения с заданным уровнем

;подключение файла настроек

.include «m8def.inc»

;описание констант

.EQU Chislo=0b00000000       ;присвоение имени выражению

.EQU Chislo1=0b00000000

.EQU Chislo2=0b00000000

;ввод первый вектор прерывания

.org 0x00                                ;начальный адрес программы

   rjmp start

start:cli

ldi r16,0b11111111

out $14,r16                                  ;настройка на вывод бита порта С1

ldi r16,Chislo

out $11,r16

ldi r16,Chislo1

out $12,r16                                  ;вывод в порт D содержание регистра r16

ldi r16,Chislo2

out $08,r16

loop:                                             ;подпрограмма

nop                                               ;пустой  цикл

nop

nop

nop

nop

in r0,$08                                       ;загрузка данных из $08 в регистр r0           

lsr r0                                             ;сдвиг вправо на 1 бит r0

lsr r0

lsr r0

lsr r0

out $15,r0

rjmp loop                                      ;возврат на подпрограмму loop

rjmp start

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

Изучить материалы лабораторной работы, представленные выше.

Составить алгоритм и программу, позволяющую осуществить преобразование аналогового уровня сигнала в цифровой при помощи компаратора с использованием прерывания в соответствии с вариантом (табл. 4.13), разработать схему электрическую принципиальную в соответствии с заданием.

  1.  Осуществить отладку программы в программном пакете AVR Studio.
  2.  Компилировать программу (Ctrl+F7), проверить её на симуляторе (ViewNew IO View).
  3.  Произвести запись программы в память микроконтроллера.

Таблица 4.13

Таблица вариантов

Параметры

Вариант

1

2

3

Величина аналогового уровня напряжения (В)

1,0

2,0

3,0

Условие генерации запроса на прерывание от компаратора

Изменение состояния выхода компаратора с «1» на «0»

Изменение состояния выхода компаратора с «0» на «1»

Любое изменение состояния выхода компаратора

  1.  Соединить проводниками вывод 0…5 В с PD6, на вывод PD7 подать уровень сигнала необходимый для выполнения лабораторной работы с модуля «Модуль питания и измерений», вывод PC1 соединить с выводом светодиода (VD1–VD6).
  2.  Проверить работу программы, изменяя значения напряжения на входе порта ввода, и определить, при каком уровне входного напряжения светодиод зажигается. Контроль напряжения осуществляется с помощью вольтметра.
  3.  Составить отчёт по работе.

Контрольные вопросы

  1.  Перечислите основные особенности микроконтроллеров AVR семейства Mega.
  2.  Перечислите основные параметры данного микроконтроллера.
  3.  Перечислите периферийные устройства, входящие в состав микроконтроллера семейства Mega.
  4.  Дайте определение компаратора.
  5.  Каковы основные характеристики и параметры компаратора?
  6.  Какие выводы у микроконтроллера ATmega8 используются компаратором?
  7.  Последовательность действий выполнения лабораторной работы.
  8.  С помощью какого регистра можно управлять и осуществлять контроль  над компаратором, основные разряды этого регистра и описание их?
  9.  Как можно изменить порог срабатывания компаратора в данной лабораторной работе?

4.7. Лабораторная работа № 7                                                                        изучение работы АЦП

Цель работы: изучить приёмы создания программ, позволяющих использовать аналого-цифровой преобразователь (АЦП), для оцифровки аналогового сигнала [4].

Составить программу вывода кода числа, соответствующего уровню напряжения, действующего на входе АЦП [8].

АЦП микроконтроллера имеет следующие регистры: регистр данных АЦП – образован двумя регистрами; ADCH (по адресу $05); ADCL (по адресу $04); регистр управления и состояния АЦП – ADCSR (по адресу $06), формат которого представлен в табл. 4.14, регистр управления мультиплексором ADMUX (07).

Таблица 4.14

Формат регистра ADCSR

Разряд

Название

Описание

7

ADEN

Разрешение АЦП (1 – включено, 0 – выключено)

6

ADSR

Запуск преобразования (1 – начать преобразование)

5

ADFR

Выбор режима работы АЦП (0 – одиночное преобразование)

4

ADIF

Флаг прерывания от компаратора

3

ADIE

Разрешение прерывания от компаратора

2…0

ADPS2:ADPS0

Выбор частоты преобразования

В программе используются порты, описание которых приведено в табл. 4.15.

Таблица 4.15

Таблица используемых выводов микроконтроллера

Выводы контроллера

Направление передачи

Назначение вывода

PC0

Ввод

Вход АЦП

PD2–PD4

Вывод

Вывод числа на светодиодную индикацию

Алгоритм программы представлен на рис. 4.11, где K4–K7 – константы сравнения.

      Текст программы, реализующей аналого-цифровое преобразование

;подключение файла настроек

.include "m8def.inc"

;описание констант

.def    fASCIIL = r26

.def    fASCIIH = r27

.def    tAS = r25

;ввод первого вектора прерывания

.org 0x00                                         ;начальный адрес программы

;начало программы работы с АЦП

      rjmp start

.org 0x14

Рис. 4.11 Алгоритм программы, реализующей аналого-цифровое преобразование

Продолжение программы

      rjmp  ADC

start:

ldi r19,high(RAMEND)  ;инициализация указателя стека

 out SPh,r19

ldi r19,low(RAMEND)

out SPl,r19

sei     ;бит глобального прерывания

;**** инициализация АЦП *******

ldi r19,0b10101101  ; ADEN=1,прерывание, одно преобр.

 out adcsr,r19   ; Fadc=Fclc/32 (125 кГц)

ldi r19,0b100000                  ;преобразование 8-разрядное

 out admux,r19

;**** инициализация портов  ******

ldi r19,0x00

out ddrc,r19                             ;настройка на ввод бита порта С

 ldi r19,0xff

 out ddrd,r19                            ;настройка на вывод бита порта D

 sbi adcsr,adsc                              ;сравнение

         loop:                                            ;подпрограмма

         nop                                               ;пустой цикл

         nop

         rjmp loop

         ADC:

 in r19,adcl                          ;загрузка данных из adcl в регистр r19           

mov fASCIIL,r19          ;результат преобразования

 in r19,adch

 mov  fASCIIH,r19  ;в fASCIIL и fASCIIH

       mov  fASCIIL,fASCIIH

 

ldi r20,50

cp r20,fASCIIL                    ;сравнение регистров r20 и r19

  brlo loop2                                ;если содержание регистра r19 больше 50, то  

 ldi r20,0b0000                       переходим на подпрограмму loop2 (для 5В

 mov tAS,r20                             максимальное значение 255, изменяя

 rjmp Exit                                   число можно корректировать величину

                                                             цифрового уровня на светодиодах

         loop2:

 ldi r20,100                             ;если содержание регистра r19 больше 100, то  

 cp r20,fASCIIL                     переходим на подпрограмму loop3

 brlo loop3

ldi r20,0b00100

mov tAS,r20

rjmp Exit 

 

         loop3:

 ldi r20,150                              ;если содержание регистра r19 больше 150, то  

 cp r20,fASCIIL                      переходим на подпрограмму loop4

 brlo loop4

ldi r20,0b01100

mov tAS,r20

rjmp Exit  

        loop4:

ldi r20,0b011100

mov tAS,r20

rjmp Exit  

         Exit:

out portd,tAS

nop

         reti

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

  1.  Изучить материалы лабораторной работы, представленные выше.
  2.  Составить алгоритм и программу, реализующую аналого-цифровой преобразователь с выводом результата преобразования, соответствующего аналоговому сигналу на входе АЦП, на блок динамической индикации.
  3.  Осуществить отладку программы в программном пакете AVR Studio.
  4.  Компилировать программу (Ctrl+F7), проверить её на симуляторе (ViewNew IO View).
  5.  Произвести запись программы в память микроконтроллера с помощью программного пакета PonyProg.
  6.  Соединить проводниками выводы  порта D c выводами блока динамической индикации,  выводы порта В с управляющими выводами блока динамической индикации. Вывод блока задания напряжения 0…5 В соединить с выводом порта С и с входом вольтметра. Изменяя уровень напряжения на входе АЦП, проверить правильность работы программы.   
  7.  Составить отчёт по работе.

Контрольные вопросы

  1.  Что собой представляет микроконтроллер ATmega8?
  2.  Перечислите основные особенности микроконтроллеров AVR семейства Mega.
  3.  Перечислите основные параметры данного микроконтроллера.
  4.  Перечислите периферийные устройства, входящие в состав микроконтроллера семейства Mega.
  5.  Дайте определение понятию АЦП.
  6.  Какие операции необходимо произвести в процессе выполнения лабораторной работы?
  7.  Какие регистры используются для управления АЦП в  микроконтроллере ATmega8?
  8.  Какие принципиальные погрешности вносятся в процессе работы АЦП?
  9.  Какие основные способы АЦП вы знаете?
  10.   Почему параллельные АЦП являются самыми быстродействующими?


БИБЛИОГРАФИЧЕСКИЙ СПИСОК

  1.  Гальперин, М.В. Практическая схемотехника в промышленной   автоматике / М.В. Гальперин. – М.: Энергоатомиздат, 1987. – 320 с.
  2.  Горошков,  Б.И.   Элементы    радиоэлектронных    устройств:     справочник

/ Б.И. Горошков. – М.: Радио и связь, 1988. – 176 с.

  1.  Евстифеев, А.В. Микроконтроллеры AVR семейств Tiny и Mega фирмы «Atmel» / А.В. Евстифеев. – М.: Изд. дом «Додека-XXI», 2004. – 560 с.
  2.  Никамин, В.А. Аналого-цифровые и цифро-аналоговые преобразователи: справочник / В.А. Никамин. – СПб.: Корона принт; М.: Альтекс-А, 2003. – 224 с.
  3.  Опадчий, Ю.Ф. Аналоговая и цифровая электроника (полный курс): учебник для вузов / Ю.Ф. Опадчий, О.П. Глудкин, А.И. Гуров; под ред. О.П. Глудкина. – М.: Горячая линия-Телеком, 2003. – 768 с.
  4.  Тули М. Справочное пособие по цифровой электронике / М. Тули; пер. с англ. – М.: Энергоатомиздат, 1990. – 176 с.
  5.   Хоровиц, П. Искусство схемотехники: в 3 т. / П. Хоровиц, У. Хилл; пер. с англ. – 4-е изд., перераб. и доп. – М.: Мир, 1993.– Т. 2. – 371 с.
  6.   Шило, В.Л. Популярные цифровые микросхемы: справочник / В.Л. Шило. – 2-е изд., исправ. – М.: Радио и связь, 1989. – 352 с.


ПРИЛОЖЕНИЯ

Приложение А

Рис. А1. Схема электрическая принципиальная платы программатора

Продолжение прил. А

Рис. А2. Схема электрическая принципиальная платы индикации

Продолжение прил. А

Рис. А3. Схема электрическая принципиальная платы микроконтроллера

Окончание прил. А

Рис. А4. Схема электрическая принципиальная модуля «Задание сигналов и логические элементы»

Приложение Б

Ассемблер микроконтроллеров AVR 

Общая информация

Программа пишется с помощью транслятора, основой которого является ассемблер AVR. Здесь представлена информация по ассемблеру всей серии AVR, так как все микроконтроллеры всей серии программно совместимы.

Ассемблер – это инструмент, с помощью которого создается программа для микроконтроллера. Ассемблер транслирует ассемблируемый исходный код программы в объектный код, который может использоваться в симуляторах или эмуляторах AVR. Также ассемблер генерирует код, который может быть непосредственно введен в программную память микроконтроллера.

При работе с ассемблером нет никакой необходимости в непосредственном соединении с микроконтроллером.

Исходный файл, с которым работает ассемблер, должен содержать мнемоники, директивы и метки.

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

Строка программы может быть в одной из четырех форм:

[Метка:] директива [операнды] [Комментарий];

[Метка:] команда [операнды] [Комментарий];

Комментарий;

Пустая строка.

Комментарий имеет следующую форму:

; [Текст]

Таким образом, любой текст после символа “;” игнорируется ассемблером и имеет значение только для пользователя.

Операнды можно задавать в различных форматах:

  •  десятичный (по умолчанию): 10,255;
  •  шестнадцатеричный (два способа): 0х0а, $0а;
  •  двоичный: 0b00001010, 0b11111111;
  •  восьмеричный (впереди ноль): 010, 077.

Система команд

Система команд микроконтроллеров AVR фирмы ATMEL очень большая и в то же время эффективная. Одной из отличительных особенностей микроконтроллеров AVR является то, что почти все команды выполняются за 1 тактовый цикл. Исключение составляют команды перехода. Это существенно увеличивает производительность микроконтроллера даже при относительно невысокой тактовой частоте.

Продолжение прил. Б

Все команды можно классифицировать на 5 типов:

  1.  арифметические команды;
  2.  логические команды;
  3.  команды перехода;
  4.  команды передачи данных;
  5.  побитовые команды и команды тестирования битов.

Директивы ассемблера

Ассемблер поддерживает множество директив. Директивы не транслируются непосредственно в коды операции. Напротив, они используются, чтобы корректировать местоположение программы в памяти, определять макрокоманды, инициализировать память и так далее. То есть это указания самому ассемблеру, а не команды микроконтроллера.

Все директивы ассемблера представлены в табл. Б.1.

Таблица Б.1

Директива

Описание

BYTE

Зарезервировать байт под переменную

CSEG

Сегмент кодов

DB

Задать постоянным(и) байт(ы) в памяти

DEF

Задать символическое имя регистру

DEVICE

Задать для какого типа микроконтроллера компилировать

DSEG

Сегмент данных

DW

Задать постоянное(ые) слово(а) в памяти

EQU

Установите символ равный выражению

ESEG

Сегмент EEPROM

EXIT

Выход из файла

INCLUDE

Включить исходный код из другого файла

LIST

Включить генерацию .lst – файла

NOLIST

Выключить генерацию .lst – файла

ORG

Начальный адрес программы

SET

Установите символ равный выражению

Синтаксис всех директив следующий:

.[директива].

То есть перед директивой должна стоять точка. Иначе ассемблер воспринимает это как метку.

Дадим несколько пояснений наиболее важным директивам ассемблера.

Продолжение прил. Б

CSEGCode segment.

Директива CSEG указывает на начало сегмента кодов. Ассемблируемый файл может иметь несколько кодовых сегментов, которые будут объединены в один при ассемблировании.

Синтаксис:

. CSEG

Пример:

.DSEG                              ; Начало сегмента данных

vartab: .BYTE 4   ; Резервируется 4 байта в СОЗУ

.CSEG     ; Начало сегмента кодов

const: .DW 2    ; Записать 0х0002 в программной памяти

         mov r1,r0   ; Что-то делать

DSEGData Segment.

Директива DSEG указывает на начало сегмента данных. Ассемблируемый файл может содержать несколько сегментов данных, которые потом будут собраны в один при ассемблировании. Обычно сегмент данных состоит лишь из директив BYTE и меток.

Синтаксис:

.DSEG

Пример:

.DSEG      ; Начало сегмента данных

var1: .BYTE 1    ; Резервировать 1 байт под переменную var1

table: .BYTE tab_size   ; Резервировать tab_size байтов.

.CSEG

ldi r30,low(var1)

ldi r31,high(var1)

ld r1,Z

ESEGEEPROM Segment.

Директива ESEG указывает на начало сегмента EEPROM памяти. Ассемблируемый файл может содержать несколько EEPROM сегментов, которые будут собраны в один сегмент при ассемблировании. Обычно сегмент EEPROM состоит из DB и DW директив (и меток). Сегмент EEPROM памяти имеет свой собственный счетчик. Директива ORG может использоваться для размещения переменных в нужной области EEPROM.

Синтаксис:

.ESEG

Продолжение прил. Б

Пример:

.DSEG      ; Начало сегмента данных

var1: .BYTE 1    ; Резервировать 1 байт под переменную var1

table: .BYTE tab_size   ; Зарезервировать tab_size байт.

.ESEG

eevar1: .DW 0xffff    ; Записать 1 слово в EEPROM

ORGустановить адрес начала программы.

Директива ORG присваивает значения локальным счетчикам. Используется только совместно с директивами .CSEG, .DSEG, .ESEG.

Синтаксис:

.ORG адрес

Пример:

.DSEG     ; Начало сегмента данных

.ORG 0x37    ; Установить адрес СОЗУ на 37h

variable: .BYTE 1    ; Зарезервировать байт СОЗУ по адресу 37h

.CSEG 

.ORG 0x10    ; Установить счетчик команд на адрес 10h

          mov r0, r1    

DBопределить байт(ы) в программной памяти или в EEPROM.

Директива DB резервирует ресурсы памяти в программной памяти или в EEPROM. Директиве должна предшествовать метка. Директива DB задает список выражений и должна содержать, по крайней мере, одно выражение. Размещать директиву следует в сегменте кодов или в EEPROM сегменте.

Список выражений представляет собой последовательность выражений, разделенных запятыми. Каждое выражение должно быть величиной между – 128 и 255.

Если директива указывается в сегменте кодов и список выражений содержит более двух величин, то выражения будут записаны так, что 2 байта будут размещаться в каждом слове Flash-памяти.

Синтаксис:

LABEL: .DB список выражений

Пример:

.CSEG

consts: .DB 0, 255, 0b01010101, -128, 0хаа.

ESEG

const2: .DB 1,2,3

Продолжение прил. Б

DW – определить слово(а) в программной памяти или в EEPROM.

Директива DW резервирует ресурсы памяти в программной памяти или в EEPROM. Директиве должна предшествовать метка. Директива DW задает список выражений, и должна содержать, по крайней мере, одно выражение. Размещать директиву следует в сегменте кодов или в EEPROM сегменте.

Список выражений представляет  собой последовательность выражений, разделенных запятыми. Каждое выражение должно быть величиной между            –32 768 и 65 535.

Синтаксис:

LABEL: .DW список выражений

Пример:

.CSEG

varlist: .DW 0, 0xffff, 0b1001110001010101, -32768, 65535

.ESEG

eevarlst: .DW 0, 0xffff, 10

DEF  присвоить имя регистру.

Директива DEF позволяет присвоить символическое имя регистру. Регистр может иметь несколько символических имен.

Синтаксис:

.DEF Имя = Регистр

Пример:

.DEF temp = R16

.DEF ior = R0

.CSEG

ldi temp, 0xf0 ; Загрузить 0xf0 в регистр temp 0

in ior,0x3f ; Прочитать SREG в регистр ior

eor temp,

EQU  присвоить имя выражению.

Директива EQU присваивает значение метке. Эта метка может быть использована в других выражениях. Значение этой метки нельзя изменить или переопределить.

Синтаксис:

EQU  метка = выражение

Пример:

.EQU io_offset = 0x23

Продолжение прил. Б

.EQU porta    = io_offset + 2

.CSEG  ; Начало сегмента кодов

       clr r2  ; Очистить регистр г2

       out porta,r2  ; Записать в порт А

INCLUDE  вставить другой файл.

Директива INCLUDE говорит ассемблеру начать читать из другого файла. Ассемблер будет выполнять работу с этим файлом до конца или до директивы EXIT. Включаемый файл  может сам  включать директивы INCLUDE.

Синтаксис:

.INCLUDE "имя файла"

Пример:

;iodefs.asm:

.EQU sreg = 0x3 f   ; Регистр статуса

.EQU sphigh = 0x3e   ; Старший байт указателя стека

.EQU splow = 0x3d;  ; Младший байт указателя стека

; incdemo.asm

.INCLUDE iodefs.asm  ; Включить файл «iodefs.asm»

         in r0, sreg   ; Прочитать регистр статуса

EXIT  выйти из файла.

Директива EXIT позволяет ассемблеру остановить выполнение текущего файла. Обычно ассемблер работает до конца файла. Если он встретит директиву EXIT, то продолжит выполнение программы со строки, следующей за директивой INCLUDE.

Синтаксис:

.EXIT

Пример:

.EXIT     ; выйти из этого файла

DEVICE  указать для какого микроконтроллера пишется программа.

Директива позволяет пользователю сообщить ассемблеру, для какого типа устройства пишется программа. Если ассемблер встретит команду, которая не поддерживается указанным типом микроконтроллера, то будет выдано сообщение. Также сообщение появится в случае, если размер программы превысит объем имеющейся в этом устройстве памяти.

Синтаксис:

.DEVICE AT90S1200 [AT90S2313 | AT90S2323 | AT90S2333 | AT90S2343 | AT90S4414 | AT90S4433 | AT90S4434 | AT90S8515 | AT90S8534 | AT90S8535 | ATtiny 11 | ATtiny 12 | ATtiny 22 | ATmega603 | ATmega103

Продолжение прил. Б

Пример:

.DEVICE ATmega8  ; использовать ATmega8

.CSEG

.ORG 0000

Некоторые особенности программировании

Память данных почти полностью доступна программе пользователя и большинство команд ассемблера предназначено для обмена данными с ней. Команды пересылки данных предоставляют возможность непосредственной и косвенной адресации ячеек СОЗУ, непосредственной адресации регистров ввода/вывода и регистров общего назначения. Так как каждому регистру сопоставлена ячейка памяти, то обращаться к ним можно не только командами адресации регистров, но и командами адресации ячеек СОЗУ.

Например, команда:

MOV R10,R15 скопировать регистр R15 в регистр R10 – делает абсолютно то же самое, что и команда:

LDS R10,$0015 загрузить в регистр R10 содержимое ячейки с адресом $0015.

То же самое относится и к регистрам ввода/вывода. Для них предусмотрены специальные команды:

IN Rd,P загрузить данные из порта I/O с номером Р в регистр Rd;

OUT P,Rd записать данные из регистра Rd в порт I/O с номером Р.

При использовании этих команд номер порта указывается в диапазоне 0<Р<63. При использовании команд адресации ячеек памяти для работы с регистрами ввода/вывода указывается адрес регистра в памяти данных         $0020$005F.

Примеры применения разных команд:

OUT $12,$FF  записать в PORTD число 255;

STS $0032,$FF  записать непосредственно в ячейку $0032 число 255.

Адрес регистра ввода/вывода в СОЗУ получается прибавлением к номеру порта числа $20.

Память программ является ПЗУ и изменяется только при программировании кристалла. Константы можно располагать в памяти программ в виде слов.

Пример:

.dw     $033f,$676d,$7653,$237e,$777f

Для работы с данными, расположенными в памяти программ, предусмотрена команда

LPM  загрузить байт памяти программ, на который указывает регистр Z в регистр R0.

Продолжение прил. Б

Адрес байта константы определяется содержимым регистра Z. Старшие 15 битов определяют слово адреса (от 0 до 4к), состояние младшего бита определяет выбор младшего байта (0) или старшего байта (1).

При работе с портами ввода/вывода следует учитывать следующую особенность. Если вывод порта сконфигурирован как выход, то его переключение

производится через регистр данных (PORTA, PORTB, PORTC, PORTD), если вывод сконфигурирован как вход, то его опрос следует производить через регистр выводов входа порта (PINA, PINB, PINC, PIND).

Особенностью использования арифметических и логических команд является то, что некоторые из них работают только с регистрами R16R31.

Пример:

CPI Rd,K  сравнить регистр Rd с константой К, 16<d<31.

Команды CBI и SBI работают только с младшими 32-мя регистрами ввода/вывода.

При использовании подпрограмм и прерываний нужно обязательно определять стек! Для этого нужно занести значения адреса вершины стека в регистры SPH и SPL.

Написание программы

Текст программы можно набирать в любом текстовом редакторе, не использующем форматирование текста, также можно использовать и специально предназначенную для этого программу AVR Studio. Примерный алгоритм программы и ее шаблон приведены в описании лабораторной работы.

Программный пакет позволяет создавать программы на языке Assembler. Программы создаются в виде текстовых файлов. Программный пакет позволяет производить проверку работоспособности программы. Имеется функция компиляции и виртуальной симуляции с привязкой к реальным микросхемам контролеров.

Рассмотрим основные этапы работы с данной программой.

Перед выполнением работы необходимо создать отдельный каталог для сохранения реквизитов. Путь к созданному каталогу не должен содержать русских букв. В каталог помещается файл настройки контролера. После нажимаем кнопку «New» в главном окне, в диалоговом окне указываем имя файла и его расположение (только что созданный каталог). В появившемся окне, записывается текст программы. Новый файл необходимо сохранить с расширением *.asm в том же каталоге.

В тексте программы необходимо сослаться на файл настройки (.include "m8def.inc"). Текст программы может содержать пояснения на русском языке. На рис. Б1 приведён пример программы ввода/вывода. Для написания текста программы необходимо ознакомится с системой команд контроллера.

Продолжение прил. Б

Рис. Б1. Файл текста программы

Основное окно и его параметры представлены на рис. Б2.

            New              1                                   2                  3

Рис. Б2. Окно программы: 1 – панель инструментов; 2 – строка главного меню; 3 – основное поле

Продолжение прил. Б

Создание проекта и его проверка

Для запуска написанной программы необходимо создать файл рабочего проекта. Для этого из строки главного меню выбираем команду «Project». Из контекстного меню выбираем команду «NEW», на экране появится диалоговое окно рис. Б.3.

В графе Project name указываем имя проекта. В графе Location указываем путь к созданному ранее каталогу. В графе Project type выбираем AVR Assembler. После нажимаем кнопку «ОК». Окно проекта представлено на рис. Б4.

Для вызова меню AVR Assembler Options необходимо щёлкнуть правой кнопкой мыши по любой из категорий и выбирать опцию – Project Settings.

Окно AVR Assembler Options представлено на рис. Б5.

               

Рис. Б3. Диалоговое окно Select                    Рис. Б4. Диалоговое окно  Project

         new project

Рис. Б5. Диалоговое окно AVR Assembler Options

Продолжение прил. Б

Первая графа – путь в директорию установки программного пакета AVR Studio. Его необходимо проверить и при необходимости ввести верный путь через кнопку «…». Остальные графы настраиваем, как показано на рис. Б5, нажимаем «ОК».

Далее правой кнопкой мыши щёлкаем по категории Assembler files. В контекстном меню выбираем команду Add files. Добавляем файл с расширением *.asm в соответствии с рис. Б6.

Рис. Б6. Диалоговое окно Project

Затем правой кнопкой мыши выбираем опцию Other file. В контекстном меню выбираем команду Add file и добавляем файл с расширением *.inc.

В результате окно программы приобретет вид, показанный на рис. Б7.

Затем выбираем тип контролера (рис. Б8) и нажимаем кнопку «ОК».

Для выполнения программы в пошаговом режиме используем клавишу «F10». Для наблюдения за ходом симуляции необходимо нажать кнопку «Register Window», на экране появится окно (рис. Б9).

Используя кнопку «IO Windows» можно вызвать окно основных устройств (рис. Б10).

Это окно позволяет проследить изменение содержимого портов, таймера и других устройств микроконтроллера.

Продолжение прил. Б

                              Register Window          IO Windows

                                 Memory Windows     Save all          Build and run                                                                                                                       

Рис. Б7. Диалоговое окно: Register Window – вызов окна регистров; Memory Windows – вызов окна памяти; IO Windows – вызов окна основных устройств; Build and run – запуск компиляции; Save all – сохранить всё

Рис. Б8. Диалоговое окно Simulator options

Окончание прил. Б

 

         Рис. Б9. Окно регистров                 Рис. Б10. Окно основных устройств


Приложение В

Программный пакет «PonyProg»

После запуска программы выполним пункт «Calibration» меню «Setup». Программа измеряет скорость работы компьютера и вычисляет значения переменных, определяющих в дальнейшем длительность импульсов и пауз между ними, формируемых в процессе программирования. Учтите, что как при калибровке, так и при собственно программировании все другие (кроме PonyProg) программы должны быть закрыты. Иначе неизбежны ошибки.

Описанные операции необходимы при первом запуске PonyProg. Программа запомнит сделанные установки и при последующих запусках выполнит их автоматически. Повторить настройку придется лишь при смене адаптера или при подключении его к другому порту. Одно важное замечание. PonyProg не знает рассчитан ли выбранный адаптер на работу с нужной микросхемой. Вся ответственность за правильный выбор лежит на пользователе.

Следующий этап настройки – выбор типа программируемой микросхемы. Чтобы выполнить его, нужно выбрать в главном меню пункт «Device»–«AVR micro», и на экране появиться список семейств микросхем, которые можно запрограммировать с помощью PonyProg. Выбрав одно из них, получим список входящих в него  микросхем (рис. В1). Если микросхема была выбрана ранее, она помечена «галочкой». Чтобы сделать или изменить выбор, достаточно щелкнуть по названию нужной микросхемы. Списки исчезнут с экрана, а выбранное название появится в специальном окне в верхнем правом углу окна PonyProg. Еще в одном окне слева от упомянутого указано название семейства микросхем. Эти окна дают возможность выбирать семейство и микросхему в нем, не открывая меню «Device». Достаточно нажать в соответствующем окне кнопку со стрелкой вниз, чтобы «выпал» список, из которого можно сделать выбор.

Название выбранной микросхемы выведено и в нижней строке главного окна (строка состояния). Рядом указаны информационная емкость программируемой памяти этой микросхемы (суммарная емкость FLASH и EEPROM) в байтах и контрольная сумма (CRC) ее содержимого, точнее говоря, его копии в программном буфере PonyProg.

Интересно, что в списке микроконтроллеров семейства AVR имеется строка AVR Auto. Выбрав ее, мы даем программе возможность автоматически распознать вставленную в панель адаптера микросхему этого семейства. Дело в том, что все они снабжены специальным внутренним ПЗУ, в котором хранится «сигнатура» — три байта, однозначно определяющих тип микросхемы. Значение «сигнатур» указаны в справочных данных (datasheet) микросхем.

Однако программатор сможет прочитать «сигнатуру» лишь в том случае, если в микросхеме не включена защита кода, делающая все содержимое ее памяти недоступным для внешнего мира. Подобной защитой охотно пользуются производители микроконтроллерных устройств, стремясь защитить свою продукцию от пиратского копирования. Вдобавок ко всему они еще и стирают название микросхемы с ее корпуса.

Продолжение прил. В

Рис. В1. Окно выбора типа программируемой микросхемы

Напомним еще раз. PonyProg не следит за правильностью выбора адаптера и программируемой микросхемы. При их несовместимости в лучшем случае программирование не будет выполнено вообще или выполнено с ошибками. В худшем – микросхема может быть повреждена.

Загрузка исходных данных

Коды, которые предстоит загрузить в микроконтроллер, обычно представлены одним или несколькими текстовыми файлами, разработанными фирмой Intel и ставшими фактически стандартными НЕХ-формата.

Иногда исходные данные представлены файлами формата BIN («сырой» двоичный – raw binary). Это точная копия содержимого памяти микроконтроллера без каких-либо служебных и вспомогательных данных. На других понятных PonyProg форматах останавливаться не будем, так как встречаются они довольно редко. Упомянем лишь формат Е2Р, разработанный специально для PonyProg, не понятный, к сожалению, другим программам. В файлах этого формата, кроме данных для FLASH и EEPROM, записан тип микроконтроллера и введенный пользователем текстовый комментарий, в котором могут содержаться любые полезные ему сведения.

Продолжение прил. В

Итак, выберем пункт «File» главного меню, а в нем – один из пунктов «Open Device File…», «Open Program (FLASH) File…» или «Open Data (EEPROM) File…». Первым пунктом пользуются, если загружаемый файл содержит информацию для всех областей памяти программируемой микросхемы. Таковы файлы формата Е2Р, а также НЕХ-файлы для микроконтроллеров семейства PICmicro. Второй и третий пункты загружают в соответствующие области памяти микроконтроллера, данные из разных файлов. Учтите, что имена НЕХ-файлов для загрузки EEPROM микроконтроллеров семейства AVR обычно имеют расширение .eep.

При выборе одного из упомянутых пунктов на экране откроется окно, подобное изображенному на рис. В2. В списке содержатся только те файлы, имена которых имеют расширение, указанное в окне «Тип файлов». Нажав в нем кнопку со стрелкой вниз, можно перейти к файлам с другими расширениями или (выбрав  «*») получить список всех файлов, имеющихся в папке. Файл будет загружен после двойного щелчка по его имени в списке либо после одинарного щелчка (его имя появится в окне «Имя файла») и нажатия на кнопку «Открыть». Можно также ввести нужное имя непосредственно в окно «Имя файла» с клавиатуры.

Рис. В2. Окно открытия файла с данными

В результате на экране появится окно, озаглавленное именем загруженного файла. Строго говоря, оно находилось там и раньше, но называлось (в зависимости от версии PonyProg) «No Name» и  «default» и было пустым. Теперь здесь кодовая таблица, отображающая загруженные данные (рис. В3). Она

Продолжение прил. В

состоит из строк, начинающихся с отделенного скобкой адреса первого байта строки. Затем следуют шестнадцатеричные значения 16-ти байтов с последовательно возрастающими адресами (для удобства они разделены тире на две группы по восемь) и далее – символьное представление тех же байтов.

Рис. В3. Кодовая таблица, отображающая загруженные данные

Рис. В4. Кодовая таблица, отображающая содержимое буфера памяти данных

Обратите внимание на нижнюю часть таблицы (рис. В4). Последние строки, обведенные рамкой (а на экране выделенные цветом), отображают содержимое буфера памяти данных (EEPROM). Команда «Open Program (FLASH) File …» оставляет его незаполненным. Информация здесь появится только после выполнения команды «Open Data (EEPROM) File…» (рис. В5). Обратите внимание, что изменилось и имя в заголовке окна. Оно соответствует последнему загруженному в буфер файлу.

Рис. В5. Кодовая таблица с информацией о содержимом буфера памяти данных

Окончание прил. В

Необходимо учитывать, что адреса ячеек буфера EEPROM не соответствуют действительным адресам ячеек этой области памяти микроконтроллера. В PonyProg они просто продолжают адресацию буфера памяти программ (FLASH).

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

индикатор микроконтроллерного прибора. Но иногда автор программы «маскирует» внутри нее какие-либо дополнительные сведения, например, название программы, номер ее версии, а то и собственные фамилию и имя, и даже номер телефона и адрес. Просматривая шестнадцатеричный код, все это трудно заметить, зато в символьном виде такая информация сразу бросается в глаза.

Байты со значением 0–7FH всегда отображаются символами одинаково – в соответствии с кодовой таблицей ASCII (American Standard Code for Information Interchange).


ОГЛАВЛЕНИЕ

1. Техническое описание лабораторного модуля…………………………...

3

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

9

3. Техника безопасности при выполнении лабораторных работ…………..

10

4. Лабораторные работы

4.1. Лабораторная работа № 1. Изучение принципов работы функций ввода/вывода МК..……..…………………………………………………………....

11

4.2. Лабораторная работа № 2. Изучение логических операций…….…..

15

4.3. Лабораторная работа № 3. Изучение арифметических операций…..

18

4.4. Лабораторная работа № 4. Изучение работы с памятью данных…...

21

4.5. Лабораторная работа № 5. Изучение режимов работы таймера-

      счетчика TMR1………..……………………………………………......

25

4.6. Лабораторная работа № 6. Изучение работы компаратора……….....

28

4.7. Лабораторная работа № 7. Изучение работы АЦП………………......

32

Библиографический список………………....………………………………..

36

Приложения

Приложение А. Упрощенная электрическая схема лабораторного модуля.

37

Приложение Б. Ассемблер микроконтроллеров AVR……………………....

41

Приложение В. Программный пакет PonyProg………………..…..………...

54




1. Тема- Раціональне та здорове харчування людини Мета роботи- Засвоїти теоретичні відомості про раціональне
2. пояснительная записка к курсовому проекту по дисциплине ldquo;Детали машинrdquo; Выполнил-
3. Задание 15 Перепишите и выучите пословицы и поговорки о языке
4. Финансовый университет при Правительстве Российской Федерации Финуниверситет Пермский финансово.
5. Арганiзацыйны момант Весела гучыць званок Яго голас нам знаёмы Запрашае на рок Беларус
6. Силовые способности определяются мышечными напряжениями и соответствуют различным формам изменения
7. 1Органолептические свойства воды Качество питьевой воды оценивается прежде всего по органолептическим по
8. На тему- Субєкти які здійснюють соціальне обслуговування та соціальне забеспечення міста Києва субєкт йог
9. задание 03.
10. Екатерина II Великая Немецкая кровь и русский патриотизм
11. О некоторых мерах по совершенствованию деятельности в сфере лесного хозяйства утверждены правила отпуск
12. планировочные и конструктивные решения техникоэкономические расчеты и обоснования сметы и необходимые по
13. Если вы представили настоящую мышь то она действительно похожа на неё
14. Что необходимо предпринять для достижения экономического эффекта в управлении качеством Из каких с
15. Развитие недвижимости- сущность и особенности
16. Большая удача Большущая удача огромная удача ' Министр Денис ' убить 30 песчаных демонов ' Министр Денис
17. 20 а при сівбі третій рік підряд на 3035 і більше
18. Учет расчетов по оплате труда и анализ показателей по труду
19. Выражаю почтение Гуру Дева и Дакини Я смиренная женщина Еше Цогьял сделав обширные внешние внутренние
20. синтаксис грец