Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_ЭУА_УМК_4_лаб.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
486.4 Кб
Скачать

Фрагмент 4.1. Программирование клавиатуры.

START

CLRF STATUS ; Очистить регистр STATUS.

BSF STATUS, RP0 ; Выбрать банк 1.

MOVLW B’00001111’ ; Число для инициализации порта D.

MOVWF TRISD ; Инициализировать биты RD0 - RD3 на ввод, : остальные клеммы порта D (RD4 - RD7) на вывод.

CLRF TRISC ; Инициализировать PORTC на вывод.

CLRF STATUS ; Выбрать банк 0.

CLRF PORTD ; Очистить регистр PORTD.

CLRF PORTC ; Очистить регистр PORTC.

MOVLW B’10000000’

MOVWF PORTD ; Записать ‘1’ в бит RD7 для настройки на выход.

VKLUCH

BTFSS PORTD,3 ; Проверить появилась ли ‘1’ на выводе RD3, ; настроенного на вход, то есть нажата ли кнопка «1»,

GOTO VKLUCH ; если нет, повторить проверку нажатия кнопки «1»

MOVLW B’01000000’ ; если нажата, то зажечь светодиод, ; подключенный к клемме RC6.

MOVWF PORTC ;

GOTO $ ; Зацикливание программы на этой строке.

END

Задание 3. Напишите программу для задания 4.1 из таблицы 4.1 на основе фрагмента 4.1. Кнопка зажигания светодиодов должна включать набор светодиодов, имитирующий номер варианта.

Задание 4. Дополните программу 4.1 строками для отключения светодиода при нажатии указанной в задании кнопки.

Таблица 4.1- Варианты заданий 4.1

Вариант

Кнопка зажигания светодиодов

Кнопка отключения светодиодов

Вариант

Кнопка зажигания светодиодов

Кнопка отключения светодиодов

1

«1»

«5»

6

«6»

«2»

2

«2»

«6»

7

«7»

«3»

3

«3»

«7»

8

«8»

«4»

4

«4»

«8»

9

«9»

«6»

5

«5»

«1»

10

«0»

«7»

Примечание – В программе должен быть бесконечный цикл включения и выключения светодиодов

Задание 5. Изучите организацию временной задержки за счет циклов на примере программы 4.1. Задавая минимальные и максимальные значения для счетчиков циклов, определите теоретически максимальную и минимальную задержку при частоте тактового генератора 10 Мгц.

Программа 4.2. Организация циклов.

include<p16F877.inc>

MIG EQU H'21' ; Адрес счетчика цикла количества миганий.

TSIKL_IN EQU H'22' ; Адрес счетчика внутреннего цикла задержки.

TSIKL_OUT EQU H'23' ; Адрес счетчика внешнего цикла задержки.

org 0x000 ; Выполнение программы начинается с 0-го адреса.

nop

nop

nop

org 10 ; Начать с адреса 10.

START CLRF STATUS ; Очистить регистр статуса.

BSF STATUS,RP0 ; Выбираем банк 1.

CLRF TRISC ; Настраиваем порт С на вывод.

CLRF STATUS ; Выбираем банк 0.

MOVLW H'02'

MOVWF MIG ; Устанавливаем 2 мигания.

LOOP

MOVLW H'FF'

MOVWF PORTC ; Зажигаем все светодиоды.

CALL TIME_Z1 ; Вызываем подпрограмму задержки.

CLRF PORTC ; Тушим все светодиоды.

CALL TIME_Z2 ; Вызываем подпрограмму задержки.

DECFSZ MIG,1 ; Уменьшаем значение счетчика MIG на 1,

GOTO LOOP ; если он станет равным нулю пропускаем GOTO.

MOVLW H'FF'

MOVWF PORTC ; Зажигаем светодиоды. Сигнал конца программы.

GOTO $

; Подпрограмма задержки TIME_Z1.

TIME_Z1

MOVLW H'02'

MOVWF TSIKL_OUT ; Устанавливаем значение внешнего счетчика.

LOOP_OUT ; Метка внешнего счетчика.

MOVLW H'03'

MOVWF TSIKL_IN ; Устанавливаем значение внутреннего счетчика.

LOOP_IN ; Метка внутреннего счетчика.

DECFSZ TSIKL_IN,1 ; Уменьшаем значение счетчика на 1,

GOTO LOOP_IN ; если он будет равен нулю пропускаем GOTO.

DECFSZ TSIKL_OUT,1 ; Уменьшаем значение счетчика на 1,

GOTO LOOP_OUT ; если он равен нулю пропускаем GOTO.

RETURN ; Конец подпрограммы.

END ; Конец главной программы.

Примечание – Подпрограмма TIME_Z2 не приведена.

Задание 6. Разработайте программу 4.2, включающую и выключающую светодиоды на заданное время по заданию 4.2 в таблице 4.2 .

Таблица 4.2 – Варианты задания 4.2

Вариант

Время включения светодиодов, сек

Время выключения светодиодов, сек

Вариант

Время включения светодиодов, сек

Время выключения светодиодов, сек

1

0,5

5

6

3

2,5

2

1

4,5

7

3,5

2

3

1,5

4

8

4

1,5

4

2

3,5

9

4,5

1

5

2,5

3

10

5

0,5

Примечание – Программа варианта должна зажигать светодиоды, имитирующие номер варианта в двоичной системе

Задания к выполнению лабораторной работы на УМК-7

Задание 1. Введите разработанную дома программу 4.1 в микропроцессор. Продемонстрируйте включение и выключение светодиодов кнопками преподавателю.

