МПС()Микропроцессоры__моилабы / отчёт 5
.docФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение
высшего профессионального образования
«Юго-западный государственный университет»
Кафедра вычислительной техники
Микропроцессорные системы
Лабораторная работа №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,#3С
Инициализация режима вывода
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