- •Вариант 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
4.Режимы работы. Once
Режим насхемной эмуляции, используется для того, чтобы отключить микроконтроллер при включении питании. Режим применяется для тестирования и отладки. Режим не программируется, только аппаратно подать землю на контроллеры, потом RESET – процессор в состоянии “отключено”.
Вариант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таймера-счетчика в регистрыCCAPnHCCAPnL. Этот режим рекомендуется использовать при измерении длительности импульсов(режим захвата). Установка битов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;
Режимы работы, orl pcon,#02h
PCON.1 принимает значение “1”, - Включается режим пониженной мощности.