Программа для управления регулятором скорости вращения двигателя

Электродвигатель постоянного тока. Напряжение якорной цепи. Обеспечение плавной регулировки скорости вращения электродвигателя постоянного тока способом изменения интегрального напряжения. Внутренняя цепь сброса микроконтроллера по включению питания.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид контрольная работа
Язык русский
Дата добавления 03.06.2012
Размер файла 105,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

МИНИСТЕРСТВО ОБРАЗОВАНИЯ

РОСИЙСКОЙ ФЕДИРАЦИИ

КУРГАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Кафедра: автоматизация производственных процессов

КОНТРОЛЬНАЯ РАБОТА

Курс: Микропроцессорные системы управления

Тема: «Программа для управления регулятором скорости вращения двигателя »

Студент: Кривошеев В.П.

Гр.: ТЗк-5136с

Зач. Кн. №381432

Проверил: Иванов А.А.

Курган 2008

Контрольное задание по курсу «Микропроцессорные системы управления».

Что необходимо для выполнения:

1. Программа для устройства управления скоростью двигателя постоянного тока

2. Использование микроконтроллера Atmel AT90S1200

3. Связь между командами программы и действиями устройства

Должно быть логически изложено:

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

Исходные данные

Устройство предназначено для обеспечения плавной регулировки скорости вращения электродвигателя постоянного тока способом изменения интегрального напряжения, подводимого к его якорной цепи. Изменение напряжения выполнено на основе широтно-импульсного модулятора под управлением микроконтроллера AT90S1200 фирмы Atmel.

Электродвигатель постоянного тока:

Возбуждение постоянными магнитами

Номинальное напряжение якорной цепи 12в

Номинальный ток якорной цепи 1 А

Номинальная мощность 15Вт

Номинальная скорость вращения 1000 об/мин

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

Программа управления регулятором скорости вращения двигателя для АТ90S1200

Используемые регистры:

r23

Регистр организации 3 цикла подпрограммы задержки

r24

Регистр организации 2 цикла подпрограммы задержки

r25

Количество циклов подпрограммы задержки

r26

Дискретность шага при увеличении или уменьшении ШИМ

r27

Регистр для организации мигающего бита

r28

Регистр хранения длительности импульса

r29

Регистр хранения длительности паузы

r30

Зарезервирован как указатель для непосредственной адресации регистрового файла. В программе не используется.

r31

Регистр для конфигурирования аппаратной части контроллера

ORG

000

;

Вектор сброса

rjmp

reset

ORG

002

;

Вектор прерывания по переполнению таймера

inc

r27

;

Добавляем 1 к содержимому регистра r27

sbrc

r27,0

;

Проверяем на четность младший бит регистра r27

rjmp

pause

;

Если четный, то обрабатываем п/прогр pause

sbrs

r27,0

;

Проверяем на четность младший бит регистра r27

rjmp

impulse

;

Если нечетный, то обрабатываем п/прогр impulse

pause:

cbi

portb,3

;

Устанавливаем на выводе РВ3 логич "0"

out

tcnt0,r28

;

Загружаем таймер величиной длительности "1"

rjmp

exit_timer

;

Выход из прерывания

impulse:

sbi

portb,3

;

Устанавливаем на выводе РВ3 логич "1"

out

tcnt0,r29

;

Загружаем таймер величиной длительности "0"

rjmp

exit_timer

;

Выход из прерывания

exit_timer:

reti

;

Выход из процедуры прерывания

reset:

ldi

r31,$18

;

Конфигурируем порт В

out

ddrb,r31

;

РВ0,1,2 - как входы. РВ3,4 - как выходы

ldi

r28,$99

;

Задаем начальное значение длительности импульса = 99

ldi

r29,$66

;

Задаем начальное значение длительности паузы = 66

ldi

r31,$17

;

Включаем внутренние подтягивающие резисторы

out

portb,r31

;

к входам РВ0, РВ1, РВ2

ldi

r31,$01

;

Конфигурируем таймер

out

tccr0,r31

;

Тактирование от генератора МК без делителя

ldi

r31,$02

;

Настраиваем прерывание

out

timsk,r31

;

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

