Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЕОМ експеримент ЦАП.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.22 Mб
Скачать

Програмування цап за допомогою інтерфейсу Centronics.

Все необхідне програмне забезпечення написано мовою PASCAL з частковим використанням мови ASSEMBLER. Останньою написані ділянки програми, які відповідають за вивід інформації на паралельний порт. З текстом програми та її описом можна ознайомитися в додатку 1.

Для того, щоб реалізувати запис до регістрів ЦАП ми використовуємо 2 оператори мови PASCAL: SENDDATA та SENDUPR. Перший з них виконує запис до регістру даних паралельного порту, а отже і встановлення необхідних логічних рівнів (напруг) на виводах роз’єму D0-D7, а другим оператором формуються керуючі сигнали для регістрів ЦАП. Керуючі сигнали формуються за допомогою скидання чи встановлення бітів в регістрі керування порту. Здійснюється це наступним чином.

Запис до регістру 1. Встановити усі сигнали у стан логічного 0. Не змінюючи рівні сигналів AUTO FEED та SELECT IN, встановити в 1 сигнал STROBE на час не менший за 0.01 мкс, а потім переключити його до 0.

Мал. 3.

Форми напруги на виводах паралельного порту

для запису до регістру 1 ЦАП.

Запис до регістру 2. Встановити усі сигнали у стан логічного 0. Не змінюючи рівні сигналів STROBE та SELECT IN, встановити в 1 сигнал AUTO FEED на час не менший за 0.01 мкС, а потім переключити його до 0.

Мал. 4.

Форми напруги на виводах паралельного порту

для запису до регістру 2 ЦАП

Запис до регістру 3. Встановити усі сигнали у стан логічний 0. Не змінюючи рівні сигналів STROBE та AUTO FEED, встановити в 1 сигнал SELECT IN на час не менший за 0.01 мкС, а потім переключити його до 0.

Мал. 5.

Форми напруги на виводах паралельного порту

для запису до регістру 2 ЦАП

Треба звернути увагу, що при запису до регістрів потрібно утримувати кодові біти 2 та 3 до стробування та після стробування на час, не менший за тривалість стробуючого імпульсу, оскільки при зміні кодових бітів за час стробування може відбутися запис до інших регістрів завдяки тому, що в декодуючий логіці мають місце перехідні процеси. Тривалість стробу повинна бути не меншою за 0.01 мікросекунди. Якщо час буде менший, то запис до регістру не встигне відбутися, або, що ще гірше, відбутися некоректно.

Для запису молодших 8 бітів слова даних до регістрів каналів перетворення ЦАП ми будемо записувати молодші 8 розрядів слова даних. Для цього пророблятимемо логічну операцію “data0 AND $FF” над кодом напруги, результат якої буде виводитися оператором посилки даних до регістру. Тут data1 – це змінна мови програмування, в якій записано код, що потрібно записати до регістрів каналу 1 ЦАП.

Наприклад, нам необхідно записати до каналу 1 код, що складається з 12-ти розрядів 1320, а до каналу 2 код 2354. Нехай код для каналу 1 записано у змінній data1, а код для каналу 2 у змінній data2. Розбивши коди на частини, зручно помістити результати в деякі допоміжні змінні, щоб потім можливо було при необхідності проконтролювати результат запису. Для того, щоб встановити певний біт (0-7) в 1 треба додати до змінної число, яке відповідає ваговому коефіцієнту певного біту. Значення вагових коефіцієнтів наведені в табл. 2.

Таблиця 2: Вагові коефіцієнти розрядів.

Для каналу 2 ця змінна називатиметься data2. З записом старших частин коду каналів 1 та 2 дещо складніше. Молодші частини коду каналів 1 та 2 записуються до регістрів 1 та 3 перетворювача відповідно. Щоб записати старші 4 біти коду каналу 2 необхідно записати їх у молодший півбайт регістру 2 ЦАП, причому, очевидно, не можна порушувати вміст інших 4-х бітів, що знаходяться в старшому півбайті цього регістру. Нижче наведено фрагмент програми, написаної мовою PASCAL, яка забезпечує вивід даних до порту та посилку керуючих сигналів.

Отже, як можна бачити, для того, щоб отримати дві незалежні одна від одної напруги на виході двох каналів, що, зокрема, забезпечує можливість незалежного керування параметрами сигналів, достатньо скористатися записом кодів до регістрів цифро-аналогового перетворювача. Звісно, що б отримати якийсь змінний сигнал, потрібно робити запис до регістрів стільки разів, скільки необхідно для формування напруги з певною частотою, формою та дискретністю.