русс | укр

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

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

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

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


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

RLF f,d


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


Команда выполняет циклический сдвиг влево с переносом

Рис.7.4. Циклический сдвиг содержимого регистра данных влево

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

Пример 4:


Пример 5:изменения строчных букв на ПРОПИСНЫЕ

Существуют различные причины для преобразований между строчными и ПРОПИСНЫМИ буквами. ПРОПИСНЫЕ буквы от A до Z имеют коды от 41Н до 5AН, а строчные буквы от a до z имеют коды от 61Н до 7AН.

Единственная разница в том, что пятый бит равен 0 для ПРОПИСНЫХ букв и 1 для строчных:

Биты: 76543210 Биты: 76543210

Буква A: 01000001 Буква a: 01100001

Буква Z: 01011010 Буква z: 01111010

ПрограммаCASE преобразует находящийся в ОЗУ массив ASCII кодов строчных букв в ПРОПИСНЫЕ.

В первой части программы в память данных заносятся ASCII коды сообщения ‘Hello, friends!’. ASCII коды букв начинаются с адреса 10Н.

Вторая часть устанавливает параметры массива – его начальный адрес и кол-во элементов. Размер массива устанавливается в регистре COUNT, начальный адрес - в индексном регистре SFR.

Третья часть, помеченная меткой START, проверяет код символа на предмет попадания в диапазон строчных букв. Этот выполняется командами сравнения SUB и условного перехода BTFSS.

Четвертая часть: перекодировка. Её выполняет команда AND сбрасывая 5й бит, превращая буквы из строчных в ПРОПИСНЫЕ:

ANDLW b’11011111’. Преобразованные символы копируются обратно в ОЗУ.

Пятая часть оставляет без изменения остаются символы, ASCII коды которых не попали в диапазон строчных букв.

Адрес в регистре SFR увеличивается для обработки очередного символа и затем осуществляется переход на следующий цикл.

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



; CASE - Перекодировка в ПРОПИСНЫЕ буквы

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



COUNT EQU 0CH; счетчик числа символов

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

; Загрузка кодов 'Hello, friends!’

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

MOVLW 48H; символ H

MOVWF 10H;

MOVLW 65H; символ e

MOVWF 11H;

MOVLW 6CH; символ l

MOVWF 12H;

MOVLW 6CH; символ l

MOVWF 13H;

MOVLW 6FH; символ o

MOVWF 14H;

MOVLW 2CH; символ ,

MOVWF 15H;

MOVLW 20H; пробел

MOVWF 16H;

MOVLW 66H; символ f

MOVWF 17H;

MOVLW 72H; символ r

MOVWF 18H;

MOVLW 69H; символ i

MOVWF 19H;

MOVLW 65H; символ e

MOVWF 1AH;

MOVLW 6EH; символ n

MOVWF 1BH;

MOVLW 64H; символ d

MOVWF 1CH;

MOVLW 21H; символ !

; Параметры массива-----------------------

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

MOVLW 11H ; Адрес первого

MOVWF FSR ; символа

MOVLW .12 ; Число символов

MOVWF COUNT

START

;проверка на попадание в диапазон 61Н - 7АН------------

MOVFW INDF ; код символа в W

SUBLW 61H ; 61H - W

BTFSC STATUS,C ; ЕСЛИ код меньше нижней границы

GOTO B20 ; ТО к B20

MOVFW INDF ; ИНАЧЕ код символа в W

SUBLW 7AH ; 7AH - W

BTFSS STATUS,C ;ЕСЛИ код больше верхней границы

GOTO B20 ; ТО к B20

; Перекодировка - код символа в диапазоне 61Н - 7АН----

MOVFW INDF ; код символа в W

ANDLW B'11011111' ; сбросить 5-й бит

MOVWF INDF ; вернуть назад

;оставить без изменения-----------------------------------

B20

INCF FSR,f ; Следующий адрес

DECF COUNT,f ; декремент счетчика

BTFSS STATUS,Z ; ЕСЛИ содержимое счетчика не=0 (Z=0)

GOTO START ; ТО продолжить

END ; ИНАЧЕ завершить

ОСНОВНЫЕ ПОЛОЖЕНИЯ НА ПАМЯТЬ

· В командах PIC микроконтроллера в качестве одного их операндов всегдаиспользуется рабочий регистр W.

· Символ d после запятой в команде означает адрес, куда будет помещен результат выполнения команды. Если d=w, то результат помещается в рабочий регистр W, а если d=f, то результат записывается в используемый в команде регистр f.

· Команды BCF F,b и BSF F,b используются для установки и сброса бита b в регистре F. Вторая буква в этих командах указывает на вид операции с битом:

C (CLEAR) – сбросить бит;

S (SET)- установить бит;

b (BIT) – номер/имя бита.

· Команда AND используется для сброса любого бита, а IOR для его установки

· С помощью команды XOR можно инвертировать значение любого бита

ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ

1. PегистрW содержит 11100011 и регистр BOONO содержит маску 01111001. Определите:

а) XORWF BOONO,w; б) ANDWF BOONO,w; в) IORWF BOONO,w; г) XORLW B’11111111’;

2. Используя команды сдвига и пересылки, загрузите в регистр TEMP число 7 и

а) умножьте содержимое регистра TEMP на 2; б) разделите содержимое регистра TEMP на 4.

3. Используя команды логических операций, выполните: а) блокировку старшей тетрады порта В, б) инвертируйте разряды порта В.

4. Напишите программу вычитания содержимого регистра TEMP из BUFER.

5. Напишите программу обмена содержимого регистров BUFER и TEMP.

6. Напишите программу копирования содержимого регистра BUFER в TEMP.

7. Организуйте вращение двигателя Рис. 7.1. в обратную сторону в пошаговом режиме

8. Напишите программу инициализации порта А на вход, а порта В на выход.

9. Погасите светодиод, подключенный к 4-му разряду порта А.

10. Задать конфигурацию регистров специального назначения, расположенных на page1

OPTION_REG B’10101111’, TRISA B’01100’, TRISB B’11111111’



<== предыдущая лекция | следующая лекция ==>
RRF f,d | Конструкция ВЫБОР ПУТИ


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


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

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

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


 


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

 
 

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

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