stop:

cbi

portb,4

;

Устанавливаем вывод РВ4 в "0". Зажигаем светодиод

ldi

r27,$0

;

Обнуляаем регистр мигающего бита

rjmp

scan1

;

Переход на сканирование клавиатуры

scan1:

;

Сканирование клавиатуры при включении/отключении

sbis

pinb,0

;

Если нажата кнопка ON/OFF (PD0)

rjmp

start

;

то переход к старту

sbis

pinb,1

;

Если нажата кнопка "+" (PD1)

rjmp

start

;

то переход к старту

sbis

pinb,2

;

Если нажата кнопка "-" (PD2)

rjmp

start

;

то переход к старту

rjmp

scan1

;

Если ничего не нажато, то повторяем сканирование

start:

sbi

portb,4

;

Устанавливаем вывод РВ4 в "1". Гасим светодиод

sbi

portb,3

;

Устанавливаем на выходе ШИМ "1" (вывод РВ3="1").

out

tcnt0,r29

;

Загружаем в таймер начальное значение длительности импульса ШИМ

sei

;

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

rcall

pause_scan

;

Вызов процедуры задержки сканирования клавиатуры

rjmp

scan2

;

Переходим к сканированию клавиатуры

scan2:

sbis

pinb,0

;

Если нажата кнопка ON/OFF (PD0)

rjmp

off

;

то переход к подпрограмме выключения

sbis

pinb,1

;

Если нажата кнопка "+" (PD1)

rjmp

plus

;

то переход к подпрограмме увеличения ШИМ

sbis

pinb,2

;

Если нажата кнопка "-" (PD2)

rjmp

minus

;

то переход к подпрограмме уменьшения ШИМ

rjmp

scan2

;

Если ничего не нажато, то повторяем сканирование

off:

cli

;

Запрещаем все прерывания

cbi

portb,3

;

Устанавливаем на выходе ШИМ (РВ3) логический "0"

rcall

pause_scan

;

Вызов процедуры задержки сканирования клавиатуры

rjmp

stop

;

Переход к подпрограмме STOP

plus:

ldi

r26,$ff

;

Задаем максимальное значение ШИМ = FF

cpse

r26,r28

;

Проверяем, максимально ли текущее значение регистра r26

rjmp

plus1

;

Если нет, то переходим к подпрограмме увеличения ШИМ

rjmp

scan2

;

Если да, то переходим к сканированию кнопок

minus:

ldi

r26,$33

;

Задаем минимальное значение ШИМ = 33

cpse

r26,r28

;

Проверяем, минимально ли текущее значение регистра r26

rjmp

minus1

;

Если нет, то переходим к подпрограмме уменьшения ШИМ

rjmp

scan2

;

Если да, то переходим к сканированию кнопок

plus1:

ldi

r26,$33

;

Задаем шаг изменения ШИМ при увеличении или уменьшении

add

r28,r26

;

Увеличиваем длительность импульса на 1 шаг

sub

r29,r26

;

Уменьшаем длительность паузы на 1 шаг

rcall

pause_scan

;

Вызов процедуры задержки сканирования клавиатуры

rjmp

scan2

;

Переход к сканированию кнопок

minus1:

ldi

r26,$33

;

Задаем минимальное значение ШИМ = 33

add

r29,r26

;

Увеличиваем длительность паузы на 1 шаг

sub

r29,r26

;

Уменьшаем длительность импульса на 1 шаг

rcall

pause_scan

;

Вызов процедуры задержки сканирования клавиатуры

rjmp

scan2

;

Переход к сканированию кнопок

pause_scan:

ldi

r25,3

D_3:

clr

r24

Обнуляем регистр r24

D_2:

clr

r23

Обнуляем регистр r23

D_1:

dec

r23

Вычитаем единицу из текущего значения регистра r23

brne

D_1

Проверяем условие перехода

dec

r24

Вычитаем единицу из текущего значения регистра r24

brne

D_2

Проверяем условие перехода

dec

r25

Вычитаем единицу из текущего значения регистра r25

brne

D_3

Проверяем условие перехода

ret

Выход из подпрограммы

EXIT

Описание аппаратной части устройства

