5. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ.
При работе модуля обмен может быть реализован по желанию пользователя по прерыванию либо с неготовностью. Блок – схема работы программного обеспечения представлена на рисунке 5.1. (обмен по прерыванию) и на рисунке 5.3. (обмен с неготовностью). На рисунке 5.2. представлена блок – схема обработчика прерывания.
Рис. 5.1. Обмен по прерыванию.
После включения питания модуля для избежания попадания ложных данных следует произвести чтение из порта 301h. После этого идет установка начальных параметров системы :
Задается вектора обработки прерывания;
производится начальный запуск АЦП.
Программа обработки включает в себя ;
чтение данных из модуля;
запись полученных данных в буфер для дальнейшей обработки;
Обработка полученных данных;
Чтение из буфера данных для дальнейшего отправления в ЦАП;
Вывод данных в модуль для ЦАП.
Рис 5.2. Блок – схема обработчика прерывания.
5.1. Запуск АЦП производится выдачей по адресу 14300h любых данных. С помощью данной команды формируется строб запуска АЦП. Чтение данных из модуля производится по адресу 14301h. При этом из порта считывается байт данных. Формат байта приведен в таблице 5.1.
Таблица 5.1
№ байта | Описание |
Байт 0 | Данные D0 |
Байт 1 | Данные D1 |
Байт 2 | Данные D2 |
Байт 3 | Данные D3 |
Байт 4 | Данные D4 |
Байт 5 | Разряд переполнения |
Байт 6 | Не используется |
Байт 7 | Разряд знака |
5.2. После считывания байта он отправляется в буфер входных данных для последующей обработки.
Рис 5.3. Блок – схема обмена с неготовностью.
5.3. Далее вызывается подпрограмма обработки входных данных для получения ответного слова для ЦАП. Ответное слово состоит из 11 разрядов данных. Передача его из ЭВМ в модуль осуществляется выдачей слова по адресу 14302h. При этом в модуле формируется строб I/O CS 16, говорящий о том, что обмен производится словом, а не байтом. Подпрограмму обработки полученных данных и формирование ответного слова пишет пользователь самостоятельно.
5.4. Перед использованием необходимо разрешить или запретить обмен по прерыванию в модуле. Если прерывание разрешено, то обмен будет совершаться по прерыванию. В противном случае будет осуществляться обмен с неготовностью Тип обмена задается выдачей по линии D0 числа по адресу 14303h. Формат слова представлен в таблице 5.2.
Таблица 5.2
Состояние | Описание |
0 | Прерывание запрещено |
1 | Прерывание разрешено |
Если обмен производится с неготовностью, то состояние АЦП считывается по линии D7 по адресу 14303h.
6. ЛИТЕРАТУРА.
Уинн Л. Рош. Библия по техническому обеспечению Уинна РОШа. Минск. 1992.
Томпкинс. Уэбстер. Проектирование и сопряжение контроллеров с ЭВМ.
Джордейн. Описание IBM PC AT.
Питер Абель. Язык ассемблера для IBM PC и программирования. Москва. «Высшая школа». 1992 г.
ПРИЛОЖЕНИЯ
Пример подпрограммы обмена по прерыванию
TITLE CTRNAM (EXE)
STCKSG SEGMENT PARA ‘Stack’ ; Инициализация сегмента стека
DW 32 DUP (?)
STCKSG ENDS
;----------------------------------------------------
DATASG SEGMENT PARA ‘Data’ ; Инициализация сегмента данных
VECT5 EQU 5H ; Задание векторов
VECT10 EQU 10H ; прерываний
VECT11 EQU 11H
ACPSTRT EQU 14300H ; Адрес запуска АЦП
ACPREAD EQU 14301H ; Адрес чтения из модуля
ACPWRITЕ EQU 14302H ; Адрес записи в модуль
ACPFLAG EQU 14303H ; Адрес маски
KBSAVE DWORD ? ; Переменная вектора прерывания
ENDFLAG DB 0 ; Флаг окончания обмена
DATASG ENDS
;----------------------------------------------------
INTTAB SEGMENT AT 0H ; Получаем доступ к таблице векторов
ORG VECT5*4H
KBADDR LABEL DWORD
INTTAB ENDS
;----------------------------------------------------
CODESG SEGMENT PARA ‘Code’
BEGIN PROC FAR
ASSUME CS:CODESG, DS:INTTAB, SS:STCKSG, ES:DATASC
PUSH DS
SUB AX, AX ; Проводим
PUSH AX ; начальную
MOV AX, DATASC ; инициализацию
MOV ES, AX ; сегментов
MOV AX, INTTAB
MOV DS, AX
CLI ; Запрет прерываний
MOV AX, WORD PTR KBADDR
; Устанавливаем новый
MOV WORD PTR KBSAVE, AX
; вектор прерывания
MOV AX, WORD PTR KBADDR + 2
; и сохраняем старый
MOV WORD PTR KBSAVE + 2, AX
MOV WORD PTR KBADDR, OFFSET CALC
MOV WORD PTR KBADDR + 2, CS
MOV DX, ACPFLAG ; Производим установку
MOV AL, 1 ; маски прерывания
OUT DX, AL
STI ; Разрешаем прерывание
ASSUME DS: DATASG
MOV DX, ACPREAD ; Производим чтение
IN DX, AL ; случайных данных
MOV DX, ACPSTRT ; Начальный запуск
OUT DX, AL ; АЦП
CHK: MOV AL, ENDFLG ; Проверка окончания обмена
JZ CHK
MOV ENDFLG, 0 ; Сброс флага окончания обмена
; Задается условие проверки окончания процесса.
; Если процесс продолжается, то переход к метке AGAIN,
; В противном случае на ENDPROG
AGAIN: MOV DX, ACPSTRT ; Запуск АЦП
OUT DX, AL
JMP CHK ; И переход к следующему циклу
ENDPROG: ASSUME DS: INTTAB
; Восстановление исходных
MOV AX, WORD PTR KBSAVE
; параметров в таблице
MOV WORD PTR KBADDR, AX
; векторов прерываний
MOV AX, WORD PTR KBSAVE + 2
MOV WORD PTR KBADDR + 2, AX
POP DS ; Восстановление сегмента данных
CSAEG ENDS
END BEGIN ; Окончание программы
; Подпрограмма обработки прерывания
CALC PROC NEAR
PUSH AX ; Сохраняем регистры
PUSH BX
PUSH CX
PUSH DX
PUSH SI
PUSH DI
PUSH DS
PUSH ES
PUSHF
MOV DX, ACPREAD ; Производим чтение из АЦП
IN DX, AL
PUSH AX ; Осуществляем передачу данных
; через стек для последующей
; обработки
CALL EXECUTE ; Вызов подпрограммы обработки
POP AX ; Получение данных из стека
MOV DX, ACPWRITE ; Запись в модуль
OUT DX, AX
MOV ENDFLG, 0FFH ; Вскидывание флажка
POPF ; Восстановление регистров
POP ES
POP DS
POP DI
POP SI
POP DX
POP CX
POP BX
POP AX
IRET ; Выход из прерывания
CALC ENDP
Пример подпрограммы обмена с неготовностью.
TITLE CTRNAM (EXE)
STCKSG SEGMENT PARA ‘Stack’ ; Инициализация сегмента стека
DW 32 DUP (?)
STCKSG ENDS
;----------------------------------------------------
DATASG SEGMENT PARA ‘Data’ ; Инициализация сегмента данных
ACPSTRT EQU 14300H ; Адрес запуска АЦП
ACPREAD EQU 14301H ; Адрес чтения из модуля
ACPWRITЕ EQU 14302H ; Адрес записи в модуль
ACPFLAG EQU 14303H ; Адрес маски
DATASG ENDS
;----------------------------------------------------
CODESG SEGMENT PARA ‘Code’
BEGIN PROC FAR
ASSUME CS:CODESG, DS:DATASG, SS:STCKSG, ES:DATASC
PUSH DS
SUB AX, AX ; Проводим
PUSH AX ; начальную
MOV AX, DATASC ; инициализацию
MOV DS, AX ; сегментов
MOV ES, AX
MOV DX, ACPFLAG ; Производим установку
MOV AL, 0 ; маски прерывания
OUT DX, AL
MOV DX, ACPREAD ; Производим чтение
IN DX, AL ; случайных данных
STRT: MOV DX, ACPSTRT ; Запуск
OUT DX, AL ; АЦП
MOV DX, ACPFLAG ; Производим чтение
CHK: IN DX, AL ; готовности
AND AL, 10000000B ; Накладываем маску
JZ CHK ; Готово к обмену?
PUSH AX ; Осуществляем передачу данных
; через стек для последующей
; обработки
CALL EXECUTE ; Вызов подпрограммы обработки
POP AX ; Получение данных из стека
MOV DX, ACPWRITE ; Запись в модуль
OUT DX, AX
; Задается условие проверки окончания процесса.
; Если процесс продолжается, то переход к метке AGAIN,
; В противном случае на ENDPROG
AGAIN: JMP STRT ; Переход на следующий цикл
ENDPROG: POP DS
CSEG ENDS
END BEGIN
Лист
Поз. |
|
|
|
Микросхемы бко. 348.289-02 ТУ | |||
DD1-DD3 | 1533АП5 | 3 | |
DD4 | 1533ЛН1 | 1 | |
DD5 | 1533СП1 | 1 | |
DD6-DD7 | 500ЛП114 | 2 | |
DD8 | 1533СП1 | 1 | |
DD9 | 1533ЛА3 | 1 | |
DD10 | 1533ИД4 | 1 | |
DD11 | 1533СП1 | 1 | |
DD12 | 1533ЛЛ1 | 1 | |
DD13 | 1107ПВ3 | 1 | |
DD14 | 500ЛМ105 | 1 | |
DD15 | 1533ЛИ1 | 1 | |
DD16 | 1533ЛЛ1 | 1 | |
DD17 | 572ПА2 | 1 | |
DD18 | 1533ТМ2 | 1 | |
DD19 | 1533ЛП8 | 1 | |
DD20,DD21 | 500ПУ125 | 2 | |
DD22,DD23 | 559ИП3 | 2 | |
DD24,DD25 | 1533АП6 | 2 | |
DD26 | 1533ЛИ6 | 1 | |
Поз. |
|
|
|
Резисторы ОЖО. 467.104. ТУ | |||
R1 | С2-23 – 49.9 0.05% | 1 | |
R3 | С2-23 – 100 0.05% | 1 | |
R4 | С2-23 – 301K 0.05% | 1 | |
R5,R6 | С2-23 – 20K 0.05% | 2 | |
R7 | С2-23 – 301K 0.05% | 1 | |
R8 | С2-23 – 470 0.05% | 1 | |
R9 | С2-23 – 1К 0.05% | 1 | |
R10 | СП2 – 2.2К | 1 | |
R11 | СП2 – 1К | 1 | |
R12 – R14 | С2-23 – 1К 0.05% | 3 | |
R15 | С2-23 – 510 0.05% | 1 | |
R16 | С2-23 – 200 0.05% | 1 | |
R17 | С2-23 – 510 0.05% | 1 | |
R18 | С2-23 – 200 0.05% | 1 | |
R19 – R20 | С2-23 – 510 0.05% | 2 | |
R21 | С2-23 – 4.7 0.05% | 1 | |
R22 | С2-23 – 430 0.05% | 1 | |
R23 | С2-23 – 100 0.05% | 1 | |
R24 | С2-23 – 430 0.05% | 1 | |
R25 | С2-23 – 100 0.05% | 1 | |
R26 | С2-23 – 620 0.05% | 1 | |
R27 – R29 | С2-23 – 510 0.05% | 3 | |
R30 | С2-23 – 1K 0.05% | 1 | |
R31, R32 | С2-23 – 430 0.05% | 2 | |
R33 - R37 | С2-23 – 510 0.05% | 5 | |
R38 | С2-23 – 430 0.05% | 2 | |
R39 – R46 | С2-23 – 510 0.05% | 8 | |
R47, R48 | С2-23 – 1K 0.05% | 2 |
Лист
Поз. |
|
|
|
Конденсаторы бко. 348.006-59ТУ | |||
С1-C2 | К10 - 17 – 1n | 2 | |
С3-C4 | К73 - 17 – 100 мкФ х 10В | 2 | |
С5-C14 | К10 - 17 – 0.1 мкФ | 15 | |
С15-C16 | К10 - 17 – 0.15 | 2 | |
С17-C18 | К10 - 17 – 100 n | 2 | |
С22-C23 | К10 - 17 – 0.15 | 2 | |
С24 | К10 - 17 – 100 n | 1 | |
С25 | К10 - 17 – 27 n | 1 | |
Транзистор | |||
VT1 | КП905А АО.336.185ТУ | 4 | |
СОДЕРЖАНИЕ.
Введение 4
Назначение и область применения 5
Технические данные 6
Устройство и работа модуля по структурной схеме. Устройство и
работа модуля по принципиальной схеме 8
Руководство к программированию 12
Программное обеспечение 14
Литература 18
Приложения... звука и изображения (например, громкоговоритель, кинескоп) пока используются аналоговые устройства. Поэтому аналого - цифровые и цифро - аналоговые преобразователи являются неотъемлемой частью цифровых систем. Сегодня обработка аналоговых сигналов с использованием цифровых преобразований все шире используется для решения множества прикладных задач в связи, радиолокации, измерительной технике, ...
... возможную реализацию точностных характеристик измерительного блока во времени. Функции М ( t ) и s ( t ) можно представить в виде: М ( t ) = А х t ; s ( t ), = sо + В х t, где sо - дисперсия погрешности измерения отношения сигнал/шум в момент начала эксплуатации. Выбираем: sо = 0,5 Коэффициенты А и В выбираем по интенсивности внезапных отказов l å из соотношений ...
... измерения энергии должна находится в пределах ±(0,1-2,5)%. 4.4 Зависимость погрешности дозирования от состава технических средств комплексов дозирования Поскольку в электротехнические комплексы дозирования помимо рассмотренных выше устройств цифрового дозирования количества электричества и электрической энергии входят также устройства коммутации и датчики тока и напряжения, то необходимо ...
... с объектами контроля и управления, т.е. для преобразования в реальном масштабе времени аналоговых входных сигналов в цифровой код и для обратного преобразования цифровой информации в аналоговый выходной сигнал информационно-управляющих устройств. 1. Разработка адаптера аналого-цифрового преобразователя В преобразовании сигналов из аналоговой формы в цифровую можно выделить следующие процессы: ...
0 комментариев