- •Вариант 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
3 Таймеры. То как измеритель длительности импульса
Т0 как измеритель длительности импульса:
Использование таймера в качестве измерителя ширины импульсов. Известно, что измерение длительности импульса можно произвести, подсчитав импульсы эталонной частоты. Принцип измерения длительности импульсов иллюстрируется рисунком 8. Для измерения длительности импульса измеряемый сигнал подается на вывод микроконтроллера INTx и в бит управления GATE записывается разрешающий сигнал логической единицы. Таймер/счетчик настраивается в режим таймера записью в бит C/Tx логического нуля. Содержимое таймера обнуляется. Пример программы измерения длительности импульса приведен на рисунке 9.
Рисунок 8. Принцип измерения длительности импульсов
mov TMOD,#00001001b
;||||||||
;||||||++--Перевести таймер T0 в шестнадцатиразрядный режим
;|||||+----Синхронизироваться от внутреннего генератора
;||||+-----Включать таймер от ножки микроконтроллера INT0
;||++------Перевести таймер T1 в тринадцатиразрядный режим
;|+--------Синхронизироваться от внутреннего генератора
;+---------Запретить управление таймером от ножки INT1
mov TH0, #0 ;Обнулить старший байт таймера
mov TL0, #0 ;Обнулить младший байт таймера
setb TR0 ;Включить измеритель ширины импульса
TstLog0: jnb INT0, TstLog0 ;Подождать начало импульса (начало - 1)
TstLog1: jnb INT0, TstLog1 ;Подождать конец импульса (надо вроде jb)
Clr TR0 ;Отключить измеритель ширины импульса
Рисунок 9. Программа измерения длительности импульсов
Если теперь на вход микроконтроллера INT0 подать импульс с неизвестной длительностью, то в регистрах TH0 и TL0 будет записана его длительность в микросекундах.
4 Система команд. Как изменится состояние асс после команды xrl a,#01h?
Система команд. Как изменится состояние Acc после команды xrl a, #01h
В ACC произойдет инверсия младшего бита. (сложение по модулю 2)
Смотрим систему команд: XRL A,#data : Exclusive-OR immediate to A, т.е. исключающее ИЛИ аккумулятора и единицы, результат будет помещен в тот же аккумулятор. Что именно будет в аккумуляторе - зависит от предыдущего его состояния. Но на прямой вопрос - прямой ответ: в аккумуляторе будет результат "исключающего ИЛИ" аккумулятора и единицы.
01H = 00000001B = 1. Сравнивает значение в А с числом “1”. Если в А лежит число “1”, тогда в А будет “0”.
Билет 10
Порты. Какое состояние вывода имеет порт Р1.0 микроконтроллера 180С51 после команды SETB Р1.0, если он управляет транзисторным биполярным ключем?
К примеру, вывод порта может использоваться для управления базой n-p-n транзистора. В этом случае, когда в защелку вывода порта записывается "1", транзистор открывается. Если после этого ОМЭВМ прочитает состояние внешнего контакта рассматриваемого вывода порта, то получит значение логического "0", т. к. на контакте в это время присутствует напряжение базы открытого транзистора. Чтение же выхода защелки покажет истинное значение сигнала на выводе порта, т. е. "1".
Механизм прерываний. Как можно увеличить число внешних прерываний за счет массива РСА?
Когда таймер Т2 используется как генератор скорости передачи в бодах, вход Р1.1 может использоваться при необходимости как вход дополнительного внешнего прерывания(вопрос4)
Таймеры. Т1 как измеритель длительности импульса
Режим 0.Перевод любого Т/С в режим 0 делает его похожим на таймер КМ1816ВЕ48 (восьми битный счетчик), к входу которого подключен пяти-битный предделитель частоты на 32. Работу Т/С в режиме 0 на примере T/C1 иллюстрирует рис а. В этом режиме таймерный регистр имеет разрядность 13 бит. При переходе из состояния "все единицы" в состояние "все нули" устанавливается флаг прерывания от таймера TF 1. Входной синхросигнал таймера 1 разрешен (поступает на вход Т/С1), когда управляющий бит TR1 установлен в 1 либо управляющий бит GATE (блокировка) равен 0, либо на внешний вывод запроса прерывания INT1 поступает уровень 1. Отметим попутно, что установка бита GATE в 1 позволяет использовать таймер для измерения длительности импульсного сигнала подаваемого на вход запроса прерывания.
Для измерения длительности импульса измеряемый сигнал подается на вывод микроконтроллера INTx и в бит управления GATE записывается разрешающий сигнал логической единицы
mov TMOD,#00001001b
mov TH1, #0 ;Обнулить старший байт таймера
mov TL1, #0 ;Обнулить младший байт таймера
setb TR1 ;Включить измеритель ширины импульса
TstLog0: jnb INT0, TstLog0 ;Подождать начало импульса (начало - 1)
TstLog1: jnb INT0, TstLog1 ;Подождать конец импульса (надо вроде jb)
Clr TR1 ;Отключить измеритель ширины импульса
Система команд. Как изменится состояние асс после команды anl a,#0FEh?
В АСС в младший бит запишется 0 (1*1=1, 0*1=0) (0FEh=1111 1110b)