Автор работы: Пользователь скрыл имя, 24 Ноября 2013 в 15:05, курсовая работа
Степень интеграции элементов в микросхемах на сегодняшний день очень высока. В результате этого развития появились многофункциональные микросхемы, называемые микроконтроллерами. Они могут объединять себе микропроцессор, АЛУ, порты ввода/вывода, ПЗУ, ОЗУ и т. д. С помощью таких микросхем можно создавать сложные системы управления технологическими процессами. В качестве объектов управления могут быть практически любые устройства, в том числе и трехпозиционные термостаты. Цель данной курсовой работы ознакомиться с устройством микроконтроллера ATmega 128 и получить навыки разработки управляющих устройств. А так же укрепить знания в области программной части микроконтроллера и его программирования.
1. Введение………………………………………………………………………3
2. Содержание задания (исходные данные)…………………………………...4
3. Описание элементов системы……………………………………………….5
3.1 Описание объекта управления……………………………………………..5
3.2. Описание микроконтроллера ATmega128………………………………..5
4. Описание системы индикации……………………………………………...15
4.1 Светодиоды ………………………………………………………………...15
4.2 Описание кнопок…………………………………………………………...15
5. Алгоритм управления………………………………………………………..16
6. Заключение…………………………………………………………………...17
7. Используемая литература……………………………………………………18
Продолжение таблицы 3.1
TWCR |
($74) |
Регистр управления TWI |
TWDR |
($73) |
Регистр данных TWI |
TWAR |
($72) |
Регистр адреса TWI |
TWSR |
($71) |
Регистр состояния TWI |
TWBR |
($70) |
Регистр скорости передачи TWI |
OSCCAL |
($6F) |
Регистр калибровки тактового генератора |
XMCRA |
($6D) |
Регистр управления А внешней памятью |
XMCRB |
($6C) |
Регистр управления В внешней памятью |
EICRA |
($6A) |
Регистр управления А внешними прерываниями |
SPMCR |
($68) |
Регистр управления памятью программ |
PORTG |
($65) |
Регистр данных порта G |
DDRG |
($64) |
Регистр направления данных порта G |
PORTF |
($62) |
Регистр данных порта F |
DDRF |
($61) |
Регистр направления данных порта F |
SREG |
$3F($5F) |
Регистр состояния |
SPH |
$3E($5E) |
Указатель стека, старший байт |
SPL |
$3D($5D) |
Указатель стека, младший байт |
XDIV |
$3C($5C) |
Регистр управления делителем тактовой частоты |
RAMPZ |
$3B($5B) |
Регистр выбора страницы |
EICRB |
$3A($5A) |
Регистр управления В внешними прерываниями |
EIMSK |
$39($59) |
Регистр маски внешних прерываний |
EIFR |
$38 ($58) |
Регистр флагов внешних прерываний |
TIMSK |
$37($57) |
Регистр маски прерываний от таймеров/счетчиков |
TIFR |
$36($56) |
Регистр флагов прерываний от таймеров/счетчиков |
MCUCR |
$35($55) |
Регистр управления микроконтроллером |
MCUCSR |
$34($54) |
Регистр управления и состояния микроконтроллера |
TCCR0 |
$33($53) |
Регистр управления таймером/счетчиком Т0 |
TCNT0 |
$32($52) |
Счетный регистр таймера/счетчика Т0 |
OCR0 |
$31($51) |
Регистр совпадения таймера/счетчика Т0 |
ASSR |
$30($50) |
Регистр состояния асинхронного режима |
TCCR1A |
$2F($4F) |
Регистр управления А таймера/счетчика Т1 |
TCCR1B |
$2E($4E) |
Регистр управления В таймера/счетчика Т1 |
TCNT1H |
$2D($4D) |
Счетный регистр таймера/счетчика Т1, старший байт |
TCNT1L |
$2C($4C) |
Счетный регистр таймера/счетчика Т1, младший байт |
OCR1AH |
$2B($4B) |
Регистр совпадения А таймера/счетчика Т1, старший байт |
Продолжение таблицы 3.1
OCR1AL |
$2A($4A) |
Регистр совпадения А таймера/счетчика Т1, младший байт |
OCR1BH |
$29($49) |
Регистр совпадения В таймера/счетчика Т1, старший байт |
OCR1BL |
$28($48) |
Регистр совпадения В таймера/счетчика Т1,младший байт |
ICR1H |
$27($47) |
Регистр захвата таймера/счетчика Т1, старший байт |
TCCR2 |
$25($45) |
Счетный регистр таймера/счетчика Т2 |
TCNT2 |
$24($44) |
Регистр совпадения таймера/счетчика Т2 |
OCR2 |
$23($43) |
Регистр совпадения таймера/счетчика Т2 |
OCDR |
$22($42) |
Регистр внутрисхемной отладки |
WDTCR |
$21($41) |
Регистр управления сторожевым таймером |
SFIOR |
$20($40) |
Регистр специальных функций |
EEARH |
$1F($3F) |
Регистр адреса EEPROM, старший байт |
EEARL |
$1E($3E) |
Регистр адреса EEPROM, младший байт |
EEDR |
$1D($3D) |
Регистр данных EEPROM |
EECR |
$1C($3C) |
Регистр управления EEPROM |
PORTA |
$1B($3B) |
Регистр данных порта А |
DDRA |
$1A($3A) |
Регистр направления данных порта А |
PINA |
$19($39) |
Выводы порта А |
PORTB |
$18($38) |
Регистр данных порта В |
DDRB |
$17($37) |
Регистр направления данных порта В |
PINB |
$16($36) |
Выводы порта В |
PORTC |
$15($35) |
Регистр данных порта С |
DDRC |
$14($34) |
Регистр направления данных порта С |
PINC |
$13($33) |
Выводы порта С |
PORTD |
$12($32) |
Регистр данных порта D |
DDRD |
$11($31) |
Регистр направления данных порта D |
PIND |
$10($30) |
Выводы порта D |
SPDR |
$0F($2F) |
Регистр данных SPI |
SPSR |
$0E($2E) |
Регистр состояния SPI |
SPCR |
$0D($2D) |
Регистр управления SPI |
UDR0 |
$0C($2C) |
Регистр данных USART0 |
UCSR0A |
$0B($2B) |
Регистр управления и состояния A USART0 |
UCSR0B |
$0A($2A) |
Регистр управления и состояния В USART0 |
UBRR0L |
$09($29) |
Регистр скорости передачи USART0, младший байт |
ACSR |
$08($28) |
Регистр управления и состояния аналогового компаратора |
ADMUX |
$07($27) |
Регистр управления мультиплексором АЦП |
Окончание таблицы 3.1
ADCSRA |
$06($26) |
Регистр управления и состояния АЦП |
ADCH |
$05($25) |
Регистр данных АЦП, старший байт |
ADCL |
$04($24) |
Регистр данных АЦП, младший байт |
PORTE |
$03($23) |
Регистр данных порта Е |
DDRE |
$02($22) |
Регистр направления данных порта Е |
PINE |
$01($21) |
Выводы порта Е |
PINF |
$00($20) |
Выводы порта F |
Прерывания.
Прерывание прекращает нормальный ход программы для выполнения приоритетной задачи, определяемой внутренним или внешним событием микроконтроллера. При возникновении прерывания микроконтроллер сохраняет в стеке содержимое счетчика команд PC и загружает в него адрес соответствующего вектора прерывания. По этому адресу, как правило, находится команда безусловного перехода к подпрограмме обработки прерывания. Последней командой подпрограммы обработки прерывания должна быть команда RETI, которая обеспечивает возврат в основную программу и восстановление предварительно сохраненного счетчика команд.
Таблица векторов прерываний.
Младшие адреса памяти программ начиная с адреса $0002 отведены под таблицу прерываний. Каждому прерыванию соответствует адрес в этой таблице, который загружается в счетчик команд при возникновении прерывания. Положение вектора в таблице также определяет приоритет соответствующего прерывания: чем меньше адрес, тем выше приоритет соответствующего прерывания.
Положение таблицы векторов прерываний может быть изменено. Таблица может располагаться не только в начале памяти программ, а также и в начале области загрузчика. Причем перемещение таблицы может быть осуществлено в ходе выполнения программы.
Распределение адресов таблицы векторов прерываний приведено в таблице 3.2.
Обработка прерываний:
Для глобального разрешения/запрещения прерываний предназначен флаг I регистра SREG. Для разрешения прерываний он должен быть установлен в «1», а для запрещения сброшен в «0». Индивидуальное разрешение или запрещение прерываний производится установкой/сбросом соответствующих разрядов регистров масок прерываний.
При возникновении прерывания флаг I регистра SREG аппаратно сбрасывается, запрещая тем самым обработку следующих прерываний. Однако в программе обработки прерывания этот флаг можно снова установить в «1» для разрешения вложенных прерываний. При возврате из подпрограммы обработки прерывания флаг I устанавливается аппаратно.
Все имеющиеся прерывания можно разделить на два типа. Прерывания первого типа генерируются при наступлении некоторого события, в результате которого устанавливается флаг прерывания. Затем, если прерывание разрешено, в счетчик команд загружается адрес вектора соответствующего прерывания. При этом флаг прерывания аппаратно сбрасывается.
Прерывания второго типа не имеют флагов прерываний и генерируются в течение всего времени, пока присутствуют условия, необходимые для генерации прерывания. Соответственно, если условия, вызывающие прерывание, исчезнут до разрешения прерывания, генерации прерывания не произойдет.
Следует помнить, что при вызове подпрограмм обработки прерываний регистр состояния SREG не сохраняется. Поэтому пользователь самостоятельно сохранять содержимое этого регистра при входе в подпрограмму обработки прерывания и восстанавливать его значение перед вызовом команды RETI.
Поддерживается очередь прерываний, которая работает следующим образом: если условия генерации одного или более прерываний возникают в то время, когда флаг общего разрешения прерываний сброшен, соответствующие флаги устанавливаются в «1» и остаются в этом состоянии до установки флага общего разрешения прерываний. После разрешения прерываний выполняется их обработка в порядке приоритета.
Внешние прерывания.
Для разрешения/запрещения внешних прерываний предназначен регистр EIMSK. Каждый разряд INTx регистра отвечает за разрешение/запрещение прерывания с номером, соответствующим номеру разряда. Если n-й разряд регистра установлен в «1» и флаг I регистра SREG также установлен в «1», то прерывание с вывода INTn разрешено. Условия генерации прерываний определяется регистрами EICRA и EICRB. Для индикации возникновения внешних прерываний предназначен регистр EIFR.
Все внешние прерывания генерируются даже в том случае, если соответствущие выводы сконфигурированы как выходы. Эта особенность позволяет генерировать прерывания программно.
4 Описание системы индикации
4.1 Светодиоды
Для отображения двух состояний обычно используют светодиоды. В системе имеется семь светодиодов 32Ж40-К4-П2 со следующими характеристиками:
4.2 Описание кнопок
В системе используется 24 кнопки типа B170G (4 отдельные и 20 в составе клавиатуры), имеющие следующие характеристики:
5 Объект управления, алгоритм управления
К выводам PC0..PC2 через устройство сопряжения подключен двигатель постоянного тока.
К выводам РD0..РD2 – кнопки запуска двигателя постоянного тока
К выводам РE0..РE1 подключены светодиоды отражающие состояние двигателя постоянного тока.
К выводам РА0..РА7 подается оцифрованный сигнал с датчика оборотов
6 Заключение
Результатом выполнения данной курсовой работы является разработка электрической принципиальной схемы микропроцессорного устройства управления двигателя постоянного тока на базе контроллера ATmega 128. Произведен выбор компонентов устройства, приведены их основные характеристики. Написан пакет подпрограмм на языке Assembler для корректной работы устройства. Подпрограммы являются универсальными и предназначены для работы с любыми моделями двигателей. Для корректной работы устройства управления необходимо правильно выбрать комплект устройств сопряжения. Рекомендации по выбору приведены в пояснительной записке. Выводом данной курсовой работы является, то что системы управления, построенные на базе микроконтроллеров позволяют упростить регулирование технологическими процессами.
Библиографический список
1 . Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL А. В. Евстифеев. Москва Издательский дом «Додэка–XXI» 2006г.
2 . www.dipchip.ru
3. www.chipinfo.ru
4. ЛП_ЛС2_8МГц.doc Лабораторный практикум «Архитектура, программирование и применение 8–разрядных микроконтроллеров семейства ATMEL ATmega».
Приложение А
.device ATmega128
.include "m128def.inc"
.def tmp=r16
.cseg
.org 0
Rjmp iniz
.org 40
Iniz:
Ldi temp,High(RamEnd)
Out sph,temp
Ldi temp,Low(RamEnd)
Out spl,temp
Информация о работе Разработка микропроцессорного устройства управления