Логотип Автор24реферат
Задать вопрос
%
уникальность
не проверялась
Контрольная работа на тему:

Обеспечить мигание светодиода 1 при включении микроконтроллера

уникальность
не проверялась
Аа
3319 символов
Категория
Программирование
Контрольная работа
Обеспечить мигание светодиода 1 при включении микроконтроллера .pdf

Зарегистрируйся в 2 клика в Кампус и получи неограниченный доступ к материалам с подпиской Кампус+ 🔥

Условие

Обеспечить мигание светодиода 1 при включении микроконтроллера, и 5-ти кратное мигание светодиода 2 (сигнализирует о выполнении подпрограммы обработки прерывания) при генерации прерывания от таймера. Таймер должен реализовать задержку времени 5 мс. Номер разрядов для подключения светодиодов 1 и 2 определяется по таблице 2. Таблица 2 Порт и разряд для подключения светодиода 2 Порт и разряд для подключения светодиода 1 P0_0 P0_1 P0_2 P0_3 P0_4 P0_5 P0_6 P0_7 P1_0 P1_1 P1_2 1 2 3 4 5 6 7 8 9 10 P1_3 11 12 13 14 15 16 17 18 19 20 P1_4 21 22 23 24 25 26 27 28 29 30 P1_5 31 32 33 34 35 36 37 38 39 40 P1_6 41 42 43 44 45 46 47 48 49 50 P1_7 51 52 53 54 55 56 57 58 59 60 P2_0 61 62 63 64 65 66 67 68 69 70 P2_1 71 72 73 74 75 76 77 78 79 80 P2_3 81 82 83 84 85 86 87 88 89 90 P2_4 91 92 93 94 95 96 97 98 99 100

Нужно полное решение этой работы?

Решение

Потяни, чтобы посмотреть
Используем схему вида:
Определим какое значение следует занести в регистры таймера, если выбран интервал перезагрузки, равный 0,001 с. Мы знаем, что при нулевых значениях в регистрах TH0 и TL0 таймер перезагружается каждые 0,071 с, проходя при этом 65536 циклов инкремента. В данном случае для определения необходимых значений для TH0 и TL0 можно воспользоваться выражением 65536 – (65536 ×0,001 / 0,071).
101=6*16+5=65h;
252=15*16+12=ECh;
После округления получим значение 64613 или, в шестнадцатерич$ ной форме, EC65. Таким образом, в регистр TH0 нужно поместить шестнадцатеричное значение EC, а в TL0 – значение 65. Поскольку интервал перезагрузки изменился с 0,071 на 0,001 с, то значение счетчика перезагрузок в R0 теперь должно стать равным 5 (для 5 мс интервала) .
Исходный текст
Org 0
AJMP start
t0ISR:
ORG 0Bh;адрес программы обработки прерывания таймера 0
CLR TF0
CPL P0.2;мигание светодиода 1 с интервалом 1 мс
DJNZ R0, skip
MOV R0, #5;восстановление числа 5 в регистре счетчике
CPL P2.4;пятикратное мигание светодиода 2
CPL P2.4
CPL P2.4
CPL P2.4
CPL P2.4
skip: MOV TH0, #0ECh ;восстановление начального состояния таймера 0
MOV TL0, #065h
RETI ;возврат из программы обработки прерывания
start: ;главная программа
CLR P2.4;разряд порта P2 устанавливается на выход
CLR P0.2;разряд порта P2 устанавливается на выход
MOV R0, #5 ;число переполнений счетчика 0 для задержки 5 мс
MOV TH0, #0ECh ;начальное значение таймера 0 для времени переполнения 1 мс
MOV TL0, #065h
MOV TMOD, #1h ;16 разрядный счетчик 0
SETB ET0 ; разрешение прерываний
SETB EA ; разрешение прерывания от счетчика 0
SETB TCON.4;запуск счетчика 0
Loop: AJMP Loop ;бесконечный цикл ожидания прерывании й
END
Компиляция
Отладка в среде SingleMashine
Блок-схема программы
Начало
EA:=1
ET0:=1
Разрешить прерывания от таймера 0
P2.4:=0
P0.2:=0
Порты устанавливаются на выход
T0:=64113
Инициализация таймера 0 для интервала переполнения 1 мс
R0:=5
Cчетчик числа переполнений для задержки 5 мс
TMOD:=1h
Счетчик 0 16 разрядный
TCON.4:=1
Запустить счетчик 0
1
1
Бесконечный цикл ожидания прерывания
Блок-схема обработки прерывания от счетчика 0
Начало
TF0:=0
Обнулить флаг прерывания
CLP P0.2
Мигание 1 светодиода с интервалом 1 мс
R0:=R0-1
Декремент счетчика переполнений
R0=0
Проверка интервала задержки 5 мс
CLP P2.4
CLP P2.4
CLP P2.4
CLP P2.4
CLP P2.4
Пятикратное мигание второго светодиода
1
R0:=5
Восстановление счетчика
T0:=64113
Восстановление начального значения таймера 0
return
Возврат из подпрограммы обработки прерывания
50% задачи недоступно для прочтения
Переходи в Кампус, регистрируйся и получай полное решение
Получить задачу
Больше контрольных работ по программированию:

Напишите программу разветвляющегося типа на языке С

1645 символов
Программирование
Контрольная работа

Решить задачу о загрузке вручную методом динамического программирования

1632 символов
Программирование
Контрольная работа

Рассчитайте значение неизвестного объема продукции для потребителя так

8463 символов
Программирование
Контрольная работа
Все Контрольные работы по программированию
Получи помощь с рефератом от ИИ-шки
ИИ ответит за 2 минуты