Студентам > Курсовые > Цифровой осциллограф
Цифровой осциллографСтраница: 4/9
Программа состоит из блока настройки портов ввода – вывода, генератора, периферийных устройств, прерываний, ЖКД и подпрограммы для ввода данных с АЦП - InputADC. На рисунке 5.1 показана блок – схема алгоритма программы для МК.
Используемые в программе переменные:
– kfn – коэффициент частоты дискретизации (n=1 или 2 – номер канала);
– CoefAmplif – содержит число выводимое в порт P6 для задания коэффициента усиления;
– i – переменна – счётчик;
– Num – переменная, используема для записи в XRAM последовательности чисел;
– Switch – порт, управляющий аналоговыми коммутаторами;
– Button_kf – порт, к которому подключены кнопки задающие kf
– Button_CefAmplif - порт, к которому подключены кнопки задающие CefAmplif
– Padc1 – АЦП канал 1;
– Padc2 – АЦП канал 2;
Сначала программа подключает файл с определением регистров специального назначения, которые имеются в данном микроконтроллере. Регистрам общего назначения присваиваются имена переменных приведённых выше. Порты P4 и P5 подключены к цифровым выходам АЦП и настроены как цифровые входы с открытым стоком. С помощью приоритетного декодера матрицы на разряд P0.0 выводится сигнал тактирования АЦП с частотой SYSCLK/4 (SYSCLK=100 МГц).
В переменную kf производится запись в младшие четыре разряда – коэффициента kf1 для задания частоты дискретизации сигнала с канала 1 и в старшие четыре разряда - коэффициента kf2 для задания частоты дискретизации сигнала с канала 2. Связь значения коэффициента и частоты дискретизации приведена в таблице 3.1 (n=1 или 2).
Таблица 5.1 – Связь коэффициента частоты и периода дискретизации kfn | f, Гц | T, с |
TimeOnDiv | 1 | 10М | 100н | 4 мкс | 2 | 5М | 200н | 5 мкс | 3 | 2.5М | 400н | 10 мкс | 4 | 500к | 2мк | 50 мкс | 5 | 250к | 4мк | 100 мкс | 6 | 50к | 20мк | 500 мкс | 7 | 25к | 40мк | 1 мс | 8 | 5к | 200мк | 5 мс | 9 | 2.5к | 400мк | 10 мс | 10 | 500 |
2м | 50 мс | 11 | 250 |
4м | 100 мс |
Частота дискретизации соответствующая количеству секунд на деление определяется по формуле:
, (3.3)
где n – количество байт содержащих информацию об уровне сигнала;
TimeOnDiv – количество секунд на деления;
tmax и tmin – границы временного интервала.
Скорость работы МК позволяет сохранять информацию о сигнале за 90 нс. Поэтому максимальная частота дискретизации сигнала
(5.1) .
Необходимая частота дискретизации сигнала задаётся с помощью задания задержки между считываниями данных с АЦП. Для создания задержки используется таймер TMR3. Таймер тактируется системным тактовым сигналом, и изменение значения таймера на 1 происходит каждые 10 нс. Для создания необходимой задержки в таймер записывается число, с которого он начинает счёт. Флаг переполнения таймера проверяется до тех пор, пока таймер не переполнится. Таким образом, создаётся задержка с точностью до 10 нс.
В переменную CoefAmplif загружается байт данных, содержащий информацию о коэффициенте усиления и о виде измеряемого напряжения (переменного или постоянного). Биты 7 и 6 управляют ключами S2A и S2C соответственно, которые подключают или отключают конденсатор. Биты 5, 4, 3 и 2, 1, 0 задают коэффициент усиления или ослабления Ku для канала 1 и канала 2 соответственно.
Связь Ku и вида измеряемого напряжения с числом в переменной CoefAmplif приведена в таблице 5.2 (n=1 или 2 – номер канала).
Таблица 5.2 – Зависимость Ku и вида напряжения от CoefAmplif CoefAmplif | Вид напряжения | Kun | XX 000 000 | X | 1/2 | XX 001 001 | X | 1/5 | XX 010 010 | X | 1/10 | XX 011 011 | X | 10 | XX 100 100 | X | 1 | XX 000 000 | DC | X | XX 000 000 | AC | X |
Ниже представлена блок-схема программы для МК.
Рисунок 5.1 – Блок схема алгоритма программы для МК
Ниже приведено более подробное описание настройки контроллера SED1335.
После вывода кода 40h (команда «System Set») на шину данных контроллера, производится вывод восьми байтов (P1 – P8), содержащих параметры команды.
В программе задаются следующие значения этих параметров:
P1=30h.
M0=0 - внутренний генератор символов ROM.
М1=0 - генератор символов RAM1; 32 знака.
М2=0 - высота символа 8 пикселов (2716 или эквивалент ROM).
W/S=0 - однопанельное управление
IV=1- нет коррекции верхней строки экрана (нет смещения)
|