Ядром устройства является микроконтроллер АТ90S1200. Его ресурсов более чем достаточно для организации широтно-импульсного модулятора экономичного управления электродвигателем. К выводам 12, 13 и 14 микроконтроллера подключена клавиатура из трех кнопок: «ON/OFF», «+», «- ». К выводу 16 подключен светодиод, предназначенный для индикации режима работы устройства. Вывод 15 является выходом ШИМ. Питание устройства осуществляется от источника постоянного напряжения 5 - 6 в., Питание микроконтроллера подается на выводы 20 (+6в.) и 10 (0в.).

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

электродвигатель контроллер якорный цепь питание

Описание алгоритма работы управляющей программы

Программно ШИМ реализован с использованием таймера/счетчика микроконтроллера. После включения питания и окончания процедуры сброса, контроллер переходит к обработке подпрограммы Reset:

Конфигурируем аппаратную часть контроллера:

· Настраиваем биты 0, 1, 2 порта В как входы,

· Настраиваем биты 3, 4 порта В как выходы.

· К битам 0, 1, 2 порта В подключаем внутренние подтягивающие резисторы.

· Настраиваем тактирование микроконтроллера от генератора без использования делителя.

В регистры хранения длительностей импульса и паузы загружаем их начальные значения в тактах (причем Ти = 255 - Тп, где Ти - длительность импульса, Тп - длительность паузы). Разрешаем прерывание от таймера, включаем индикаторный светодиод, переходим к сканированию клавиатуры. На время работы таймера устанавливаем РВ3 = 1. Таймер начинает отсчитывать длительность длительность импульса до переполнения. При переполнении вызывается прерывание. После вызова прерывания РВ3 инвертируется, в таймер загружается длительность паузы. Затем цикл повторяется.

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

Программа обслуживания клавиатуры обеспечивает следующие функции:

· Включение устройства нажатием любой из кнопок

· Выключение устройства нажатием кнопки ON/OFF

· Уменьшение скважности (увеличение интеграла выходного напряжения) при нажатии на кнопку «+»

· Увеличение скважности (уменьшение интеграла выходного напряжения) при нажатии на кнопку «- »

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

При нажатии кнопки ON/OFF производится переход к подпрограмме выключения. Порт РВ3 устанавливаем в «0». Запрещаем все прерывания. Для защиты от дребезга клавиатуры обрабатываем подпрограмму задержки. Включаем индикаторный светодиод. Переходим к сканированию клавиатуры.

При нажатии кнопки «+» производится переход к подпрограмме увеличения ШИМ. Проверяем, достигло ли текущее значение длительности времени импульса максимального значения FF. Если максимальное значение достигнуто, возвращаемся к программе сканирования клавиатуры. В противном случае устанавливаем шаг изменения переменной ШИМ. Увеличиваем текущее значение времени импульса на 1 шаг. Текущее значение времени паузы уменьшаем на 1 шаг. Обрабатываем подпрограмму задержки.

При нажатии кнопки «-» производится переход к подпрограмме уменьшения ШИМ. Проверяем, достигло ли текущее значение длительности времени импульса минимального значения 33. Если минимальное значение достигнуто, возвращаемся к программе сканирования клавиатуры. В противном случае устанавливаем шаг изменения переменной ШИМ. Увеличиваем текущее значение времени паузы на 1 шаг. Текущее значение времени импульса уменьшаем на 1 шаг. Обрабатываем подпрограмму задержки.

Подпрограмма задержки по сути является счетчиком на 196608. При частоте кварцевого генератора 455 кГц, время обработки подпрограммы задержки составляет 0,86 сек.

При шаге изменения переменной ШИМ равной 33h (51d), обеспечивается 5 уровней скважности. При шаге изменения переменной ШИМ равной Еh (14d), обеспечивается 17 уровней скважности.

Описание микроконтроллера AT90S1200 фирмы Atmel

AT90S1200 - экономичный 8 битовый КМОП микроконтроллер, построенный с использованием расширенной RISC архитектуры AVR. Устройство имеет 64 байта EEPROM. Исполняя по одной команде за период тактовой частоты, AT90S1200 имеет производительность около 1MIPS на МГц, что позволяет разработчикам создавать системы оптимальные по скорости и потребляемой мощности.

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

