Методическое пособие 229
.pdfМинистерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Воронежский государственный технический университет»
Кафедра автоматизированных и вычислительных систем
РАЗРАБОТКА СХЕМ И ПРОГРАММ НА ОСНОВЕ МИКРОКОНТРОЛЛЕРА К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