- •Лабораторные роботы по дисциплине «мп в си»
- •Лабораторная робота № 2 по дисциплине «мп в си»
- •4. Содержание протокола.
- •К афедра приборостроения Методические указания
- •1. Цель работы:
- •2. Теоретические сведения.
- •3. Ход выполнения работы.
- •4. Отчет по лабораторной работе должен содержать:
- •Цель работы:
- •Теоретические сведения.
- •Ход выполнения работы
- •Устройства ввода в мпс
- •1. Цель работы:
- •2. Теоретические сведения:
- •3. Ход выполнения работы.
- •Кафедра приборостроения Методические указания
- •Методические рекомендации
- •3. Ход выполнения работы
Лабораторная робота № 2 по дисциплине «мп в си»
Тема: «Электронный пинг-понг» ( на установке с микроЧИП РІС16F84).
Цель работы: 1. Знакомство с функциями миниатюрной МПС фирмы Microchip, выполненной в виде 18-контактной интегральной микросхемы.
2. Знакомство с задачами програмного обеспечения, управляющего ходом игры (считывание с входов состояния переключателей и прогнозирование позиций светодиодов).
Содержание и направленность лабораторной работы.
При выполнении этой лабораторной работы студенты знакомятся с функциями встроенной системы, реализированной на базе одного из наиболее популярних микроконтроллеров симейства РІС.
«Встроенная система – это система, основная функция которой не вычислительная, а управляющая, реализованная с помощью маленького комп’ютера, встроенного в эту систему».
Лабораторная работа построеная в виде игры на внимательность и способность прогнозировать состояние светодиодов, анализируя скорость движения «электронного мячика»(установленого программно).
Одно из запоминающих устройств хранит программу, управляющую ходом игры. Эта программа считывает со входов состояние позиции переключателей (пульты, дистанционного управления игроков) и таким образом просчитывает требуемые позиции светоизлучающих диодов. Следовательно, программа может управлять еще и светодиодами. Студенты видят, что эта компьютерная система питается всего лиш от двух батареек ААА!
Рис. 1. Лабораторная установка электронного «пинг - понга»
Микроконтроллер 16F84А–это один из самых успешных микроконтроллеров семейства РІС. Сначала он назывался РІС16С84. Затем появилась версия с технологией Flash и название было изменено на РІС16F84. Версия «А» микроконтроллера может работать быстрее (20 МГц вместо 10 МГц).
Поскольку работа выполняется в начале семестра (2-3 неделя) и носит ознакомительный характер, студенты готовят упрощенный протокол на одной странице формата А4.
Содержание протокола: название, цель работы, схема размещения выводов МК РІС16F84А, перечень функциональных элементов на кристалле, выводы по работе (преимущества RISC-архитектуры).
Рис. 2. Схема размещения выводов РІС16F84
Вопросы для самоконтроля.
Чем отличается «Гарвардская» RISC–архитектура от
«Фон – Неймановской» (CISC – архитектуры)?
Чем отличается понятия МПС, МП и МК?
Что входит в понятие «вычислительная мощность МП»?
Что понимают под контроллерными функциями МП?
Что представляют собой порты?
Министерство науки и образования Украины
Национальный технический университет Украины
"Киевский политехнический институт"
Кафедра приборостроения
ЛАБОРАТОРНАЯ РОБОТА №3
Изучение контроллерных функций МП (работа с программой «бегущие огни»)
Киев 2007
1.ЦЕЛЬ РАБОТЫ:
1. Изучение контроллерных (управляющих) функций МП.
2. Формирование временных задержек программным путем.
2. Пример разработки программного обеспечения:
Рассмотрим описание программы контроллера "бегущие огни".
Индикаторы выходного порта (светодиоды) используются как имитаторы "бегущих огней". Контроллер должен регулировать следующую последовательность чередования горения светодиодов:
1. Горят светодиоды 1,4, 7; остальные погашены.
2. Время горения установленных светодиодов.
3. Горят светодиоды 2,5, 8; остальные погашены.
4. Время горения установленных светодиодов.
5. Горят светодиоды 3, 6; остальные погашены.
6. Время горения установленных светодиодов.
7. Повторение процесса (переход к шагу 1).
На рис.1 приведен алгоритм работы контроллера.
Выходные индикаторы (светодиоды YD1...YD8) подключаются к шине данных с помощью программируемого интерфейса.
В табл.1 показаны используемые комбинации сигналов имитирования "бегущих огней" на светодиодах. Единица в двоичном коде сигнала означает включенный индикатор.
Таблица 1
VD1 |
VD2 |
VD3 |
VD4 |
VD5 |
VD6 |
VD7 |
VD8 |
Н-Код |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
92 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
49 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
24 |
Рис. 1. Алгоритм программы последовательности горения светодиодов. |
Программа задержки
Для работы основной программы необходимо разработать подпрограмму, вызывающую задержку. Простейший способ генерирования задержки показан на рис.2. Однако, максимальное время задержки, полученное таким способом, не превышает 1735 мкс. Принцип получения более длительной задержки будет описан ниже.
Программа контроллера «бегущие огни»
После составления алгоритмов и определения характеристик, можно писать программы. Основная программа последовательности довольно проста (табл.2). Таблица 2
|
Программа последовательности устанавливает в регистр А число 92 -код выходных индикаторов, при котором светодиоды 1, 4, 7 - горят, а светодиоды 2, 3, 5, б, 8 - погашены.
Затем вызывает подпрограмму задержки. Для чего программа последовательности задает величину задержки в регистр D, после чего вызывается сама подпрограмма задержки. Далее эта последовательность повторяется для других кодов выходных сигналов светодиодов.
Р |
Разработка программы задержки
В табл. 3 приведена программа задержки, алгоритм которой показан на рис. 2.
Таблица 3 Простая программа задержки
Чтобы использовать эту программу, в аккумуляторе устанавливается нужное значение задержки и вызывается программе задержки. Содержимое аккумулятора уменьшается до тех пор, пока не достигает нуля, после чего управление возвращается на программу вызова. Время задержки, полученное при выполнении этой программы., можно проанализировать следующим образом:
|
- в примечаниях указано число периодов синхроимпульсов (тактов) необходимых для выполнения каждой команды;
- для DCR А требуется четыре такта. Для JNZ, в случае выполнена условия, требуется 10 тактов, если же условие не выполняется - 7 тактов Для RET требуется 10 тактов. Для каждого прогона по петле требуете 4+10=14 тактов. Для последнего прогона требуется 4+7+10=21 такт, так Kai команда JNZ не вызывает перехода и требует семь тактов, для команды RE требуется 10 тактов.
Следовательно, уравнение для задержки имеет вид:
Задержка = (А-1)-14+21 /тактов/
Один такт длится 0,5 мкс. Поэтому уравнение можно переписать следующим образом:
Задержка = (А-1)- 7 мкс+10,5 мкс
Здесь А - начальное содержимое аккумулятора.
Самая длинная задержка вызывается установкой аккумулятора в нуль При первом прогоне по петле содержимое аккумулятора уменьшается i становится равным 255. Первоначальная установка в нуль эквивалент тому, что А=256. Следовательно, максимальная задержка равна:
(256-1)7+10,5=1795 мкс.
Использование пар регистров
Для получения более длительной задержки целесообразно применит! команды, воздействующие на пары регистров.
Использование команды DCX В, уменьшающей содержимое парь регистров В, С позволяет увеличить счет задержки до значения 2562=6553б Так как команда DCX В не влияет на нулевой флаг МП, то для этого используется команда OARC. После этого может быть использована команда JNZ.
В табл. 4. приведена программа задержки, используемая для контроллера «бегущие огни».
Таблица 4
Метки |
Команды |
Комментарии |
DELAY: |
LXI В, О |
Начало счета внутренней петли |
LOOP: |
DCX В MOV А, В ORA С JNZ LOOP |
Петля задержки 0,786с |
|
DCR D |
Уменьшение основного счетчика и работа по петле, если ≠ 0 |
|
RET |
|
Команда LXI В, О заносит 0 в пару регистров В, С. Далее вырабатывается задержка 0,786 с. Регистр D используется для счета основной задержки. В этой программе две петли: внешняя и внутренняя. Внутренняя петля генерирует задержку 0,786 с, внешняя - множество таких задержек. Такая организация программы называется вложением.
Полная программа контроллера "бегущие огни" приведена в табл.5.
Таблица 5
Адреса |
Коды |
Метки |
Команды |
Комментарии |
|
||
8000 |
ЗЕ |
|
MOVA,81 |
Программирование интерфейса |
|
||
8001 |
81 |
|
|
|
|
||
8002 |
D3 |
|
|
|
|
||
8003 |
FB |
|
OUT FB |
|
|
||
8004 |
ЗЕ |
SEQ: |
MOV A, 92 |
Установка кода горения 1,4, 7 |
|
||
8005 |
92 |
|
|
светодиодов |
|
||
8006 |
D3 |
|
OUT F9 |
|
|
||
8007 |
F9 |
|
|
|
|
||
8008 |
16 |
|
MVI D, 1 |
Горение данной |
|
||
8009 |
01 |
|
|
последовательности |
|
||
800А |
CD |
|
CALL DELAY |
|
|
||
800В |
22 |
|
|
|
|
||
800С |
80 |
|
|
|
|
||
800D |
ЗЕ |
|
MOV A, 49 |
Установка кода горения 2, 5, 8 |
|
||
800Е 800F |
49 D3 |
|
OUT F9 |
светодиодов |
|
||
8010 |
F9 |
|
|
|
|
||
8011 |
16 |
|
MVI D, 1 |
Горение данной |
|
||
|
|
|
|
последовательности |
|||
8012 |
01 |
|
|
|
|||
8013 |
CD |
|
CALL DELAY |
|
|||
8014 |
22 |
|
|
|
|||
8015 |
80 |
|
|
|
|||
8016 |
ЗЕ |
|
MOV A, 24 |
Установка кода горения 3, 6 светодиодов |
|||
8017 |
24 |
|
|
|
|||
8018 |
D3 |
|
OUT F9 |
|
|||
8019 |
F9 |
|
|
|
|||
801А |
16 |
|
MVI D, 1 |
Горение данной последовательности |
|||
801В |
01 |
|
|
|
|||
801С |
CD |
|
CALL DELAY |
|
|||
801D |
22 |
|
|
|
|||
801Е |
80 |
|
|
|
|||
801F |
СЗ |
|
JMP SEQ |
Возврат в основную программу «бегущие огни» |
|||
Адреса |
Коды |
Метки |
Команды |
Комментарии |
|||
8020 |
04 |
|
|
|
|||
8021 |
80 |
|
|
|
|||
8022 |
01 |
DELAY: |
LXI B, 0025 |
Начало внутренней петли задержи |
|||
8023 |
00 |
|
|
|
|||
8024 |
25 |
|
|
|
|||
8025 |
ОВ |
LOOP: |
DCX В |
Внутренняя петля, генерирующая задержку 0,786 с |
|||
8026 |
78 |
|
MOV A, B |
|
|||
8027 |
В1 |
|
ORAC |
|
|||
8028 |
С2 25^ |
|
JNZ LOOP |
|
|||
8029 |
|
|
|
|
|||
802А |
80 |
|
|
|
|||
802В |
15 |
|
DCRD |
Основная петля задержки |
|||
802С |
С2 |
|
JNZ DELAY |
|
|||
802D |
22 |
|
|
|
|||
802Е |
80 |
|
|
|
|||
802F |
С9 |
|
RET |
Возврат |
|||
3. Ход выполнения работы:
1. Введите программу из табл. 5 в ОЗУ.
2. Проверьте правильность записанной в память программы.
3. Выполните основную программу, начинающуюся по адресу 8000.
4. Значения временных задержек можно заменить на другие значения: для уменьшения скорости «бегущих огней» по адресам 8009, 8012, 801В (применение числа обращений к подпрограмме DELAY).
5. Изменение скорости «бегущих огней» больше-меньше по адресу 8024 (внутренняя петля задержки)

ис.
2. Алгоритм программы задержки