
Подготовка к лаб раб 2 и 3.pptx
- Количество слайдов: 19
Цель работы: изучить организацию ввода и вывода информации через параллельные порты микроконтроллера, особенности работы с отдельными линиями параллельных портов, специфику использования отдельных команд микроконтроллера и его режимов адресации.
Постановка задачи В зависимости от варианта, микроконтроллер осуществляет ввод (ВВ) либо вывод (ВЫВ) информации. Данные представляют собой десятичные цифры, записанные либо в упакованном (УП), либо в распакованном (РАСП) формате. В первом случае в каждом байте хранятся по две десятичные цифры, старшая занимает левую тетраду, а младшая - правую. Во втором случае каждая цифра занимает лишь младшую тетраду байта, старшая тетрада при обмене не должна меняться. Начальный адрес массива, из которого выводятся или в который вводятся данные, либо хранится в регистре R 0 текущего банка данных, либо имеет фиксированное значение, указанное в таблице вариантов. Длина массива, задаваемая в цифрах, либо хранится в регистре R 1, либо равна первой цифре массива (ПЦ), либо конец обмена определяется сигналом низкого уровня на входе P 1. 7. В первом случае цифра, определяющая длину массива, входит в состав массива и должна передаваться вместе с массивом. Обмен осуществляется параллельным (ПР) по каналам P 1. 3. . . P 1. 0 либо последовательным по каналу P 1. 0 кодом. Последовательная передача может осуществляться старшими (ПССТ) либо младшими (ПСМЛ) битами вперед.
Инициатором обмена выступает микроконтроллер (МК) либо внешнее устройство (ВУ). В первом случае каждая операция обмена начинается с выдачи микроконтроллером сигнала запроса к ВУ. Обмен осуществляется после приема от ВУ сигнала подтверждения, при поступлении которого МК производит обмен, снимает запрос, ждет снятия сигнала подтверждения со стороны ВУ и затем продолжает работу. Во втором случае прежде, чем начать обмен МК ожидает сигнала запроса от ВУ, затем выставляет сигнал готовности к обмену, производит обмен, снимает сигнал готовности, ждет снятия запроса от ВУ, после чего продол-жает работу. Обмен управляющими сигналами между МК и ВУ осуществляется при каждой передаче. ВУ передает сигналы в МК (подтверждение или запрос) по линии Р 1. 4. МК передает сигналы к ВУ (запрос или готовность) по линии Р 1. 5. Активное значение сигнала указывается в варианте задания (Н - высокий, L - низкий). После завершения передачи массива управление передается на начало программы.
Вариант 1. Микроконтроллер осуществляет ввод pаспакованных чисел последовательным кодом по линии Р 1. 0 стаpшими pазpядами впеpед. Начальный адpес массива перед выполнением этой задачи уже хранится в pегистpе R 0. Длина массива ─ пеpвая пpинятая цифpа. После ввода каждого бита МК выдает сигнал низкого уpовня по линии Р 1. 4. Разpешение ввода ─ сигнал низкого уpовня по линии Р 1. 5. Инициатор обмена – внешнее устройство. Временная диаграмма обмена информацией Установка готовности Сброс готовности Р 1. 5 от ВУ Ввод данных Подтверждение ввода Р 1. 4 от МК Р 1. 0 данные для ввода Данные достоверны
Р 1. 0 RLC - циклический сдвиг влево Р 1. 0 RRC - циклический сдвиг вправо Схема выполнения операции циклического сдвига с учетом бита переноса
Программа ORG 0 H JMP BEGIN ORG 30 H ; Р 1. 4 и Р 1. 0 -на ввод, Р 1. 5 -неактивный (высокий) уровень BEGIN: MOV P 1, #00110001 b ACALL SEND ; вызов п/п ввода цифры в аккумулятор ; ввод первой цифpы (длины массива) в R 3 MOV R 3, A ; длина массива - в R 3 ACALL WRITE ; вызов п/п записи цифры в память M 2: DJNZ R 3, M 1 ; проверка на конец ввода массива JMP BEGIN M 1: ACALL SEND ; вызов п/п ввода цифры ACALL WRITE ; вызов п/п записи цифры в память JMP M 2 ; подпрограмма ввода цифры в А 3…А 0 SEND: MOV R 2, #4 ; счетчик бит в цифpе CLR A ; A=0 IN: JB P 1. 5, IN ; ожидание запроса от ВУ MOV C, P 1. 0 ; ввод бита CLR P 1. 4 ; выдача сигнала готовности МК JNB P 1. 5, $ ; ожидание снятия запроса от ВУ SETB P 1. 4 ; снятие сигнала готовности МК RLC A ; A<0>=(введенный бит) DJNZ R 2, IN ; конец цикла ввода бита RET ; подпрограмма записи введенной цифры в массив WRITE: MOV R 4, A ; сохранение введенной цифры MOV A, @R 0 ; А=(старое значение байта) ANL A, #11110000 b ; (A 3. . . A 0)=0 ORL A, R 4 ; формирование распакованной цифры MOV @R 0, A ; запись цифры в массив INC R 0 ; i=i+1 RET ; возврат из подпрограммы END
Вариант 2. Согласно варианту микроконтроллер осуществляет вывод упакованных чисел параллельным кодом по каналам P 1. 3. . . Р 1. 0. Начальный адpес массива -10 H. Длина массива – его пеpвая цифpа. Инициатор обмена – МК. Запрос от МК - сигнал низкого уpовня по каналу Р 1. 4. Подтверждение от ВУ - сигнал высокого уpовня по каналу Р 1. 5. Временная диаграмма обмена информацией Подтверждение ввода Снятие подтверждения ввода Р 1. 5 от ВУ Ввод данных внешним устр-вом Сброс готовности данных Р 1. 4 от МК Вывод данных Р 1. 3…Р 1. 0 данные для вывода Данные достоверны
Программа ORG 0 H AJMP START ; переход на начало программы ORG 30 H START: MOV P 1, #00110000 b ; Р 1. 5 - на ввод, Р 1. 4 -высокий MOVR 0, 10 H ; R 0 - байт, содержащий длину массива ANL R 0, #0 FH ; выделение длины массива MOVR 1, #10 H ; R 1 - начальный адрес массива (i=0) OUTB: MOV A, @R 1 ; А=аi ACALL SEND ; переход на п/п вывода цифры DJNZ R 0, OUTDG ; если R 0 0, то на вывод левой цифры AJMP START ; возврат на начало программы OUTDG: MOV A, @R 1 ; А=(байт)i SWAP A ; обмен тетрадами аккумулятора ACALL SEND ; переход на п/п вывода цифры INC R 1 ; i=i+1 DJNZ R 0, OUTB ; если R 0 0, то на вывод следующего байта AJMP START ; возврат на начало программы ; подпрограмма вывода цифры из разрядов A 3. . . A 0 на P 1. 3. . . P 1. 0 SEND: ANL A, #00001111 b ; очистка A. 7. . . A. 4 ANL P 1, #11110000 b ; очистка P 1. 3. . . P 1. 0 ORL P 1, A ; вывод цифры CLR P 1. 4 ; запрос от МК JNB P 1. 5, $ ; ожидание подтверждения от ВУ SETB P 1. 4 ; снятие запроса JB P 1. 5, $ ; ожидание снятия подтверждения RET ; возврат из п/п END
Цель работы: изучить аппаратные и программные особенности работы системы прерываний микроконтроллера, методы и средства управления этой системой, а также требования к организации обработчиков прерываний.
Постановка задачи Необходимо разработать микропроцессорное устройство, в котором микроконтроллер непрерывно генерирует периодический сигнал с периодом T и длительностью импульса t машинных циклов. Во время выполнения этой задачи МК реагирует на прерывания Обработчик каждого из прерываний двух подсчитывает типов. количество прерываний данного типа и, когда оно достигает шести, запрещает прерывание от данного источника. На время обработки прерывания генерация сигнала приостанавливается. Индивидуальные варианты заданий на выполнение лабораторной работы различаются параметрами генерируемого импульса и типами прерываний, на которые должен реагировать микроконтроллер.
Вариант задания. обрабатываемыми источниками прерываний являются внешнее прерывание INT 0 и прерывание от последовательного интерфейса ПИ. Параметры импульса: t=500; T=1500. t=500 мкс T=1500 мкс
Структура системы прерывания Регистр IE 1 Регистр IP 1 TF 0 ET 0 1 INT 1 IE 1 0 IT 1 EX 1 1 TF 1 RI TI ET 1 1 ES 1 0 1 1 0 EX 0 1 0 IE 0 IT 0 0 0 INT 0 0 0 1 EA 1 1 0 1 PX 0 03 h 0 PT 0 0 Bh PX 1 1 13 h 0 1 0 PT 1 1 Bh 1 PS индивидуальное общее разрешение прерываний Низкий уровень Порядок опроса приоритета флагов при равенстве приоритетов 23 h Адрес вектора прерывания Высокий уровень приоритета
Формат регистра TCON Позиция в регистре 0 1 2 3 4 Мнемоника бита Функция IT 0 IE 0 IT 1 IE 1 TR 0 Настройка вида прерывания INT 0 Флаг запроса прерывания INT 0 Настройка вида прерывания INT 1 Флаг запроса прерывания INT 1 Включение в работу таймера/счётчика 0 Флаг переполнения (запрос прерывания) таймера/счётчика 0 Включение в работу таймера/счётчика 1 Флаг переполнения (запрос прерывания) таймера/счётчика 1 5 TF 0 6 TR 1 7 TF 1
Назначение разрядов регистра разрешения прерываний IE Позиция Мнемоника Функция в регистре бита 7 EA Запрет прерывания от всех источников 6 Не используется 5 Не используется Запрет прерывания 4 ES от последовательного порта Запрет прерывания 3 ET 1 от таймера/счётчика T/C 1 Запрет прерывания 2 EX 1 от внешнего источника INT 1 Запрет прерывания 1 ET 0 от таймера/счётчика T/C 0 Запрет прерывания 0 EX 0 от внешнего источника INT 0
Назначение разрядов регистра приоритетов прерываний IP Позиция в регистре 7 6 5 Мнемоника бита Функция - Не используется Приоритет прерывания от последовательного порта Приоритет прерывания от таймера/счётчика T/C 1 Приоритет прерывания от внешнего источника INT 1 Приоритет прерывания от таймера/счётчика T/C 0 Приоритет прерывания от внешнего источника INT 0 4 PS 3 PT 1 2 PX 1 1 PT 0 0 PX 0
Порядок опроса флагов запросов прерываний в случае одновременного поступления нескольких запросов IT 0 TF 0 IT 1 TF 1 (RI, TI) Точки входа в обработчики прерываний Источник прерывания Адреса точек входа в обработчики прерывания Внешнее прерывание (IT 0) 03 h Таймер/счётчик (TF 0) 0 Bh Внешнее прерывание (IT 1) 13 h Таймер/счётчик (TF 1) 1 Bh Последовательный порт (RI или TI) 23 h
Программа ORG 0 H JMP START. ORG 3 ; переход на обработчик INT 0 JMP SUBR 1. ORG 23 h ; переход на обработчик ПИ JMP SUBR 2 ORG 30 h ; основная программа START: MOV IE, #0001 b ; разрешение INT 0, ПИ, ; общий запpет прерываний MOV IP, #10 b ; приоритеты INT 0 =0, Т/С 0=1 ; настройка прерывания INT 0 по срезу, сброс всех запросов MOV TCON, #00000001 b MOV SCON, #0 ; сброс запросов RI и TI MOV R 0, #6 ; установка счетчиков MOV R 1, #6 ; числа прерываний SETB EA ; общее разрешение прерываний CYCLE: MOV R 2, #250 ; счетчик цикла = t / 2 SETB P 1. 0 ; генерация сигнала DELAYt: DJNZ R 2, DELAYt ; задержка на t CLR P 1. 0 MOV R 3, #5 DELAY 2: MOV R 4, #100 ; задержка на T-t ≈ 2*(R 4)*(R 3) DJNZ R 4, $ DJNZ R 3, DELAY 2 AJMP CYCL ; возвpат на цикл ; обработчик INT 0 SUBR 1: DJNZ R 0, OUT 0 CLR EX 0 ; запрет прерывания по INT 0 OUT 0: RETI ; обработчик запроса от последовательного порта SUBR 2: CLR RI CLR TI DJNZ R 1, OUT 1 CLR ES ; запрет прерывания по ПИ OUT 1: RETI END
• Исследовать реакцию МК на прерывания при следующих ситуациях: - обрабатывается единственное прерывание; - прерывания имеют одинаковый приоритет и приходят одновременно; - прерывания имеют разный приоритет и приходят одновременно; - во время обработки одного прерывания приходит запрос от другого источника прерываний, при этом рассмотреть следующие случаи: - прерывания имеют одинаковый приоритет; - обрабатываемое прерывание имеет более высокий приоритет; - обрабатываемое прерывание имеет меньший приоритет. • Проанализировать работу стека микроконтроллера при обработке прерываний.
Подготовка к лаб раб 2 и 3.pptx