Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Система команд



Включить / выключить отображение

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DBO
                  D

Отображение информации включено при D=1, при D=0 отображение выключено.

Установить адрес по горизонтали Y

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DBO
        AC5 AC4 AC3 AC2 AC1 ACO

Производит запись координаты в счетчик Y. После выполнения операции записи или чтения данных адрес автоматически инкрементируется.

Установить адрес байта по вертикали X

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DBO
              AC2 AC1 ACO

Производит запись в регистр адреса X. Содержимое регистра X сохраняется до выполнения следующей команды записи в этот регистр.

Установить данные в Z регистре

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DBO
        AC5 AC4 AC3 AC2 AC1 ACO

Устанавливает данные в Z регистре адреса.

Чтение регистра статуса.

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 Db1 DBO
    BUSY   ON/OFF RESET        

BUSY Когда флаг BUSY =s 1, контроллер заружен выполнением внутренних операций и не принимает внешних команд.

При BUSY = 0 контроллер готов к выполнению внешних команд.

ON/OFF При флаге ON/OFF = 1 отображение информации на дисплее включено. Когда ON/OFF = 0 дисплей погашен.

RESET При RESET = 1, система находится в режиме инициализации. При этом никакие команды кроме команды чтения статуса не выполняются. В случае RESET = 0 инициализация завершена и контроллер находится в рабочем состоянии.

Запись данных в экранную память RAM

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DBO
    D7 D6 D5 D4 D3 D2 D1 DO

Данные (D0-D7) заносятся в RAM по ранее установленным адресам X Y. После выполнения операции адрес Y автоматически инкрементируется.

Чтение данных из экранной памяти RAM

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DBO
    D7 D6 D5 D4 D3 D2 D1 DO

Данные (D0-D7) считываются из RAM по ранее установленным адресам X Y. После выполнения операции адрес Y автоматически инкрементируется.


Лекция 3. Микроконтроллерное ядро CIP-51 фирмы SILABS (CYGNAL)

Все микроконтроллеры фирмы SiLabs оснащены усовершенствованным микроконтроллерным ядром CIP-51, полностью совместимым по набору инструкций со стандартным MCS-51 ядром. Это позволяет использовать при разработке программного обеспечения стандартные х51-ориентированные ассемблеры и компиляторы языков высокого уровня (С-51, PL/M-51, FORTRAN-51, PASCAL-51 и т. п.), а также проблемно ориентированные библиотеки подпрограмм, созданные разработчиками за десятилетия существования х51 -совместимых микроконтроллеров. Микроконтроллерное ядро CIP-51 содержит полный набор периферийных узлов, стандартный для MCS-51. В зависимости от типа семейства ядро может содержать 3, 4 или 5 таймеров-счетчиков, один или два последовательных порта UART, как минимум 256 байт встроенной оперативной памяти, 128-байтный регистр специальных функций SFR (Special Function Register). Ядро также обеспечивает управление линиями портов ввода/вывода, которых микроконтроллеры различных семейств могут иметь от 1 до 8 портов (т. е. от 8 до 64 линий ввода/вывода). Несомненным достоинством этого ядра является встроенная аппаратура отладки. Ядро обеспечивает непосредственное управление аналоговыми и цифровыми подсистемами микроконтроллера через соответствующие регистры SFR. Таким образом, ядро CIP-51 с одной стороны обеспечивает полную совместимость со стандартным х51 -совместимым ядром, с другой имеет значительно более широкие аппаратные возможности за счет пополнения встроенной цифровой и аналоговой периферии. Структурная схема ядра CIP-51 показана на рис. 3.1.

Рисунок 3.1. Структурная схема ядра СIР-51.

Несомненно, важнейшим достоинством ядра CIP-51 является усовершенствованная конвейерная архитектура, которая позволяет значительно увеличить производительность по сравнению со стандартной х51 (8051) архитектурой. В микроконтроллерах со стандартной архитектурой 8051 все инструкции за исключением MUL и DIV выполнялись за 12 или 24 машинных цикла. При этом максимальная тактовая частота для большинства х51-совместимых микроконтроллеров составляла 12-24 МГц, и лишь некоторые х51-совместимые микроконтроллеры могли работать на более высоких частотах. Модернизированное ядро CIP-51 выполняет 70% инструкций за один или два машинных цикла, и вообще не имеет инструкций, выполняющихся более чем за восемь машинных циклов. Практически все микроконтроллеры фирмы Cygnal (27 типов, 72%) могут работать при частоте тактового генератора 25 МГц, шесть микроконтроллеров работают на частотах до 20 МГц (16 %) и четыре новых микроконтроллера седьмого семейства C8051F12x функционируют на частотах до 100 МГц. При этом соответственно развивается пиковая (предельная) производитель ность 25, 20 и 100 MIPS

