Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VERITAS / VERITAS / CPEC_MY.DOC
Скачиваний:
14
Добавлен:
16.04.2013
Размер:
953.97 Кб
Скачать

3.3 Структурная схема программы.

Структурная схема программы представлена на плакате.

3.3.1 Тело основного цикла.

После PowerON Reset по вектору reset программа попадает на процедуру начальной инициализации, которая подготавливает контролер к началу работы. В ее функции входит:

  • подготовка портов к работе,

  • подготовка таймеров,

  • подготовка начальных данных (инициализация).

После начальной инициализации управление передается циклу ожидания команд, в котором, при приеме команды управление передается процедуре обработки данной команды.

3.3.2. Работа модуля ацп.

Модуль АЦП является основным модулем программы , так как в нем осуществляются основные измерения .

Снятие осциллограммы можно разбить на два этапа :

  1. Настройка коэффициентов .

  1. Оцифровка сигнала .

Мы априорно предположим , что за время измерения сигнала его амплитуда не будет иметь значительных скачков , а значит мы сначала сможем определить максимальное значение сигнала в измеряемом диапазоне времени , а затем , установив коэффициенты таким образом , чтобы максимальная амплитуда , умноженная на соответствующие коэффициенты , соответствовала интервалу опорного напряжения АЦП ( 5 вольтам) , а затем собственно измерить сигнал.

Программно это организованно в виде нескольких процедур , вызываемых поочередно .

Вначале запускается процедура ( ADKOF ) установки необходимого коэффициента . Входным параметром для данной процедуры является переменная KOIF2 , которая в младшем полубайте содержит код усиления , а в старшем полубайте код ослабления . Процедура , в зависимости от значения находящимся в переменной , выставляет на выводах RC1, RD0, RD1 код ослабления , а на RD2,RD3, RD4 код усиления . Вначале устанавливается максимальный коэффициент ослабления .

После установки начального коэффициента ослабления запускается процедура ( KOIFAD ) определяющая коэффициенты усиления и ослабления , соответствующие максимальной амплитуде . Алгоритм работы данной процедуры следующий если новое оцифрованное значение попадает в интервал :

  • 0x00 - 0x80 Это значит , что коэффициент ослабления большой и его надо уменьшить , или надо увеличить коэффициент усиления , в зависимости от текущего значения коэффициентов .

  • 0x81 - 0xEF Это означает , что амплитуда принятого числа находится в интервале от Uоп- до Uоп/2 и соответственно нет необходимости менять коэффициенты .

  • 0xF0-0xFF Это значит , что коэффициент ослабления маленький и его надо увеличить , или надо уменьшить коэффициент усиления , в зависимости от текущего значения коэффициентов .

По окончании анализа выбранный коэффициент записывается в переменную KOIF2 . После анализа коэффициентов усиления и ослабления , соответствующих максимальной амплитуде их надо установить , чтобы последующие измерения проводились с найденными коэффициентами. Далее снова запускается процедура ADKOF.

Когда подготовительные операции завершены программа запускает процедуру AD , которая и осуществляет оцифровку сигнала. У этой процедуры входным параметром является время дискретизации преобразования . При входе в процедуру AD сначала происходит инициализация внутренних переменных (счетчик цикла, указатель косвенной адресации). Затем организуем цикл на 180 значений. Внутри цикла сначала происходит снятие оцифрованного значения сигнала , помещение его в регистр аккумулятор , пересылка из аккумулятора в ячейку хранения (при пересылке значения из аккумулятора в ячейку хранения используется косвенная адресация), увеличение на единицу значения указателя косвенной адресации , уменьшение на единицу счетчика цикла и если значение счетчика не равно 0 , вызывается процедура задержки , обеспечивающая необходимую дискретизацию и передает управление на начало цикла. Если счетчик равен 0, то происходит выход из цикла, и осуществляется выход из процедуры.

Чтобы оцифрованный сигнал можно было бы отобразить на экране персонального компьютера надо передать данные, используя асинхронный последовательный порт. Для этого предназначена процедура TX. В ней , также как в процедуре AD организуется цикл на 180 значений. Используя косвенную адресацию мы последовательно передаем 180 значений сигнала , записанных по адресам 0x26 - 0x7F и 0xA6 - 0xFF в регистр TXREG и далее происходит передача байта из TXREG через асинхронный порт SCI в СОМ-порт. После передачи 180 байт передается значение коэффициентов, при которых проводились измерения .

Соседние файлы в папке VERITAS