Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
35
Добавлен:
12.04.2015
Размер:
141.82 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное учреждение

высшего профессионального образования

«Юго-западный государственный университет»

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

Микропроцессорные системы

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

Программирование таймеров и обработка прерываний

Выполнил: Корой В. В.

Проверил: Панищев В. С.

Курск 2011

Цель работы

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

Задание

Составить программу, обеспечивающую "мигание" светодиодов порта P1 в двух режимах:

А) мигает только крайний правый светодиод с частотой 2Гц;

Б) мигают попеременно четные и нечетные светодиоды с частотой 1Гц;

Ход работы

Рис1. Работа таймеров/счетчиков в режимах “0” и “1”

Расчёт констант задержек

Fген=12МГц

Fсч=Fген/12=1МГц

Разрядность таймера – 16 бит

Tпереп. таймера=65536/106=0.065536 с

Количество переполнений таймера для частоты 1Гц (с интервалом в секунду) равно 1/0.06553 = 15

Количество переполнений таймера для частоты 0,5 Гц (с интервалом в 2 секунды)равно 1/(0.06553/2) = 31

Блок схема алгоритма программы

Исходный текст программы

Адрес/HEX-код

Мнемоника команды

Комментарии

0000 758901

MOV TMOD,#01

Начальная инициализация таймеров и прерываний

0003 758812

MOV TCON,#12

0006 75A803

MOV IE,#03

0009 7455

MOV A,#

Инициализация режима вывода

001B 790F

MOV R1,#0F

Инициализация счётчика итераций для 1с.

001D 208919

JB IE0, 0033

Проверка на внешнее прерывание

0020 308DFA

JNB TF0,001D

Проверка на прерывание по переполнению таймера

0023 C28D

CLR TF0

Сброс флага прерывания по таймеру

0025 00

NOP

0026 19

DEC R1

Декремент счётчика итерация

0027 B900F3

CJNE R1,#00,001E

Проверка сч. ит. на нулевое значение

002C 77

RR A

Циклический сдвиг содержимого регистра A

002B 85E090

MOV P1,A

Вывод содержимого регистра A

002E 80EB

SJMP 001C

Возврат к инициализации сч. итераций

0030 7801

MOV R0,#01

0032 C8

XCH A,R0

Обмен содержимого регистров A и R0

0033 7401

MOV A,#01

То же, для 2 с.

0035 7908

MOV R1,#1F

0037 2089D9

JB IE0, 001B

0040 308DFA

JNB TF0, 0037

0043 C28D

CLR TF0

0045 00

NOP

0046 19

DEC R1

0047 B900F3

CJNE R1,#00, 0037

004A F8

MOV A,R0

Запись содержимого R0 в регистр A

004B E7

RL A

Циклический сдвиг содержимого регистра A

004C 85E090

MOV P1,A

То же

004F 80EB

SJMP 0035

Соседние файлы в папке МПС()Микропроцессоры__моилабы