Материал: Разработка схем и программ на основе микроконтроллера К1816ВЕ51. методические указания к выполнению лабораторных работ по дисциплине «Микропроцессорные системы». Петрухнова Г.В

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Внешние прерывания инициируются сигналами на входах INT0 (вывод Р3.2) и INT1 (вывод Р3.3). Микроконтроллер реагирует на прерывание, если установлен соответствующий флаг в регистре TCON (IE0 или IE1) (TCON образовано от слов

Timer Control, IE – Interrupt Enable). Флаг ЕА (Enable interrupt)

разрешает работу всех прерываний, для каждого из которых установлен бит в TCON. Прерывания INT0 и INT1 (от слова interrupt) могут быть вызваны уровнем или переходом сигнала из 1 в 0 на входах INT0 (вывод Р3.2) и INT1 (вывод Р3.3). Тип прерывания определяют управляющие биты IT0, IT1 (interrupt type) в регистре TCON. Если один из этих битов ITi (i = 0, 1) установлен, то прерывание вызывается по переходу 1-0 на соответствующем входе INTi (i = 0, 1) микроконтроллера. Если один из битов ITi (i = 0, 1) сброшен, то прерывание вызывается при наличии низкого уровня на соответствующем входе. Когда все рассмотренные выше биты (ITi, IЕi, (i = 0, 1), ЕА) установлены соответствующим образом, то при возникновении прерывания инициируется вызов соответствующей программыобработчика прерывания. Сброс флага IЕi, (i = 0, 1), выполняется автоматически в случае, если прерывание вызвано перепадом сигнала на входе INTi (i = 0, 1). Если же вход прерывания INTi (i = 0, 1) настроен на срабатывание по низкому уровню, то состояние IЕi, (i = 0, 1) должна отслеживать программаобработчик данного прерывания. Управляющие биты представлены в прил. 2.

Внешние прерывания INT0 и INT1 могут (если разрешены) вызываться либо установкой низкого уровня на соответствующем выводе микроконтроллера (на реальном объекте), либо программной установкой битов Р3.2 и/или Р3.3 (в среде моделирования микроконтроллера).

Вектора внешних прерываний следующие: 0х03Н –INT0, 0x13Н – INT1. Другими словами, если прерывание происходит по INT0 (INT1), то адрес программы-обработчика прерывания содержится по адресу 0х03Н (0х13Н). Запись адресов происходит на этапе работы редактора связей (линкёра).

11

Разработаем структуру МПС и напишем программный модуль, обеспечивающий изменение состояния светодиода по запросу от специальной кнопки. Функциональная схема МПС представлена на рис. 2. К выводу P3.2 (INT0) подключена кнопка. Для подавления дребезга использован RS-триггер. По нажатию кнопки на вывод Р3.2 подается сигнал низкого уровня, что приводит к вызову программы-обработчика прерывания.

+5B

 

Ucc

 

 

RST

Uss

 

+U

 

R

T

 

Q

S

 

+U.

 

XTAL1

P1

 

XTAL2

P0.0

 

P0.1

RST

P0.2

 

P0.3

EA

P0.4

 

P0.5

P3.0

.+U

P0.6

P3.1

P0.7

P3.2

 

P3.3

P2

P3.4

 

P3.5

ALE

P3.6

 

P3.7

PSEN

Рис. 2. Функциональная схема МПС

Соответствующий программный модуль представлен ниже. Для запуска обработчика прерывания необходимо смоделировать нажатие кнопки.

12

#include <REG51.H> sbit s=P0^1;

sbit I=P3^2;

//обработчик прерываний по INT0

//для INT1 нужно написать interrupt 2 (см. табл. 3) void PP() interrupt 0

{

//моделирование отжатой кнопки

I=1;

//запрещение прерываний //(команда необязательная –

//по усмотрению разработчика программы) EA=0;

//изменение состояния светодиода s=~s;

//снятие блокировки прерывания; //обязательно, если присутствует EA=0; EA=1;

}

main()

{

EA=1;//снятие блокировки прерывания EX0=1;//разрешение внешнего прерывания INT0

//(для INT1 – EX1=1) IT0=1;//тип прерывания INT0 – по срезу

//(для INT1 – IT1=1) for(;;);//бесконечный цикл

}

13

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

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

Отладить программный модуль.

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

1.Что такое метод передачи данных по прерыванию, и в чем его сущность?

2.Что такое процедура поллинга?

3.По какому алгоритму осуществляется идентификация источника запроса на прерывание в процедуре поллинга?

4.К каким выводам МК ВЕ51 можно подключить кнопку для реализации заданий 1, 2?

5.Что такое вектор прерывания?

6.Что такое обработчик прерывания?

7.Какие управляющие биты Вы использовали для организации системы прерываний?

8.Как осуществить выбор вектора прерывания для описания обработчика прерывания?

Домашнее задание

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

14

ПРИЛОЖЕНИЕ 1

Корпус кристалла и структура КМ1816ВВ51

Рис. П1.1. Корпус кристалла

15

Источник: https://studfile.net/preview/16563360/