русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

MOVWF F


Дата добавления: 2015-08-31; просмотров: 1952; Нарушение авторских прав


Команда копирует байт из рабочего регистра W в заданный регистрF.

Пример

команда MOVWF H’23’скопирует байт из регистра W в регистр 23Н.

MOVFW F

Команда копирует байт из заданного регистра F в рабочий регистр W

Пример

команда MOVFW H’22’ загрузит в W содержимое регистра 22Н.

Следующая программа записывает в рабочий регистр W значение 01010101 и затем выдает его содержимое в TEMP, сбрасывает W, а затем восстанавливает его значение:

MOVLW B'01010101' ;загрузить 01010101 в регистр W MOVWF TEMP ;записать W в TEMP CLRW ; сбросить W (очистить W) MOVFW TEMP ; переслать TEMP в W (восстановить W)SWAP F,dКоманда переставляет местами старшую и младшую тетрады содержимого регистров памяти данных F и помещает результат либо в тот же регистр (d заменить на f), либо в рабочий регистр (d на w).ПримерКоманда SWAP H’22’, w выполняет операцию
КОМАНДЫ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙПроцессоры микроконтроллеров РIС помимо сложения и вычитания могут выполнять и другие арифметические операции: операции сброса, инкрементирования и декрементирования.СложениеADDLW ККоманда позволяет прибавить 8-битную константу к рабочему регистру W.Пример:ADDLW b’10101010’ ADDWF f,dКоманда прибавляет переменную из памяти к содержимому рабочего регистра W. В отличии от команды ADDLW, в качестве адресата может использоваться как w, так и исходный регистр данных f.Пример:ADDWF H’26’,f

MOVLW 0FFH ; Загpузить 0FHh в pегистpW

