- •3. Методические указания к лабораторным работам
- •3.1 Лабораторная работа № 1 «интегрированная среда разработки программ для микроконотроллеров piCmicro mplab ide 5.61»
- •3.1.1 Цель работы
- •3.1.2 Содержание лабораторной работы
- •3.1.3 Порядок проведения лабораторной работы
- •Графическое меню проектирования
- •3.1.4 Контрольные вопросы
- •3.2 Лабораторная работа № 2 «абсолютная адресация в командах пересылки данных»
- •3.2.1 Цель работы
- •3.2.2 Краткие сведения из теории
- •3.2.2.1 Регистры port а и trisa
- •3.2.2.2 Регистры portb и trisb
- •3.2.3 Содержание лабораторной работы
- •3.2.4 Порядок проведения лабораторной работы
- •3.2.5 Контрольные вопросы
- •3.3 Лабораторная работа № 3 «косвенная адресация в командах пересылки данных»
- •3.3.1 Цель работы
- •3.3.2 Краткие сведения
- •3.3.3 Содержание лабораторной работы
- •3.3.4 Порядок проведения лабораторной работы
- •3.3.5 Контрольные вопросы
- •3.4 Лабораторная работа № 4 «изучение команд арифметических операций»
- •3.4.1 Цель работы
- •3.4.2 Краткие сведения
- •3.4.3 Содержание лабораторной работы
- •3.4.4 Порядок проведения лабораторной работы
- •3.4.5 Контрольные вопросы
- •3.5 Лабораторная работа № 5 «изучение команд логической обработки и маскирования данных»
- •3.5.1 Цель работы
- •3.5.2 Краткие сведения
- •3.5.3 Содержание лабораторной работы
- •3.5.4 Порядок проведения лабораторной работы
- •3.5.5 Контрольные вопросы:
- •3.6 Лабораторная работа № 6 «команды передачи управления»
- •3.6.1 Цель работы
- •3.6.2 Краткие сведения
- •3.6.3 Содержание лабораторной работы
- •3.6.4 Порядок проведения лабораторной работы
- •3.6.5 Контрольные вопросы:
- •3.7 Лабораторная работа № 7 «модуль таймера tmr0»
- •3.7.1 Цель работы
- •3.7.2 Краткие сведения
- •3.7.3 Содержание лабораторной работы
- •3.7.4 Порядок проведения лабораторной работы
- •3.7.5 Контрольные вопросы:
- •3.8 Лабораторная работа № 8 «изучение способов обработки прерываний»
- •3.8.1 Цель работы
- •3.8.2 Краткие сведения
- •3.8.2.1 Прерывание по переполнению tmr0
- •3.8.2.2 Внешнее прерывание с входа rb0/int
- •3.8.2.3 Прерывание по изменению уровня сигнала на входах rb7:rb4
- •3.8.3 Содержание лабораторной работы
- •3.8.4 Порядок проведения лабораторной работы
- •3.8.5 Контрольные вопросы:
- •4. Список рекомендуемой литературы
3.4.4 Порядок проведения лабораторной работы
1. Создайте новый проект и введите программу, реализующую 1-й вариант задания в таблице 3.7. Листинг представлен на рисунке 3. 14.
2. Проанализируйте комментарии к программе.
3. Откомпилируйте проект и перейдите к режиму симуляции.
4. Откройте окна регистров специальных функций и ОЗУ данных.
5. Выполняя в пошаговом режиме (F7) проанализируйте содержимое регистров STATUS, FSR и ячеек памяти с 20h по 31h.
6. Дополните программу таким образом, чтобы после заполнения константой, программа очищала заполненную область.
#include P16F877.inc
;************** Программа SUMM *********************************
; Пример варианта задания: ITOG=((A2+A3)-A1)-1
;***************************************************************
A1 equ 20h ; Адрес 1-й переменной
A2 equ 21h ; Адрес 2-й переменной
A3 equ 22h ; Адрес 3-й переменной
ITOG equ 23h ; Адрес Итога арифметической операции
D1 equ 0Ah ; Значение 1-й переменной
D2 equ 2Ah ; Значение 2-й переменной
D3 equ 0Ch ; Значение 3-й переменной
org 0x00 ; адрес начала программы
goto start ; переход на метку start
org 0x06 ; адрес размещения основной программы
start bcf STATUS,RP0 ; установить 0 банк ОЗУ
bcf STATUS,RP1 ;
movlw D1 ; w=D1
movwf A1 ; A1=w=D1
movlw D2 ; w=D2
movwf A2 ; A2=w=D2
movlw D3 ; w=D3
movwf A3 ; A3=w=D3
movf A2,W ; w=A2
addwf A3,W ; w=w+A3
movwf ITOG ; ITOG=w
movf A1,W ; w=A1
subwf ITOG,F ; ITOG=ITOG-w
decf ITOG,F ; TOG=ITOG-1
end
Рисунок 3.14
Таблица 3.7 Задания к лабораторной работе № 4
№ вар. |
A1 |
A2 |
A3 |
Задание |
1 |
10 |
42 |
12 |
Сложить 2 и 3 переменные вычесть 1 переменную, провести декремент полученного результата |
2 |
12 |
7 |
44 |
Вычесть из 3 переменной 2 и 1, провести инкремент результата |
3 |
6 |
2 |
23 |
Вычесть из 3 переменной 2 и 1, провести декремент результата |
4 |
23 |
21 |
4 |
Вычесть из первой переменной вторую и прибавить третью |
5 |
5 |
5 |
5 |
Сложить 3 переменные, провести инкремент полученной суммы |
6 |
73 |
3 |
8 |
Вычесть из первой переменной вторую и третью |
7 |
45 |
4 |
32 |
Вычесть из первой переменной вторую и третью |
8 |
12 |
21 |
8 |
Сложить 2 и 3 переменные вычесть 1 переменную, провести декремент полученного результата |
9 |
6 |
52 |
3 |
Сложить 3 переменные, провести декремент полученной суммы |
10 |
32 |
6 |
22 |
Вычесть из первой переменной вторую и третью |
11 |
54 |
12 |
6 |
Вычесть из первой переменной вторую и третью, провести инкремент результата |
12 |
27 |
5 |
35 |
Вычесть из 3 переменной разность 1 и 2 переменных |
13 |
20 |
5 |
14 |
Вычесть из первой переменной вторую и третью, провести декремент результата |
14 |
34 |
5 |
34 |
Сложить 3 переменные, провести декремент полученной суммы |
15 |
5 |
15 |
25 |
Сложить 3 переменные, провести инкремент полученной суммы |
16 |
43 |
23 |
1 |
Вычесть из первой переменной вторую и третью |
17 |
7 |
43 |
2 |
Сложить 2 и 3 переменные вычесть 1 переменную, провести декремент полученного результата |
18 |
10 |
12 |
47 |
Сложить 2 и 3 переменные вычесть 1 переменную, провести инкремент полученного результата |
19 |
13 |
63 |
31 |
Вычесть из второй переменной первую и вторую, провести инкремент результата |
20 |
57 |
11 |
3 |
Сложить 1 и 2 переменные вычесть 3 переменную, провести инкремент полученного результата |
Примечание:
1. При выполнении задания, не открывая свой проект, и не создавая новый проект, создайте новый файл, напишите исходный текст программы, сохраните файл под своим именем с номером лабораторной работы с расширением *.asm. Среда MPLAB позволяет компилировать отдельно файл программы без создания нового проекта. Для этого, после сохранения файла, выберите в меню Project пункт Build Node. На рабочем поле появиться окно с параметрами компиляциями Invoke Build Tool. Нажмите «ОК».
2. При пошаговом выполнении программы вы можете использовать не только стандартные окна для отслеживания за изменением состояния регистров, но и создавать свои окна с переменными, внося в них, только интересующие вас регистры. Выберите в подменю Watch Window меню Window пункт New Watch Window…. В результате на экране появится окно Add Watch Symbol (рисунок 3.15) со списком регистров и флагов, которые вы можете разместить в своем окне, включая, переменные созданных вами в программе. Выбрав необходимый вам регистр, или набрав его название в поле «Symbol:», нажмите кнопку «Add», выберите все интересующие вас регистры и флаги, затем нажмите кнопку «Close». На экране появиться ваше пользовательское окно (рисунок 3.16). Его вы можете сохранить, отредактировать, добавить новые переменные с помощью команд из подменю Watch Window, либо используя клавиши Insert, для вставки новой переменной, и Delete, для удаления из списка пользовательского окна переменной.
Рисунок 3.15 Окно Add Watch Symbol
Рисунок 3.16 Окно с переменными
3. Пример программы приведён: LAB-Элат \ Lab_Digital \ Mps_2\ Примеры \ summ.asm.