Ядро CIP-51 имеет 109 инструкций. Количество инструкций и соответствующее количество машинных циклов, необходимых для их исполнения, приведено в табл. 3.1.

Таблица 3.1

Инструкция               2  
Количество машинных циклов     2/3   3/4   4/5    

Еще одним важным достоинством микропроцессорного ядра CIP-51 является наличие встроенной аппаратной подсистемы отладки программного обеспечения. Связь с подсистемой микроконтроллера осуществляется через последовательный интерфейс JTAG, соответствующий стандарту IEEE 1149.1. При этом обеспечиваются как режим внутрисистемного программирования ISP (In System Programarable), так и собственно режим отладки. При программировании возможна запись как всего массива программы, так и модификация отдельных байтов. Естественно, что содержимое памяти программ может также читаться и сверяться с оригиналом. Содержимое любого байта программ может читаться или изменяться с использованием инструкций MOVC или MOVX, что также позволяет осуществлять энергонезависимое хранение данных и оперативно их модифицировать под управлением программы.

Встроенная схема обеспечивает отладку в режиме реального времени. При этом возможны установка точек останова и контроля переменных, запуск, останов и пошаговое выполнение программы (включая подпрограммы прерываний), контроль обращений программы к стеку, контроль и модификация содержимого регистров и оперативной памяти. Используемый метод отладки ненавязчив и неагрессивен и не требует никаких ресурсов микроконтроллера (RAM, стека, таймеров и т. п.).

Для ядра CIP-51 с подсистемой отладки фирмой SiLabs созданы программно-инструментальные средства отладки. Программное обеспечение выполнено в виде интегрированной среды развития IDE (Integrated Development Environment), включающей мощный редактор, макроассемблер, отладчик и программатор. Также имеется компилятор языка С.

Важно отметить, что вся цифровая и аналоговая периферия микроконтроллера функционирует корректно в процессе отладки. В процессе останова микроконтроллера или в пошаговом режиме вся периферия (кроме ADC) также работает в соответствующем режиме.

Фирма SiLabs предлагает эволюционные комплекты развития — киты (Developments Kits) для различных семейств и групп своих микроконтроллеров, включающие:

· программное обеспечение для персонального компьютера PC (Personal Computer);

· конвертор RS-232C персонального компьютера в JTAG (питается от платы развития и потребляет порядка 20 мА при напряжении питания 2,7—3,6 В) (в последних модификациях USB);

· собственно плату развития с установленным соответствующим микроконтроллером и большим макетным полем;

· соединительные кабели и внешний источник питания.

Программное обеспечение может функционировать в операционных системах Windows 95/98 /NT/2000/XP.

Набор инструкций микроконтроллеров фирмы SILABS (CYGNAL)

Набор инструкций ядра CIP-51 полностью совместим со стандартным набором инструкций MCS-51. Следовательно, все программное обеспечение, созданное для MCS-51, может быть использовано и для CIP-51. Все инструкции CIP-51 эквивалентны инструкциям MCS-51 и по мнемонике, и по кодам. Отличия имеются только во времени выполнения инструкций.

Во многих х51-совместимых микроконтроллерах существует различие между машинным циклом и циклом (периодом) тактового генератора (или просто тактом). То есть, в них один машинный цикл может быть равен от 2 до 12 тактов. В отличие от них время выполнения инструкций в CIP-51 измеряется только в тактах. Благодаря конвейерной архитектуре ядра CIP-51 многие инструкции выполняются непосредственно во время чтения самой инструкции, т.е. в том же такте. Инструкции условного ветвления выполняются быстрее, если условие не соблюдается. Полный набор инструкций CIP-51 с указанием мнемоники, количества байт и времени выполнения в тактах приведен в табл. 3.2.

