- •Вопросы:
- •Часть I.
- •Часть II.
- •Часть III.
- •Часть I.
- •1.1. Алгебра логики, алгебра Буля. Основные аксиомы.
- •1.2. Законы алгебры Буля. Дистрибутивный, коммутативный, ассоциативный.
- •1.3. Законы алгебры Буля. Поглощения, двойного отрицания, исключения.
- •1.4. Законы алгебры Буля. Де Моргана, идемпотентности.
- •1.5. Условное графическое обозначение логических элементов (стандарты).
- •1.6. Способы минимизации логических функций. Правило составления карты Карно.
- •1.7. Способы минимизации логических функций. Правило составления диаграммы Вейча.
- •1.8. Комбинационная схема. Функция дешифратора.
- •1.9. Комбинационная схема. Функция шифратора.
- •1.10. Комбинационная схема. Функция мультиплексора.
- •1.11. Комбинационная схема. Функция демультиплексора.
- •1.12. Триггеры. Типы триггеров. Классификация Триггеров.
- •1.13. Регистры. Счетчики. Разновидность.
- •1.14. Архитектура Микроконтроллера. Структура типовой эвм.
- •1.15. Тактовая частота микроконтроллера. Изменения тактовой частоты.
- •1.16. Регистры общего назначения в микроконтроллерах.
- •1.17. Регистр признаков. Распиновка битов.
- •1.18. Регистры специального назначения. Регистр Программный счетчик.
- •1.19. Регистры специального назначения. Регистр указатель Стека.
- •1.20. Регистры специального назначения. Таймеры.
- •1.22. Регистры специального назначения. Ацп и цап.
- •1.23. Виды памяти в микроконтроллерах.
- •1.24. Преобразование последовательного кода в параллельный.
- •1.25. Преобразование параллельного кода в последовательный.
- •1.26. Язык Ассемблера. Синтаксис. Мнемокод.
- •1.27. Арифметические команды. Принцип работы.
- •1.28. Логические команды. Принцип работы.
- •Xor получатель, источник
- •1.29. Команды вызова подпрограммы, особенности.
- •1.30. Команды переходов в программе, особенности.
- •Часть II.
- •2.1. Доказать следующие законы: дистрибутивный, поглощения.
- •2.14. Реализовать rs триггер на элементах и-не.
- •2.15. Реализовать синхронный rs триггер.
- •2.16. Реализовать d триггер через rs.
- •2.17. Реализовать т триггер через rs.
- •2.18. Реализовать j-k триггер через rs.
- •2.19. Счетчик на j-k триггерах.
1.20. Регистры специального назначения. Таймеры.
Применительно к микроконтроллерам, таймер – это цифровой счетчик, осуществляющий подсчет импульсов, подаваемых на него.
Источником импульсов могут служить: тактовые импульсы МК (от внешнего генератора/кварца или внутреннего генератора) и импульсы, подаваемые непосредственно на вход таймера с внешнего источника.
Принцип работы таймера предельно прост – он считает импульсы. Подсчет ведется в регистре-счетчике таймера. Т.к. регистры 8-миразрядные, то подсчет ведется от 0 до 255 (период переполнения таймера), потом происходит переполнение счетчика, и он сбрасывается в 0. Для каждого таймера можно настроить делитель импульсов – заставить таймер считать каждый 2-й, 4-й, 8-й и т.д. импульсы (что приведет к увеличению времени периода переполнения таймера).
1.21. Регистры специального назначения. Регистры ввода\вывода.
Регистры ввода/вывода
Как мы уже знаем, в МК присутствует много различных периферийных устройств. Кроме них, в МК есть и внутренние устройства. Всеми этими устройствами необходимо управлять, задавать необходимые режимы работы. Для этих целей в МК существуют регистры ввода/вывода.
Все регистры ввода/вывода (в дальнейшем буду писать РВВ) условно можно разделить на два типа:
- служебные регистры микроконтроллера
- регистры, относящиеся к конкретным периферийным устройствам
Все регистры ввода/вывода (как и РОН) занимают свое адресное пространство в памяти данных (SRAM) – от 32 до 95 (или в шестнадцатеричном исчислении от $20 до $5F) и идут сразу за регистрами общего назначения, в так называемом адресном пространстве ввода/вывода. Каждый регистр восьмиразрядный и занимает память в один байт.
Всего МК может иметь 64 регистра ввода/вывода – максимальное число (за редким исключением). В тоже время, если МК простенький и в нем мало устройств, и он использует меньшее число РВВ, в области памяти данных все равно резервируется 64 адреса. Некоторым, слишком навороченным МК, стандартного значения в 64 РВВ недостаточно. В таких МК в адресном пространстве памяти данных выделяется еще дополнительно 160 ячеек памяти для дополнительных регистров ввода/вывода.
Каждый регистр ввода/вывода имеет свой номер – от 0 до 63 (или в шестнадцатиричном виде – от $00 до $3F), который соответствует его адресу в адресном пространстве ввода/вывода. Адрес РВВ в адресном пространстве ввода/вывода и адреса соответствующих им ячеек в ОЗУ (памяти данных) не совпадают. Если регистр имеет номер 0, то в адресном пространстве ОЗУ он будет занимать 32 ячейку памяти (ведь сначала идут 32 регистра общего назначения, а за ними уже – РВВ). Для определения адреса РВВ в области памяти данных необходимо прибавить к его номеру 32.
Помимо номера, каждый регистр имеет свое имя (буквенную аббревиатуру) – для удобства программистов.
Регистры ввода-вывода модели ATmega16
Название |
Адрес |
Функция |
SREG |
$3F ($5F) |
Регистр состояния |
SPH |
$3E ($5E) |
Указатель стека, старший байт |
SPL |
$3D ($5D) |
Указатель стека, младший байт |
OCR0 |
$3C ($5C) |
Регистр совпадения таймера/счетчика T0 |
GICR |
$3B ($5B) |
Общий регистр управления прерываниями |
GIFR |
$3A ($5A) |
Общий регистр флагов прерываний |
TIMSK |
$39 ($59) |
Регистр маски прерываний от таймеров/счетчиков |
TIFR |
$38 ($58) |
Регистр флагов прерываний от таймеров/счетчиков |
SPMCR |
$37 ($57) |
Регистр управления памятью программ |
TWCR |
$36 ($56) |
Регистр управления TWI |
MCUCR |
$35 ($55) |
Регистр управления микроконтроллером |
MCUCSR |
$34 ($54) |
Регистр управления и состояния микроконтроллера |
TCCR0 |
$33 ($53) |
Регистр управления таймером/счетчиком T0 |
TCNT0 |
$32 ($52) |
Счетный регистр таймера/счетчика T0 |
OSCCAL |
$31 ($51) |
Регистр калибровки тактового генератора |
OCDR |
Регистр внутрисхемной отладки |
|
SFIOR |
$30 ($20) |
Регистр специальных функций |
TCCR1A |
$2F ($4F) |
Регистр управления A таймера/счетчика T1 |
TCCR1B |
$2E ($4E) |
Регистр управления B таймера/счетчика T1 |
TCNT1H |
$2D ($4D) |
Счетный регистр таймера/счетчика T1, старший байт |
TCNT1L |
$2C ($4C) |
Счетный регистр таймера/счетчика T1, младший байт |
OCR1AH |
$2B ($4B) |
Регистр совпадения A таймера/счетчика T1, старший байт |
OCR1AL |
$2A ($4A) |
Регистр совпадения A таймера/счетчика T1, младший байт |
OCR1BH |
$29 ($49) |
Регистр совпадения B таймера/счетчика T1, старший байт |
OCR1BL |
$28 ($48) |
Регистр совпадения B таймера/счетчика T1, младший байт |
ICR1H |
$27 ($47) |
Регистр захвата таймера/счетчика T1, старший байт |
ICR1L |
$26 ($46) |
Регистр захвата таймера/счетчика T1, младший байт |
TCCR2 |
$25 ($45) |
Регистр управления таймером/счетчиком T2 |
TCNT2 |
$24 ($44) |
Счетный регистр таймера/счетчика T2 |
OCR2 |
$23 ($43) |
Регистр совпадения таймера/счетчика T2 |
ASSR |
$22 ($42) |
Регистр состояния асинхронного режима |
WDTCR |
$21 ($41) |
Регистр управления сторожевым таймером |
UBRRH |
$20 ($40) |
Регистр скорости передачи USART, старший байт |
UCSRC |
Регистр управления и состояния USART |
|
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) |
Регистр данных порта B |
DDRB |
$17 ($37) |
Регистр направления данных порта B |
PINB |
$16 ($36) |
Выводы порта B |
PORTC |
$15 ($35) |
Регистр данных порта C |
DDRC |
$14 ($34) |
Регистр направления данных порта C |
PINC |
$13 ($33) |
Выводы порта C |
PORTD |
$12 ($32) |
Регистр данных порта D |
DDRD |
$11 ($31) |
Регистр направления данных порта D |
PIND |
$10 ($30) |
Выводы порта D |
SPDR |
$0F ($2F) |
Регистр данных SPI |
SPSR |
$0E ($2E) |
Регистр состояния SPI |
SPCR |
$0D ($2D) |
Регистр управления SPI |
UDR |
$0C ($2C) |
Регистр данных USART |
UCSRA |
$0B ($2B) |
Регистр управления и состояния A USART |
UCSRB |
$0A ($2A) |
Регистр управления и состояния B USART |
UBRRL |
$09 ($29) |
Регистр скорости передачи USART, младший байт |
ACSR |
$08 ($28) |
Регистр управления и состояния компаратора |
ADMUX |
$07 ($27) |
Регистр управления мультиплексором АЦП |
ADCSRA |
$06 ($26) |
Регистр управления и состояния АЦП |
ADCH |
$05 ($25) |
Регистр данных АЦП, старший байт |
ADCL |
$04 ($24) |
Регистр данных АЦП, младший байт |
TWDR |
$03 ($23) |
Регистр данных TWI |
TWAR |
$02 ($22) |
Регистр адреса TWI |
TWSR |
$01 ($21) |
Регистр состояния TWI |
TWBR |
$00 ($20) |
Регистр скорости передачи TWI |