Задание 2. Введите разработанную дома программу 4.2 в микропроцессор. После отладки программы в пошаговом режиме, установите количество миганий равное 10 и запустите ее в автоматическом режиме. Заполните таблицу результатов по настройке продолжительности циклов. Заполните таблицу результатов 4.3. Продемонстрируйте работу программы преподавателю.

Таблица 4.3– Результаты настройки циклов задержки

Вариант

Параметры включения светодиодов

Параметры выключения светодиодов

Время включения светодиодов, сек

Значение счетчика TSIKL_IN

Значение счетчика

TSIKL_ OUT

Время выключения светодиодов, сек

Значение счетчика TSIKL_IN

Значение счетчика

TSIKL_ OUT

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

  1. Поясните разработанные схемы соединений и программы к ним.

  2. Как выбирается порядок инициализации порта при подключении всей клавиатуры к контроллеру?

  3. К каким именно портам можно подключить клавиатуру и почему?

  4. Какие числа нужно записать в счетчики циклов, чтобы получить максимальную и минимальную задержку?

  5. Приведите формулу для расчета времени задержки.

  6. Как используется стек при организации подпрограмм?

  7. Сколько вложенных вызовов подпрограмм возможно в микроконтроллере PIC?

Приложение А

Описание УМК-7

Учебный микропроцессорный комплект УМК-7 создан для подготовки специалистов согласно современным требованиям, диктуемых развитием технологий в области применения микропроцессоров и микроконтроллеров в системах АР, СОИ, ДУ технологических процессов. Помимо обучения языку ассемблер на примере программируемого контроллера PIC16F877, студент знакомится с внутренней и внешней структурой современных микроконтроллеров.

Встроенное устройство программирования микроконтроллера, предназначено для ввода программы в микроконтроллер с ПК.

Выводы микроконтроллера PIC16F877 непосредственно соединены с внешними разъёмами УМК-7. Клеммные соединения (внешние разъёмы), предназначены для соединения выводов микропроцессора PIC с внешними устройствами.

К внешним устройствам относятся: клавиатура, светодиоды, жидкокристаллический индикатор, устройство звуковой сигнализации, а также свободная позиция для ввода внешнего аналогового сигнала.

О знакомьтесь с передней панелью стенда (рисунок 1.1), где

1 - микроконтроллер PIC16F877;

2 - ряд клеммных соединений (выводы PIC16F877);

3 - ряд клеммных соединений (выводы внешних устройств);

4 - звуковая сигнализация;

5 - аналоговый вход;

6 - световая сигнализация;

7 - жидкокристаллический индикатор;

8 - клавиатура.

Для того чтобы соединить микроконтроллер с внешними устройствами необходимо соединить нужные клеммы из ряда клеммных соединений микроконтроллера с клеммами из ряда клеммных соединений внешних устройств при помощи перемычек.

Описание MPLAB

MPLAB-ICD – оценочный комплект для микроконтроллеров серии PIC16F87X. Используя возможность внутрисхемной отладки (ICD), встроенную в кристаллы PIC16F87X, а также протокол внутрисхемного последовательного программирования фирмы Microchip (ICSPTM), MPLAB-ICD является программатором и внутрисхемным отладчиком одновременно. Он работает под управлением интегрированной среды разработки MPLAB IDE, подключается к отлаживаемому устройству и работает как микроконтроллер PIC16F87X. MPLAB-ICD предназначен для помощи при ознакомлении и отладке кода в составе лаборатории.

MPLAB-ICD обеспечивает:

  • пошаговое выполнение кода в реальном масштабе времени;

  • точки останова (break points);

  • внутрисхемную отладку;

  • встроенное программирование;

  • диапазон рабочих напряжений от 3.0V до 5.5V;

  • рабочие частоты от 32 Кгц до 20 МГц;

  • отладку по исходному коду и символическим именам;

  • интерфейс пользователя MPLAB;

  • совместимость с Windows XXXX;

  • RS-232 интерфейс.

Приложение Б

Регистр status

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

Таблица А.1 – Биты регистра status

Номера

7

6

5

4

3

2

1

0

Имена

IRP

RP1

RP0

-TO

-PD

Z

DC

C

В таблице А.1 приняты следующие обозначения:

  • IRP бит выбора банка при косвенной адресации (IRP=1 - выбор банка 2 или банка 3, IRP=0 - выбор банка 0 или 1);

  • RP1, RP0 биты выбора банка при непосредственной адресации. Значения банков показаны в таблице А.2;

  • TO флаг переполнения сторожевого таймера;

  • PD флаг включения питания;

  • Z флаг нулевого результата. Записывается “1” при нулевом результате арифметической или логической операции;

  • DC флаг десятичного переноса или заема. Записывается “1”, если был перенос из младшего полубайта, для команд сложения и вычитания в двоично-десятичной системе. Заем имеет инверсное значение;

  • C флаг переноса или заема. Записывается “1”, если был перенос из старшего бита для команд сложения и вычитания. Заем имеет инверсное значение.

Таблица А.2 – Выбор номера банка битами RP1 и RP0

RP1

RP0

Номер банка

0

0

0

0

1

1

1

0

2

1

1

3

К отдельным битам регистра можно обращаться по имени или по номеру. Команда BTFSC STATUS, Z эквивалентна команде BTFSC STATUS, 2.

Значения бит регистра status после его очистки представлены в таблице А.3.

Таблица А.3 – Значения регистра status после команды CLRF STATUS

IRP

RP1

RP0

-TO

-PD

Z

DC

C

0

0

0

1

1

1

1

1

Приложение В

Карта памяти микропроцессора PIC16877