AT90S1200 имеет следующие возможности:

1кБ загружаемой флэш памяти;

64 байта EEPROM;

15 двунаправленных линий ввода/вывода;

32 регистра общего назначения;

Настраиваемый таймер/счетчик;

Внешние и внутренние прерывания;

Программируемый сторожевой таймер со встроенным генератором;

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

Два программно выбираемых режима низкого энергопотребления:

Idle Mode (холостой режим) - отключает ЦПУ, оставляя в рабочем состоянии регистры, таймер/счетчик, сторожевой таймер и систему прерываний.

Power Down Mode (экономичный режим) - сохраняет содержимое регистров, но отключает генератор, запрещая функционирование всех встроенных устройств до внешнего прерывания или аппаратного сброса.

Загружаемая флэш память на кристалле может быть перепрограммирована прямо в системе через последовательный интерфейс SPI. AT90S1200 поддерживается системами разработки включающие в себя макроассемблер, программный отладчик/симулятор, внутрисхемный эмулятор и отладочный комплект.

Обзор архитектуры

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

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

Все команды AVR имеют формат одного 16-разрядного слова, поэтому по каждому адресу памяти программ хранится одна команда. При обработке прерываний и вызове подпрограмм, адрес возврата (значение программного счетчика) сохраняется в стеке. Стек выполнен как 3 уровневый аппаратный стек и используется для подпрограмм и прерываний.

Пространство ввода/вывода содержит 64 адреса периферийных устройств ЦПУ, таких как управляющие регистры, таймер/счетчик, АЦП и другие устройства ввода/вывода.

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

Команды АЛУ разделены на три основных категории - арифметические, логические и битовые.

Файл регистров общего назначения

Все оперирующие регистрами команды в наборе команд прямо адресуются к любому из регистров за один машинный цикл. Единственное исключение - пять команд оперирующих с константами SBCI, SUBI, CPI, ANDI, ORI и команда LDI, загружающая регистр константой. Эти команды работают только со второй половиной регистрового файла - R16..R31. Команды SBC, SUB, CP, AND и OR, также как и все остальные, работают со всем регистровым файлом.

Регистр R30 также используется как 8-разрядный указатель для непосредственной адресации регистрового файла.

Загружаемая память программ

AT90S1200 содержит 1кБ загружаемой флэш памяти для хранения программ. Поскольку все команды занимают одно 16-разрядное слово, флэш память организована как 512 16-разрядных слов. Флэш-память выдерживает не менее 1000 циклов перезаписи.

Программный счетчик имеет ширину 9 бит и таким образом адресуется к 512 словам программной флэш-памяти.

Режимы адресации программ и данных.

Прямая регистровая, отдельный регистр Rd. - адрес регистра указывается в битах 0..4 кода команды, операнд содержится в регистре Rd.

Косвенная регистровая, - регистр адресуется через указатель Z-регистр (R30).

Прямая регистровая, два регистра Rd и Rr, - адреса регистров указываются в битах 0..4 (Rd) и 5..9 (Rr) кода команды. Операнды содержатся в регистрах Rd и Rr. Результат помещается в регистр Rd.

Прямая ввода/вывода. - Адрес операнда содержится в битах 0..5 кода команды, адрес регистра в битах 6..10.

Относительная программная адресация, RJMP и RCALL. - Смещение относительно программного счетчика указывается в битах 0..11 кода операции. Выполнение программы передается по адресу PC+k. Относительный адрес k лежит в диапазоне от +2кБ до -(2кБ-1).

Стек подпрограмм и прерываний

Для обработки прерываний и вызовов подпрограмм AT90S1200 использует 3-х уровневый аппаратный стек. Аппаратный стек имеет ширину 9 бит и сохраняет значение программного счетчика - адрес возврата из подпрограмм и программ обслуживания прерываний.

Команда RCALL и прерывания записывают значение программного счетчика на 0 уровень стека. Данные, хранящиеся в стеке на уровнях 1 и 2, сдвигаются на один уровень вглубь. При выполнении команды RET или RETI значение программного счетчика выбирается с 0-го уровня стека, данные с уровней 1 и 2 сдвигаются на один уровень вверх.

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

