Расчет временных параметров

 

По ТЗ разрабатываемое устройство должно проводить динамическую индикацию с частотой 44Гц. И, в определенной ситуации, звуковую индикацию, с частотой последовательности импульсных сигналов 3730 Гц.

Для соблюдения поставленных в ТЗ условий нам потребуется выполнять процедуру динамической индикации через время tди=22727 мкс, а процедуру звуковой индикации через время tзи=268 мкс.

Нам известно что скорость выполнения одной команды, при использовании PIC16C72, тактируемого от кварца 4Мгц, занимает четыре такта (не считая goto и т.п.), т.е скорость выполнение среднестатистической команды равна 1 МГц. Значит наша процедура динамической индикации должна срабатывать каждые 22727 командных циклов микроконтроллера, а процедура звуковой индикации каждые 268 командных циклов.

Кроме того нам известно, что АЦ преобразование в выбранном нами микроконтроллере (PIC16C72) длиться не более 20 мкс.

Эти данные будут нужны при настройке таймеров и задержек в программе.



Разработка и отладка рабочей программы.

 

Возможно предложить следующие варианты решения поставленной задачи:

1. Написать программу которая в непрерывном цикле Производит АЦП преобразование, перевод результата в семисегментный код, и осуществляет динамическую индикацию.

Преимущества: легко написать программу (не сложный алгоритм)

Недостатки: труднее высчитывать задержки для обеспечения динамической и звуковой индикации с заданной частотой. Из-за не постоянного времени выполнения процедуры преобразования в семисегментный код, не получиться обеспечить точную частоту обновления.

2. Написать программу которая в непрерывном цикле Производит АЦП преобразование, перевод результата в семисегментный код. Складывает результаты в буффер. По прерываниям таймеров происходит динамическая и звуковая индикация.

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

Недостатки: разработка программы усложниться за счет использования таймеров и прерываний от них. Кроме того нужно каким-то образом организовать буфер для хранения результатов АЦП.

Учитывая все вышесказанное, мы выбираем 2 вариант, т.к. на наш взгляд он более приспособлен для решения поставленной задачи.



Блок-схемы алгоритмов и их описание

 

Структура программы

 

Микроконтроллер выполняет следующие функции:

- прием аналогового сигнала;

- АЦП преобразование;

- Преобразования результата АЦП в семисегментный код;

- принятие решения о выходе уровня входного сигнала за пороговые уровни.

- Вывод преобразованных значений на светодиодные индикаторы(осуществление динамической индикации с заданной частотой)

- выдача сигнальных сообщений на светодиоды и динамик.

Программа содержит следующие участки программы:

INIT – производит перевод всех портов и регистров устройства в исходное состояние;

MAIN – основная программа;

IRQTMR1 - подпрограмма обработки прерывания от таймера1 (для динамической индикации)

IRQTMR2 - подпрограмма обработки прерывания от таймера2

(для звуковой индикации)

INDICATION – подпрограмма обновления состояния индикатора;

BINTOSEVEN – подпрограмма перевода числа из двоичного кода в семисегментный код.

SOUNDINDICATION – подпрограмма звуковой индикации

 

Текст программы.

 

Текст программы приведен в приложении А.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: