- •Микропроцессорные системы в электроэнергетике
- •Алматы 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
7.3 Выполнение задания
Используя приведенный фрагмент, подготовьте программу по варианту из таблицы 7.2. Результаты занесите в таблицу 7.1.
Т а б л и ц а 7.1– Сумма массива и среднее массива
Вариант |
Индекс регистра |
Адрес регистра массива, указываемый в FSR |
Число в регистре массива |
Сумма в регистре W | |
Форма h |
Форма D |
Форма В | |||
|
- |
- |
- |
00 |
00000000 |
11 |
1 |
40h |
D ‘11’ |
11 |
00001011 |
11 |
2 |
41h |
D ‘13’ |
24 |
00011000 |
11 |
3 |
42h |
D ‘15’ |
39 |
00100111 |
11 |
4 |
43h |
D ‘17’ |
56 |
00111000 |
|
|
56 делим на 2 |
28 |
00011100 | |
|
|
28 делим на 2 получаем среднее |
14 |
00001110 |
Т а б л и ц а 7.2 – Варианты заданий
Вариант |
Значение первого регистра |
Адреса регистров массива |
Вариант |
Значение первого регистра |
Адреса регистров массива |
1 |
D’21’ |
21h – 24h |
6 |
D’26’ |
26h – 29h |
2 |
D’22’ |
22h – 25h |
7 |
D’27’ |
27h – 30h |
3 |
D’23’ |
23h -26h |
8 |
D’28’ |
28h – 31h |
4 |
D’24’ |
24h -27h |
9 |
D’29’ |
29h – 32h |
5 |
D’25’ |
25h -28h |
10 |
D’30’ |
30h – 33h |
Примечание. Шаг заполнения массива примите равным двум. |
Создайте окно наблюдения для всех регистров в необходимом формате чисел и внесите в отчет по лабораторной работе. Для данной программы необходимые регистры показаны на рисунке 7.2. Чтобы быстро получить данные в окне наблюдения запустите составленную программу в автоматическом режиме и затем нажмите кнопку F5. | |
Рисунок 7.2 – Окно наблюдения |
|
7.4 Контрольные вопросы
Биты Statusменяющие свои значения при операциях вычислений?
Поясните команду условного перехода BTFSSSTATUS,Z.
Поясните команду XORWFIND_EL_MAS,W.
Как можно определить равенство чисел?
Какие способы адресации вы знаете?
Как контролируется в цикле выход за пределы массива?
Назначение регистра FSR.
Назначение регистра INDF.
Как находится среднее четырех регистров?
Как выполняется деление на четыре?
Зачем очищается регистр IND_EL_MASперед циклом сложения?
Какое участие принимает бит CрегистраStatus в операции сдвига?
8 Автоматизация окрасочной камеры. Организация подпрограмм
Цель работы: разработка и исследование подпрограмм выдержки времени. Автоматизация работы окрасочной камеры
8.1 Теоретические сведения
Подпрограммы применяют в тех случаях, когда в нескольких местах алгоритма требуется выполнить идентичные действия с разными данными. Отсчет времени можно организовать с помощью подпрограмм со счетчиками, что и реализовано в алгоритме, показанном на рисунке 8.1. Часто программу разбивают на подпрограммы, чтобы упростить её чтение.
Рассмотрим сначала работу внутреннего цикла подпрограммы Timer. Сначала счетчику внутреннего циклаSch_inзадаем какое-то значениеN. Затем значение счетчикаSch_inуменьшается на 1 и проверяется: не стало ли оно нулевым. Если значение счетчика не равно нулю, то выполняется инструкция переходаGOTO M_in, повторяющая цикл. Если счетчик обнулился, программа выходит из цикла. Длительность задержки времени определяется начальной величиной счетчикаSch_inи временем выполнения инструкций подпрограммы в МК. Поскольку микропроцессор работает с высокой частотой, то часто приходится создавать внешний цикл со счетчикомSch_outдля увеличения времени задержки. Его работа аналогична. Сначала задаем значениеSch_out=W.На каждый цикл уменьшенияSch_outна единицу, внутренний цикл сработаетNраз. Время задержки будет определяться произведениемSch_outSch_inи частой работы генератора МК.
Подпрограммы пишут после инструкции GOTO$основной программы. Подпрограмма всегда начинается с имени, которое должно быть написано без пробела. Заканчивается подпрограмма инструкцией возврата в основную программуRETURN. Подпрограмма из основной программы вызывается по имени инструкцией CALL ИМЯ, например CALL Timer.Значение аккумулятораWявляется аргументом для подпрограммыTimer, определяющим длительность её работы. После завершения ее работы управление передается в главную программу на следующую инструкцию после инструкцииCALL Timer.