Банк регистров 1
25 R1* 24 R0* 23
8
8 - уровневый стек или РПД
7
2
Банк регистров 0
1
R1 0 R0
Рис. 2.3. Карта адресного пространства памяти данных.
Из максимального состояния FFh таймер/счетчик переходит в начальное состояние 00h. При этом устанавливается в 1 флаг переполнения, что вызвает прерывание, если оно разрешено командой EN TCNTI. Если прерывания запрещены командой DIS TCNTI флаг переполнения может быть опрошен по команде условного перехода JTF. Выполнение команды JTF, как и переход к подпрограмме обработки прерывания по вектору с адресом 7, сбрасывает флаг переполнения таймера/счетчика. В режиме таймера на вход таймера/счетчика через делитель частоты на 32 поступают синхросигналы машинного цикла (частота которых определяется как fcy/15, где fcy - частота генератора тактовых сигналов МК ) и при fcy= 6 Мгц счетчик увеличивает свое состояние на 1 через каждые 80 мкс (12,5 КГц). В режиме счетчика событий внутренний счетчик увеличивает свое состояние на 1 каждый раз, когда сигнал на входе Т1 переходит из высокого к уровня к низкому. Минимально возможное время между двумя входными сигналами равно 3 машинных цикла (что равно7,5 мкс при использовании резонатора 6 МГц). Минимальная длительность высокого уровня на входе Т1 составляет 1/5 машинного цикла, а низкого уровня - машинный цикл.
2.2. Форматы команд
Все команды имеют формат один или два байта (70% команд однобайтные). Первое слово определяет операцию, длину операнда и методы адресации. Второе слово всегда является адресным и может содержать непосредственный операнд или абсолютный адрес. Основными являются следующие форматы команды:
Первый байт Второй байт
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
Тип 1
Op Code
Тип 2 Op Code #d
Тип 3 a10 a9 a8 Op Code a7
a6
a5
a4
a3
a2 a1 a0
Тип 4 Op Code ad8
Здесь:Op Code |
- код операции; |
#d |
- непосредственный операнд; |
ad8 |
- адрес в пределах текущей страницы; |
a10..a0 - адрес в пределах текущего банка.
2.3. Способы адресации
Для обращения к данным используются четыре способа адресации:
1. Регистровая(разработчики МК называют ее прямой адресацией), когда адрес операнда содержится в теле самой команды. Операндом в этом
случае является регистр, причем его номер указывается в трех младших
битах кода операции (Op Code). В мнемонике ассемблера используются
обозначения R0..R7, R0'..R7'.
2.Непосредственная, когда сам 8-битный операнд (константа) располагается во втором байте команды. В ассемблер-программе перед непосредственным операндом ставиться знак "#".
3.Косвенно-регистровая(разработчики МК называют ее
просто косвенной), при которой адрес операнда располагается в регистре
(R0
или R1), причем его номер указывается в младшем бите кода операции (Op
Code).
4.Неявная, при которой в коде операции содержится неявное указание на один из операндов.Чаще всего таким операндом является
аккумулятор.
2.4. Система команд
Система команд МК включает в себя 96 основных команд и ориентирована на реализацию процедур управления. Время выполнения команд составляет один или два машинных цикла (2,5 или 5,0 мкс при тактовой частоте 6,0 Мгц). Большинство команд выполняется за один машинный цикл.За два машинных цикла выполняются команды с непосредственным операндом, ввода/вывода и передачи управления. Набор команд МК невелик. Для большинства команд допустимы только определенные способы адресации операндов и используемых при этом регистров, причем при этом меняется код команды, что затрудняет изучение системы команд МК и увеличивает таблицу кодов команд.
Система команд МК и правила их выполнения допускают обработку следующих типов данных:
-символы (байты);
-целые числа без знака из диапазона 0..127 (тетрады);
-целые числа без знака из диапазона 0..255 (байты);
- обработка отдельных разрядов (битовых полей).
В описании команд, приводимом ниже, используется двоичное представление кодов команд. Символ n в коде команды обозначает использование в качестве операнда содержимого регистра, номер которого от 0 до 7, символ r - использование косвенной адресации через регистры 0 или 1. Символ p=1..2 используется для задания номера порта ввода/вывода, а символ s=4..7 определяет номер дополнительного порта ввода/вывода.
Все команды пересылки данных (таблица 1), за исключением MOV PSW,A не оказывают воздействия на флаги. Алгоритмы выполнения большинства команд пересылки очевидны и только некоторые команды требуют дополнительных пояснений. Так по команде MOVP A,@A содержимое ячейки текущей страницы памяти программ, адрес которой берется из аккумулятора, пересылается в аккумулятор. Аналогично по команде MOVP3 A,@A содержимое ячейки третьей страницы памяти программ, адрес которой берется из аккумулятора, пересылается в аккумулятор. При выполнении команд ввода/вывода в порты Р1 и Р2 IN и OUT, следует помнить, что они представляютсобой управляемые буферные регистры. При выдаче информации выводимый байт данных фиксируется в буферном регистре порта, а при вводе он не фиксируется и должен быть прочитан МК в течение периода присутствия байта на входах порта. Схемотехника портов Р1 и Р2 такова, что ввод данных в некоторую линию возможен только в том случае, если предварительно в данный бит порта программой МК была записана 1. Порт BUS может выполнять все функции, перечисленные для портов Р1 и Р2, но в отличие от них он не может специфицироать отдельные линии на ввод или на вывод. Все восемь линий порта BUS должны одновременно быть либо входными, либо выходными. По командам MOVX порт BUS используется в качестве двунаправленного синхронного канала для доступа к ВПД. Команды MOVD A,Ps и MOVD Ps,A предназначены для обмена с дополнительными портами Р4..Р7.
Мнемокод команды Операнд Машинный код команды Число циклов Действие
MOV
A, Rn
| 05_Холера |
| 10.4. Исследование регистров |
| 1112 |
| 12 |
| 1568 |
| 1673 |
| 17 |
| 1703 |
| 1885 |
| 2. Генераторы постоянного тока |