Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Порядок проведения лабораторной работы. 1. Создайте новый проект и введите программу, листинг которой представлен на рисунке 3.13




1. Создайте новый проект и введите программу, листинг которой представлен на рисунке 3.13.

2. Проанализируйте комментарии к программе.

3. Откомпилируйте проект и перейдите к режиму симуляции.

4. Откройте окна регистров специальных функций и ОЗУ данных.

5. Выполняя в пошаговом режиме (F7) проанализируйте содержимое регистров STATUS, FSR и ячеек памяти с 20h по 31h.

6. Дополните программу таким образом, чтобы после заполнения константой, программа очищала заполненную область.
#include P16F877.inc

 

;******************* Программа ZAPOLN *********************************

; Заполнение константой (0FFh) 32-х ячеек памяти данных с адреса 21h

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

TMP equ 20h; Адрес временного регистра

; с символическим именем TMP

MASKA equ 0ffh; значение константы

 

org 0x00; адрес начала программы

goto START; переход на метку START

org 0x06; адрес размещения основной программы

 

START:

bcf STATUS,RP0; установить 0-й банк ОЗУ

bcf STATUS,RP1;

movlw 21h; w = 21h, начальный адрес массива

movwf FSR; FSR = w, содержмое регистра косвенной адресации

movlw 20h; w = 20h

movwf TMP; TMP = w, количество ячеек ОЗУ подлежащих очистке

NEXT:

movlw MASKA; w = 0FFh(MASKA)

movwf INDF; @FSR = w = FFh,

incf FSR,F; FSR = FSR+1

decfsz TMP,F; TMP = TMP-1

goto NEXT; переход на метку NEXT, если TMP>0

; выход из цикла при TMP=0

end

Рисунок 3.13

Примечание:

1. Для предотвращения синтаксической ошибки при компиляции, все шестнадцатеричные числа в формате: FFh, ABh, DDh, и т.д необходимо дополнять впереди нулём. Корректными являются следующие записи: 4Fh и 0ABh. Для остальных форм записи ограничений не существует: 0xFF или h’FF’.

 

2. Указатель размещения результата в команде: incf FSR,1, подразумевает размещение результата в регистре FSR, а в команде: incf FSR,0 размещение результата в аккумуляторе W. Те же результаты показывают команды, использующие символические имена приёмников: incf FSR,F и incf FSR,W.

 

3. При повторном запуске программы меняйте значение константы MASKA для замены значений ячеек памяти данных с адреса 21h по адрес 41h.

 

4. Пример программы приведён: LAB-Элат \ Lab_Digital \ Mps_2\ Примеры \ zapoln.asm


Контрольные вопросы

 

1. Какой командой можно проверить содержимое аккумулятора W на предмет равенства его нулю?

 

2. Какие выводы и какого порта направлены на вход, а какие на выход после выполнения фрагмента программы:

DAT equ 0x78

bsf STATUS, 5

bcf STATUS, RP1

movlw DAT

movwf TRISB

 

3. Оцените содержимое аккумулятора:

clrw

movwf TMP

comf TMP,W

 

4. Оцените конечный адрес и содержимое массива данных после выполнения программы:

START: movlw 21h

movwf FSR

movlw 5fh

movwf TMP

clrf INDF

incf FSR,F

decfsz TMP,F

goto $-3

end


3.4 Лабораторная работа № 4
«ИЗУЧЕНИЕ КОМАНД АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ»

 

 

Цель работы

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

Краткие сведения

Данная группа команд состоит из 6 команд, позволяющих производить операции сложения и вычитания над целыми 8-ми битными числами. Местом назначения результата арифметической операции может служить как аккумулятор с регистром, так и только аккумулятор, в случае операций с константой.

 

Таблица 3.6 Группа командарифметических операций

 

Мнемокод Описание Флаги
ADDWF f, d Сложение W и f C,DC,Z
ADDWF f, W (f) + (W) ® (W)  
ADDWF f, F (f) + (W) ® (f)  
ADDLW k Сложить константу с W C,DC,Z
    (W) + (k) ® (W)  
DECF f, d Вычесть 1 из f Z
DECF f, W (f) - 1 ® (W)  
DECF f, F (f) – 1 ® (f)  
INCF f, d Прибавить 1 к f Z
INCF f, W (f) + 1 ® (W)  
INCF f, F (f) + 1 ® (f)  
SUBWF f, d Вычесть W из f C,DC,Z
SUBWF f, W (f) - (W) ® (W)  
SUBWF f, F (f) - (W) ® (f)  
SUBLW k Вычесть W из константы C,DC,Z
    k - (W) ® (W)  


Принципиально важно, что команды сложения и вычитания воздействуют на флаг переноса «С»(STATUS<0>), акоманды инкремента и декремента не воздействуют на флаг переноса «С».

Содержание лабораторной работы

Составить программу, в которой присутствует 4 переменные: a1, a2, a3, itog1. В соответствии, со своим вариантом, по данным таблицы 3.7, составить программу. Переменные заданы в десятичных числах, перед составлением программы переведите их в шестнадцатеричную систему. Итоговые значения сохранять в переменной itog1.






Поделиться с друзьями:


Дата добавления: 2016-11-02; Мы поможем в написании ваших работ!; просмотров: 602 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Ваше время ограничено, не тратьте его, живя чужой жизнью © Стив Джобс
==> читать все изречения...

2245 - | 2190 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.