Курсовая работа: Разработка микропроцессорного устройства управления

AREF. Вход опорного напряжения для аналого-цифрового преобразователя. На этот вывод подается напряжение в диапазоне между AGND и AVCC.

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

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

VСС, GND . Напряжение питания и земля

Обобщенная карта памяти микроконтроллера приведена на рис. 3.3


?????? ???????? ????????????? ??? ???????? ??????, ??????????? ????????????????? ???????????. ?????? ???????? ????? ????? ???????????? ??? ???????? ?????? ????????, ?? ?????????? ?? ????? ?????? ?????????.

Рис. 3.3 – Обобщенная карта памяти микроконтроллера.

Высокие характеристики семейства AVR обеспечиваются следующими особенностями архитектуры:

-В качестве памяти программ используется внутренняя flash-память. Она организована в виде матрицы 16-разрядных ячеек и может загружаться программатором, либо через порт SPI;

-Система команд включает 133 инструкций;

-16-разрядные память программ и шина команд вместе с одноуровневым конвейером позволяют выполнить большинство инструкций за один такт синхрогенератора (50 нс при частоте FOSC=20 МГц);

-Память данных имеет 8-разрядную организацию. Младшие 32 адреса пространства занимают регистры общего назначения, далее следуют 64 адреса регистров ввода-вывода, затем внутреннее ОЗУ данных объемом до 4096 ячеек. Возможно применение внешнего ОЗУ данных объемом до 60 Кбайт;

-Внутренняя энергонезависимая память типа EEPROM объемом до 4 Кбайт представляет собой самостоятельную матрицу, обращение к которой осуществляется через специальные регистры ввода-вывода;

Регистры общего назначения.

В микропроцессоре ATmega 128 все 32 регистра общего назначения непосредственно доступны АЛУ. Благодаря этому любой регистр общего назначения может использоваться во всех командах и как операнд источник и как операнд приемник. Такое решение (в сочетании с конвейерной обработкой) позволяет АЛУ выполнять одну операцию за один машинный цикл.

Последние шесть регистров общего назначения могут также объединяться в три 16-разрядных регистра X, Y, и Z, используемых в качестве указателей при косвенной адресации памяти данных.

Каждый регистр имеет свой собственный адрес в памяти данных. Поэтому к ним можно обращаться двумя способами (как к регистрам и как к памяти), несмотря на то, что физически эти регистры не являются ячейками ОЗУ. Такое решение является еще одной отличительной особенностью архитектуры AVR, повышается эффективность работы микроконтроллера и его производительность.

Регистры ввода/вывода:

Все регистры ввода/вывода можно разделить на две группы – служебные регистры и регистры, относящиеся к конкретным периферийным устройствам.

Размещение в памяти регистров ввода/вывода приведено в таблице 3.1. В скобках указываются соответствующие им адреса ячеек ОЗУ.

Название Адрес Функция
UCSR1C ($9D) Регистр управления и состояния С USART1
UDR1 ($9C) Регистр данных USART1
UCSR1A ($9B) Регистр управления и состояния A USART1
UCSR1B ($9A) Регистр управления и состояния В USART1
UBRR1L ($99) Регистр скорости передачи USART1, младший байт
UBRR1H ($98) Регистр скорости передачи USART1, старший байт
UCSR0C ($95) Регистр управления и состояния С USART0
UBRR0H ($90) Регистр скорости передачи USART0, старший байт
TCCR3C ($8C) Регистр управления С таймера/счетчика ТЗ
TCCR3A ($8B) Регистр управления А таймера/счетчика ТЗ
TCCR3B ($8A) Регистр управления В таймера/счетчика ТЗ
TCNT3H ($89) Счетный регистр таймера/счетчика ТЗ, старший байт
TCNT3H ($88) Счетный регистр таймера/счетчика ТЗ, младший байт
OCR3AH ($87) Регистр совпадения А таймера/счетчика ТЗ, старший байт
OCR3AL ($86) Регистр совпадения А таймера/счетчика ТЗ, младший байт
OCR3BH ($85) Регистр совпадения В таймера/счетчика ТЗ, старший байт
OCR3BL ($84) Регистр совпадения В таймера/счетчика ТЗ, младший байт
OCR3CH ($83) Регистр совпадения С таймера/счетчика ТЗ, старший байт
OCR3CL ($82) Регистр совпадения С таймера/счетчика ТЗ, младший байт
ICR3H ($81) Регистр захвата таймера/счетчика ТЗ, старший байт
ICR3L ($80) Регистр захвата таймера/счетчика ТЗ, младший байт
ETIMSK ($7D) Дополнительный регистр маски прерываний от таймеров/счетчиков
ETIFR ($7C) Дополнительный регистр флагов прерываний от таймеров/счетчиков
TCCR1C ($7A) Регистр управления С таймера/счетчика Т1
OCR1CH ($79) Регистр совпадения С таймера/счетчика Т1, старший байт
OCR1CL ($78) Регистр совпадения С таймера/счетчика Т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, старший байт
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) Регистр управления мультиплексором АЦП
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 устанавливается аппаратно.

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

К-во Просмотров: 299
Бесплатно скачать Курсовая работа: Разработка микропроцессорного устройства управления