
- •Микроконтроллеры
- ••Корпорация STMicroelectronics (STM) один из всемирно признанных лидеров микроэлектроники, создана в 1987 году
- •ST7Microelectronics и университеты
- •Библиографический список
- •УМК «Микропроцессорные системы»
- •РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ "Training Board
- •обзор обучающей программы
- •1-ый шаг изучения: STVD7 версия 3 - без учебной
- •2-ой шаг изучения: STVD7 версия 2- с inDART STX
- •Краткий обзор семейства ST7
- •Система обозначений ST7
- •Структурная схема ST7
- •Структурная схема ST7 3/4
- •Структурная схема ST7 4/4
- •Назначения выводов МК ST7
- •Описание вводов/выводов
- •Карта памяти и регистров
- •Адрес Блок
- •Адрес
- •Окончание таблицы 2
- •FLASH ПАМЯТЬ ПРОГРАММ
- •СПОСОБЫ ПРОГРАММИРОВАНИЯ
- •In-Circuit Programming (ICP)
- •In-Application Programming (IAP)
- •Интерфейс ICC
- •Защита FLASH памяти
- •ПАМЯТЬ ДАННЫХ EEPROM
- •ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР (ядро MCU)
- •РЕГИСТРЫ CPU
- •РЕГИСТРЫ CPU
- •Иллюстрация работы стека
- •РЕГИСТРЫ CPU
- •РЕГИСТР КОДА УСЛОВИЯ 1/3
- •РЕГИСТР КОДА УСЛОВИЯ 2/3
- •РЕГИСТР КОДА УСЛОВИЯ3/3
- •СИСТЕМА КОМАНД ST7
- •СПОСОБЫ АДРЕСАЦИИ
- •Неявная (Inhern)
- •Способ адресации
- •СПОСОБЫ АДРЕСАЦИИ
- •Short Indirect
- •Short
- •Inherent (Неявная адресация)
- •Instruction
- •Instruction
- •Непосредственная (Immediate)
- •Immediate Instruction
- •Прямая адресация
- •Прямая длинная
- •Индексная
- •Индексная короткая
- •Индексная длинная
- •Косвенная (короткая, длинная)
- •Косвенная короткая
- •Косвенная длинная
- •Косвенная индексная (короткая, длинная)
- •Косвенная индексная короткая
- •Косвенная индексная длинная
- •Длинные и короткие
- •Относительный способ (прямой, косвенный)
- •Пояснение примера относительного прямого
- •Косвенный относительный. Пример:
- •(Available Relative Direct/Indirect
- •СИСТЕМА КОМАНД
- •Load and Transfer
- •Использование пред байта
- •Использование пред байта
- •СПИСОК КОМАНД МК ST7
- •Mnem Description
- •CALL
- •УПРАВЛЕНИЕ
- •Управление синхронизацией1/4
- •Управление синхронизацией
- •Главный регистр контроля/статуса частоты
- •RC Control Register (RCCR)
- •Управление
- •Рис. 2.4. Блок-схеме RESET
- •Источники RESET
- •Рис. 2.5. Фазы Сброса
- •Фаза задержки Сброса
- •Блок управления целостностью системы
- •Регистр управления целостностью системы
- •Регистр управления целостностью
- •Конфигурирование устройства
- •Байт выбора 0 (продолжение)
- •Значения «по умолчанию» байтов выбора
- •OPTION BYTE 1
- •ПРЕРЫВАНИЯ
- •Рис. 3.1. Схема процесса прерывания
- •Source
- •Периферийные прерывания
- •Внешние прерывания
- •Т а б л и ц а 3.2 Биты чувствительности прерываний
- •Выбор линий портов РА и РВ для внешних прерываний осуществляется битами регистра EISR
- •Периферийные устройства
- •Параллельные порты ввода-вывода
- •Конфигурирование портов

Индексная
Адрес операнда определяется без знаковым сложением содержимого индексного регистра (Х или У) и смещения, три под способа: Индексная
без смещения.
•Нет смещения, позволяет адресоваться к пространству 00 – FFh.
•Пример:
• |
00b8 |
1122 |
table |
dc.w |
$1122 |
• |
00ba |
3344 |
|
dc.w |
$3344 |
• . . . . |
|
|
|
|
|
• |
05f2 |
aeb8 |
|
ld X, #table |
|
• |
05f4 |
f6 |
|
ld A,(X) ; |
загрузка |
|
индекса без смещения. |
|
|
•Комментарий: СРU вычисляет адрес аргумента сложением
нулевого смещения $00 с содержимым индексного регистра X.

Индексная короткая
•Смещение - байт после opcode . Адресация к 00 - 1FEh.
•Пример:
• 0089 |
1122 |
table dc.w |
$1122 |
• 008b |
3344 |
dc.w |
$3344 |
• . . . . |
|
|
|
• 05f2 |
ae03 |
ld X, #03 |
; загрузка |
индекса |
|
|
короткого. |
|
|
|
|
• 05f4 |
e689 |
ld A,(table,X) |
•Комментарий: СРU вычисляет адрес аргумента сложением байта ячейки $05f5 с содержимым индексного регистра X.
•Состояние после выполнения:
•{X} = $03; {A} ={ {$05f5} + {X} } = {$89 + $03} =
{8c} = $44; {PC} = $05f6.

Индексная длинная
• Смещение - 2 байта после opcode. Адресация к 64 кб памяти.
• Пример: |
|
|
• 05f2 |
90ae02 ld |
Y,#02 |
• 05f5 |
90d6077e |
ld A,(table,Y) ;load indexed |
long |
|
|
•....
•077e 1122 tabledc.w $1122
•0780 dc.w $5577
•Коментарий: CPU вычисляет адрес аргумента по содержимому
двух байтного числа из ячеек $05f7 и $05f8, суммируя его с содержимым индексного регистра Y.
•Состояние после выполнения:
•{Y} = $02
•{A} = {{$05f7,$05f8}+{Y}} = {$077e+$02} = {$0780}
=$55
•{PC} = $05f9.

Косвенная (короткая, длинная)
•Адресация операнда осуществляется указателем, расположенным в памяти. Адрес указателя следует за opcode. Косвенный способ адресации состоит из двух под способов:
•Косвенная короткая.
•Адрес указателя состоит из 1 байта и следует после opcode, размер указателя также равен 1 байту. Адресуемое пространство 00 – FFh.
•Косвенная длинная.
•Адрес старшего байта указателя состоит из 1 байта и следует после opcode. Размер указателя - слово, хранится в двух ячейках. Адресация к 64 кб памяти.

Косвенная короткая
• Пример:
• 0089 42 var dc.b $42
•....
•00cb 89 ptr dc.b var
•....
•05f2 92b6cb ld A,[ptr] ; загрузка косвенная
короткая
Коментарий: CPU находит адрес аргумента в локальной памяти по имени короткого указателя ptr.
•Состояние после выполнения:
•{A} = {{ptr}} = {{$cb}} = {$89} = $42
•{PC} = $05f5

Косвенная длинная
•Пример:
•00cb 48c0 ptr dc.w var
•....
•05f2 92cdcb ldA,[ptr.w] ; загрузка косвенная
длинная
•....
•48c0 99 var dc.b $99
•Коментарий: CPU находит адрес аргумента в локальной памяти по имени длинного указателя ptr.
•Состояние после выполнения:
•{A} = {{ptr.w}} = {{0xcb}} = {$48c0}= $99
•{PC} = $05f5

Косвенная индексная (короткая, длинная)
•Это - комбинация косвенных и коротких индексных способов адресации. Адрес операнда определяется без знаковым сложением содержимого индексного регистра (X или Y) с величиной указателя в памяти. Адрес указателя следует за opcode.
•Косвенный индексный способ адресации состоит из двух под способов:
•Косвенная индексная короткая
•Адрес указателя - байт, размер указателя – байт. Позволяет адресоваться к пространству памяти 00 - 1FEh и требует 1 байта после opcode.

Косвенная индексная короткая
• Пример:
• 0040 00 table dc.b 0,1,2,3
•0041 01
•0042 02
•0043 03
•....
•0089 40 ptrdc.b table
•....
• 05a0 |
ae03 |
ld X,#3 |
• 05a2 |
92e689 |
ld A,([ptr],X);загрузка косвенная индексная короткая |
•Коментарий: CPU вычисляет адрес аргумента сложением однобайтного указателя, считываемого из локальной ячейки 0х89 и содержимого индексного регистра Х.
•Состояние после выполнения:
•{A} = {{ptr}+{X}} = {$40+$03} = {$43} = $03
•{PC} = $05a5

Косвенная индексная длинная
•Адрес старшего байта указателя состоит из 1 байта и следует после opcode.
•Размер указателя - слово, хранится в двух ячейках памяти позволяет адресация к 64 килобайтам памяти.

|
|
Косвенная индексная длинная. Пример: |
• 0089 |
1f40 ptr dc.w table |
|
• .... |
|
|
• 05a0 |
ae03 |
ld X,#3 |
• 05a2 |
92d689 |
ld A,([ptr.w],X) ;загрузка косвенная |
индексная длинная
•....
•1f40 f0 table dc.b $f0,$f1,$f2,$f3
•1f41 f1
•1f42 f2
•1f43 f3
•Коментарий: CPU вычисляет адрес аргумента сложением двух
байтного указателя, считываемого из ячеек 0х89 и 0х8А, и содержимого индексного регистра Х.
•Состояние после выполнения:
•{A} = {{ptr}+{X}} = {{$1f40}+$03} = {$1f43} =
$f3
•{PC} = $05a5