Регистры общего назначения - раздел Высокие технологии, АРХИТЕКТУРА МИКРОКОНТРОЛЛЕРА Регистры Общего Назначения Предназначены Для Временного Хранения Данных В Про...
Регистры общего назначения предназначены для временного хранения данных в процессе вычислений. Разрядность регистров определяет разрядность вычислений и, в конечном счете, разрядность самого микроконтроллера. Количество регистров может быть произвольным. Обычно в этих регистрах хранится информация, обрабатываемая в арифметико-логическом устройстве и полученный в нем результат вычислений. На некоторые из регистров могут быть возложены ещё какие либо дополнительные функции. В большинстве архитектур один из регистров отличается от других большими возможностями. Он обычно называется аккумулятор или рабочий регистр. В этом регистре может храниться одна из переменных, обрабатываемых в арифметико-логическом устройстве, и туда же помещается результат операции.
Например, ядро AVR имеет 32 регистра общего назначения(GPR - General purpose registers). Каждому регистру (рис. 3.1) соответствует дополнительно адрес в памяти данных, отображающий их в первых 32 ячейках пространства данных. Хотя они не используются как физические ячейки SRAM, такая организация памяти обеспечивает гибкое обращение к регистрам.
Рис.3.1. Файл регистров общего назначения ядра AVR
Все инструкции, в которых происходит обращение к регистрам, выполняются процессорным ядром AVR в течении одного тактового цикла.
Самые общие арифметические и логические инструкции между двумя регистрами или с одним регистром используют для записи результата тоже регистры этого регистрового файла.
Шесть из 32 регистров ( R26 …. R31), кроме обычной для прочих регистров функций, выполняют функцию 16-битных указателей адреса при косвенной адресации памяти данных и памяти программ . Эти три регистра косвенной адресации определяются как регистры X, Y и Z. При этом в четных регистрах хранятся младшие байты 16-битных переменных, а в нечетных- старшие (рис. 3.3).
Рис. 3.3 Регистры косвенной адресации архитектуры AVR
Регистры ввода/вывода
Регистры ввода/вывода предназначены для управления функциональными блоками микроконтроллера, энергонезависимой памятью данных и программ. В различных операциях регистры могут участвовать целиком или отдельными битами. Отдельный бит регистра обычно именуется флагом (flag). Обращение к регистрам в различных архитектурах организуется различным образом. Обычно обращение к ним осуществляется как к элементам процессорного ядра по присвоенным в архитектуре именам и адресам, в ряде случаев к ним обращаются с помощью специальных команд ввода/вывода.
Например, в микроконтроллере АТтеда163 предусмотрено 64 регистра ввода/вывода (Input/output registers). Все они размещены в пространстве ввода/вывода процессорного ядра по адресам от $00 по $3F. Для обращения к регистрам можно использовать специальные инструкции (IN) и вывода (OUT). При этом в инструкции необходимо указывать адрес регистра. Одновременно регистры ввода/вывода представлены также в адресном пространстве памяти данных (рис. 2.2) и к ним можно адресоваться как к обычным ячейкам SRAM с адресами от $20 до $5F. Адрес SRAM получается простым добавлением $20 к непосредственному адресу регистра. В дальнейшем, при описании регистров, адрес SRAM приводится в круглых скобках после непосредственного адреса регистра ввода/вывода. Регистры побитно адресуются специальными командами работы с битами: установки бита в регистре и очистки бита в регистре. Состояние каждого отдельного бита этих регистров может быть проверено командами переходов. Каждый регистр микроконтроллера имеет своё оригинальное имя. Все регистры микроконтроллера ATmega163 представлены в следующей таблице.
Таблица 3.1.
Регистры ввода/вывода микроконтроллера АТтеда163
I/O адрес
(SRAM адрес)
Имя
Функция регистра
$3F ($5F)
SREG
Status Register
$3E ($5E)
SPH
Stack Pointer High
$3D ($5D)
SPL
Stack Pointer Low
$3B ($5B)
GIMSK
General Interrupt Mask Register
$3A ($5A)
GIFR
General Interrupt Flag Register
$39 ($59)
TIMSK
Timer/Counter Interrupt Mask Register
$38 ($58)
TIFR
Timer/Counter Interrupt Flag Register
$37 ($57)
SPMCR
SPM Control Register
$36 ($56)
TWCR
2-wire Serial Interface Control Register
$35 ($55)
MCUCR
MCU general Control Register
$34 ($54)
MCUSR
MCU general Status Register
$33 ($53)
TCCR0
Timer/Counter0 Control Register
$32 ($52)
TCNT0
Timer/Counter0 (8-bit)
$31 ($51)
OSCCAL
Oscillator Calibration Register
$30 ($50)
SFIOR
Special Function I/O Register
$2F ($4F)
TCCR1A
Timer/Counter1 Control Register A
$2E ($4E)
TCCR1B
Timer/Counteri1Control Register B
$2D ($4D)
TCNT1H
Timer/Counter1 High-byte
$2C ($4C)
TCNT1L
Timer/Counter1 Low-byte
$2B ($4B)
OCR1AH
Timer/Counter1Output Compare Register A High-byte
$2A ($4A)
OCR1AL
Timer/Counter1 Output Compare Register A Low-byte
$29 ($49)
OCR1BH
Timer/Counter1 Output Compare Register B High-byte
$28 ($48)
OCR1BL
Timer/Counter1 Output Compare Register B Low-byte
$27 ($47)
ICR1HT/C1
Input Capture Register High-byte
$26 ($46)
ICR1LT/C1
Input Capture Register Low-byte
$25 ($45)
TCCR2
Timer/Counter2 Control Register
$24 ($44)
TCNT2
Timer/Counter2 (8-bit)
$23 ($43)
OCR2
Timer/Counter2 Output Compare Register
$22 ($42)
ASSR
Asynchronous Mode Status Register
$21 ($41)
WDTCR
Watchdog Timer Control Register
$20 ($40)
UBRRHI
UART Baud Rate Register High-byte
$1F($3F)
EEARH
EEPROM Address Register High-byte
$1Е($ЗЕ)
EEARL
EEPROM Address Register Low-byte
$1D($3D)
EEDR
EEPROM Data Register
$1С($ЗС)
EECR
EEPROM Control Register
$1В($ЗВ)
PORTA
Data Register, Port A
$1А ($3A)
DDRA
Data Direction Register, Port A
$19 ($39)
PINA
Input Pins, Port A
$18 ($38)
PORTB
Data Register, Port B
$17 ($37)
DDRB
Data Direction Register, Port B
$16 ($36)
PINB
Input Pins, Port B
$15 ($35)
PORTC
Data Register, Port C
$14 ($34)
DDRC
Data Direction Register, Port C
$13 ($33)
PINC
Input Pins, Port C
$12 ($32)
PORTD
Data Register, Port D
$11 ($31)
DDRD
Data Direction Register, Port D
$10 ($30)
PIND
Input Pins, Port D
$0F ($2F)
SPDR
SPI I/O Data Register
$0E ($2E)
SPSR
SPI Status Register
$0D ($2D)
SPCR
SPI Control Register
$0C ($2C)
UDR
UART I/O Data Register
$0B ($2B)
UCSRA
UART Control and Status Register A
$0A ($2A)
UCSRB
UART Control and Status Register B
$09 ($29)
UBRR
UART Baud Rate Register
$08 ($28)
ACSR
Analog Comparator Control and Status Register
$07 ($27)
ADMUX
ADC Multiplexer Select Register
$06 ($26)
ADCSR
ADC Control and Status Register
$05 ($25)
ADCH
ADC Data Register High
Зарезервированные (не указанные в таблице) адреса при программировании микроконтроллера АТтеда163 использовать не допускается.
Создание фирмой Intel в году первой программируемой электронной схемы на... За лет своего бурного развития микропроцессорные системы прошли путь от специализированных комплектов интегральных...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ:
Регистры общего назначения
Что будем делать с полученным материалом:
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
АРХИТЕКТУРА МИКРОКОНТРОЛЛЕРА
Контроллером в технике регулирования считается управляющее устройство, осуществляющее регулирующие или контролирующие функции в системе. Контроллер, реализованный на одном кристалле
Память программ
Программа микропроцессора представляет собой последовательность команд (инструкций). Каждая инструкция имеет свой оригинальный двоичный код. Коды инструкций и хранятся в памяти прог
Масочная память
Масочная память (maskROM) программируется с помощью фотошаблонов (масок) на стадии изготовления микроконтроллера. Т.е. контроллер с масочной памятью изготавливается с
Однократно программируемая память
Однократно программируемая память (OTPROM - One Time Programmable ROM) no принципу построения и функционирования аналогична масочной, но она поставляется изготовителем микрок
Репрограммируемая память
Репрограммируемая память (EPROM - Erasable PROM) аналогична OTPROM, но допускает стирание информации и повторное программирование. Стирание информации в памяти осуществляется
Память с электрическим стиранием
Память с электрическим стиранием (EEPROM - Electrically EPROM) программируется пользователем и может многократно стираться. Стирание и повторное программирование EEPROM осуще
Флэш - память
Флэш-память (Flash memory) относится к классу EEPROM, но использует особую технологию построения запоминающих ячеек. В отличие от EEPROM, она может стираться только целиком,
Статическая память
Статическая память (SRAM - Static Random Access Memory) энергозависима. Она обеспечивает хранение информации только при наличии напряжения питания не менее определенной велич
Специализированные ячейки флэш-памяти
В энергонезависимой flash-памяти микроконтроллеров могут присутствовать специализированные биты и байты, предназначенные для защиты программы пользователя и конфигурирования изделия
Основные элементы
Каждый производитель микроконтроллеров для серии выпускаемых им изделий разрабатывает и патентует своё оригинальное процессорное ядро (MCU - Microprocessor Core Unit). Однако
Регистр инструкций
Регистр инструкций (IR - Instruction register) - регистр, предназначенный для хранения считанной из памяти программ инструкции. Считанная из памяти программ инструкция декоди
Арифметико-логическое устройство
Арифметико-логическое устройство (ALU - Arithmetic Logic Unit) - логическая схема, непосредственно осуществляющая преобразование одной или двух переменных в соответствии с ин
Регистр состояния
Регистр состояния (Status register) предназначен для хранения отдельных признаков результата, полученного при выполнении различных арифметических и логических операций в ариф
Мнемонические обозначения
Каждая архитектура микроконтроллера имеет собственную систему команд. Система команд микроконтроллера описывается на специальном языке символического кодирования. При этом каждая ин
Адресация данных
Адреса операндов, задействованных в выполнении любой инструкции программы, в явном или в неявном виде должны быть указаны в коде этой инструкции. Операнды могут находиться в ячейках
Косвенная адресация
Косвенным образом могут адресоваться ячейки памяти данных или памяти программ.
· Операции с памятью данных
Операнд содержитс
ЯЗЫК АССЕМБЛЕРА
Язык ассемблера (assembler language) - язык программирования микропроцессорных систем, ориентированный на определенную архитектуру системы. Программа, написанная на языке асс
Выражения
Программа на языке ассемблера состоит из отдельных строк. Строка кода не должна быть длиннее 120 символов. Ассемблер Atmel AVR не различает строчные и заглавные буквы.
Люба
Операнды
Операндами языка ассемблера могут быть:
0 Определяемые пользователем метки.
Метка может располагаться перед командой/директивой и
Функции
Функции, определенные в языке ассемблера
0 low(expression) возвращает младший байт выражения;
0 high(expression) возвращает второй байт выраж
Директивы
Директивы ассемблера не транслируются в коды операций, они используются для размещения программы в памяти, определяют макрокоманды, инициализируют память данных и выполняют ещё целы
ТАКТОВЫЙ ГЕНЕРАТОР
Работа процессорного ядра синхронизируется тактовым генератором. Именно период работы генератора определяет время, необходимое для выполнения элементарных операций в ядре. Простейши
Источники сброса
Причинами (источниками) сброса могут являться различные воздействия: включение питания и кратковременные его изменения, сигналы формируемые аппаратно вне и внутри микроконтроллера,
Сторожевой таймер
Сторожевой таймер (Watchdog) синхронизирован от отдельного внутреннего генератора на кристалле, работающего с частотой 1 МГц (при напряжении питания Vcc=5 В).
Задерж
Алгоритм обработки прерываний
Сигнал запроса на прерывание вырабатывается периферийным устройством при его готовности к обмену информацией. Сигнал может появиться в произвольный момент времени.
Процессо
Вектора прерываний
Идентификация источника прерывания в системе может выполняться как программными, так и аппаратными средствами.
В первом случае, источник прерывания фиксируется установкой ф
ЭНЕРГОНЕЗАВИСИМАЯ ПАМЯТЬ ДАННЫХ
Энергонезависимая память типа EEPROM отличается от памяти данных типа SRAM существенно большим временем чтения и записи информации. Время обращения при записи обычно составляет неск
ПОРТЫ ВВОДА-ВЫВОДА
9.1. Организация ввода/вывода
Порты ввода-вывода обеспечивают ввод и вывод данных в параллельном формате. Обычно порты ввода-вывода выполняются 8-разряд
Алгоритмы обмена данными
Порты ввода-вывода предназначены для связи микроконтроллера с различными объектами и могут реализовывать различные алгоритмы обмена данными: 0 асинхронный программный обм
Принципы аналого-цифрового преобразования
Параллельный преобразователь
В параллельном преобразователе (рис. 10.1) входной сигнал подается сразу на множество компараторов, осуществляющих сравнение сигн
Управление аналого-цифровым преобразователем
В состав микроконтроллеров обычно включают 8 - 16-битные многоканальные преобразователи с большим набором встроенных функций. При этом все функции преобразователя программируются и
АНАЛОГОВЫЕ КОМПАРАТОРЫ
Аналоговые компараторы осуществляют сравнение двух напряжений. Результатом сравнения является логический сигнал, фиксирующий момент равенства входных сигналов. Выход компаратора может быть использо
ТАЙМЕРЫ-СЧЕТЧИКИ
Большинство задач управления решаются в реальном времени. При этом микроконтроллер должен в определенные моменты времени выполнять определенные действия с объектом. Типовыми задачам
Простейший 8-битный счетчик
8-разрядный таймер/счетчик 0 (Timer/Counter0) тактируется сигналом синхронизации процессорного ядра (СК) или от встроенного предделителя (Preskaller), или от внешнего контакт
Захват, сравнение и широтно-импульсная модуляция
16-битный таймер/счетчик Timer/Counter1 микроконтроллера ATmega163 доступен процессорному ядру для чтения и записи, он может считать импульсы синхронизации CK, импульс
Часы реального времени
Часы реального времени RTC (Real Time Clock) являются разновидностью таймера/счетчика. Задачей RTC в схеме микроконтроллера обычно считается формирование интервалов времени р
Интерфейс UART
Асинхронный последовательный интерфейс UART (Universal Asynchronous Receiver Transmitter - универсальный асинхронный приемопередатчик) обеспечивает полудуплексный режим обмен
Интерфейс SPI
Последовательный периферийный интерфейс SPI (Serial Peripheral Interface) предложен фирмой Motorola. Он обеспечивает полный дуплексный обмен данными между двумя контроллерами
РЕЖИМЫ ЭНЕРГОСБЕРЕЖЕНИЯ
Одним из основных показателей микроконтроллера является энергопотребление. Величина энергопотребления характеризуется напряжением питания микроконтроллера и потребляемым током.
Режим Idle
Если биты SM1/SM0 находятся в состоянии 00, то команда SLEEP переводит микроконтроллер в режим ожидания Idle. В этом режиме его ток потребления уменьшается примерно в 2,5 раз
Режим ADC Noise Reduction
Когда SM1/SM0 биты установлены в 01, команда SLEEP заставит микроконтроллер ввести режим шумоподавления ADC Noise Reduction. В этом режиме процессорное ядро останавливается,
Способы программирования энергонезависимой памяти
В процессе программирования микроконтроллеров разработанная пользователем программа заносится в энергонезависимую память. При этом выполняются операции по стиранию, чтению и записи
Новости и инфо для студентов