Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методическое пособие 229

.pdf
Скачиваний:
5
Добавлен:
30.04.2022
Размер:
638.22 Кб
Скачать

Министерство науки и высшего образования Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего образования

«Воронежский государственный технический университет»

Кафедра автоматизированных и вычислительных систем

РАЗРАБОТКА СХЕМ И ПРОГРАММ НА ОСНОВЕ МИКРОКОНТРОЛЛЕРА К1816ВЕ51

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к выполнению лабораторных работ по дисциплине «Микропроцессорные системы»

для студентов направления 09.03.01 «Информатика и вычислительная техника» (профиль «Вычислительные машины, комплексы, системы и сети») заочной формы обучения

Воронеж 2018

УДК 681.325.5-181.4(07) ББК 32.97я7

Составитель канд. техн. наук, доц. Г. В. Петрухнова

Разработка схем и программ на основе микроконтроллера К1816ВЕ51: методические указания к выполнению лабораторных работ по дисциплине «Микропроцессорные системы» для студентов направления 09.03.01 «Информатика и вычислительная техника» (профиль «Вычислительные машины, комплексы, системы и сети») заочной формы обучения / ФГБОУ ВО «Воронежский государственный технический университет»; cост. Г. В. Петрухнова. Воронеж : Изд-во ВГТУ, 2018. 39 с.

В методических указаниях приведены необходимые сведения для выполнения лабораторных работ, посвященных изучению архитектуры и возможностей микроконтроллеров семейства ВЕ51.

Предназначены для студентов 3-го курса.

Методические указания подготовлены в электронном виде и содержатся в файле Методичка_МПС_ВЕ51_ЗО.pdf.

Ил. 2. Табл. 3. Библиогр.: 5 назв.

УДК 681.325.5-181.4(07) ББК 32.97я7

Рецензент – В. Ф. Барабанов, д-р техн. наук, проф. кафедры автоматизированных и вычислительных систем ВГТУ

Издается по решению учебно-методического совета Воронежского государственного технического университета

ВВЕДЕНИЕ

В состав семейства ВЕ51 (iMCS 8051) входит целый ряд микросхем от самых простых микроконтроллеров до достаточно сложных. Микроконтроллеры семейства имеют гарвардскую архитектуру и позволяют выполнять как задачи управления различными устройствами, так и реализовывать отдельные узлы аналоговой схемы. Они работают с одной и той же системой команд. Большинство из них выполняется в одинаковых корпусах с совпадающей цоколевкой (нумерацией ножек для корпуса). Различные микросхемы семейства ВЕ51 в основном различаются только регистрами специального назначения (в том числе и количеством портов ввода/вывода) и реализацией памяти. Это позволяет использовать для разработанного устройства микросхемы разных фирм-производителей (таких как

Intel, Dallas, Atmel, Philips и т. д.) без переделки принципиаль-

ной схемы устройства и программы. Архитектура микроконтроллеров рассмотрена на примере микросхемы К1816ВЕ51. Корпус кристалла и его структурная схема представлены в прил. 1, управляющие регистры в прил. 2.

ЛАБОРАТОРНАЯ РАБОТА № 1

ПОРТЫ ВВОДА/ВЫВОДА ОДНОКРИСТАЛЬНОГО МИКРОКОНТРОЛЛЕРА ВЕ51

Цель работы: изучение основ программирования микроконтроллера (МК) ВЕ51 на языке СИ51.

Домашнее задание к выполнению лабораторной работы № 1

1.Изучите архитектуру однокристального микроконтроллера ВЕ51.

2.Изучите структуру и назначение портов ввода/вывода МК ВЕ51.

3

Краткие теоретические сведения

Язык программирования СИ51 удовлетворяет стандарту ANSI CИ и предназначен для получения компактных и быстродействующих программ для микроконтроллеров семейства MCS-51. Он учитывает особенности построения аппаратуры этих микросхем. Язык СИ51 обеспечивает гибкость программирования на широко известном языке CИ, при скорости работы и компактности, сравнимой с программами, написанными на языке программирования ассемблер.

