- •Микропроцессорные системы в электроэнергетике
- •Алматы 2013
- •Введение
- •1 Системы счислений. Карта памяти микроконтроллера
- •1.1 Краткие теоретические сведения
- •1.2 Задания
- •1.3 Контрольные вопросы
- •2 Изучение среды mplab. Управление оборудованием
- •2.1 Краткие теоретические сведения и задания для внеаудиторной подготовки
- •"Умк-mini"
- •2.2 Исходные данные
- •2.3 Выполнение проекта на умк-7
- •4.Выполним соответствующие настройки для запуска Вашего проекта:
- •6.Запуск проекта
- •2.4 Контрольные вопросы
- •3 Сложение, вычитание. Логика
- •3.1 Теоретические сведения
- •3.2 Исходные данные и выполнение программы
- •3.4 Контрольные вопросы
- •4 Операции преобразования информации
- •4.1 Теоретические сведения
- •4.2 Исходные данные и задание
- •4.3 Контрольные вопросы
- •5 Анализ информации посредством регистра состояния
- •5.1 Теоретические сведения
- •5.2 Исходные данные
- •5.3 Порядок выполнения работы
- •5.4 Контрольные вопросы
- •6 Маскирование
- •6.1 Краткие теоретические сведения
- •6.2 Исходные данные и задание
- •6.3 Контрольные вопросы
- •7 Суммирование массива информации
- •7.1 Теоретические сведения
- •7.2 Исходные данные
- •7.3 Выполнение задания
- •7.4 Контрольные вопросы
- •8 Автоматизация окрасочной камеры. Организация подпрограмм
- •8.1 Теоретические сведения
- •8.2 Задание на проектирование.
- •8.3 Выполнение задания
- •8.4 Контрольные вопросы
- •9 Программированиеклавиатуры
- •9.1 Теоретические сведения
- •9.2 Задание на проектирование
- •Фрагмент 9.1. Программирование клавиатуры.
- •9.3 Задание на выполнение
- •9.4 Контрольные вопросы
- •10 Автоматизация упаковки
- •10.1 Задание на автоматизацию упаковочной машины
- •10.2 Исходные данные
- •10.3 Выполнение задания
- •10.4 Контрольные вопросы
- •11 Программирование обработки аварийной ситуации
- •11.1 Теоретические сведения
- •11.2 Задание на проектирование и выполнение программы
- •11.3 Контрольные вопросы
- •12 Программирование таймерных функций
- •12.1 Задание на проектирование
- •12.2 Выполнение работы
- •12.3 Контрольные вопросы
- •Приложение а Системы счислений
- •Приложение б Карта памяти мк pic16877
- •Приложение в
- •Регистр Status
- •Приложение д Описание инструкций мк pic
- •Приложение е Модуль таймера tmr1
- •Список литературы
- •Содержание
- •0 50013, Алматы, Байтурсынова, 126
6.3 Контрольные вопросы
Расскажите, какую реальную задачу решает ваша программа.
Как очистить нечетные разряды числа?
Какой логической функцией устанавливают в разряды единицы?
Какой логической функцией определяют равенство чисел?
Как очистить с 0 по 3 разряды?
Как установить с 4 по 7 разряды?
Зачем применяют логическую функцию Исключающее ИЛИ?
Укажите значение бита ZрегистраSTATUSпосле логической операцииAND, если маска равна 00h?
Как инвертировать все нечетные биты в числе?
Проверка равенства определенных бит числа заданному значению?
Как оставить информацию только в битах 0-3 заданного числа?
Таблицы истинности для AND,OR,XOR.
Какое оборудование подключено к проверяемым битам?
7 Суммирование массива информации
Цель работы: использование косвенной адресации при создании программы суммирования массива. Определение среднего значения массива.
7.1 Теоретические сведения
Суммирование применяется для различных целей: подсчета количества поступивших изделий, определение средней температуры за расчетный период времени и других.
Циклические структуры организуются с помощью операторов условий совместно с оператором перехода. В предыдущих лабораторных работах мы применяли абсолютную адресацию, при этом адрес регистра записывается непосредственно в инструкцию. Здесь будем применять косвенную адресацию при которой в инструкцию записывается указатель адреса, который может меняться в процессе выполнения программы.
Изучите способы организации программ с косвенной адресацией на примере приведенных ниже фрагментов. Регистр FSR,являющимся просто указателем, хранит адрес ячейки, к которой происходит обращение через имя формально существующего регистраINDF.
7.2 Исходные данные
Задача.В массив записано потребление энергии по месяцам. Требуется определить суммарный расход энергии за указанный период и средний расход энергии в месяц. Блок-схема алгоритма представлена на рисунке7.1.
Рисунок 7.1 – Блок-схема
Фрагменты программы.
Include<p16f877.inc> EL_MAS_0 EQU h'40'; нулевой элемент массива.
EL_MAS_1 EQU h'41'
EL_MAS_2 EQU h'42'
EL_MAS_3 EQU h'43' ; последний элемент массива.
IND_EL_MAS EQU h'50'; индекс прибавляемого элемента массива.
SHAG EQU h'22'; шаг изменения данных.
KOL_EL EQU h'44'; регистр хранения количества элементов массива.
SUM EQU h'51'; регистр хранения суммы.
SREDNEE EQU h'52'; регистр для хранения среднего расхода энергии.
; Стандартные операции настройки МК опущены.
; Заполнение массива
MOVLW D'2'
MOVWF SHAG
MOVLW D'11'
MOVWF EL_MAS_0
ADDWF SHAG, W; W= EL_MAS_0+SHAG
MOVWF EL_MAS_1
ADDWF SHAG, W; W= EL_MAS_1+SHAG
MOVWF EL_MAS_2
ADDWF SHAG, W; W= EL_MAS_2+SHAG
MOVWF EL_MAS_3
CLRF SUM
CLRF IND_EL_MAS
MOVLW D'4'; количество элементов массива.
MOVWF KOL_EL
MOVLW EL_MAS_0; запись в аккумулятор адреса регистра EL_MAS_0.
MOVWF FSR; запись в регистр FSR адреса первого регистра массива.
NEXT_ELEM
MOVF SUM, W
ADDWF INDF, W; сложить W и текущий элемент массива.
MOVWF SUM; запоминаем полученную сумму.
; Подготовка к следующему циклу
INCF FSR, F; переход к адресу следующего регистра массива.
INCF IND_EL_MAS, F; фиксируем индекс следующего элемента.
MOVF KOL_EL, W
XORWF IND_EL_MAS, W; проверяем индекс элемента равен 4?
BTFSS STATUS, Z; проверка – все элементы суммировали (Z=1)?
GOTO NEXT_ELEM; только если Z =0, повторяем цикл.
; Подготовка вычисления среднего значения
MOVF SUM, W; если Z=1, все элементы сложили, запоминаем сумму.
MOVWF SREDNEE; копируем SUM в SREDNEE.
END
Выполните самостоятельно деление на 4 регистра SREDNEEс помощью его сдвигов вправо для определения среднего значения.
Количество повторений в цикле определяется следующим образом. Сначала записывается количество элементов в регистр Kol_El. Затем при каждом повторе цикла, увеличиваем индекс элемента в регистре и проверяем, получен ли ноль командойXORWFIND_EL_MAS,W, (здесьW=Kol_El). Поскольку регистр с индексом 4 будет лишним, выходим из цикла. Блок-схема программы приведена на рисунке 7.1. В ней предполагается, что в массив занесены данные.