- •Вариант 1
- •1. Идентификаторы типа данных передаваемые через порт p0. Данный ответ совсем не понятен, гадайте сами, что авторы имели ввиду
- •2. Механизм прерываний. Прерывания по уровню (организация, обработка, применение).
- •3. Таймеры. Т0 как таймер.
- •4. Режимы работы, orl pcon,#02h
- •Вариант 5
- •2. Механизм прерываний. Способы уменьшения числа прерываний при обмене
- •3. Таймер т2 как генератор сигналов
- •4. Режимы работы. Способы выода из режима пониженного энергопотребления.
- •Билет 6
- •Вариант 7
- •1 Порты Устройство портов
- •2 Механизм прерываний. Как можно увеличить число внешних прерываний за счет таймера то?
- •3 Таймеры. Сторожевой таймер (аппаратурное решение).
- •4 Система команд. Как изменится состояние psw после команды orl a,#01h?
- •Билет 8
- •Вариант 9
- •1 Порты. Какое состояние выводов имеет порт ро микроконтроллера i80c5l по включению питания?
- •2 Механизм прерываний. Как можно увеличить число внешних прерываний за счет таймера т2?
- •3 Таймеры. То как измеритель длительности импульса
- •4 Система команд. Как изменится состояние асс после команды xrl a,#01h?
- •Билет 10
- •Билет 11
- •Билет 12
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •4.Порты. Откуда поступает старший байт адреса на выводы порта р2 при выполнении команды movx @r0,a?
- •Вариант 17
- •Режим захвата.
- •Режим 16-разрядного программируемого таймера.
- •Режим скоростного вывода.
- •Вариант18
- •4.Режимы работы. Once
- •Вариант19
- •Билет 20
- •Вариант 2i
- •1. Порты. Напишите программу формирования одиночного импульса на выводе p1.0
- •Вариант 22
- •Билет 31
Вариант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 будет записана его длительность в микросекундах.