Программа на СИ51 должна начинаться с включения файла заголовка, в котором находится информация о портах ввода/вывода, специальных регистрах, управляющих битах и т. д., т. е. должны быть определены аппаратные ресурсы микроконтроллера и даны их аббревиатуры. Имя файла заголовка зависит от среды программирования. В среде Keil µVision будем использовать REG51.H.

При написании программы для микроконтроллера всегда необходимо видеть перед глазами принципиальную схему устройства, для которого пишется программа, так как схема и программа тесно связаны между собой и дополняют друг друга. Для иллюстрации этого воспользуемся схемой, приведённой на рис. 1. К примеру, заставим светиться светодиод VD1. Светодиод светится только тогда, когда через него протекает ток. Для этого на шестом выводе порта P0 должен присутствовать нулевой потенциал. Соответствующий программный модуль представлен ниже:

#include<REG51.h> void main(void)

{P0=0; //Зажигание светодиода while(1); //Бесконечный цикл

}

4

+5B.

Цепь Eсет.

Питание

Питание

Корпус

Корпус

 

 

XTAL1

VD1

 

 

0

 

 

 

1

+5B

 

XTAL2

2

 

 

3

 

 

 

 

 

 

R1

 

 

 

4

Ucc

 

 

5

 

RST

RESET

6

 

7

 

 

 

Uss

 

 

ALE

+U

 

 

PSEN

 

 

 

 

 

EA

0

 

 

 

1

Ucc

Uвык

Ucc1

2

 

 

Ucc2

3

 

 

4

 

 

 

Uss

 

 

5

 

 

Uss

6

 

 

 

7

 

 

 

R2

 

 

+U.

 

Рис. 1. Пример простейшей схемы устройства, построенного с использованием микроконтроллера

Эта программа содержит только один исполняемый оператор присваивания 'P0=0;', т. е. во все биты порта Р0 записываем нули. Следующий оператор “while(1);” обеспечивает зацикливание программы, которое было сделано для того, чтобы никакие действия больше не производились. В противном случае микроконтроллер перейдёт к следующей ячейке памяти и будет выполнять команды, которые не были предусмотрены.

Обратите внимание, что язык программирования «знает», где находится порт P0. Эта информация содержится в строке

#include<REG51.h>.

Для работы с битами в СИ51 используются типы данных, приведенные в табл. 1.

5

 

 

 

 

 

Таблица 1

 

Типы данных для работы с битами

Типы данных

 

Размер

Область значений

 

Бит

 

Байт

 

 

 

 

 

 

bit

 

1

 

0

от 0 до 1

 

sbit

 

1

 

0

от 0 до 1

 

sfr

 

8

 

1

от 0 до 255

 

sfr16

 

16

 

2

от 0 до 65535

 

Типы данных, включенные в табл. 1, не описаны стандартом ANSI, поэтому к ним нельзя обращаться при помощи указателей. Обращение к битам зависит от среды программирования. В среде Keil µVision — описание требуется.

Ключевое слово bit используется для объявления битовых переменных, смысл которых обычно ясен из названия. Например:

bit mb;

Ключевое слово sbit используется очень часто в программах ВЕ51 для доступа к отдельным битам. Например, для среды Keil µVision можно использовать следующий вариант:

sbit bit0=P1^0;

Ключевое слово sfr применяется очень часто в программах ВЕ51 для обращения к отдельным битам специальных регистров. Например, для среды Keil µVision возможны следующие варианты:

sfr P0=0x60; sfr TMOD=0x89;

6

Ключевые слова sbit, sfr используются для обращения к глобальным переменным.

Для примера заставим светиться светодиод VD1 в зависимости от состояния тумблера (см. рис.1). Соответствующий программный модуль приведен ниже.

#include<reg51.h> sbit sv=P0^6; sbit t=P2^7;

void main(void)

{sv=t; //Зажигание светодиода в зависимости от //состояния тумблера

while(1); //Бесконечный цикл

}

Заметим, что светодиод, подключенный к шестому выводу порта Р0, будет светиться, если тумблер, подсоединенный к выводу 7 порта Р2, будет опущен.

Задание 1. Проверьте работу рассмотренной выше программы.

