1.3.2.1. Флаг переноса C (Carry Flag) Флаг переноса устанавливается в 1, если в результате арифметической операции генерируется “перенос из” или “заем в” старший 7-ой бит результата. В противном случае флаг С очищается в 0. В процессе выполнения команд циклического или арифметического сдвига флаг переноса С содержит последний бит, выдвинутый из указанного в команде регистра. Команды могут устанавливать, сбрасывать или инвертировать (дополнять) флаг переноса.
1.3.2.2. Флаг нуля Z (Zero Flag) Если в результате арифметической или логической операции получается нулевой результат, то флаг Z устанавливается в 1, в противном случае флаг Z очищается в 0. Если результат команды проверки бита в регистре равен 00Н,0то флаг нуля устанавливается в 1, в противном случае — очищается в 0. Если результат выполнения команды циклического или арифметического сдвига равен 00Н, флаг Z устанавливается в 1, иначе —сбрасывается в 0.
1.3.2.3. Флаг знака S (Sign Flag) Флаг знака хранит значение старшего бита результата текущей арифметической или логической операции, операции циклического илиарифметического сдвига. Для производства арифметических операций над числами со знаком в МК используется представление информации в дополнительном коде. Положительное число при этом идентифицируется в старшем значащем разряде и, соответственно, значение флага знака также равно 0. Отрицательное число идентифицируется 1 в старшем значащем разряде и, соответственно, флаг S также будет равен 1.
1.3.2.4. Флаг переполнения V (Overflow Flag) Для знаковых арифметических операций, операций циклического и арифметического сдвигов флаг переполнения V устанавливается в 1, если результат больше максимально возможного положительного числа (+127) или меньше минимально возможного отрицательного числа (-128), представленного 8- битным дополнительным кодом. Флаг V устанавливается в 0, если переполнение отсутствует. В результате поразрядных логических операций флаг V всегда сбрасывается в 0.
1.3.2.5. Флаг десятичной коррекции D (Decimal Adjust Flag) Флаг десятичной коррекции D используется для двоично-десятичной арифметики BCD (Binary Coded Decimal). Поскольку алгоритм десятичной коррекции различен для сложения и вычитания, этот флаг сохраняет информацию о последней выполненной команде, для последующей команды десятичной коррекции DA. После выполнения операциивычитания флаг D устанавливается в 1, а после операции сложения —очищается в 0.
1.3.2.6. Флаг полупереноса H (Half Carry Flag) Флаг полупереноса H устанавливается в 1, когда при сложениичисел генерируется перенос из 3-его бита или при вычитании генерируется заем в 3- ий бит. Флаг H используется командой десятичной коррекции DA. Значения всех флагов изменяются командой IRET при восстановлении из стека состояния флагового регистра. Команды WDH и WDT устанавливают флаги Z, S и V в неопределенное состояние. Команда SWAP устанавливает в неопределенное состояние флаги C и V.
1.3.3. Набор команд Команды микроконтроллеров Z8 функционально могут быть разделены на восемь групп: — команды загрузки; — арифметические команды; — логические команды; — команды управления программой; — команды манипуляции битами; — команды пересылки блоков; — команды сдвигов; — команды управления процессором.
1.3.3.1. Описание системы команд В табл.1.8 приведено краткое описание системы команд микроконтроллеров, причем для каждой команды дано мнемоническое обозначение, принятое в языке ассемблера, указан состав операндов и смысл команды на английском языке ( для понимания происхождения мнемоники как аббревиатуры ) и на русском языке. Аббревиатура “сс” в колонке операндов команд управления программой означает код условия ( condition ), а аббревиатура “r”— любой регистр из рабочей группы ( register ).
Таблица 1.8. Краткое описание системы команд микроконтроллера Z8 |Мнемоник|Операнд|Наименование команды | | |а |ы | | | | | |Английский язык |Русский язык | |КОМАНДЫ | | | | |ЗАГРУЗКИ| | | | |CLR |dst |Clear |Очистить | |LD |dst,src|Load |Загрузить | |LDC | |Load Constant |Загрузить константу | |LDE |dst,src|Load External Data |Загрузить внешние данные | |POP | |Pop |Извлечь из стека | |PUSH |dst,src|Push |Загрузить в стек | | | | | | | |dst | | | | |src | | | |АРИФМЕТИ| | | | |ЧЕСКИЕ | | | | |КОМАНДЫ | | | | |ADC |dst,src|Add with Carry |Сложить с переносом | |ADD | |Add |Сложить | |CP |dst,src|Compare |Сравнить | |DA | |Decimal Adjust |Десятичная коррекция | |DEC |dst,src|Decrement |Декремент | |DECW | |Decrement Word |Декремент слова | |INC |dst |Increment |Инкремент | |INCW |dst |Increment Word |Инкремент слова | |SBC |dst |Subtract with Carry |Вычесть с заемом | |SUB |dst |Subtract |Вычесть | | |dst | | | | |dst,src| | | | | | | | | |dst,src| | | |ЛОГИЧЕСК| | | | |ИЕ | | | | |КОМАНДЫ | | | | |AND |dst,src|Logical AND |Логическое И | |COM | |Complement |Дополнение ( НЕ ) | |OR |dst |Logical OR |Логическое ИЛИ | |XOR |dst,src|Logical EXCLUSIVE OR |Исключающее ИЛИ | | | | | | | |dst,src| | | |КОМАНДЫ | | | | |УПРАВЛЕН| | | | |ИЯ | | | | |ПРОГРАММ| | | | |ОЙ | | | | |CALL |dst |Call Procedure |Вызов подпрограммы | |DJNZ |r,dst |Decrement and Jump |Декремент и переход, | | | |Non Zero |если не нуль | |IRET | |Interrupt Return |Возврат из прерывания | |JP |cc,dst |Jump |Переход | |JR | |Jump Relative |Переход относительный | |RET |cc,dst |Return |Возврат из подпрограммы | | | | | | |КОМАНДЫ | | | | |МАНИПУЛЯ| | | | |ЦИИ | | | | |БИТАМИ | | | | |TCM |dst,src|Test Complement |Проверить дополнение | | | |Under Mask |с маской | |TM | |Test Under Mask |Проверить с маской | |AND |dst,src|Bit Clear |Очистить биты | |OR | |Bit Set |Установить биты | |XOR |dst,src|Bit Complement |Дополнить биты | | | | | | | |dst,src| | | | | | | | | |dst,src| | | |КОМАНДЫ | | | | |ПЕРЕСЫЛК| | | | |И БЛОКОВ| | | | |LDCI |dst,src|Load Constant |Загрузить константу | | | |Autoincrement |с автоинкрементом | |LDEI | |Load External Data |Загрузить внешние данные | | |dst,src|Autoincrement |с автоинкрементом | | | | | | |КОМАНДЫ | | | | |СДВИГОВ | | | | |RL |dst |Rotate Left |Циклический влево | |RLC |dst |Rotate Left |Циклический влево | | | |Through Carry |через перенос | |RR |dst |Rotate Right |Циклический вправо | |RRC |dst |Rotate Right |Циклический вправо | | | |Through Carry |через перенос | |SRA |dst |Shift Right Arithmetic |Арифметический вправо | |SWAP |dst |Swap Nibbles |Свопинг полубайтов | |КОМАНДЫ | | | | |УПРАВЛЕН| | | | |ИЯ | | | | |ПРОЦЕССО| | | | |РОМ | | | | |CCF | |Complement Carry Flag |Дополнить флаг переноса | |DI | |Disable Interrupts |Запретить прерывания | |EI | |Enable Interrupts |Разрешить прерывания | |HALT | |Halt |Переход в режим HALT | |NOP | |No Operation |Нет операции | |RCF | |Reset Carry Flag |Сбросить флаг переноса | |SCF | |Set Carry Flag |Установить флаг переноса | |SRP |src |Set Register |Установить указатель | | | |Pointer |регистров | |STOP | |Stop |Переход в режим STOP | |WDH | |WDT Enable During |Разрешение сторожевого | | | |HALT |таймера в режиме HALT | |WDT | |WDT Enable or Refresh |Разрешение или переза- | | | | |пись сторожевого таймера |
1.3.3.2. Условия ветвления программы Команды переходов JP и JR обеспечивают ветвление программы по различным условиям. В качестве условий используются состояния флагов C,Z,S и V, а также их логические функции. Набор допустимых для языка ассемблера условий с указанием мнемонического обозначения (cc), значения, соответствующего состояния флагов и шестнадцатеричного кода условия приведен в табл.1.9. Набор условий предусматривает ветвление по состояниям отдельных флагов, а также по всем возможным соотношениям между целыми числами со знаком и между беззнаковыми целыми числами.
Таблица 1.9. Мнемоника условий (cc) и цифра КОП (c) |cc |Значение |Состояние флагов |c | |F |Всегда ложно |— |0 | | |Всегда истинно |— |8 | |C |Есть перенос |C=1 |7 | |NC |Нет переноса |C=0 |F | |Z |Есть нуль |Z=1 |6 | |NZ |Нет нуля |Z=0 |E | |PL |Положительно |S=0 |D | |MI |Отрицательно |S=1 |5 | |OV |Переполнение |V=1 |4 | |NOV |Нет переполнения |V=0 |C | |EQ |Равно |Z=1 |6 | |NE |Не равно |Z=0 |E | |GE |Больше или равно |(S xor V)=0 |9 | |LT |Меньше |(S xor V)=1 |1 | |GT |Больше |(Z or (S xor V))=0 |A | |LE |Меньше или равно |(Z or (S xor V))=1 |2 | |UGE |Б/з больше или равно |C=0 |F | |ULT |Б/з меньше |C=1 |7 | |UGT |Б/з больше |(C=0 and Z=0)=1 |B | |ULE |Б/з меньше или равно |(C or Z)=1 |3 |
1.4. Конструктивное исполнение микроконтроллеров Z8 Микроконтроллеры широкого применения Z8 выпускаются в различном конструктивном исполнении. Наиболее дешевым и удобным для большинства применений является корпус типа DIP ( Dual In Line Package ). Схема расположения выводов МК для корпусов этого типа показана на рис.1.48. Большинство моделей МК имеет также вариант исполнения в корпусе типа SOIC ( Smal Outline Package ), предназначенном для монтажа на поверхность. Модель 40 выпускается также и в квадратных 44 выводных корпусах типа PLCC ( Plastic Chip Carrier ) и QFP (Quad Flat Pack ). Модели МК 30, 31, и 40 с возможностью многократного перепрограммирования производятся в корпусах типа CerDIP Window Lid, имеющих кварцевое окно для оптического стирания. Полное обозначение микросхемы, кроме шифра, указанного в табл.1.1, содержит дополнительно две цифры, соответствующие максимальной частоте в мегагерцах, три буквы и необязательный буквенно-цифровой код партии. Первая буква означает тип корпуса ( P —пластмассовый DIP, S- SOIC и т.п. ), вторая —температурный диапазон ( S —стандартный: 0 —700C, E -расширенный: -40 —1050C), третья —характеризует защитную оболочку от воздействия окружающей среды ( C — стандартная пластмассовая, E —стандартная герметичная ). Например, полное обозначение МК Z86E02 может быть следующим:
Z86E0208PSC.
Рис. 1.48. Расположение выводов микроконтроллеров Z8 Для более полной информации следует обратиться к фирменным справочникам [4,5].
ЗАКЛЮЧЕНИЕ На основе рассмотренных в настоящем пособии материалов можно заключить, что однокристальные микроконтроллеры являются перспективной элементной базой для построения устройств передачи и обработки данных. Они имеют все необходимые атрибуты для решения всех задач, возникающих при проектировании таких устройств. Прежде всего, это аппаратные средства микроконтроллеров, начиная от встроенной памяти программ и данных и кончая размещенными на кристалле периферийными устройствами, а также средствами обеспечения надежной работы в условиях помех. Разнообразие конструктивного исполнения и возможность выбора варианта с низким напряжением питания и жесткими условиями эксплуатации позволяют разработчику всегда подобрать подходящую модель микроконтроллера для своей конкретной задачи. Комплексная система команд, возможность программирования аппаратной конфигурации, режимов резервирования и низкого электромагнитного излучения позволяют при весьма ограниченных объемах встроенной памяти программ решать сложнейшие задачи применения. Фирма Zilog снабжает свои изделия подробной документацией и средствами разработки. Рассмотренными микроконтроллерами номенклатура продуктов фирмы для устройств передачи и обработки информации не ограничивается. Фирма Zilog производит большое разнообразие микроконтроллеров Z8, микроконтроллеров для цифрового телевидения, для телефонных автоответчиков, цифровых сигнальных процессоров, контроллеров для периферийных устройств и внешней памяти персональных компьютеров, аудио и мультимедиа приборов, специальных микропроцессоров для систем связи [7]. Использование микроконтроллеров для построения устройств передачи и обработки информации позволяет не только улучшить их основные технические характеристики, такие как надежность, быстродействие, точность, массогабаритные характеристики, энергопотребление, но и получить сопровождаемую конструкцию, совершенствование функций которой можно производить без изменения конструкторской документации и перестройки производственного цикла.
ЛИТЕРАТУРА 1. Боккер П. ISDN. Цифровая сеть с интеграцией служб. Понятия, методы, системы: Пер. с нем. - М.: Радио и связь, 1991. - 304 с. 2. Embedded Control Handbook.- Microchip Technology, Inc.- 1994. 3. Z8 Microcontrollers. User's Manual.- Zilog, Inc.- 1995. 4. Discrete Z8 Microcontrollers. Databook.- Zilog, Inc.- 1994. 5. Infrared Remote Controllers. Databook.- Zilog, Inc.- 1994. 6. Superintegration Products Guide 1996-.- Zilog, Inc.- 1996.
----------------------- [pic]
[pic]
Страницы: 1, 2, 3, 4, 5, 6