EEPROM память данных

AT90S1200 содержит 64 байта электрически стираемой энергонезависимой памяти (EEPROM). EEPROM организована как отдельная область данных, каждый байт которой может быть прочитан и перезаписан. EEPROM выдерживает не менее 100000 циклов записи/стирания. Доступ к энергонезависимой памяти данных задается регистром адреса, регистром данных и управляющим регистром.

Время выполнения команд

ЦПУ процессора AVR управляется системной частотой генерируемой внешним резонатором. Внутреннее деление частоты генератора не используется.

В процессоре организован буфер (pipeline) команд, при выборе команды из памяти программ происходит выполнение предыдущей команды. Подобная концепция позволяет достичь быстродействия 1MIPS на МГц..

Память ввода/вывода

Все устройства ввода/вывода и периферийные устройства AT90S1200 располагаются в пространстве ввода/вывода. Различные ячейки этого пространства доступны через команды IN и OUT, пересылающие данные между одним из 32-х регистров общего назначения и пространством ввода/вывода. К регистрам $00..$19 можно осуществлять побитовый доступ командами SBI и CBI. Значение отдельного бита этих регистров можно проверить командами SBIC и SBIS.

Регистр состояния - SREG

Регистр состояния расположен по адресу $3F пространства ввода/вывода и определен следующим образом:

Бит

$3F

Чт./зап. (R/W)

Начальные знач.

7

6

5

4

3

2

1

0

I

T

H

S

V

N

Z

C

SREG

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Бит 7 - I: Общее разрешение прерываний. Для разрешения прерываний этот бит должен быть установлен в единицу. Управление отдельными прерываниями производится регистром маски прерываний - GIMSK/TIMSK. Если флаг сброшен (0), независимо от состояния GIMSK/TIMSK, прерывания не разрешены. Бит I очищается аппаратно после входа в прерывание и восстанавливается командой RETI, для разрешения обработки следующих прерываний.

Бит 6 - T: Хранение копируемого бита. Команды копирования битов BLD (Bit LoaD) и BST (Bit STore) используют этот бит как источник и приемник обрабатываемого бита. Бит из регистра регистрового файла может быть скопирован в T командой BST, бит T может быть скопирован в бит регистрового файла командой BLD.

Бит 5 - H: Флаг половинного переноса. Этот флаг индицирует перенос из младшей половины байта при некоторых арифметических операциях. Более подробно об этом можно прочитать в описании системы команд.

Бит 4 - S: бит знака, S = N XOR V. Бит S всегда равен исключающему ИЛИ между флагами N (отрицательный результат) и V (переполнение дополнения до двух). Более подробно об этом можно прочитать в описании системы команд.

Бит 3 - V: Флаг переполнения дополнения до двух. Этот флаг поддерживает арифметику с дополнением до двух. Более подробно об этом можно прочитать в описании системы команд.

Бит 2 - N: Флаг отрицательного результата. Этот флаг индицирует отрицательный результат различных арифметических и логических операций. Более подробно об этом можно прочитать в описании системы команд.

Бит 1 - Z: Флаг нулевого результата. Этот флаг индицирует нулевой результат различных арифметических и логических операций. Более подробно об этом можно прочитать в описании системы команд.

Бит 0 - C: Флаг переноса. Этот флаг индицирует перенос в арифметических и логических операциях. Более подробно об этом можно прочитать в описании системы команд.

Сброс и обработка прерываний

В AT90S1200 предусмотрены 3 различных источника прерываний. Эти прерывания и сброс имеют различные векторы в области памяти программ. Каждое из прерываний разрешается отдельным битом, разрешающим данное прерывание, и битом I разрешающим обработку всех прерываний.

Младшие адреса памяти программ отведены под векторы прерываний, список векторов прерываний приведен в таблице. Этот список также определяет приоритет различных прерываний. Чем младше адрес, тем выше приоритет прерывания. Наивысший приоритет имеет сброс, за ним INT0 и т.д.

Номер вектора

Адрес

Источник

