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

  • ===================================== Справочник по программированию «Bascom-AVR» ==

  • ===================================== Справочник по программированию «Bascom-AVR» == Практика

  • ------------------------------------------ Программа электронных часов "AVR-WATCH" ------------------------------------------ Микроконтроллер типа ATMEGA8

  • CKOPT = 0 - внутренние конденсаторы подключены к кварцевому резонатору RSTDISBL = 1 - порт PC6 используется как сброс WDTON = 1 - сторожевой таймер разрешен

  • BODLEVEL = 1, BODEN = 1 - ПАРАМЕТРЫ СБРОСА SUT1 = 1,SUT1 = 0 - ВРЕМЯ СТАРТА ----------------------------------------- Используемый ресурсы микроконтроллера

  • и других служб реального времени

  • На выходе PB1 (OC1A) формируется звуковой сигнал в форме меандра Timer2 – генератор прерываний с частотой 1 Гц, на основании которого вычисляется пройденное время

  • Дополнительно на выходе PB3 (OC2) формируются импульсы длительностью 1 с (0.5 Гц), используемые для включения единичного светодиода Индикатор

  • Четыре кнопки: Port0...Portc3 - код сканирования клавиатуры, Portc4 - линия возврата клавиатуры На линию Portc5 от источника питания "+5 В" приходит сигнал "Включение сети"


  • $regfile = "m8def.dat" определить тип микроконтроллера

  • Dim Ndat As Byte признак "обновить данные" Dim Ddat As Byte признак "обновить индикатор" --------------------- Dim R_btim As Byte счетчик времени звонка

  • Справочник по программированию «Bascom-AVR» (М.Л. Кулиш). Справочник по программированию Bascomavr Создание микропроцессорной системы Теория


    Скачать 1.18 Mb.
    НазваниеСправочник по программированию Bascomavr Создание микропроцессорной системы Теория
    АнкорСправочник по программированию «Bascom-AVR» (М.Л. Кулиш).pdf
    Дата21.03.2017
    Размер1.18 Mb.
    Формат файлаpdf
    Имя файлаСправочник по программированию «Bascom-AVR» (М.Л. Кулиш).pdf
    ТипСправочник
    #4054
    КатегорияПромышленность. Энергетика
    страница1 из 8
      1   2   3   4   5   6   7   8

    ===================================== Справочник по программированию «Bascom-AVR» ==
    Создание микропроцессорной системы
    Теория
    На первом этапе создания микропроцессорной системы до начала программирования необходимо решить несколько важных задач: а) разработать план использования ресурсов процессора, определив: какие задачи решаются программными средствами, а какие с помощью внутренних аппаратных средств микроконтроллера. Определив необходимый и достаточный состав внутренних устройств микроконтроллера, производится выбор внешних устройств, с которы- ми будет работать микроконтроллер. Все это, этап разработки электрической схемы микропроцессорного устрой- ства. Именно на этом этапе происходит изучение документации на все применяемые компоненты, определение достаточности их нормируемых и функциональных возможностей для решения поставленной задачи. В круг изу- чаемых устройств входит и процессор, даже при условии, что используемый компилятор обеспечивает «слепую» работу с его периферией; б) выбрать модель процессора, обеспечивающий внутренними ресурсами, разработанный план действий.
    Кажется, что первая и вторая задачи едины, но тут надо вспомнить о дополнительных требованиях к разрабаты- ваемому устройству, которые могут стать приоритетными – экономичность, напряжение питания, способ про- граммирования (записи программы), возможность перепрограммирования, поддержка компилятором и т.п. Здесь необходимо заложить некоторую избыточность производительности и, особенно, размеров памяти, обусловлен- ную не стопроцентной эффективностью компилированного кода; в) выбрать средство аппаратной отладки, отвечающее задаче, решаемой отлаживаемой программой и ее па- раметрам. Если устройство отладки забирает у системы какие-либо аппаратные или программные ресурсы, то нужно попытаться обойтись без них, или, по крайней мере, использовать их наименьшей степени и в последнюю очередь. Например, порты микроконтроллера, используемые для последовательного программирования, не нужно без крайней необходимости использовать в схеме разрабатываемого устройства; г) провести предварительное моделирование и проверку самых важных алгоритмов обработки данных или управления физическими объектами с использование специализированных программ: “Micro-Cap”, “Mathcad”,
    “Quick-Basic” и т.п.; д) определить значения требуемой производительности систем ввода-вывода, вычислений, преобразований, реагирования на внешние события. Оценить возможность решения этих задач с необходимой скоростью, напри- мер, путем написания и запуска (даже в отладчике) тестовых программ с интересующими фрагментами; е) программы, управляющие реальными устройствами, особенно вновь применяемыми написать отдельно в виде эскизов. Эскизы включить в состав тестовых программ, проверить и отладить на реальных объектах
    Время исполнения некоторых типовых операций микроконтроллера AVR на частоте генератора 8 МГц указано в таблице. Приведенные числовые значения приблизительны, так как время исполнения операций во мно- гом зависит от значения операнда.
    Действие
    Время исполнение, мкс
    Сложение и вычитание чисел в формате с плавающей точкой (Single/Double)
    20/50
    Умножение чисел в формате с плавающей точкой (Single/Double)
    50/150
    Деление чисел в формате с плавающей точкой (Single/Double)
    200/800
    Вычисление математической функции в формате (Single/Double)
    1000/5000
    Считывание (загрузка) 12-16 разр. АЦП (ЦАП) с программ. послед. интерфейсом 20
    Считывание (загрузка) 12-16 разр. АЦП (ЦАП) с аппаратным послед. интерф. 10
    Считывание (загрузка) 12-16 разр. АЦП (ЦАП) с параллельным интерфейсом.
    1 - 2
    Опрос клавиатуры в 16 кнопок 50-100
    Запись байта (знака) в символьный модуль (4-битном/8-битной режиме) 50/50
    Запись символа (изображения или фигуры) в графический модуль
    5(200 – 1000)
    Вывод сообщения длиной 10 символов со скоростью 9.6 Кбод 13 мс (1.1 мс на символ)
    Формирование и преобразование текстовых строк
    10-20 мкс на символ
    Преобразование числа в формате с плавающей точкой (Single/Double) в строку 200/1000
    Тоже в форматированную строку 500/10000
    Запись (считывание) четырехбайтового числа в EEPROM с интерфейсом I2C
    10000(500)
    Запись (считывание) четырехбайтового числа в внутреннее EEPROM
    20000(10)
    Измерение напряжения с помощью внутреннего АЦП
    100 - 200
    Измерение частоты с разрешающей способностью не менее 10
    -4 10-500 мс
    При успешном решении перечисленных задач можно переходить к составлению полной схемы устройства, управляемого микроконтроллером, и разработке рабочей программы.
    Если окажется, что производительность процессора недостаточна или задача слишком сложна, то следует разделить ее между несколькими процессорами или применить внешние устройства или решит ее иначе, напри- мер, используя микроконтроллер из семейства с более высокой производительностью.
    =============================================================================
    1

    ===================================== Справочник по программированию «Bascom-AVR» ==
    Порядок подключения внешних устройства (приемников и источников управляющих сигналов и данных) к линиям микроконтроллера не имеет значения, если не используются уникальные свойства портов (альтернатив- ные функции). Наличие альтернативных функций портов микроконтроллера, напротив, требует однозначной при- вязки внешних устройств к конкретным выводам процессора. Существует много вариантов использования и внут- ренних аппаратных средств. Ниже в таблице предлагается перечень аппаратных ресурсов микроконтроллера, ко- торые предлагается для решения некоторых стандартных задач.
    Задача микро- контроллера
    Рекомендуемые порты
    Используемые ресурсы
    Формирование частоты (вари- ант 1)
    Только порты с функцией вы- хода по совпадению:
    OC0A, OC0B (Timer0),
    OC1A, OC1B (Timer1),
    OC2A, OC2B (Timer2)
    Таймеры 0, 1 или 2 (имеющийся в используемой модели микроконтроллера) в режиме самозагрузки. Достоинства: широкий диапазон частот и чистый сигнал. Процессор неза- гружен.
    Формирование частоты (вари- ант 2)
    Любой
    Любой таймер, запрограммированный вызывать прерывание каждые полпериода, генерируемой частоты. В прерывании производится инверсия порта. Невозможно формировать час- тоту выше десятков килогерц. Имеется шум периода. Загруз- ка процессора незначительная.
    Формирование частоты (вари- ант 3)
    Любой
    С помощью программ задержки формировать длительности импульса и паузы выходного сигнала. Полная загрузка про- цессора. Этот способ используется в операторе “Sound”
    Bascom. Недостаток – прерывания портят форму выходного сигнала.
    Измерение частоты (вари- ант 1)
    Только порты с функцией входа таймера: T0, T1, T2, T3
    Два таймера: один формирует базу времени (интервал счета периодов измеряемой частоты); второй – счетчик числа пе- риодов. В прерывании первого запускается и останавливается второй таймер. В прерывании второго таймера считается число переполнений в программном счетчике.
    Измерение периода
    (вариант 1)
    Только порты с функцией пре- рывания по фронту или спаду:
    INT0, INT1, ICP
    Любой таймер запускается или останавливается по спаду измеряемого сигнала. Частота заполнения таймера от Fкв.
    Производится подсчет длительности любого числа полупе- риодов.
    Измерение периода
    (вариант 2)
    Только порты с функцией входа таймера: T0, T1, T2, T3
    Два таймера: один предварительный делитель частоты. Вто- рой счетчик длительности, который запускается или останав- ливается по переполнению таймера 2. Частота заполнения второго таймера от Fкв.
    Клавиатура из замыкающих кнопок
    Любой. 8 или 10 линий для 16 кнопок, 12 линий для 32 кнопок
    Организовать в виде матрицы 4 на 4, 8 на 2 или 8 на 4. Для экономии портов возможно использование шины данных индикатора для опроса клавиатуры.
    Аналоговая клавиатура из замыкающих кнопок
    Только порты с функцией входа
    АЦП: ADC0…ADC7
    Организовать в виде схемы резистивной матрицы, в которой замыкание каждой кнопка вызывает появление на входе АЦП уникального уровня напряжения. Пригодно для малокнопоч- ных клавиатур (не более 16 на каждый вход)
    АЦП с после- довательным интерфейсом
    Любые. При наличии сигнала готовности порт с функцией прерывания по уровню INT
    Программный интерфейс SPI или Micro-Wire. Наличие у
    АЦП сигнала готовности позволяет организовать считывание по прерыванию. Могут потребоваться еще какие-то линии.
    АЦП с SPI интерфейсом
    Только порты с функцией
    MOSI, MISO, SCK
    Аппаратный интерфейс SPI. Порт SS при этом желательно не использовать (установить «1»)
    ЦАП с после- довательным интерфейсом
    Любые или порты с функцией
    MOSI, MISO, SCK
    Соответственно для программного или аппаратного интер- фейса. В некоторых случаях удается использовать USART, если он не используется по основному назначению
    Светодиодный
    7(14) - сег- ментный ин- дикатор
    Любые – 8(16) линий данные, остальные для кодирования знакоместа
    (соответственно двоичного или позиционного)
    В прерывании с частотой 300 – 1000 Гц производится про- граммой вывод данных в мультиплексном режиме из внут- реннего буфера, в котором формируется код всех сегментов индикатора.
    Символьный индикатор
    Любой – 6 линий. Рекомендует- ся использовать 4-разрядный режим и линии Portc
    Индикатор используется в режиме управления по 4-разр.
    Шине с побитным управлением портами, подключенными к индикатору.
    Графический индикатор
    Два порта: рекомендуется Porta
    – шина данных, Portc – порт управления
    Данные пересылаются побайтно, а управление осуществляет- ся побитно.
    =============================================================================
    2

    ===================================== Справочник по программированию «Bascom-AVR» ==
    Практика
    Проведем разработку микропроцессорной системы поэтапно с подробным комментированием. Кроме во- просов программирования с помощью “Bascom-AVR” рассматриваются технические и организационные вопросы создания программного проекта. В качестве объекта разработки, например, выберем многофункциональные элек- тронные часы со светодиодным индикатором.
    Этап 1. «Техническое задание». Задача этапа – определение и выработка исходных данных, необходимых
    для создания программы.
    Определим главные функциональные характеристики проекта:
    - основной режим с отображением времени в формате ЧЧММ с мигающей секундной точкой;
    - установка времени с клавиатуры в режиме редактирования;
    - сопровождение нажатий клавиатуры звуковым сигналом.
    Дополнительные функциональные режимы;
    - режим будильника с остановкой времени срабатывания и звуковым сигналом (желательно мелодичным);
    - режим таймера (секундомера) с отображением времени в формате ММСС;
    - цифровая коррекция погрешности хода (цифровая калибровка задающего генератора);
    - потенциальная возможность измерения и отображения параметров окружающей среды (температуры, влажности, давления), автоматизации обслуживания аккумулятора, регулирование яркости индикатора в зависи- мости от освещенности автоматически. Имеется в виду, что базовые технические и программные решения основ- ных функций не должны препятствовать расширению системы добавлением аппаратных и программных модулей.
    Основные требования к аппаратному исполнению изделия, определяемые, в том числе, функциональными характеристиками:
    - минимальное число компонентов;
    - четырехразрядный семисегментный индикатор. Для упрощения конструкции целесообразно использовать стандартный модуль с мультиплексным управлением. Желательно наличие единичного индикатора секунд;
    - клавиатура, содержащая не менее четырех замыкающих кнопок;
    - звуковой индикатор;
    - система сетевого и автономного питания.
    Настоящий этап заканчивается, когда определены, данные, необходимые для создания программы. Отсут- ствующие данные при этом вырабатываются и согласовываются. Результатом данного этапа также является, хотя бы, структурная схема подключения внешних устройств к микроконтроллеру и план распределения ресурсов, ко- торый желательно сразу оформлять в виде полей комментариев к программе.
    На рисунке 1 изображена принципиальная схема разрабатываемой системы, а в заголовке последующего примера программы расписан план использования ресурсов системы. Схема разработана именно с учетом макси- мального использования внутренней периферии микроконтроллера и возможности расширения. Выбор модели микроконтроллера (ATmega8), в первую очередь, обусловлен двумя факторами:
    - необходимостью в трех таймерах для обслуживания задач подсчета часового времени с тактированием от специального часового кварцевого резонатора (асинхронный режим), формирования временных интервалов ска- нирования клавиатуры и мультиплексного индикатора и формирования звуковых тонов.
    - наличием аппаратно и программно совместимых старших моделей (ATmega168, ATmega16, ATmega32), позволяющих без труда расширять систему.
    Этап 2. «Построение скелета программы». Задача этапа – создание драйверов внутренних и внешних
    устройств и на их основе общей структуры программы микропроцессорной системы.
    Необходимость начать разработку программы с ее скелета обусловлено последовательным характером ра- боты над программой, то есть, когда последовательно решаются одна задача за другой. Последовательный харак- тер работы подразумевает и последовательную отладку программы. Ведь очевидно, что ошибки будут устраняться быстрее, если каждый вновь созданный программный модуль тут же проверять. Технология написания программ от скелета и является начальным элементов последовательного программирования. Скелет программы, должен обеспечивать функционирование всех устройств и систем, по крайней мере, той части, которые необходимы на начальном этапе разработки программы. Отлаженный скелет программы обеспечивает ввод данных, например, с клавиатуры и вывод данных, например, на индикатор. Он позволяет без применения внешних средств проверять работу вновь добавленных модулей.
    Следующий далее текст демонстрационной программы, выделен шрифтом Courier. Кроме собственных комментариев в текст добавлены замечания обозначающие назначение, правильный (или рекомендуемый) поря- док расположения частей программы.
    =============================================================================
    3

    ===================================== Справочник по программированию «Bascom-AVR» ==
    Рисунок 1 – Схема электрическая принципиальная электронных часов
    ПРОГРАММА 1
    Заголовок Комментарии, содержащие идентифицирующие сведения о программе: принадлежность изделию, номер версии, дату и место создания, имя автора, его телефоны и местонахождение, версии ком- пилятора, модель процессора, способ отладки (и как это отражено в программе), способ програм- мирования, используемые ресурсы микроконтроллера и все то, что невозможно узнать из после- дующего текста.
    '------------------------------------------
    ' Программа электронных часов "AVR-WATCH"
    '------------------------------------------
    ' Микроконтроллер типа ATMEGA8
    '------------------------------------------
    ' Программируемые Fuses:
    ' CKSEL3...CKSEL0 = 1001 - низкочастотный кварцевый резонатор
    ' CKOPT = 0 - внутренние конденсаторы подключены к кварцевому резонатору
    ' RSTDISBL = 1 - порт PC6 используется как сброс
    ' WDTON = 1 - сторожевой таймер разрешен
    ' SPIEN = 0 - последовательное программирование разрешено
    ' BOOTSZ1,BOOTSZ0 = 00, BOOTRST=1 - параметры загрузчика
    ' EESAVE = 1 - НЕ ОЧИЩАТЬ EEPROM при программировании
    ' BODLEVEL = 1, BODEN = 1 - ПАРАМЕТРЫ СБРОСА
    ' SUT1 = 1,SUT1 = 0 - ВРЕМЯ СТАРТА
    '-----------------------------------------
    ' Используемый ресурсы микроконтроллера:
    -
    ' Генератор RC - внутренний 1 МГц, а к TOSC1 and TOSC2 подключен кристалл 32768 Гц
    ' Timer0 – генератор прерываний с частотой 250 Гц для обслуживания индикатора, клавиатуры
    ' и других служб реального времени
    =============================================================================
    4

    ===================================== Справочник по программированию «Bascom-AVR» ==
    ' Timer1 – генератор звукового сигнала программируемой частоты
    ' На выходе PB1 (OC1A) формируется звуковой сигнал в форме меандра
    ' Timer2 – генератор прерываний с частотой 1 Гц, на основании которого вычисляется пройденное время
    ' Дополнительно на выходе PB3 (OC2) формируются импульсы длительностью 1 с (0.5 Гц),
    ' используемые для включения единичного светодиода
    ' Индикатор:
    ' Portd выход сегментов, Portc0...Portc3 - код знакоместа (позиционный). Он же порт
    ' сканирования клавиатуры. Индикатор с общим анодом. Активным уровнем - является "0"
    ' Четыре кнопки: Port0...Portc3 - код сканирования клавиатуры, Portc4 - линия возврата клавиатуры
    ' На линию Portc5 от источника питания "+5 В" приходит сигнал "Включение сети"
    '------------------------------------------
    Определить модель микроконтроллера
    Записать имя файла, определяющего набор (имена) регистров с помощью директивы
    $Regfile. Если это не сделать, но компилятор использует установки меню Options
    $regfile = "m8def.dat" 'определить тип микроконтроллера
    '------------------------------------------
    Определение переменных
    Блок определения переменных оформляется в порядке возрастания их длины: Byte, Word,
    Integer, Long, Single, Double, String, Array. Переменные типа Bit не имеют смысла, тоже зани- мают один байт и принимают только два значения нуль и не нуль
    Dim Ndat As Byte 'признак "обновить данные"
    Dim Ddat As Byte 'признак "обновить индикатор"
    '---------------------
    Dim R_btim As Byte 'счетчик времени звонка
    '---------------------
    Dim Rsec As Byte 'счетчик секунд
    Dim Rmin As Byte 'счетчик минут
    Dim Rhour As Byte 'счетчик часов
      1   2   3   4   5   6   7   8
    написать администратору сайта