Задание 2. Разработайте структуру МПС на базе МК ВЕ51 и напишите программу, обеспечивающую реализацию заданной преподавателем последовательности свечения 8 светодиодов в бесконечном режиме.

Задание 3. Разработайте структуру МПС (прил. 3) на базе МК ВЕ51 и напишите программу, обеспечивающую:

ввод восьмибитного двоичного кода с тумблерного регистра;

выдачу двоично-десятичного кода на семисегментные индикаторы.

7

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

1.Сколько портов ввода/вывода содержит МК ВЕ51?

2.Какое специальное назначение имеют порт Р0 и порт Р2 МК ВЕ51?

3.Каково функциональное назначение порта Р3?

4.Как обратиться к разряду порта на языке СИ51?

5.Как вывести число в порт МК ВЕ51?

6.Какие операции можно осуществлять над содержимым портов ввода/вывода ВЕ51?

7.Где реализованы порты ввода/вывода ВЕ51?

8.Что такое «принцип наложения сред» и с какой целью он используется в архитектуре однокристальных контроллеров?

Домашнее задание к выполнению лабораторной работы № 2

1.Составьте отчет по результатам выполнения лабораторной работы № 1. Отчет должен содержать функциональные схемы разработанных МПС и соответствующие программные модули согласно заданиям 1, 2.

2.Изучите подсистему внешних прерываний ВЕ51.

8

ЛАБОРАТОРНАЯ РАБОТА № 2

СИСТЕМА ВНЕШНИХ ПРЕРЫВАНИЙ МК ВЕ51

Цель работы: изучение основ организации и программирования подсистемы внешних прерываний в микропроцессорных системах на базе однокристальных микроконтроллеров семейства ВЕ51.

Краткие теоретические сведения

Прерывание — это сигнал, сообщающий о наступлении какого-либо события. Внешние прерывания — это такие прерывания, которые обрабатываются вследствие возникновения некоторых событий на определённой ножке порта микроконтроллера. Подсистема прерываний относится к стандартным средствам поддержки режима реального времени и обеспечивает своевременную реакцию микроконтроллера на различные события, которые могут происходить как внутри системы, так и вне ее.

Архитектура микроконтроллера ВЕ51 поддерживает двухуровневую приоритетную систему прерываний с пятью источниками запросов на обслуживание, каждый из которых имеет фиксированный вектор прерывания (стартовый адрес программы, обслуживающей прерывание).

Микроконтроллер ВЕ51 позволяет использовать 5 типов прерываний (два внешних прерывания, два прерывания таймеров и прерывание последовательного порта). Внешние прерывания инициируются сигналами на входах INT0 (вывод Р3.2) и INT1 (вывод Р3.3). В табл. 2 приведены перечень прерываний, их вектора и приоритеты.

9

 

 

Таблица 2

 

Вектора и приоритеты прерываний

Приоритет

Описание

Вектор пре-

 

прерывания

рывания

 

 

 

0

Внешнее прерывание INT0

0х003

 

1

Прерывание таймера 0

0х00B

 

2

Внешнее прерывание INT1

0х013

 

3

Прерывание таймера 1

0х01B

 

4

Прерывание последователь-

0х023

 

ного порта

 

 

 

 

Обработчик прерываний (или процедура обслуживания прерываний) – специальная процедура, вызываемая по прерыванию для выполнения его обработки. Ключевое слово interrupt используется для объявления функции, с которой оно применяется как обработчик прерывания. В среде Keil µVision после слова interrupt пишется приоритет прерывания в соответствии с табл. 3. Точки входа в обработчик прерывания аппаратно зафиксированы для каждого источника прерываний (вектор прерывания в табл. 3). По указанному адресу будет размещена первая команда обработчика прерывания. Обычно такой командой является безусловный переход в то место программы, где фактически располагается обработчик.

 

 

Таблица 3

 

Вектора и приоритеты прерываний

Приоритет

Описание

Вектор пре-

 

прерывания

рывания

 

 

 

0

Внешнее прерывание INT0

0х003

 

1

Прерывание таймера 0

0х00B

 

2

Внешнее прерывание INT1

0х013

 

3

Прерывание таймера 1

0х01B

 

4

Прерывание последователь-

0х023

 

ного порта

 

 

 

 

10