Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МП Лабораторние роботи№1-7.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
782 Кб
Скачать
☆

Лабораторная робота № 2 по дисциплине «мп в си»

Тема: «Электронный пинг-понг» ( на установке с микроЧИП РІС16F84).

Цель работы: 1. Знакомство с функциями миниатюрной МПС фирмы Microchip, выполненной в виде 18-контактной интегральной микросхемы.

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

Содержание и направленность лабораторной работы.

При выполнении этой лабораторной работы студенты знакомятся с функциями встроенной системы, реализированной на базе одного из наиболее популярних микроконтроллеров симейства РІС.

«Встроенная система – это система, основная функция которой не вычислительная, а управляющая, реализованная с помощью маленького комп’ютера, встроенного в эту систему».

Лабораторная работа построеная в виде игры на внимательность и способность прогнозировать состояние светодиодов, анализируя скорость движения «электронного мячика»(установленого программно).

Одно из запоминающих устройств хранит программу, управляющую ходом игры. Эта программа считывает со входов состояние позиции переключателей (пульты, дистанционного управления игроков) и таким образом просчитывает требуемые позиции светоизлучающих диодов. Следовательно, программа может управлять еще и светодиодами. Студенты видят, что эта компьютерная система питается всего лиш от двух батареек ААА!

Рис. 1. Лабораторная установка электронного «пинг - понга»

Микроконтроллер 16F84А–это один из самых успешных микроконтроллеров семейства РІС. Сначала он назывался РІС16С84. Затем появилась версия с технологией Flash и название было изменено на РІС16F84. Версия «А» микроконтроллера может работать быстрее (20 МГц вместо 10 МГц).

Поскольку работа выполняется в начале семестра (2-3 неделя) и носит ознакомительный характер, студенты готовят упрощенный протокол на одной странице формата А4.

Содержание протокола: название, цель работы, схема размещения выводов МК РІС16F84А, перечень функциональных элементов на кристалле, выводы по работе (преимущества RISC-архитектуры).

Рис. 2. Схема размещения выводов РІС16F84

Вопросы для самоконтроля.

  1. Чем отличается «Гарвардская» RISC–архитектура от

«Фон – Неймановской» (CISC – архитектуры)?

  1. Чем отличается понятия МПС, МП и МК?

  2. Что входит в понятие «вычислительная мощность МП»?

  3. Что понимают под контроллерными функциями МП?

  4. Что представляют собой порты?

Министерство науки и образования Украины

Национальный технический университет Украины

"Киевский политехнический институт"

Кафедра приборостроения

ЛАБОРАТОРНАЯ РОБОТА №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

Метки

Команды

Комментарии

SEQ:

MOVA,92

MVI D, 1

CALL DELAY MOV A, 49

MVI D, 1

CALL DELAY MOV A, 24

MVI D, 1

CALL DELAY

Установка горения светодиодов 1,4,7 Время горения установленных сигналов

Установка горения светодиодов 2, 5, 8 Время горения установленных сигналов

Установка горения светодиодов 2, 5, 8 Время горения установленных сигналов

Программа последовательности устанавливает в регистр А число 92 -код выходных индикаторов, при котором светодиоды 1, 4, 7 - горят, а светодиоды 2, 3, 5, б, 8 - погашены.

Затем вызывает подпрограмму задержки. Для чего программа последовательности задает величину задержки в регистр D, после чего вызывается сама подпрограмма задержки. Далее эта последовательность повторяется для других кодов выходных сигналов светодиодов.

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

Разработка программы задержки

В табл. 3 приведена программа задержки, алгоритм которой показан на рис. 2.

Таблица 3

Простая программа задержки

Метки

Команды

Комментарии

Приме-чание

DELAY:

DCR А JNZ

Уменьшающий счет

Продолжение счета, если содержимое аккумулятора 0

4такта

7/10 Тактов

RET

Возврат

10

тактов

Чтобы использовать эту программу, в аккумуляторе устанавливается нужное значение задержки и вызывается программе задержки. Содержимое

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

Время задержки, полученное при выполнении этой программы., можно проанализировать следующим образом:

- в примечаниях указано число периодов синхроимпульсов (тактов) необходимых для выполнения каждой команды;

- для 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 (внутренняя петля задержки)