Описание прерывания

1

$000

RESET

Ножка сброса и сброс от сторожевого таймера

2

$001

INT0

Внешнее прерывание 0

4

$002

TIMER0,OVF0

Переполнение таймера/счетчика 0

5

$003

ANA_COMP

Аналоговый компаратор

Таймер - счетчик

В AT90S1200 предусмотрен 8-разрядный таймер/счетчик общего назначения. Таймер/счетчик получает импульсы от 10-битового предварительного делителя. Таймер/Счетчик можно использовать как таймер, с внутренним источником импульсов, или как счетчик, управляемый внешними счетными импульсами.

8-разрядный таймер/счетчик может получать импульсы тактовой частоты - CK, импульсы с предварительного делителя (CK/8, CK/64, CK/256 или CK/1024), импульсы с внешнего вывода или быть остановлен соответствующими установками регистра TCCR0. Флаг переполнения таймера находится в регистре TIFR. Биты управления таймером расположены в регистре TCCR0. Разрешение и запрещение прерываний от таймера управляется регистром TIMSK.

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

8-разрядный таймер/счетчик можно использовать как счетчик с высоким разрешением, так и для точных применений с низким коэффициентом деления тактовой частоты. Более высокие коэффициенты деления можно использовать для медленных функций или измерения временных интервалов между редкими событиями.

РЕГИСТР УПРАВЛЕНИЯ ТАЙМЕРОМ/СЧЕТЧИКОМ 0 - TCCR0

Бит

$33

Чт./зап. (R/W)

Начальные знач.

7

6

5

4

3

2

1

0

-

-

-

-

-

CS02

CS01

CS00

TCCR0

R

R

R

R

R

R/W

R/W

R/W

0

0

0

0

0

0

0

0

Биты 7..3 - зарезервированы. В AT90S1200 эти биты зарезервированы и всегда читаются как 0.

Биты 2,1,0 - CS02, CS01, CS00 - выбор тактовой частоты. Эти биты задают коэффициент деления предварительного делителя.

CS02

CS01

CS00

Описание

0

0

0

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

0

0

1

CK

0

1

0

CK/8

0

1

1

CK/64

1

0

0

CK/256

1

0

1

CK/1024

1

1

0

Внешний вывод T0, нарастающий фронт

1

1

1

Внешний вывод T0, спадающий фронт

Условие Stop запрещает/разрешает функционирование таймера/счетчика. В режимах деления, частота берется непосредственно от тактовых импульсов. При использовании работы от внешнего вывода предварительно должен быть установлен вывод регистра направления данных (0 - включает ножку на ввод).

Порт В ввода/вывода

Порт B 8-разрядный двунаправленный порт.

Для обслуживания порта отведено три регистра: регистр данных PORTB ($18), регистр направления данных - DDRB ($17) и ножки порта B ($16). Адрес ножек порта B предназначен только для чтения, в то время как регистр данных и регистр направления данных - для чтения/записи.

Все выводы порта имеют отдельно выбираемые нагрузки. Выходы порта B могут отдавать ток до 20 мА и непосредственно управлять светодиодными индикаторами. Если выводы PB0..PB7 используются как входы и замыкаются на землю, то при включенных внутренних подтягивающих резисторах, выводы являются источниками тока (IIL). Дополнительные функции выводов порта B приведены в таблице.

Вывод

Альтернативная функция

PB0

AIN0 (Положительный вход аналогового компаратора)

PB1

AIN1 (Отрицательный вход аналогового компаратора)

PB5

MOSI (Вход данных для загрузки памяти)

PB6

MISO (Выход данных для чтения памяти)

PB7

SCK (Вход тактовых импульсов последовательного обмена)

При использовании альтернативных функций выводов, регистры DDRB и PORTB должны быть установлены в соответствии с описанием альтернативных функций.

РЕГИСТР ДАННЫХ ПОРТА B - PORTB

Бит

$18

Чт./зап. (R/W)

Начальн.знач.

7

6

5

4

3

2

1

0

PORTB7

PORTB6

PORTB5

PORTB4

PORTB3

PORTB2

PORTB1

PORTB0

PORTB

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

0

0

0

