- •Микроконтроллеры семейства mcs-196 методические указания
- •1. Цель работы
- •2. Теоретические сведения
- •2.1. Архитектура семейства mcs-196
- •2.1.1 Центральный процессор (cpu)
- •2.1.2. Периферийные устройства 8xc196kc и 8xc196kd
- •2.2. Прерывания
- •2.2.1. Модификация приоритетов прерываний
- •2.2.2. Подпрограммы обработки прерывания
- •2.3. Регистры специальных функций
- •2.3.1. Карта памяти
- •2.3.2. Специальные функциональные регистры (sfr)
- •2.3.3. Горизонтальные окна
- •VWindow7
- •2.3.4 Вертикальные окна
- •2.4. Порты ввода/вывода
- •2.5. Сервер периферийного обмена (pts)
- •2.6. Система команд и способы адресации
- •2.7. Работа с пакетом pds
- •2.8. Работа с программой pds2com
- •3. Задание на лабораторную работу
- •4. Требования к отчету
- •5. Контрольные вопросы
- •Применение 87c196kc для ввода/вывода и обработки дискретной и аналоговой информации.
- •1 Цель работы
- •2 Теоретические сведения. Описание лабораторного стенда
- •3. Задание и порядок выполнения работы
- •4. Требования к отчету
- •5 Контрольные вопросы
- •Регистр Управления ацп (ad_command) (Адрес 02h,Горизонтальное окно 0 (Запись) Горизонтальное окно 15 (Чтение)).
- •Регистр Результата ацп (ad_result)
2.2. Прерывания
Основной функцией микроконтроллера является обеспечение управления устройствами в реальном времени. Схема контроллера прерываний позволяет событиям реального времени управлять выполнением программы. Когда событие вызывает прерывание, CPU обслуживает это прерывание перед выполнением следующей команды. Встроенная периферия, внешний сигнал или команда могут выставить запрос на прерывание. В простейшем случае 8XC196KC/KD получает запрос прерывания, осуществляет обслуживание и возвращается к прерванной программе.
2.2.1. Модификация приоритетов прерываний
Программное обеспечение может модифицировать установленные по умолчанию приоритеты маскируемых прерываний через регистры маски прерываний (INT_MASK и INT_MASK1). Например, можно определить, какие прерывания, если это необходимо, могут обслуживаться подпрограммой обработки прерывания, а какие в цикле PTS. Следующая программа показывает возможный вариант запрещения всех прерываний, кроме EXTINT (приоритет 7), в подпрограмме обработки прерывания при приёме в последовательном канале (приоритет 9).
SERIAL_RI_ISR:
PUSHA ; Save PSW, INT_MASK, & WSR
DI ; Disable all interrupts
LDB INT_MASK1, #00100000B ; Ехсept EXTINT
EI ; Enable interrupt servicing
; Service the RI interrupt
POPA ; Restore PSW, INT_MASK, & WSR regsret
RET
Ячейка, которая расположена с адреса 2032h в таблице векторов прерывания, загружается значением метки SERIAL_RI_ISR, для разрешения прерывания приёма.
В таблице 1 показаны источники прерываний, их адрес-векторы и приоритеты контроллеров 8XC196KC/KD
Таблица 1
Номер |
Вектор прерывания |
Источник |
Ячейка вектора прерывания |
Ячейка вектора PTS |
Приоритеты* |
Спец. |
Неподдерживаемый код |
Неподдерживаемый код |
2012h |
****** |
****** |
Спец. |
Программное прерывание |
Команда TRAP |
2010h |
****** |
****** |
INT15 |
NMI** |
NMI |
203Eh |
****** |
15 |
Каждое из следующих маскируемых прерываний может быть назначено на PTS. Любое изPTS прерываний имеет приоритет над всеми другими маскируемыми прерываниями. | |||||
INT14 |
HSI FIFO Full |
Буфер FIFO HSI полный |
203Ch |
205Ch |
14 |
INT13 |
EXTINT** |
P2.2 |
203Ah |
205Ah |
13 |
INT12 |
Timer 2 Overflow |
Переполнение таймера2 |
2038h |
2058h |
12 |
INT11 |
Timer 2 Capture** |
Фиксация значения таймера 2 |
2036h |
2056h |
11 |
INT10 |
HSI FIFO 4 |
Четвертый вход в FIFO HSI |
2034h |
2054h |
10 |
INT09 |
Receive |
RI флаг** |
2032h |
2052h |
9 |
INT08 |
Transmit |
TI флаг ** |
2030h |
2050h |
8 |
INT07 |
EXTINT ** |
P2.2 илиP0.7 |
200Eh |
204Eh |
7 |
INT06 |
Serial Port |
RI флаг иTI флаг **** |
200Ch |
204Ch |
6 |
INT05 |
Software Timer |
Программный таймер 0-3, сброс таймера 2, запуск АЦП. |
200Ah |
204Ah |
5 |
INT04 |
HSI.0 ** |
Вход HSI.0 |
2008h |
2048h |
4 |
INT03 |
HSO |
HSO.0-HSO.5 |
2006h |
2046h |
3 |
INT02 |
HSI Data Available |
Заполнение FIFO HSI или загрузка фиксирующего регистраHSI. |
2004h |
2044h |
2 |
INT01 |
A/D Conversion Complete |
Завершение A/D преобразования |
2002h |
2042h |
1 |
INT00 |
Timer Overflow |
Таймер 1 или 2 |
2000h |
2040h |
0 |
Примечания:
* Прерывание по неподдерживаемым кодам и программное прерывание не имеют приоритетов. Они проходят напрямую в контроллер прерывания на обработку. NMI имеет наивысший приоритет из всех прерываний с приоритетом. Любое PTS-прерывание имеет больший приоритет, чем остальные маскируемые прерывания.
** Данные прерывания могут быть сконфигурированы как независимые внешние прерывания.
*** Если прерывание Serial Port замаскировано , а прерывания Receive и Transmit разрешены, RI флаг и TI флаг генерируют отдельные прерывания Receive и Transmit.
**** Если прерывания Receive и Transmit замаскированы, а прерывание Serial Port разрешено, оба флага RI и TI генерируют прерывания Serial Port.