Скачиваний:
40
Добавлен:
21.02.2014
Размер:
79.87 Кб
Скачать

НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра ЭПА

Лабораторная работа №9

Функционирование однокристальной микроЭВМ К1816ВЕ51

Выполнил: ст. Ларионов Н

гр. 96-ЭПА-3

Принял: доц. Грязнов В.И.

Нижний Новгород

2000

Цель работы: изучение функционирования вычислительной системы на базе ОМЭВМ К1816ВЕ51, взаимодействия отдельных компонентов, системы команд и способов программирования.

Задание.

Необходимо написать программу, реализующую инверсию младшей и старшей тетрад порта Р1 при каждом третьем нажатии на клавишу Т0.

Структурная схема микроЭВМ.

На структурной схеме (рис.1.) показаны все устройства (ОЭВМ, ОЗУ, ПЗУ, клавиатура, дисплей, внешние устройства ввода/вывода), входящие в состав вычислительной системы.

Программа.

Для реализации поставленной задачи используется режим обработки прерываний. По нажатию на кнопку Т0 останавливается работа основной программы и происходит переход на процедуру обработки прерываний, которая отсчитывает число входов нее и при достижении определенного значения инвертирует текущее состояние порта Р1.

Листинг программы:

ORG 1000h

EQU STOP,02F3h

MOV 90h,#0FFh;Подготовка порта к работе

MOV 90h,#0Fh ;Включение младшей тетрады

MOV R0,#00h ;Сброс счетчика

J1: SETB 0A8h ;Имитация основной программы с зацикливанием

SJMP J1

IT0: CLR 0A8h ;Подпрограмма обработки прерываний

MOV R4,0FFh ;Настройка

DD1: MOV R3,0FFh ;цикла задержки

DD2: NOP

NOP

NOP

DJNZ R3,DD2

DJNZ R4,DD2

J2: JNB 0B2H,J2 ;Ожидание нажатия на кнопку

INC R0 ;Инкремент счетчика

MOV A,R0 ;и проверка окончания

XRL A,#03h ;отсчета

JNZ BACK

MOV A,90h ;Чтение

XRL A,#0FFh ;состояния и

MOV 90h,A ;инверсия

MOV R0,#00h ;порта

BACK:RETI ;Возврат из подпрограммы

ORG 1750h

LJMP IT0 ;Косвенный вектор прерывания

LCALL STOP