0

0

0

0

0

РЕГИСТР НАПРАВЛЕНИЯ ДАННЫХ ПОРТА B - DDRB

Бит

$17

Чт./зап. (R/W)

Начальн.знач.

7

6

5

4

3

2

1

0

DDB7

DDB6

DDB5

DDB4

DDB3

DDB2

DDB1

DDB0

DDRB

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

0

0

0

0

0

0

0

0

ВЫВОДЫ ПОРТА B - PINB

Бит

$16

Чт./зап. (R/W)

Начальн.знач.

7

6

5

4

3

2

1

0

PINB7

PINB6

PINB5

PINB4

PINB3

PINB2

PINB1

PINB0

PINB

R

R

R

R

R

R

R

R

Hi-Z

Hi-Z

Hi-Z

Hi-Z

Hi-Z

Hi-Z

Hi-Z

Hi-Z

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

Порт B, как порт ввода/вывода общего назначения:

Все 8 бит порта B при использовании для ввода/вывода одинаковы.

Бит DDBn регистра DDRB выбирает направление передачи данных. Если бит установлен (1), вывод сконфигурирован как выход. Если бит сброшен (0) - вывод сконфигурирован как вход. Если PORTBn установлен и вывод сконфигурирован как вход, включается КМОП подтягивающий резистор. Для отключения резистора, PORTBn должен быть сброшен (0) или вывод должен быть сконфигурирован как выход.

Приложения

Техническая документация

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

2. Программа управления

3. Алгоритм работы устройства

Размещено на Allbest.ru


Подобные документы

  • Определение передаточных функций элементов системы автоматического регулирования (САР) частоты вращения вала двигателя постоянного тока. Оценка устойчивости и стабилизация разомкнутого контура САР. Анализ изменения коэффициента усиления усилителя.

    курсовая работа [2,3 M], добавлен 13.07.2015

  • Структурная схема системы регулирования скорости двигателя постоянного тока. Расчет и определение параметров регуляторов тока и скорости. Логарифмические частотные характеристики контура тока. Передаточные функции разомкнутых контуров тока и скорости.

    лабораторная работа [147,4 K], добавлен 14.05.2012

  • Изучение работы усилителей постоянного тока на транзисторах и интегральных микросхемах. Определение коэффициента усиления по напряжению. Амплитудная характеристика усилителя. Зависимость выходного напряжения от напряжения питания сети для усилителя тока.

    лабораторная работа [3,3 M], добавлен 31.08.2013

  • Схема ключевого преобразователя напряжения с импульсным трансформатором. Регулировка напряжения и тока через нагрузку. Схема управления обмотками трансформатора. Комплексный расчет однокаскадный параметрический стабилизатор напряжения постоянного тока.

    курсовая работа [959,9 K], добавлен 28.04.2014

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

    лабораторная работа [242,0 K], добавлен 17.02.2012

  • Анализ основных методов расчёта линейных электрических цепей постоянного тока. Определение параметров четырёхполюсников различных схем и их свойства. Расчет электрической цепи синусоидального тока сосредоточенными параметрами при установившемся режиме.

    курсовая работа [432,3 K], добавлен 03.08.2017

  • Разработка структурной функциональной схемы устройства, его аппаратного обеспечения: выбор микроконтроллера, внешней памяти программ, устройства индикации, IGBT транзистора и драйвера IGBT, стабилизатора напряжения. Разработка программного обеспечения.

    курсовая работа [495,1 K], добавлен 23.09.2011

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

    курсовая работа [347,8 K], добавлен 16.11.2009

  • Структура микроконтроллера семейства MCS-51. Управление трехфазным бесколлекторным электродвигателем постоянного тока с использованием датчиков. Структурная и принципиальная схемы системы управления. Формирование последовательности выходных сигналов.

    курсовая работа [1,6 M], добавлен 26.11.2012

  • Классификация и параметры стабилизаторов напряжения тока. Характеристики стабилитрона и нагрузочного сопротивления. Компенсационный транзистор постоянного напряжения с непрерывным регулированием. Различные параметры мощности импульсного стабилитрона.

    реферат [492,5 K], добавлен 18.07.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.