Автор: Пользователь скрыл имя, 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
СПИСОК ЛИТЕРАТУРЫ…………………………………
Программы для микроконтроллеров удобно писать в специальных программах - компиляторах. Для своей работы я выбрал компилятор 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 |
Функция бита 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 блокирует отработку
Регистр порога сравнения - 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
задает коэффициент деления
Регистр управления шиной 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, если выполняется одно из следующих условий:
Запись
лог. 0 в бит TWEA позволяет временно
отключиться от двухпроводной последовательной
шины. Для возобновления
Разряд 5 - TWSTA: Бит условия СТАРТ
Программист
должен установить данный бит при
необходимости стать ведущим
на двухпроводной последовательной
шине. TWI аппаратно проверяет
Разряд 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 биты предделителя во время проверки бит состояния. В этом случае проверка состояния не будет зависеть от настройки предделителя.