- •1.Функциональное описание микроконтроллера i80196kc
- •1.1. Обзор архитектуры
- •1.1.1. Ядро 80xc196kc
- •1.1.1.1. Файловый регистр (Register File)
- •1.1.1.2. Регистровое арифметико-логическое устройство (ралу)
- •1.1.1.4. Контроллер памяти ( Memory Controller)
- •1.1.1.5. Контроллер прерываний и pts (Interrupt Controller)
- •1.2. Параметры синхронизации
- •1.3. Внутренние периферийные устройства
- •1.3.1. Стандартные порты ввода-вывода
- •1.3.2. Последовательный порт ввода-вывода
- •1.3.3. Быстродействующий модуль
- •1.3.4. Аналого-Цифровой Преобразователь (ацп)
- •1.3.5. Широтно-импульсный модулятор (шим)
- •1.3.6. Сторожевой Таймер
- •2.Введение в программирование 8xc196kc
- •2.1. Типы программирования микроконтроллера
- •2.2. Система команд
- •2.3. Типы данных
- •2.4. Способы адресации
- •3. Карта памяти микроконтроллера i80c196kc
- •3.1. Основные разделы памяти
- •3.1.1. Разделы внешней памяти
- •3.1.2. Порты 3 и 4
- •3.1.3. Программная память и Память Специального назначения
- •3.1.3.1. Управление доступом к внутренней или внешней памяти
- •3.1.3.2. Память для программ
- •3.1.3.3. Память специального назначения
- •3.1.4. Регистровый Файл(Register File)
- •3.1.4.1. Указатель Вершины стека (sp)
- •3.1.4.2 Регистры Специальных Функций
- •3.2. Работа через горизонтальное окно
- •3.2.1. Выбор hWindow
- •3.3.1. Выбор vWindow
- •3.3.2. Работа с вертикальными окнами и Способы Адресации
- •4. Прерывания
- •4.1 Обработка Прерывания
- •4.2. Описание работы Контроллера Прерывания
- •4.3. Описание работы Периферийной Станции Транзакций(pts)
- •4.4. Приоритеты Прерывания
- •4.5. Изменение Приоритетов Прерывания
- •4.6. Программы Обработки прерывания
- •4.7. Распознавание Прерываний
- •4.8. Время Ожидания Прерывания
- •4.9. Специальные Прерывания
- •4.9.1. Прерывание по Невыполняемому Коду
- •4.9.2. Прерывание по Ловушке Программного
- •4.9.3. Немаскируемое Прерывание
- •4.10. Программирование Прерываний
- •4.11. Предоставление pts Прерывания
- •4.12. Предоставление Стандартных Прерываний
- •4.13. Выбор Источников Прерывания
- •4.14. Регистры Маскирования Прерываний
- •4.15. Регистры Захвата Прерывания
- •4.16. Pts Прерывания
- •4.16.1. Управляющие Блоки pts
- •4.16.1.1. Регистр ptscount
- •4.16.1.2. Прерывание End-of-pts
- •4.16.1.3. Регистр ptscon
- •4.16.2. Краткий Обзор Режима Одиночной
- •4.16.2.1. Пример Режима Одиночной Передачи
- •4.16.3. Краткий Обзор Режима Поблочной
- •4.16.3.1. Пример Режима Поблочной Пересылки
- •4.16.4. Краткий Обзор Режима Сканирования
- •4.16.4.1. Pts Циклы в Режиме Сканирования ацп
- •11Eh ad_result для ach0
- •102H ad_result для acHx
- •100H ad_command для acHx
- •4.16.5. Hsi. Краткий Обзор Режима
- •4.16.5.1. Пример Режима hsi
- •4.16.6. Hso. Краткий Обзор Режима
- •4.16.6.1. Пример Режима hso
- •6. Парраллельные порты ввода - вывода
- •6.1. Краткий Функциональный Обзор
- •6.2.Контакты Порта Ввода
- •6.3. Контакты Порта Вывода
- •6.4. Контакты квази-двунаправленного порта
- •6.5 Контакты Двунаправленного Порта с открытым стоком
- •6.6.Программирование Портов ввода-вывода
- •6.7.Организация Портов Ввода
- •6.7.1. Порт 0
- •6.8. Организация Портов Вывода
- •6.9. Порт 1
- •6.10. Порт 2
- •6.11. Доступ к Порту 3 и Порту 4
- •6.11.1. Порт 3 и Порт 4
- •6.12. Особенности работы с квази - двунаправленными портами
2.3. Типы данных
Архитектура MCS-96 поддерживает несколько типов данных,что удобно в различных системах управления. Для того, чтобы избежать путаницы, имя типа операнда обозначается заглавными буквами. Например, БАЙТ(BYTE) - восьмибитовая переменная без знака, в то время как байт(byte) - восьмибитовый модуль данных любого типа.
8XC196KC использует следующие типы данных :
* БИТ (BIT)
* БАЙТ (BYTE)
* КОРОТКОЕ ЦЕЛОЕ ЧИСЛО (SHORT INTEGER)
* СЛОВО (WORD)
* ЦЕЛОЕ ЧИСЛО (INTEGER)
* ДВОЙНОЕ СЛОВО (DOUBLE-WORD)
* ДЛИННОЕ ЦЕЛОЕ (LONG-INTEGER)
БИТ(BIT) - одиноразрядный операнд, который может принимать Булевые значения - истина и ложь(TRUE&FALSE,0&1). Кроме обычной поддержки битов как компонентов BYTE и WORD операндов, 8XC196KC/KD обеспечивает средства для непосредственного тестирования любого бита во внутреннем Регистровом Файле .
MCS-96 архитектура требует чтобы биты адресовались как компоненты БАЙТОВ или СЛОВ. Она не поддерживает прямую адресацию битов которая может происходить в MCS-51 архитектуре.
Операнд БАЙТ - 8 битная переменная без знака которая может принимать значения от 0 до 255. Арифметические и реляционные операторы могут применяться к операндам
типа БАЙТ, но результат должен не превышать 256 по модулю.
Логические операции на БАЙТАХ выполняются поразрядно. Биты внутри БАЙТОВ помечены от 0 до 7; бит 0 - младший бит. Нет никаких ограничений выравнивания для БАЙТОВ, так что они могут помещаться в любом месте адресного пространства MCS-96 .
КОРОТКОЕ ЦЕЛОЕ ЧИСЛО - 8 битная, знаковая переменная, которая может принимать значения от 128 до +127. Арифметические операции, которые генерируют результаты сверх диапазона КОРОТКОГО ЦЕЛОГО ЧИСЛА устанавливают флажки переполнения в слове состояния процессора. Числовой результат - также как и результат эквивалентной операции на переменных БАЙТА(по модулю не больше 256). Нет никаких ограничений выравнивания на SHORT-INTEGERs, так что они могут помещаться в любом месте адресного пространства MCS-96.
WORD - 16 битная переменная без знака, которая может принимать значения от 0 до 65535. Арифметические операторы могут применяться к операндам СЛОВА, но результат должен интерпретироваться по модулю 65536.Логические операции на WORDs выполняются поразрядно. Биты внутри WORDs помечены от 0 до 15; бит 0 - младший бит.WORD должен выравниваться на четных границах байта в MCS-96 адресном пространстве. Младший байт WORD находится по четному адресу, старший байт находится в следующем старшем (нечетном) адресе. Адрес WORD - это адрес младшего байта( четный адрес байта ). Операции над WORD по нечетным адресам не выполняются.
ЦЕЛОЕ ЧИСЛО(INTEGER) INTEGER - 16 битная, знаковая переменная, которая может принимать значения от 32,768 до +32,767. Арифметические операции, которые генерируют результаты сверх диапазона ЦЕЛОГО ЧИСЛА, устанавливают флажки переполнения в СЛОВЕ СОСТОЯНИЯ ПРОЦЕССОРА. Числовой результат - такой же как результат эквивалентной операции на переменных типа СЛОВА. INTEGERs должен выравниваться на четных границах байта в MCS-96 адресном пространстве. Младший байт INTEGER находится по четному адресу байта, старший байт находится в следующем старшем (нечетном) адресе. Адрес INTEGER - это адрес младшего байта( четный адрес байта ). Целочисленные операции на нечетных адресах могут приводить к противоречивым ситуациям.
ДВОЙНОЕ СЛОВО - 32 битная переменная без знака, которая может принимать значения от 0 до 4,294,967,295. MCS-96 архитектура непосредственно поддерживает операнды ДВОЙНОГО СЛОВА только как операнд в операциях сдвига, как делимое в 32-на-16 операциях деления, и как результат 16-на-16 операциях умножения. Для этих операций, переменная ДВОЙНОГО СЛОВА должна постоянно находиться в Регистровом Файле и должна быть выровнена по адресу, кратному 4 . Адрес ДВОЙНОГО СЛОВА - это адрес младшего байта ( четный адрес байта ). Младшее слово ДВОЙНОГО СЛОВА - всегда в более младшем адресе, даже когда данное находится в стеке. Это означает, что сначала в стек должно помещаться старшее слово. Операции DOUBLE-WORD, которые непосредственно не выполняются, могут легко выполняться на нескольких операциях типа WORD.
ДЛИННОЕ ЦЕЛОЕ - 32 битная знаковая переменная которая может принимать значения от 2,147,483,648 до +2,147,483,647.
Остальные соглашения как для DOUBLE-WORD переменных.