MOVWF TEMP ;Записать W в TEMP MOVLW 1 ;Загрузить 01h в регистр W ADDWF TEMP,F ;Выполнить сложение (результат 00 –переполнение, флаг Z = 1ОчисткаКак рабочий регистр , так и любой регистр данных могут быть сброшены. В обоих случаях устанавливается флаг Z как результат нулевой операции.CLRWКоманда очищает рабочий регистр. По своему действию она аналогична команде MOVLW 0CLRFКоманда очищает любой регистр данныхПримерКоманда CLRF H’26’сбрасывает все разряды регистра 26Н Будучи составной частью команды 7-битный адрес операнда является фиксированным и поэтому в ходе программы изменяться не может. Существует ряд ситуаций, в которых такое ограничение крайне неудобно.Пример 2.Очистка группы регистровCLRF H’0C’ ; очищаем регистр 12CLRF H’0D’ ; и 13CLRF H’0E’ ; каждая командаCLRF H’0F’ ; занимает однуCLRF H’10’ ; ячейку памятиCLRF H’11’ ;……………. ;…………….. ;CLRF H’4E’ ; ячейка 78, еще чуть-чуть…CLRF H’4F’ ; и наконец 79…..уф!!!END ; конец программыНесмотря на то, что код работоспособен, он чрезвычайно неэффективен. Поскольку в памяти программ микроконтроллера PIC 1684 1024 ячейки, такое решение займет 7% памяти. Должен быть лучший способ!!!Команды инкрементирования и декрементированияСодержимое любого регистра данных можно уменьшить или увеличить на единицу.INCF f,dКоманда увеличивает на единицу содержимое регистра данных и помещает результат либо в рабочий регистр, либо в тот же регистр данных.DECF f,dКоманда уменьшает на единицу содержимое регистра данных и помещает результат либо в рабочий регистр, либо в тот же регистр данных.Пример:В регистре 26Н было записано 64Нпосле выполнения команды DECF H’26’,f в нем окажется 63Н. Обе команды не влияют на флаги переноса C и DC в отличие то эквивалентных команд прибавления или вычитания единицы. В частности, это означает, что при декременте 3х байтного числа, хранящегося в формате
UPPER MIDDLE LOW
просто декрементировать младший байт и контролировать заемы из среднего байта не получится. Нужно использовать команду анализа состояния флага Z , которая пропускает следующую, если Z устанавлен.

DECF REG_L,f ;вычитаем единицу из Low байт



BTFSS STATUS,Z ;ЕСЛИ результат не 0 (Z=0)

GOTO NEXT ; ТО выходим

 

DECF REG_M,f ;ИНАЧЕ декремент Middle байт

BTFSS STATUS,Z ;ЕСЛИ результат не 0 (Z=0)

GOTO NEXT ;ТО выходим

 

DECF REG_U,f ;декремент Up байтБит ориентированные командыВозможность сброса и установки отельного бита в любом регистре памяти данных очень важна , особенно при работе с командами передачи управления и работе с периферийными устройствами. BCF f,bКоманда позволяет программисту сбросить любой из восьми бит b указанного регистра f памяти данныхBSF f,bКоманда позволяет программисту установить любой из восьми бит b указанного регистра f памяти данныхПримерКоманда BSF H’25’,5 устанавливает 5 бит регистра 25h Одним из назнaчений данных команд является управление различными флагами и переключателями регистра STATUS:Пример 1:Инициализация порта ВBSF STATUS,RP0 ; установка page 1MOVLW B‘1111110’ ; настройка портаВMOVWF TRISB ; RB0-выход, остальные-входBCF STATUS,5 ; возврат на page 0

Пример 2:управление поворотом ротора шагового двигателя

На Рис. 7.1. изображен принцип работы шагового двигателя. В двигателе имеются четыре обмотки A, B, C и D которые могут возбуждаться поодиночке или попарно для формирования магнитного поля в одном из восьми направлений с шагом 450 . Так обмотка А формирует поле в направлении север, А+В - северо-восток, В- восток и т.д. Соответственно ротор вращается вслед за изменением направления магнитного поля, при условии, что конструкция двигателя обеспечивает стабилизацию положения ротора при разгоне и торможении. Коды управления обмотками шагового двигателя для всех восьми направлений магнитного поля приведены в табл. Рис. 2

  Рис. 7.1. Формирование магнитного поля   Рис.7.2. Коды управления обмотками шагового двигателя

`Программа состоит из трех частей:

1. START ; Инициализация микроконтроллера, которая настраивает на выход RB[3:0]

2. S_COD; Загрузка кодов управления обмотками шагового двигателя в память данных микроконтроллера

3. LOOP ; Вывод управляющегокода в порт В

;******************************************************

; MOTOR Управление поворотом ротора шагового двигателя;******************************************************

;подключение обмоток двигателя к PORTB RB[3:0]--------

; Инициализация------------------------------------------------------

START

BSF STATUS,RP0 ; page 1

MOVLW b’11110000’ ; константу в W

MOVWF TRISB ; настройка RB[3:0] на выход

BCF STATUS,RP0 ; page 0

; Поворот ротора на заданный угол ---------------------------

S_COD

MOVLW B'00000001' ; последовательная

MOVWF H’10’ ; загрузка

MOVLW B'00000011' ; массива

MOVWF H’11’ ; управляющих

MOVLW B'00000010' ; работой

MOVWF H’12’ ; шагового

MOVLW B'00000110' ; двигателя

MOVWF H’13’ ; кодов

MOVLW B'00000100' ;

MOVWF H’14’

MOVLW B'00001100'

MOVWF H’15’

MOVLW B'00001000' ;

MOVWF H’16’

MOVLW B'00001001' ;

MOVWF H’17’

; Код для управления обмотками шагового двигателя-----------

LOOP

MOVFW H'10' ; последовательный

MOVWF PORTB ; вывод в

MOVFW H’11’ ; порт В

MOVWF PORTB ; управляющих

MOVFW H’12’ ; работой

MOVWF PORTB ; шагового

MOVFW H’13’ ; двигателя

MOVWF PORTB ; кодов

MOVFW H’14’ ;

MOVWF PORTB

MOVFW H’15’

MOVWF PORTB

MOVFW H’16’ ;

MOVWF PORTB

MOVFW H’17’ ;

MOVWF PORTB

GOTO LOOP ;повторить

;-------------------------------------------------------------------------------

END

ВычитаниеВ системе команд есть две команды вычитания, операнды которых аналогичны командам сложения.


<== предыдущая лекция | следующая лекция ==>
ГЛАВА 7. НАБОР КОМАНД PIC КОНТРОЛЛЕРА | SUBWF f, d.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.171 сек.