Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_ВЕ51_6ЛЕТ.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2.48 Mб
Скачать

ГОУВПО

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

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

472-2009

Однокристальный миКрОконтроллер к1816ве51 методические указания

к выполнению лабораторных работ

по дисциплине «Микропроцессорные системы»

для студентов специальности 230101

“Вычислительные машины, комплексы, системы и сети”

очной и очной сокращенной форм обучения

Воронеж 2009

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

УДК 681.3

Однокристальный микроконтроллер К1816ВЕ51: методические указания к выполнению лабораторных работ по дисциплине «Микропроцессорные системы» для студентов специальности 230101 “Вычислительные машины, комплексы, системы и сети”очной и очной сокращенной форм обучения/ ГОУВПО «Воронежский государственный технический университет»; cост. Г.В. Петрухнова. Воронеж, 2009. 45с.

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

Методические указания предназначены для студентов третьего и четвертого курсов.

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

Рецензент д-р. техн. наук, проф. А.М. Литвиненко

Ответственный за выпуск зав. кафедрой д-р техн. наук, проф. С.Л. Подвальный

Печатается по решению редакционно-издательского совета Воронежского государственного технического университета

© ГОУВПО «Воронежский государственный

технический университет», 2010

Введение

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

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

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

МИКРОКОНТРОЛЛЕРА ВЕ51

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

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

работы №1

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

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

  3. Изучите режимы работы буферного регистров. К580ИР82, К580ИР83.

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

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

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

REG51.H – для среды KeilµVision;

io51.h .- для компилятора СИ51 ICC8051;

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

#include<REG51.h>

void main(void)

{P0=0; //Зажигание светодиода

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

}

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

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

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

Таблица 1

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

Типы данных

Размер

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

Бит

Байт

bit

1

0

от 0 до 1

sbit

1

0

от 0 до 1

sfr

8

1

от 0 до 255

sfr16

16

2

от 0 до 65535

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

Типы данных включенные в табл. 1, не описаны стандартом ANSI, поэтому к ним нельзя обращаться при помощи указателей. Обращение к битам зависит от среды программирования. При работе с компилятором СИ51 ICC8051 к битам порта можно обращаться без предварительного описания; например, Р0.1 – обращение к первому биту нулевого порта. В среде KeilµVision - описание требуется.

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

bit mb;

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

sbit bit0=P1^0;

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

sfr P0=0x60;

sfr TMOD=0x89.

Ключевые слова 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. Пример простейшей схемы устройства, построенного с использованием микроконтроллера

При начальной установке все биты портов Р0-Р3 устанавливаются в 1. Следовательно, регистр, к которому подключены тумблеры, отключается от шины, т.к. а регистр, к которому подключены светодиоды, будет работать в режиме записи . На выходах D0:D7 этого регистра установятся единичные сигналы, и светодиоды окажутся погашенными (отсутствует разность потенциалов). Составим программу, которая обеспечивает ввод восьмибитного кода с тумблерного регистра и выдачу его на светодиоды.

#include <REG51.H>

sbit stb1=P1^5;

sbit stb2=P1^6;

sbit OE=P1^7;

main()

{

unsigned char x;

//схему D1 переводим в режим чтения

stb1=0;

//схему D2 переводим в режим записи

stb2=1;

//разрешаем информационную связь со схемой D2, и тем

//самым в регистр D2 и в порт Р0 записываем состояние

//тумблеров

OE=0;

//состояние порта Р0 сохраняем в переменной х

х=P0;

//переводим схему D2 в состояние чтения

stb2=0;

//отключаем схему D2 от шины

OE=1;

//инвертируем состояние х и записываем в порт Р0;

//схема D1 находится в состоянии записи;

//данные с Р0 запишутся в регистр и выведутся

//на светодиоды

P0=~x;

//схему D1 переводим в режим записи

stb1=1;

//бесконечный цикл

while(1);

}

Задание 2.

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

Варианты заданий:

а) ШД – порт Р0, управляющие сигналы – Р2;

б) ШД – порт Р1, управляющие сигналы – Р0;

в) ШД – порт Р1, управляющие сигналы – Р2;

г) ШД – порт Р2, управляющие сигналы – Р0;

д) ШД – порт Р2, управляющие сигналы – Р1.

Задание 3. Подключите к МК ВЕ51 два контроллера параллельного ввода/вывода КР580ВВ55. Напишите программу инициализации контроллеров для случая работы всех каналов первого контроллера на ввод в режиме 0, а всех каналов второго контроллера на вывод в режиме 0. Отладьте программный модуль. Справочный материал для выполнения задания приведен на рис. 3, рис. 4 и в табл. 2.

Настройка контроллера осуществляется посредством управляющего слова. Вначале необходимо составить управляющее слово в соответствии со структурой, приведенной на рис. 4, а затем записать его в регистр управляющего слова (РУС). Соответствующая комбинация управляющих сигналов контроллера представлена в табл. 2.

Рис. 3. Программируемый периферийный адаптер К580ВВ55

Таблица 2

Основные операции ППА

Действие

Сигналы управления

Операции

А1

А0

Чтение

0

0

0

1

0

0

1

0

1

0

1

0

0

1

0

Запись

0

0

1

0

0

0

1

1

0

0

1

0

1

0

0

1

1

1

0

0

Отключение

ШД и порты отключены

Рис. 4. Управляющее слово РЕЖИМ РАБОТЫ (УСРР) адаптера КР580ВВ55