Градиентный процессор

Автор: Пользователь скрыл имя, 09 Декабря 2011 в 13:18, реферат

Описание работы

Цели работы:

Провести обзор по законам регулирования.
Освоить язык С и основы программирования микроконтроллера.
Освоить методику вычисления коэффициентов для закона ПИД- регулирования.
Написать программу для микроконтроллера Atmega16, контролирующую процесс термостабилизации.
Г л а в а I

Содержание

Введение………………………………………………………………………………3
Глава I. ЛИТЕРАТУРНЫЙ ОБЗОР………………………………..……………..5
ЗАКОНЫ РЕГУЛИРОВАНИЯ.……………………………………………………..…5
П- РЕГУЛЯТОРЫ……………………………………………………………………6
ПИ- РЕГУЛЯТОРЫ………………………………………………………………….7
ПИД- РЕГУЛЯТОРЫ………………………………………………………………...7
ИНТЕРФЕЙС I2C(TWI)……………………………………………………………….9
ФОРМАТ ПОСЫЛКИ ПЕРЕДАВАЕМЫХ ДАННЫХ………………………………..10
Условия СТАРТа и СТОПа……………………………………………………….10
Формат адресного пакета………………………………………………………...10
Формат пакета данных…………………………………………………………...11
ФОРМИРОВАНИЕ ШИМ СИГНАЛА……………………………………………….11
РЕЖИМ БЫСТРОЙ ШИМ……………………………………………………...…..12
Г л а в а I I.ПРОГРАМНОЕ ОБЕСПЕЧЕНИЕ………………………………...14
АЛГОРИТМЫ ЦИФРОВОГО ПИД РЕГУЛИРОВАНИЯ……………………………14
СИСТЕМА АВТОМАТИЧЕСКОГО РЕГУЛИРОВАНИЯ……………………………14
ПРОГРАМНОЕ ОБЕСПЕЧЕНИЕ……………………………………………………15
ОСНОВНЫЕ РЕГИСТРЫ МИКРОКОНТРОЛЛЕРА………………………………...15
ОПИСАНИЕ РЕГИСТРОВ TWI……………………………………………………..16
ОПИСАНИЕ РЕГИСТРОВ 8-РАЗРЯДНОГО ТАЙМЕРА- СЧЕТЧИКА 0……………...17
ЗАКЛЮЧЕНИЕ…………………………………………………………………….22
ПРИЛОЖЕНИЯ……………………………………………………………………23
СПИСОК ЛИТЕРАТУРЫ…………………………………

Работа содержит 1 файл

реферат.doc

— 411.50 Кб (Скачать)

      Программы для микроконтроллеров удобно писать в специальных программах - компиляторах. Для своей работы я выбрал компилятор ICC AVR фирмы - ImageСraft. Компилятор позволяет написать программу для МК на универсальном языке программирования -  одинаковом и для ПК и для личных МК. Структура программы представлена на рис.12.

 

ОСНОВНЫЕ  РЕГИСТРЫ МИКРОКОНТРОЛЛЕРА

    Порт  в МК - это 8 ножек или линий  ввода-вывода (выводов МК или IO или  I-O или I/O) имеющие индивидуальные номера от 0 до 7 и общую букву A, B, C, D, ... отличающую этот порт от других. Каждому порту в МК AVR соответствуют минимум три регистра:

DDRx - регистр направления работы (х - означает букву A, B, C, D, E... порта, по числу портов в конкретном МК). Значение битов в этом регистре определяет чем будет ножка этого порта с номером этого бита  - начальное (при включении МК или после сброса) значение "0" - ножка вход  если сделать бит равным "1" эта ножка станет выходом.

PINх - биты этого регистра показывают чем ("1" или "0") считает МК напряжение на ножке порта с номером этого бита (этот регистр можно только читать, записывать в него что либо бесполезно)

PORTх - регистр в который МЫ записываем значения "1" или "0" -  которые хотим получить на соотв. ножках МК при назначении их выходом.   т.е. если соответствующий бит равен1  в регистре DDRx.  

 

