Аппаратная обработка прерываний с помощью блока PTS
Написание алгоритма приема 10 пакетов по 12 байт из последовательного порта и размещение их в памяти PRAM. Создание управляющего блока PTSCB для режима блоковой передачи данных. Аппаратная обработка прерываний в режима аналого-цифрового сканирования.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | практическая работа |
Язык | русский |
Дата добавления | 25.04.2012 |
Размер файла | 2,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Практическое занятие №1. Аппаратная обработка прерываний с помощью блока PTS
алгоритм блоковой прерывание аналоговый сканирование
1. Одиночная передача байта информации;
2. Блоковая передача данных;
3. Режима аналого-цифрового сканирования;
Последовательность действий: 1.Сформировать управляющее слово CON=05h;
M2=0 |
M1=0 |
M0=0 |
BW=0 |
SU=0 |
DU=1 |
SI=0 |
DI=1 |
2. Размаскировать и разрешить как PTS-прерывание обслуживание запроса int 12 т.е. INT_MASK1.4 :=1 (адрес 13h), PTSSEL(Hi).4 :=1 (адрес 05h).
ORB INT_MASK1, #10H; Размаскировать ORB 13H, #10H
ORB PTSSEL(HI), #10H; разрешить как PTS-прерывание
3. Создать управляющий блок PTSCB для режима одиночной передачи, загрузить вектор FF2058h.
LD CX, #0050H; начальный адрес PTSCB
LD AX, #2058H; адрес вектора прерываний
LDB BL, #0FFH;
EST CX, [BAX]; MEM_WORD(EX) СX
; Создать управляющий блок PTSCB
LD 50H, #050CH; записываем в PTSCB
LD 52H, #1FB8H; исходные параметры
LD 54H, #0200H;
4.Счетчик пакетов расположить в регистре (SFRs)-1FB6h
LDB WSR, 3EH; 64-bytes окно №30
LDB 0B6H, #0AH; Загрузка счетчика пакетов
5.Создать программу "end of PTS"(располагается по вектору стандартного прерывания int12 с адреса FF2038h), в которой предусмотреть проверку счетчика пакетов и инициализацию вновь цикла PTS.
; загрузить вектор FF2038h.
LD CX, #2150H; адрес программы end of PTS
LD AX, #2038H; адрес вектора стандартного прерывания int12
LDB BL, #0FFH;
EST CX, [BAX];
;создать программу "end of PTS"
end of PTS :
LDB WSR, 3EH; выбор окна для 1FB6h
DEC 0B6H; декремент счетчика пакетов
JE M1; проверка счетчика на нуль
OR PTSSEL(HI), #10H; разрешение PTS
LDB 50H, #0CH; перезагрузка счетчика циклов PTS M1: RET;
Последовательность действий: 1.Сформировать управляющее слово CON=8Fh;
M2=1 |
M1=0 |
M0=0 |
BW=0 |
SU=1 |
DU=1 |
SI=1 |
DI=1 |
2. Размаскировать и разрешить как PTS-прерывание обслуживание запроса int 14 т.е. INT_MASK1.6 :=1 (адрес 13h), PTSSEL(Hi).6 :=1 (адрес 05h).
ORB INT_MASK1, #40H; Размаскировать ORB 13H, #40H
ORB PTSSEL(HI), #40H; разрешить как PTS-прерывание
3. Создать управляющий блок PTSCB для режима блоковой передачи, загрузить вектор FF205Сh.
LD CX, #0058H; начальный адрес PTSCB
LD AX, #205CH; адрес вектора прерываний
LDB BL, #0FFH;
EST CX, [BAX]; MEM_WORD(EX) СX
; Создать управляющий блок PTSCB
LD 58H, #8F04H; записываем в PTSCB
LD 60H, #0200H; исходные параметры
LD 62H, #0600H;
LD 64H, #001EH;
4.Создать программу "end of PTS" по адресу 2200h (располагается по вектору стандартного прерывания int14 с адреса FF203Сh), в которой предусмотреть повторную инициализацию цикла PTS перемещения нового блока данных, принятого из последовательного порта.
; загрузить вектор FF203Ch.
LD CX, #2200H; адрес программы end of PTS
LD AX, #203CH; адрес вектора стандартного прерывания int14
LDB BL, #0FFH;
EST CX, [BAX];
;создать программу "end of PTS"
end of PTS :
OR PTSSEL(HI), #40H; разрешение PTS
M1: RET;
Последовательность действий: 1.Сформировать управляющее слово CON=САh;
M2=1 |
M1=1 |
M0=0 |
0 |
SU=1 |
0 |
1 |
0 |
2. Ниже приводится формат управляющего слова AD_COMMAND,
0 |
0 |
T |
M |
GO |
ch2 |
ch1 |
ch0 |
Адрес 1FACh
где - ch2-ch0 номера обслуживаемых каналов от 0 до7; GO=1старт преобразования немедленный; GO=0 старт преобразования через блок EPA; М=0 это10-ти разрядное преобразование; М=1 это8-ми разрядное преобразование; Т=0 нормальное преобразование; Т=1 детектирование порога;
2. Сформировать таблицу "команды \ данные".
После начала цикла PTS происходит следующее:
1. PTS читает первую команду, сохраняет её во временном регистре, увеличивает дважды указатель PTR1, который теперь указывает на первую пустую ячейку памяти.
2. PTS читает AD_RESULT регистр(1FAAh), сохраняет результат первого преобразования в таблице и дважды увеличивает PTR1
3. PTS загружает команду из временного регистра в регистр команд AD_COMMAND. Начинается следующий цикл АЦП.
4. Если бит SU =1, то PTR1 сохраняется новое значение и указывает на новую команду.
5. Если бит SU=0, то PTR1 повторно устанавливается в первоначальное значение, а значит следующий цикл использует ту же команду и перепишет предыдущее значение результата АЦП.
6. Декрементируется счетчик циклов и по его значению либо возврат в основную программу и ожидание завершения следующего преобразования, либо переход на end-of-PTS.
Последовательность действий (продолжение):
3. Размаскировать и разрешить как PTS-прерывание обслуживание запроса int 5 т.е. INT_MASK.5 :=1 (адрес 08h), PTSSEL(Lo).5:=1 (адрес 04h).
ORB INT_MASK, #20H; Размаскировать ORB 08H, #10H
ORB PTSSEL(LO), #20H; разрешить как PTS-прерывание
4. Создать управляющий блок PTSCB для режима аналого-цифрового сканирования, загрузить вектор FF204Аh.
LD CX, #0060H; начальный адрес PTSCB
LD AX, #204AH; адрес вектора прерываний
LDB BL, #0FFH;
EST CX, [BAX]; MEM_WORD(EX) СX
; Формирование PTSCB
LD 60H, #CA05H; записываем в PTSCB
LD 62H, #0100H; исходные параметры
LD 64H, #1FAAH;
5.Создать программу "end of PTS"(располагается по вектору стандартного прерывания int 5 с адреса FF200Аh), в которой предусмотреть повторную инициализацию для режима аналого-цифрового сканирования, обеспечивая либо ту же, либо иную последовательность преобразования.
; загрузить вектор
LD CX, #200AH; адрес программы end of PTS
LD AX, #200AH; адрес вектора стандартного прерывания int5
LDB BL, #0FFH;
EST CX, [BAX];
;создать программу "end of PTS"
end of PTS :
OR PTSSEL(HI), #20H; разрешение PTS
M1: RET;
6.Программным путем обеспечить начало первого преобразования.
STRING MODULE CMAIN
$include(_SFR_INC_)
$include("regs.inc")
KSEG AT 0FF2200H
INSTRING: DCB 'Stroka0' ;SOURCE STRING
DCB 0 ;STRING DELIMITER
CSEG
START:
LDBWSR, #7EH;ENABLE VERTICAL WINDOW
;(32 BYTES, MAPPING OF ADRESS 1FC0h)
LDIDX1_7E, #02200H ;SET LO WORD OF 24 BIT ADRESS FOR IDX1
LDBIDX1_7E+2, #0FFH ;SET HI BYTE OF 24 BIT ADRESS FOR IDX1
LDBICB1_7E, #01H ;SET AUTOINCREMENT ON 2
LDBWSR, #00H ;DISABLE VERTICAL WINDOW
XORBX, BX ;ZERO AX REGISTER
NEXT:
LDB AL,ICX1 ;LOAD CHAR FROM INSTRING TO AL AND POINT TO NEXT BYTE
CMPB AL,#0 ;CHECK ON STRING END
JE _EXIT ;IF END -- EXIT LOOP
inc BX
SJMP NEXT
_EXIT:
SJMP $ ;INFINITE LOOP
END
Скриншот выполнения программы
Вывод: на этой лабораторной работе был изучен механизм индексной и оконной адресации микроконтроллера Intel 80296SA и команд повторения следующей инструкции. Изучены команды и псевдокоманды, используемые в рабочих примерах , и проверено их функционирование в процессе пошаговой отладки рабочих примеров.
Размещено на Allbest.ru
Подобные документы
Прерывание и его природа. Контролер прерываний. Обработка прерываний в реальном режиме. Характеристики реального режима работы микропроцессора. Схема обработки прерываний в реальном режиме. Написание собственного прерывания. Разработка в общем случае.
доклад [347,0 K], добавлен 22.09.2008Принципы и алгоритмы обработки прерываний. Набор действий по реализации этапов обработки прерываний микропроцессора. Разработка структуры и алгоритма резидентной программы. Реализация программы на языке Ассемблер, методы её отладки и тестирования.
курсовая работа [348,7 K], добавлен 22.12.2014Обработка прерываний - сигналов о совершении некоторых событий в компьютере. Механизм обработки прерываний. Обработка исключений, описание реакции программы на ошибки выполнения. Общее понятие и виды исключительных ситуаций во время выполнения программы.
реферат [192,2 K], добавлен 10.11.2014Принципы организации и особенности обработки прерываний на основе контроллера 8259A. Общая характеристика аппаратных средств системы прерываний PIC (Programmable Interrupt Controller). История разработки и порядок работы с технологией Plag and Play.
курсовая работа [305,1 K], добавлен 29.07.2010Проектирование механизма обработки прерываний. Контроллер прерываний Intel 82C59A. Ввод-вывод по прерыванию. Программируемый контроллер интерфейса Intel 82C55A. Роль процессора в обработке прерывания ввода-вывода. Обзор алгоритма обработки прерывания.
контрольная работа [8,0 M], добавлен 19.05.2010Генерация звука и обработка прерываний. Создание системы с использованием средств языка программирования Ассемблер. Установка и чтение таймера. Программирование микросхемы таймера 8253/8254. Максимальный программируемый интервал времени для системы.
реферат [21,4 K], добавлен 10.05.2011Изучение понятия, векторов и механизмов обработки прерываний; их классификация в зависимости от источника происхождения. Особенности реагирования аппаратной и программной частей операционной системы на сигналы о совершении некоторого события в компьютере.
реферат [995,8 K], добавлен 22.06.2011Структурная схема системы управления. Характеристики первичных датчиков, электронасоса, индикатора, микроконтроллера, системы прерываний. Работа регистров и аналого-цифрового преобразователя. Алгоритм работы микропроцессора - управляющего устройства.
курсовая работа [2,2 M], добавлен 06.02.2013Структура блока обработки данных, синтез операционного и управляющего автоматов с микропрограммируемой логикой в структурном базисе комплекта 1804. Разработка алгоритма регенерации динамического ЗУ, особенности интерфейса шины процессор – память ISA.
курсовая работа [3,3 M], добавлен 23.12.2014Общая структура и принцип функционирования синхронного управляющего автомата. Анализ граф схемы алгоритма управляющего автомата и детализация блока памяти. Структурный синтез логического преобразователя и разработка электрической функциональной схемы.
курсовая работа [222,6 K], добавлен 19.02.2013