Мнемоника Описание Кол-во байтов Кол-во тактов
АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ
ADD A, Rn Сложить содержимое регистра с А    
ADD A, direct Сложить прямоадресуемый байт с А    
ADD A, @Ri Сложить косвенноадресуемый байт с А    
ADD A, #data Сложить данные с А    
ADDC A, Rn Сложить содержимое регистра с А с переносом    
ADDC A, direct Сложить прямо адресуемый байт с А с переносом    
ADDC A, @Ri Сложить косвенноадресуемый байт с А с переносом    
ADDC A, #data Сложить данные с А с переносом    
SUBBA, Rn Вычесть содержимое регистра из А с заемом    
SUBB A, direct Вычесть прямоадресуемый байт из А с заемом    
SUBBA, @Ri Вычесть косвенноадресуемый байт из А с заемом    
SUBB A, #data Вычесть данные из А с заемом    
inc a Увеличить А(+1)    
I[NC_Rn Увеличить содержимое регистра    
INC direct Увеличить прямоадресуемый байт    
INC @Ri Увеличить косвенноадресуемый байт   2*
DEC A Уменьшить А (-1)    
DEC Rn Уменьшить содержимое регистра    
DEC direct Уменьшить прямоадресуемый байт    
DEC @ Ri Уменьшить косвенноадресуемый байт    
INC DPTR Увеличить указатель данных      
MULAB Умножить А на В      
DIV AB Разделить А на В      
DA A Десятичная коррекция аккумулятора      
ЛОГИЧЕСКИЕ ОПЕРАЦИИ  
ANL A, Rn Операция "И" регистра и А      
ANL A, direct Операция "И" прямоадресуемого байта иА      
ANL A, @RI Операция "И" косвенноадресуемого байта и А      
ANL A, #data Операция "И" данных и А      
ANL direct, A Операция "И" А и прямоадресуемого байта      
ANL direct, #data Операция "И" прямоадресуемого байта и данных      
ORL A, Rn Операция "ИЛИ" регистра и А      
ORL A, direct Операция "ИЛИ" прямоадресуемого байта и А      
ORL A, @Ri Операция "ИЛИ" косвенноадресуемого байта и А      
ORL A, #data Операция "ИЛИ" данных и А      
ORL direct, A Операция "ИЛИ" А и прямоадресуемого байта      
ORL direct, #data Операция "ИЛИ" прямоадресуемого байта и данных      
XRL A, Rn Операция "Исключительное ИЛИ" регистра и А      
XRL A, direct Операция "Исключительное ИЛИ" прямоадресуемого байта и А      
XRL A, @Ri Операция "Исключительное ИЛИ" косвенноадресуемого байта и А      
XRL A, #data Операция "Исключительное ИЛИ" данных и А      
XRL direct, A Операция "Исключительное ИЛИ" А и прямоадресуемого байта      
XRL direct, #data Операция "Исключительное ИЛИ" прямоадресуемого байта и данных      
CLR A Очистить А      
CPL A Дополнение А      
RLA Сдвиг А влево      
RLC A Сдвиг А влево с переносом      
RRA Сдвиг А вправо      
RRC A Сдвиг А вправо с переносом      
SWAP A Обмен тетрадами А      
ОПЕРАЦИИ ПЕРЕДАЧИ ДАННЫХ  
MOV A, Rn Перенести содержимое регистра в А      
MOV A, direct Перенести прямоадресуемый байт в А      
MOV A, @Ri Перенести косвенноадресуемый байт в А      
MOV Ar #data Перенести данные в А      
MOV Rn, A Перенести содержимое А в регистр      
MOV Rn, direct Перенести прямоадресуемый байт в регистр      
MOV Rn, #data Перенести данные в регистр      
MOV direct, A Перенести содержимое А в прямоадресуемый байт      
MOV direct, Rn Перенести содержимое регистра в прямоадресуемый байт      
MOV direct, direct Перенести прямо адресуемый байт в прямоадресуемый байт      
MOV direct, @Ri Перенести косвенно адресуемый байт в прямоадресуемый байт      
MOV direct, #data Перенести данные в прямоадресуемый байт      
MOV @Ri, A Перенести содержимое А в косвенноадресуемый байт      
MOV @Ri, direct Перенести прямо адресуемый байт в косвенноадресуемый байт      
MOV @Ri, #data Перенести данные в косвенноадресуемый байт      
MOV DPTR, #datal6 Перенести 16-битные данные в DPTR      
MOVC A, ©A+DPTR Перенести косвенный байт (DPTR) в А      
MOVC A? @A+PC Перенести косвенный байт (PC) в А      
MOVX A, @Ri Перенести внешние данные (8-битный адрес) в А      
MOVX @Ri, A Перенести А во внешние данные (8-битный адрес)      
MOVX A, @DPTR Перенести внешние данные (16-битный адрес) в А      
MOVX @DPTR, A Перенести А во внешние данные (16-битный адрес)      
PUSH direct Записать прямоадресуемый байт в стек      
POP direct Извлечь прямоадресуемый байт из стека      
XCH A, Rn Поменять содержимое регистра и А      
XCH A, direct Поменять содержимое прямоадресуемого байта и А      
XCH A, @Ri Поменять содержимое косвенноадресуемого байта и А      
XCHD A, @Ri Поменять младшую тетраду косвенноадресуемого байта и А      
БИТОВЫЕ ОПЕРАЦИИ  
CLR C Сбросить флаг переноса (=0)      
CLR bit Сбросить прямоадресуемый бит      
SETB C Установить флаг переноса (=1)      
SETB bit Установить прямоадресуемый бит      
CPL C Инвертировать перенос      
CPL bit Инвертировать прямоадресуемый бит      
ANL C, bit Операция "И" прямоадресуемого бита и переноса      
ANL C, /bit Операция "И" инверсного прямоадресуемого бита и переноса      
ORL C, bit Операция "ИЛИ" прямоадресуемого бита и переноса      
ORL C, /bit Операция "ИЛИ" инверсного прямоадресуемого бита и переноса      
MOV C, bit Перенести значение прямоадресуемого бита в перенос      
MOV bit, С Перенести значение переноса в прямоадресуемый бит      
ОПЕРАЦИИ ВЕТВЛЕНИЯ  
JC rel Переход, если перенос установлен   2/3  
JNC rel Переход, если перенос не установлен   2/3  
JB bit, rel Переход, если прямоадресуемый бит установлен   3/4  
JNB bit, rel Переход, если прямоадресуемый бит не установлен   3/4  
JBC bit, rel Переход, если прямоадресуемый бит установлен и очистка бита   3/4  
ACALL addr 11 Абсолютный короткий вызов подпрограммы      
ACALL addr16 Абсолютный длинный вызов подпрограммы      
RET Возврат из подпрограммы      
RETI Возврат из прерывания      
AJMP addr11 Абсолютный средний переход      
LJMPaddr16 Абсолютный длинный переход      
SJMP rel Короткий переход (относительный адрес)      
JMP @A+DPTR Косвенный переход (с DPTR)      
JZrel Переход, если А == 0   2/3  
JNZ rel Переход, если А!= 0   2/3  
CJNE A, direct, rel Переход, если А!= прямоадресуемый байт   3/4  
CJNE A, #data, rel Переход, если А!= данным   3/4  
CJNE Rn, #data, rel Переход, если содержимое регистра!= данным   3/4  
CJNE @Ri, #data, rel Переход, если косвенные данные!= данным   4/5  
DJNZ Rn, rel Уменьшить значение регистра и перейти, если!= 0   2/3  
DJNZ direct, rel Уменьшить значение прямоадресуемого байта и перейти, если!= 0   3/4  
NOP Нет операции      
                     

В ядре CIP-51 инструкция MOVX имеет возможность доступа к Flash-памяти программ в отличие от других х51 -совместимых микроконтроллеров, в которых она используется для доступа к внешней памяти данных. Это позволяет модифицировать Flash-память программ в процессе выполнения программы, использовать часть Flash-памяти для энергонезависимого хранения данных и осуществлять отладку программного обеспечения. Управление доступом осуществляется путем модификации соответствующего бита в регистре PSCTL.

В приведенной таблице использованы следующие обозначения:

Rn — регистры R0—R7 выбранного банка регистров;

@R1 — косвенно адресуемые ячейки памяти через регистры R0-R1;

rel — 8-битное смещение к первому байту следующей инструкции (используется в SJMP и всех остальных условных переходах);

direct — 8-битный прямо адресуемый адрес, используется для прямой адресации памяти данных (0x00-0x7F) или SFR регистров (0x80-0xFF);

#data — 8-битная константа;

#datal6 — 16-битная константа;

bit — прямоадресуемый бит в памяти данных или SFR;

addrll — 11-битный адрес, используемый инструкциями ACALL и AJMP. Адрес должен быть в пределах 2К страницы памяти программ;

addrl6 — 16-битный адрес, используемый инструкциями LCALL и LJMP. Адрес может быть расположен где угодно, в пределах 64К адресного пространства программ.

Ядро имеет один неиспользуемый код 0хА5, который воспринимается так же, как и инструкция NOP. Все мнемонические обозначения команд защищены © Intel Corporation 1980.





Дата публикования: 2015-02-22; Прочитано: 245 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.016 с)...