Имитатор телефонной линии
Рефераты >> Коммуникации и связь >> Имитатор телефонной линии

Генерируемый микроконтроллером сигнал задается с помощью клавиш “Занято”, “Вызов”, “Контроль вызова”.

Таким образом, опираясь на вышеизложенный принцип действия можно приступить к написанию программы для микроконтроллера, и синтезу принципиальной схемы устройства.

4. Описание программы для микроконтроллера

Разрабатываемая для микроконтроллера программа предназначена для обеспечения реализации всех функций разрабатываемого устройства. Программа должна содержать в себе следующие подпрограммы: подпрограмму анализа состояния клавиатуры, подпрограмму индикации ячеек памяти, связанных с набираемым номером, а также подпрограмму генерации сигналов АТС, которая и будет являться основной для разрабатываемого устройства. Также, целесообразно будет реализовать программу в виде бесконечного цикла, состоящего из вызова вышеописанных подпрограмм. Таким образом, можно предложить следующую блок-схему для разрабатываемой программы:

Рис. 1.

Блок-схема программы для имитатора сигнала АТС

Приведенная блок-схема является укрупненной и не дает понятия о принципе работы программы. Поэтому разумным будет привести также блок-схему работы основной подпрограммы mainwork разрабатываемой программы. Данная подпрограмма является основной, так как именно она организует выполнение алгоритма работы устройства.

Рис.2.

Блок-схема работы подпрограммы mainwork

Словами же пояснить работу подпрограммы можно следующим образом. В начале своей работы программа проверяет, лежит ли трубка телефонного аппарата (по сигналу от схемы анализа цепи постоянного тока). Если трубка положена, то проверяется, нажата ли кнопка “Вызов”, и если нажата, то контроллер начинает посылать импульсы 50 Гц пачками (пачка 1 с, пауза 3 с) по линии подачи звонковых импульсов. Если не нажата, то делается вывод о разрыве, вызванном импульсным набором номера, и вызывается соответствующая подпрограмма обслуживания этого набора (которая в случае длительного разрыва сделает вывод о положенной трубке и завершит очередной цикл).

Если же трубка снята, то устройство переходит в один из режимов генерации сигнала, который зависит от состояния клавиш “занято” и “контроль”. В случае нажатия клавиши “занято” программа вызывает подпрограмму busy_sig, которая имитирует сигнал “занято” АТС (50 Гц, пачка и пауза – 0,3 с). Если же нажата клавиша “Контроль вызова”, то вызывается подпрограмма ctrl_call, имитирующая контрольный сигнал вызова другого абонента (425 Гц, пачка 1 с, пауза 3 с). В случае если не нажата ни одна из этих кнопок (или нажаты обе), вызовом подпрограммы gene_50hz_1 генерируется обычный сигнал ответа АТС (50 Гц, непрерывный). После этого работа подпрограммы заканчивается, и начинается новый цикл работы программы.

Остальные подпрограммы (обслуживание клавиатуры, индикации) являются стандартными, и приводить их описание не имеет особого смысла. Спецификации на подпрограммы приведены ниже:

Подпрограмма Ring_in

Назначение: генерация звонковых импульсов и подача их на соответствующую линию;

Входные параметры: отсутствуют;

Выходные параметры: сигнал на линии P3.1;

Вызывается подпрограммой Mainwork;

Подпрограмма Busy_sig

Назначение: генерация сигнала АТС “Занято” и подача его на выходную линию;

Входные параметры: отсутствуют;

Выходные параметры: сигнал на линии P3.0;

Вызывается подпрограммой Mainwork;

Подпрограмма Load50_1

Назначение: “заряжать” таймер T0 на период 10 мс;

Входные параметры: отсутствуют;

Выходные параметры: измененное значение регистров TL0, TH0;

Вызывается подпрограммой Gene_50hz_1;

Подпрограмма Gene_50hz_1

Назначение: генерация одного импульса длительностью 10 мс и подача его на вывод 3.0;

Входные параметры: отсутствуют;

Выходные параметры: сигнал на линии P3.0;

Вызывается подпрограммой Mainwork

Подпрограмма Ctrl_call

Назначение: имитация сигнала “Контроль вызова” и подача его на соответствующий вывод;

Входные параметры: отсутствуют;

Выходные параметры: сигнал на линии P3.0;

Вызывается подпрограммой Mainwork

Подпрограмма Load425_1

Назначение: “заряжать” таймер T0 на период 1,17 мс;

Входные параметры: отсутствуют;

Выходные параметры: измененное значение регистров TL0, TH0;

Вызывается подпрограммой Gene_425hz_1;

Подпрограмма Gene_425hz_1

Назначение: генерация одного импульса длительностью 10 мс и подача его на вывод 3.0;

Входные параметры: отсутствуют;

Выходные параметры: сигнал на линии P3.0;

Вызывается подпрограммой Ctrl_call;

Подпрограмма Indication_fig

Назначение: вывод в порт индикатора цифры, находящейся в заданной ячейке памяти, с одновременным включением необходимого знакоместа;

Входные параметры: цифра, предназначенная для вывода и номер ячейки индикации;

Выходные параметры: код цифры на выходах P0.0-P0.4, а также высокий уровень на одном из выводов P1.0-P1.7;

Вызывается подпрограммой Indicate_all;

Подпрограмма Indicate_all

Назначение: Вывод информации о введенном номере на набор индикаторов;

Входные параметры: значения ячеек хранения цифр номера и число цифр номера;

Выходные параметры: телефонный номер, выведенный на набор индикаторов;

Вызывается подпрограммой Mainwork;

Подпрограмма Counter

Назначение: подсчет числа кратковременных разрывов в цепи постоянного тока;

Входные параметры: сигнал на входе P3.2;

Выходные параметры: число разрывов в цепи постоянного тока, помещенное в стек;

Вызывается подпрограммой Pulse_connect;

Подпрограмма Pulse_connect

Назначение: анализ импульсного набора номера и занесение его цифр в соответствующие ячейки памяти;

Входные параметры: отсутствуют;

Выходные параметры: цифры номера, занесенные в стек;

Вызывается подпрограммой Mainwork;

Подпрограмма Keyb_scan

Назначение: сканирование линейки клавиатуры и устранение дребезга;

Входные параметры: отсутствуют;

Выходные параметры: значение переменных, показывающих состояние клавиатуры;

Вызывается подпрограммой Mainwork;

Для ввода и вывода сигналов микроконтроллера используются следующие порты:

· порт P0 – вывод информации на семисегментные индикаторы;

· порт P1–стробирующие выводы для динамической индикации;

· порт P2 – обслуживание клавиатуры;

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

Модульную структуру программы можно изобразить следующим образом:


Страница: