- •Вариант 1
- •1. Идентификаторы типа данных передаваемые через порт p0. Данный ответ совсем не понятен, гадайте сами, что авторы имели ввиду
- •2. Механизм прерываний. Прерывания по уровню (организация, обработка, применение).
- •3. Таймеры. Т0 как таймер.
- •Вариант 3
- •1. Порты. В чем разница в поведении программы, использующей команду jb p1.0,next от использующей jbc p1.0,next?
- •2. Немаскируемые прерывания
- •3. Таймеры. Т1 как устройство синхронизации uart.
- •Вариант 5
- •4. Режимы работы. Способы выода из режима пониженного энергопотребления.
- •Билет 6
- •Порты. Откуда поступает старший байт адреса на выводы порта р2 при выполнении команды movx @r0,a?
- •Механизм прерываний. Система приоритетов.
- •Таймеры. Т2 как измеритель длительности периода.
- •Режимы работы. Способы выхода из режима холостого хода.
- •Вариант 7
- •1 Порты Устройство портов
- •2 Механизм прерываний. Как можно увеличить число внешних прерываний за счет таймера то?
- •3 Таймеры. Сторожевой таймер (аппаратурное решение).
- •4 Система команд. Как изменится состояние psw после команды orl a,#01h?
- •Билет 8
- •Порты. Для чего к выводам порта ро микроконтроллера i80c51 подключается регистр-защелка?
- •Механизм прерываний. Как можно увеличить число внешних прерываний за счет таймера т1?
- •Таймеры. То как предварительный делитель частоты.
- •Система команд. Как изменится состояние psw после команды orl pl,a?
- •Вариант 9
- •1 Порты. Какое состояние выводов имеет порт ро микроконтроллера i80c5l по включению питания?
- •2 Механизм прерываний. Как можно увеличить число внешних прерываний за счет таймера т2?
- •3 Таймеры. То как измеритель длительности импульса
- •4 Система команд. Как изменится состояние асс после команды xrl a,#01h?
- •Билет 10
- •Порты. Какое состояние вывода имеет порт р1.0 микроконтроллера 180с51 после команды setb р1.0, если он управляет транзисторным биполярным ключем?
- •Механизм прерываний. Как можно увеличить число внешних прерываний за счет массива рса?
- •Таймеры. Т1 как измеритель длительности импульса
- •Система команд. Как изменится состояние асс после команды anl a,#0fEh?
- •Билет 11
- •Модуль pca как измеритель длительности импульсов.
- •Последовательный связной адаптер. Синхронный обмен.
- •Билет 12
- •Память. Способы доступа к внутренней памяти с адреса 20h по 2Fh.
- •Порты. Идентификаторы типа принимаемых данных через порт po.
- •Вариант 14
- •Модуль рса как сторожевой таймер
- •Последовательный связной адаптер. Рассчитайте частоту кварцевого резонатора для обмена со скоростью 19 200 бод (для микроконтроллера с предельной частотой 12 мГц).
- •Память. Способы доступа к внутренней памяти с адреса 80h по fFh
- •Порты. Напишите программу формирования одиночного импульса на выводе р1.0
- •Вариант 15
- •Модуль рса как генератор сигналов.
- •Последовательный связной адаптер. Как организовать прием и передачу данных на разных частотах одновременно?
- •Память. Способы доступа к внешней памяти данных
- •Порты. Изобразите схему подключения светодиода к выводу p1.0 микроконтроллера i80c51
- •Вариант 16
- •Последовательный связной адаптер. Как организовать программно-управляемую передачу данных, если в scon записан код 50h?
- •4.Порты. Откуда поступает старший байт адреса на выводы порта р2 при выполнении команды movx @r0,a?
- •Вариант 17
- •Модуль рса как вход запроса на прерывание Режим захвата.
- •Режим 16-разрядного программируемого таймера.
- •Режим скоростного вывода.
- •Последовательный связной адаптер. Как организовать программно-управляемую передачу данных, если в scon записан код 52h?
- •Порты. Почему при выполнении команд типа чтение-модификация-запись над содержимым порта информация берется не с вывода, а с выхода триггера-защелки порта?
- •Вариант18
- •2.Механизм прерываний. Прерывания по уровню (организация, обработка, применение)
- •Вариант19
- •Билет 20
- •Таймеры. Т1 как устройство синхронизации uart.
- •Модуль рса как измеритель длительности импульсов.
- •Режимы работы, orl pcon,#02h
- •Вариант 2i
- •1. Порты. Напишите программу формирования одиночного импульса на выводе p1.0
- •Механизм прерываний. Внепрограммная обработка прерываний
- •Таймеры. Т2 как устройство синхронизации uart
- •Режимы работы, orl pcon,#03h
- •Вариант 22
- •Порты. Изобразите схему подключения светодиода к выводу р1.0 микроконтроллера i80c51.
- •Механизм прерываний. Способы уменьшения числа прерываний при обмене
- •Таймеры. Т2 как генератор сигналов
- •Память. Способы доступа к внутренней памяти с адреса 00h по lFh.
- •Билет 31
- •Модуль pca как сторожевой таймер.
- •Последовательный связной адаптер. Рассчитайте частоту кварцевого резонатора для обмена со скоростью 19 200 бод (для микроконтроллера с предельной частотой 12 мГц).
- •Режимы работы. Orl pcon, #31h
- •Механизм прерываний. Прерывания по уровню (организация, обработка, применение)
Вариант19
Система команд. Подпрограмма приема байта через UART с прерываниями
SPIN1: JNB RI, SPIN1 ; проверка флага RI
CLR RI ; сброс флага
MOV A, SBUF ; чтение символа
RET
Механизм прерываний. Прерывания по срезу (организация, обработка, применение)
Прерывание происходит при перепаде из 1 в 0 на входах 8051. Выход из запроса происходит аппаратно (флаги сбрасываются аппаратно). Для организации необходимо в NCON установить биты IT0 и IE1 соответственно. Запрос сбрасывается аппаратно, а устанавливается и программно и аппаратно.
Таймеры. Т1 как дополнительный вход запросов на прерывания
В старшую (ТН1) и младшую (ТL1) тетрады Т1 записываются единицы, т.е число FF. Далее содержимое
счетчика будет увеличено на 1 в том случае, если в предыдущем цикле был считан входной сигнал высокого
уровня, а в следующем - сигнал низкого уровня, после чего будет отправлен запрос на прерывание.
Режимы работы, orl pcon,#01h
Холостой ход
Билет 20
Система команд. Подпрограмма передачи байта через UART без прерываний.
В регистре SCON – 50h (01010000b) – SCON.6 (SM=1) и SM 0=0 – 8 битный приёмо-передатчик. И установлен SCON.4 – бит разрешения приёма.
ЕСЛИ 50h:
BYTE_T:
MOV SBUF, A
WAIT:
JNB SCON.1, WAIT
CLR SCON.1 //TI –флаг прерывания передатчика
RET
ЕСЛИ 52h:
BYTE_T:
WAIT:
JNB SCON.1, WAIT
CLR SCON.1 // сначала сбросим флаг (TI) прерывания передатчика.
MOV SBUF, A
RET
Таймеры. Т1 как устройство синхронизации uart.
В режимах UART 1 или 2 (SM0:SM1:SM2 = 0:1:0/1 или SM0:SM1:SM2 = 1:1:0/1) частота обмена задается через T/C1 и равна:
2SMOD *FOV /32, где FOV – частота переполнения таймера 1 и равна: FOV = FOSC/(12* [256 – (TH1)]), где FOSC – частота осцелятора, а (TH1) – десятичный код содержимого регистра TH1. Т/С1 используется для приемника только если T2CON.5 = 0. Т/С1 используется для передатчика только если T2CON.4 = 0. Наиболее типично использование его в режиме таймера с автоперезагрузкой (старшая тетрада TMOD = 0010В).
SCON=0xd8; //reg. UART - 3, razr. priema., 9-i bit=1
TMOD=0x21; //T1 - reg.2, T0 - reg.1
TCON=0;
PCON=0x80; //skorost` *2
TL1=TH1=0xff; //115200
TR1=1; //run timer UART
IP=0;
IE=0x90; //Global, UART
Модуль рса как измеритель длительности импульсов.
При обнаруджении фронта или спада на внешнем выводе СУЧт в этом режиме осуществляется запись значения PCA таймера-счетчика в регистры CCAPnH CCAPnL. Этот режим рекомендуется использовать при измерении длительности импульсов(режим захвата). Установка битов CAPPn и/или CAPNn в регистре CCAPMn определяет перепад(0-1 или 1-0), по которому будет осуществляться завхват.
11h = 00010001b – конец импульса
21h = 00100001b – начало импульса
DSEG
P_W EQU 30h
CAPTRE EQU 32h //сохранить первое значение времени
FLAG BIT 00h //привязывает следующую команду жестко к памяти
CSEG
ORG 0000h
AJMP MAIN
ORG 0033h
AJMP PCA_IR0
ORG 0100h
MAIN: //настройка и запуск
MOV CMOD, #00h; // WDTE =0 clock=fosc\12
MOV CL, #00h; //обнуляем регистр режима и счетчик
MOV CH, #00h;
MOV CCAPM0, #21h; (11h – для паузы) //настроить модуль 0, разрешение прерывания (2 бита в 1: 0010 0001 – позитив + фиксация событий)
CLR FLAG;
SETB IE.6; //разрешить прерывание от PCA массива
SETB IE.7; //отключить блокировку прерываний
SETB CCON.6; //установить CR
ORG 0200h
НАЧАЛО
PCA_ISR:
CLR CCF0; // Флаг прерывания модуля 0. Сбрасывается программно.
JBC FLAG, SECOND; // Переходим на метку если бит установлен и сбрасываем его.
FIRST:
MOV CAPTURE, CCAP0L; // запись в CAPTURE значения времени из CCAP0L
MOV (CAPTURE+1), CCAP0H; // запись по адресу CAPTURE+1 значения CCAP0H (фиксируем время наступления)
SETB FLAG; // Flag = 1
MOV CCAPM0, #11h; (или 21h; 21h для паузы) (11h- для импульса (конец импульса) (*) (перенастройка модуля меняет по отрицательному перепаду)
RETI; //разрешение прерывания этого уровня
SECOND:
PUSH PSW;….// выталкивает из стека последнюю затолкнутую переменную ( сохранить признаки
PUSH ACC; //и значения результата)
CLR C; //очистка бита переноса
MOV A, CCAP0L; // запись в ACC значения времени из CCAP0L
SUBB A, CAPTURE; // Вычитание из A – CAPTURE -C Вычитаем младшие байты времени поступления двух событий
MOV P_W, A (Pulse_WIDTH)
MOV A, CCAP0H
SUBB A, (CAPTURE+1) //аналогично старшие байты
MOV (P_W +1), A
POP ACC; // закидывает значение в стек //чтоб не испортить текущих значений
POP PSW;
MOV CCAPM0, #21h(начало импульса); (11h - для паузы)
CLR FLAG;
RETI;