Регистры специальных функций используются в микроконтроллерах PIC для управления различными операциями. Как и в случае с регистрами общего назначения, их количество и адресация отличаются от устройства к устройству. В программах, написанных на языке С, непосредственное обращение к регистрам специальных функций обычно не требуется, если только не используются фрагменты на языке ассемблера.
Область ввода/вывода микроконтроллеров AVR
Область ввода/вывода микроконтроллеров AVR содержит 64 регистра, используемых для управления или хранения данных периферийных устройств. К каждому из этих регистров можно обращаться по адресу ввода/вывода (начиная с 0x000) или по адресу SRAM (в этом случае к адресу ввода/вывода следует прибавить 0x020). В программах на языке С обычно используются условные имена регистров ввода/вывода, а адреса имеют значение только для программ на языке ассемблера.
Имена, адреса ввода/вывода и SRAM, а также краткое описание регистров из области ввода/вывода микроконтроллеров AVR представлены в табл. 2.1. При этом следует отметить, что в различных моделях микроконтроллеров некоторые из перечисленных регистров не используются, а адреса, не указанные в табл. 2.1, зарезервированы компанией Atmel для использования в будущем.
Таблица 2.1. Описание регистров из области ввода/вывода
Имя регистра | Адрес ввода/ вывода | Адрес SRAM | Описание | |
ACSR | 0x08 | 0x28 | Регистр управления и состояния аналогового компаратора | |
UBRR | 0x09 | 0x29 | Регистр скорости передачи данных через UART | |
UCR | 0х0А | 0х2А | Регистр управления приемопередатчиком UART | |
USR | 0x0В | 0x2В | Регистр состояния приемопередатчика UART | |
UDR | 0х0С | 0х2С | Регистр данных приемопередатчика UART | |
SPCR | 0x0D | 0x2D | Регистр управления интерфейсом SPI | |
SPSR | 0х0Е | 0х2Е | Регистр состояния интерфейса SPI | |
SPDR | 0x0F | 0x2F | Регистр ввода/вывода данных интерфейса SPI | |
PIND | 0x10 | 0x30 | Выводы порта D | |
DDRD | 0x11 | 0x31 | Регистр направления передачи данных порта D | |
PORTD | 0x12 | 0x32 | Регистр данных порта D | |
PINC | 0x13 | 0x33 | Выводы порта С | |
DDRC | 0x14 | 0x34 | Регистр направления передачи данных порта С | |
PORTC | 0x15 | 0x35 | Регистр данных порта С | |
PINB | 0x16 | 0x36 | Выводы порта В | |
DDRB | 0x17 | 0x37 | Регистр направления передачи данных порта В | |
PORTB | 0x18 | 0x38 | Регистр данных порта В | |
PINA | 0x19 | 0x39 | Выводы порта А | |
DDRA | 0x1А | 0х3А | Регистр направления передачи данных порта А | |
PORTA | 0x1В | 0х3В | Регистр данных порта А | |
EECR | 0x1С | 0х3С | Регистр управления памяти EEPROM | |
EEDR | 0x1D | 0x3D | Регистр данных памяти EEPROM | |
EEARL | 0x1Е | 0х3Е | Регистр адреса памяти EEPROM (младший байт) | |
EEARH | 0x1F | 0x3F | Регистр адреса памяти EEPROM (старший байт) | |
WDTCR | 0x21 | 0x41 | Регистр управления сторожевым таймером | |
ICR1L | 0x24 | 0x44 | Регистр захвата таймера/счетчика Т/С1 (младший байт) | |
ICR1H | 0x25 | 0x45 | Регистр захвата таймера/счетчика Т/С1 (младший байт) | |
OCR1BL | 0x28 | 0x48 | Регистр сравнения В таймера Т/С1 (младший байт) | |
OCR1BH | 0x29 | 0x49 | Регистр сравнения В таймера Т/С1 (старший байт) | |
OCR1AL | 0х2А | 0х4А | Регистр сравнения А таймера Т/С1 (младший байт) | |
OCR1AH | 0x2В | 0x4В | Регистр сравнения А таймера Т/С1 (старший байт) | |
TCNT1L | 0х2С | 0х4С | Счетный регистр таймера/счетчика Т/С1 (младший байт) | |
TCNT1H | 0x2D | 0x4D | Счетный регистр таймера/счетчика Т/С1 (старший байт) | |
TCCR1B | 0x2Е | 0х4Е | Регистр управления В таймера/счетчика Т/С1 | |
TCCR1A | 0x2F | 0x4F | Регистр управления А таймера/счетчика Т/С1 | |
TCNT0 | 0x32 | 0x52 | Счетный регистр таймера/счетчика Т/С0 | |
TCCR0 | 0x33 | 0x53 | Регистр управления таймера/счетчика Т/С0 | |
MCUCR | 0x35 | 0x55 | Регистр управления микроконтроллером | |
TIFR | 0x38 | 0x58 | Регистр флагов прерываний от таймеров/счетчиков | |
TIMSK | 0x39 | 0x59 | Регистр маскирования прерываний от таймеров | |
GIFR | 0х3А | 0х5А | Общий регистр флагов прерываний | |
GIMSK | 0х3В | 0x5В | Общий регистр маскирования прерываний | |
SPL | 0x3D | 0x5D | Указатель стека (младший байт) | |
SPH | 0х3Е | 0х5Е | Указатель стека (старший байт) | |
SREG | 0x3F | 0x5F | Регистр состояния |
Дата: 2019-05-28, просмотров: 222.