Реферат: AVR микроконтроллер AT90S2333 фирмы Atmel
R\W
R\W
Начальное значение
0
0
0
0
0
0
0
0
Указатель стека указывает на область памяти в которой расположен стек вызова подпрограмм и прерваний. Область стека в ОЗУ должна быть задана до того как произойдет любой вызов подпрограммы или будут разрешены прерывания. Указатель стека уменьшается на 1 при записи данных в стек командой PUSH и уменьшается на 2 при вызове подпрограммы командой CALL или обработке прерывания. Указатель стека увеличивается на 1 при выборе данных из стека командой POP и увеличивается на 2 при выполнении команд возврата из подпрограммы или обработчика прерывания (RET или RETI).
***Стек процессора работает с предварительным инкрементом и постдекрементом
Сброс и обработка прерываний.
В процессоре предусмотрены 13 источников прерываний. Эти прерывания и сброс имеют различные векторы в области памяти программ. Каждому из прерываний присвоен отдельный бит разрешающий данное прерывание при установке бита в 1, если бит I регистра состояния разрешает общее обслуживание прерываний.
Самые младшие адреса памяти программ определены как векторы сброса и прерываний. Полный список векторов прерываний приведен в таблице Этот список определяет и приоритет различных прерываний. Меньшие адреса соответствуют более высокому уровню приоритета. Самый высокий уровень у сброса, следующий приоритет у INT0 - внешнего запроса прерывания 0 и т.д. Ниже приведена типичная программа обработки сброса и векторов прерываний:
000 h | rjmp RESET |
Обработка сброса |
001h | rjmp EXT_INT0 | Обработка IRQ 0 |
002h | rjmp EXT_INT1 | Обработка IRQ 1 |
003h | rjmp TIM1_CAPT | Обработка захвата таймера 1 |
004h | rjmp TIM1_COMP | Обработка совпадения таймера 1 |
005h | rjmp TIM1_OVF | Обработка переполнения таймера 1 |
006h | rjmp TIM0_OVF | Обработка переполнения таймера 0 |
007h | rjmp SPI_STC | Обработка передачи по SPI |
008h | rjmp UART_RXC | Обработка приема байта |
009h | rjmp UART_DRE | Обработка освобождения UDR |
00Ah | rjmp UART_TXC | Обработка передачи байта |
00Bh | rjmp ADC | Обработка преобразования АЦП |
00Ch | rjmp EE_RDY | Обработка готовности EEPROM |
00Dh | rjmp ANA_COMP | Обработка аналогов. компаратора |
00Eh | Основная программа | Начало основной программы |
Сброс и векторы прерываний.
Номер вектора | Адрес | Источник | Описание прерывания |
1 | 000h | RESET |
Ножка сброса, сторожевой таймер Brown-Out reset |
2 | 001h | INT0 |
Внешнее прерывание 0 |
3 | 002h | INT1 |
Внешнее прерывание 1 |
4 | 003h | TIMER1 CAPT |
Захват таймера/счетчика 1 |
5 | 004h | TIMER1 COMP |
Совпаден. таймера/счетчика 1 |
6 | 005h | TIMER1 OVF |
Переполнение таймера/счетчика 1 |
7 | 006h | TIMER0 OVF |
Переполнение таймера/счетчика 0 |
8 | 007h | SPI, STC |
Передача по SPI завершена |
9 | 008h |