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

Вариант18

1.Система команд. Подпрограмма приема байта через UART без прерываний.

R_byte: JNB scon.0, R_byte ;Подождать окончания приёма байта по последовательному порту

MOV A, SBUF;

clr scon.0;

reti;

2.Механизм прерываний. Прерывания по уровню (организация, обработка, применение)

Прерывания по уровню (организация, обработка, применение):

Каждое из внешних прерываний ~INT0, ~INT1 может быть активизировано по уровню ("0") , что определяется состоянием битов IT0 и IT1 регистра TCON. При поступлении запроса внешнего прерывания ~INTx устанавливается флаг 1Ех регистра TCON. Установка флагов 1Ех в регистре TCON вызывает соответствующее прерывание. Очистка флага 1Ех производится следующим образом: при прерывании по уровню флаг очищается при снятии запроса внешнего прерывания, то есть в 1Ех отслеживается состояние вывода ~INTx.

Чтобы внешнее прерывание по уровню было распознано, необходимо, чтобы низкий уровень на выводе ~INTx удерживался в течение не менее 12 периодов сигнала тактовой частоты ОМЭВМ. Это объясняется тем, что проверка выводов ОМЭВМ ~INT0, ~INT1 выполняется внутренними аппаратными средствами ОМЭВМ один раз в каждом машинном цикле. Если внешнее прерывание активизируется по уровню, запрос должен удерживаться до начала обслуживающей подпрограммы и сниматься до завершения этой подпрограммы для предотвращения повторного обслуживания.

2: Если значение бита IT0 (для вывода INT0) или IT (для вывода INT0) равно 0, то соответствующий запрос на прерывание возникает при нулевом уровне сигнала на данном входе (прерывание по уровню). Если запрограммировано прерывание по уровню, то состояние флага запрос соответствует уровню сигнала на его внешнем выводе. Для обнаружения запроса требуемые уровни сигналов должны присутствовать на входе в течение как минимум одного машинного цикла. Подпрограмма обработки любого прерывания должна заканчиваться командой RETI.

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

3.Таймеры. ТО как измеритель длительности импульса.

Известно, что измерение длительности импульса можно произвести, подсчитав импульсы эталонной частоты.

Для измерения длительности импульса измеряемый сигнал подаётся на вывод микроконтроллера INTx и в бит управления GATE записывается разрешающий сигнал логической единицы. Таймер/счётчик настраивается в режим таймера записью в бит C/Tx логического нуля. Содержимое таймера обнуляется.

mov TMOD,#00001001b

;||||||||

;||||||++--Перевести таймер T0 в шестнадцатиразрядный режим

;|||||+----Синхронизироваться от внутреннего генератора

;||||+-----Включать таймер от ножки микроконтроллера INT0

;||++------Перевести таймер T1 в тринадцатиразрядный режим

;|+--------Синхронизироваться от внутреннего генератора

;+---------Запретить управление таймером от ножки INT1

mov TH0, #0 ;Обнулить старший байт таймера

mov TL0, #0 ;Обнулить младший байт таймера

setb TR0 ;Включить измеритель ширины импульса

TstLog0: jnb INT0, TstLog0 ;Подождать начало импульса

TstLog1: jnb INT0, TstLog1 ;Подождать конец импульса

Clr TR0 ;Отключить измеритель ширины импульса

Если теперь на вход микроконтроллера INT0 подать импульс с неизвестной длительностью, то в регистрах TH0 и TL0 будет записана его длительность в микросекундах.

4.Режимы работы. ONCE

Режим насхемной эмуляции, используется для того, чтобы отключить микроконтроллер при включении питании. Режим применяется для тестирования и отладки. Режим не программируется, только аппаратно подать землю на контроллеры, потом RESET – процессор в состоянии “отключено”.