Рис.12. 

Описание  регистров 8-разрядного таймера-счетчика 0 

    Регистр управления таймером-счетчиком 0 - TCCR0

Разряд 7 6 5 4 3 2 1 0
  FOC0 WGM00 COM01 COM00 WGM01 CS02 CS01 CS00
Исх. значение 0 0 0 0 0 0 0 0
  • Разряд 7 - FOC0: Принудительная установка результата сравнения

    Функция бита FOC0 активна только, если с помощью  бит WGM задан один из режимов, где нет широтно-импульсной модуляции. Однако в целях совместимости с последующими микроконтроллерами рекомендуется во время записи в регистр TCCR0 в позиции данного бита указывать лог.0, если таймер работает в одном из режимов с широтно-импульсной модуляцией.

    Разряд 6,3 - Режим работы таймера-счетчика 0

    Данные  биты определяют алгоритм счета счетчика, источник, который задает верхний  предел счета и тип генерируемых прямоугольных импульсов. Разряд 5-4 - COM01, COM00: Режим формирования выходного сигнала

    Данные  биты определяют алгоритм изменения  сигнала на выводе OC0.

    Разряд 2-0 - Настройка частоты синхронизации таймера

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

    Регистр таймера-счетчика - TCNT0

Разряд 7 6 5 4 3 2 1 0
  TCNT0[7-0]
Исх. значение 0 0 0 0 0 0 0 0

    Регистр таймера-счетчика характеризуется  двунаправленностью доступа к 8-разрядному счетчику таймера 0. Запись в регистр TCNT0 блокирует отработку возникающего совпадения на следующем после записи такте синхронизации таймера. Изменение содержимого счетчика (TCNT0) во время счета связано с риском потери результата сравнения между TCNT0 и регистром OCR0.

    Регистр порога сравнения - OCR0

Разряд 7 6 5 4 3 2 1 0
  OCR0[7-0]
Исх. значение 0 0 0 0 0 0 0 0

  Регистр порога сравнения содержит 8-разр. значение, которое непрерывно сравнивается цифровым компаратором со значением 8-разр. счетчика (TCNT0). Факт совпадения значений может  использоваться для генерации прерывания по выполнению условия сравнения или для генерации прямоугольных импульсов на выводе OC0.

Описание  регистров TWI

   Регистр скорости связи шины TWI - TWBR

Разряд 7 6 5 4 3 2 1 0
  TWBR7 TWBR6 TWBR5 TWBR4 TWBR3 TWBR2 TWBR1 TWBR0
Исх. значение 0 0 0 0 0 0 0 0
 

     Разряд 7..0 - Биты регистра скорости связи шины TWI

    TWBR задает коэффициент деления частоты  генератора скорости связи. Генератор  частоты скорости связи - делитель  частоты, который формирует сигнал  синхронизации SCL в режимах "Ведущий".  

   Регистр управления шиной TWI – TWCR

Разряд 7 6 5 4 3 2 1 0
  TWINT TWEA TWSTA TWSTO TWWC TWEN - TWIE
Исх. значение 0 0 0 0 0 0 0 0
 

    Регистр TWCR предназначен для управления работой TWI. Он используется для разрешения работы TWI, для инициации сеанса связи  ведущего путем генерации условия СТАРТ на шине, для генерации подтверждения приема, для генерации условия СТОП и для останова шины во время записи в регистр TWDR. Он также сигнализирует о попытке ошибочной записи в регистр TWDR, когда доступ к нему был запрещен.

     Разряд 7 - TWINT: Флаг прерывания TWI

    Данный  бит устанавливается аппаратно, если TWI завершает текущее задание  и ожидает реакции программы. Если бит I в SREG и бит TWIE в TWCR установлены, то микроконтроллер переходит на вектор прерывания TWI. Линия SCL остается в низком состоянии, пока установлен флаг TWINT. Флаг TWINT сбрасывается программно путем записи в него логической 1. Обратите внимание, что данный флаг сбрасывается не автоматически при переходе на вектор прерывания. Также нужно учесть, что очистка данного флага приводит к возобновлению работы TWI. Из этого следует, что программный сброс данного флага необходимо выполнить после завершения опроса регистров TWAR, TWSR и TWDR.

     Разряд 6 - TWEA: Бит разрешения подтверждения

    Бит TWEA управляет генерацией импульса подтверждения. Если в бит TWEA записана лог. 1, то импульс ПОДТВ генерируется на шине TWI, если выполняется одно из следующих условий:

  • Принят собственный подчиненный адрес.
  • Принят общий вызов, когда установлен бит TWGCE в регистре TWAR.
  • Принят байт данных в режиме ведущего приемника или подчиненного приемника.

    Запись  лог. 0 в бит TWEA позволяет временно отключиться от двухпроводной последовательной шины. Для возобновления распознавания  адреса необходимо записать в данный бит лог.1.

     Разряд 5 - TWSTA: Бит условия СТАРТ

    Программист должен установить данный бит при  необходимости стать ведущим  на двухпроводной последовательной шине. TWI аппаратно проверяет доступность  шины и генерирует условие СТАРТ, если шина свободна. Однако если шина занята, то TWI ожидает появления условия СТОП, а затем генерирует новое условие СТАРТ для перехвата состояния ведущего шины. TWSTA необходимо сбрасывать программно после передачи условия СТАРТ.

     Разряд 4 - TWSTO: Бит условия СТОП

Установка бита TWSTO в режиме ведущего приводит к генерации условия СТОП на двухпроводной последовательной шине. Если на шине выполняется условие СТОП, то бит TWSTO сбрасывается автоматически. В подчиненном режиме установка бита TWSTO может использоваться для выхода из условия ошибки. В этом случае условие СТОП не генерируется, но интерфейс TWI возвращается к хорошо сконфигурированному безадресному подчиненному режиму и переводит линии SCL и SDA в высокоимпедансное состояние.

     Разряд 3 - TWWC: Флаг ошибочной записи

    Бит TWWC устанавливается при попытке записи в регистр данных TWDR, когда TWINT имеет низкий уровень. Флаг сбрасывается при записи регистра TWDR, когда TWINT = 1.

     Разряд 2 - TWEN: Бит разрешения работы TWI

    Бит TWEN разрешает работу TWI и активизирует интерфейс TWI. Если бит TWEN установлен, то TWI берет на себя функции управления линиями ввода-вывода SCL и SDA. При этом разрешается работа ограничителей скорости изменения фронтов и помехоподавляющих фильтров. Если данный бит равен нулю, то TWI отключается и все передачи прекращаются независимо от состояния работы.

     Разряд 1 - Резервный бит

    Данный  бит является резервным и считывается  как 0.

     Разряд 0 - TWIE: Разрешение прерывания TWI

    Если  в данный бит записана лог. 1 и  установлен бит I в регистре SREG, то запрос на прерывание TWI будет генерироваться до тех пор, пока установлен флаг TWINT. 

   Регистр состояния TWI – TWSR

Разряд 7 6 5 4 3 2 1 0
  TWS7 TWS6 TWS5 TWS4 TWS3 - TWPS1 TWPS0
Исх. значение 1 1 1 1 1 0 0 0
 

     Разряды 7..3 - TWS: Состояние TWI

    Данные 5 бит отражают состояние логики блока TWI и двухпроводной последовательной шины. Различия в кодах состояния будут представлены далее в этом разделе. Обратите внимание, что считываемое значение из регистра TWSR содержит и 5-разр. код состояния и 2-разр. значение, управляющее предделителем. Программист должен маскировать к 0 биты предделителя во время проверки бит состояния. В этом случае проверка состояния не будет зависеть от настройки предделителя.

Информация о работе Градиентный процессор