Произведём расчёт номиналов сопротивлений, входящих в состав делителя.
По закону Ома:
, (1)
где Uвх=5 В – напряжение источника питания;
Uдел=2 В – напряжение, которое необходимо получить на выходе делителя напряжения.
Примем R7=100 кОм. Тогда выражение (1) примет вид:
Отсюда
кОм.
Аналогично R13=100 кОм, R12=150 кОм.
Номиналы резисторов R10, R11 должны быть такими, чтобы предотвратить самопроизвольное открывание транзисторов, и в то же время токи через эти резисторы должны быть небольшими, чтобы исключить искажение сигнала, идущего от передатчика. Примем R10=R11=100 кОм.
Номиналы резисторов R8 и R9 – 1 кОм.
Транзисторы и диоды, используемые в схеме должны допускать прохождения тока 70 мА, получаемого на выходе передатчика. Поэтому транзистор VT1 можно взять КТ3107а, VT2 – КТ3102а, параметры которых: коллекторный ток Iк.=100 мА, максимальный коллекторный ток в импульсном режиме Iк.макс.=200 мА. Диоды: КД923а (допустимый прямой импульсный ток Iп.имп.=200 мА, допустимый прямой постоянный ток Iп.пост.=100 мА, Iобр.=5 мкА).
Схема работает следующим образом. При напряжении логической единицы (³2,4 В) на линии 3 порта 1 на выходе инвертора DD5.2 устанавливается уровень логической единицы. Этот сигнал поступает на базу транзистора VT2, тем самым устанавливая потенциал базы большим потенциала коллектора, т.е. к коллекторному переходу прикладывается обратное напряжение, а к эмиттерному - прямое, и транзистор открывается. При уровне логической единицы на линии 3 порта 1 на базу транзистора VT1 подаётся напряжение уровня логического нуля (£0,4 В). Потенциал эмиттера становится больше, чем потенциал базы. К эмиттерному переходу транзистора приложено прямое напряжение, а к коллекторному обратное. Транзистор открывается.
При напряжении логического нуля на управляющей линии порта 1, на базу транзистора VT1 подаётся уровень логической единицы, а на базу транзистора VT2 – логического нуля. Оба транзистора закрываются. Передатчик отключается от линии связи.
Программа написана при использовании ассемблера PseudoSam 51 Assembler V1.0 Copyright © 1986,87 PseudoCode. Отладка производилась в полноэкранном отладчике-симуляторе fd51 для программ, написанных на языке ассемблера однокристальных микро-ЭВМ КР1816ВЕ51/КМ1816ВЕ31/КM1816ВЕ51, предназначенном для логической отладки программ, используемых указанными микро-ЭВМ. Каких-либо аппаратных средств отладчик не поддерживает.
В процессе работы программы используются следующие байтовые и битовые переменные, расположенные в памяти данных.
SEGDATA SEGMENT DATA ;Имя сегмента данных
SEGCODE SEGMENT CODE ;Имя сегмента кодов
RSEG SEGDATA ;Выбор сегмента данных
ORG 20h ;Битовые переменные
ANSWER BIT 0 ;ANSWER=1 если был получен
;ответ от какого-то контроллера
ISMARKER BIT 1 ;Признак того, что
;был принят маркер
INITC BIT 2 ;Признак цикла инициализации
ORG 50h ;Байтовые переменные
TABLE: DS 10h ;Таблица данных
QUANT: DS 1 ;Количество контроллеров в сети
NUMBER: DS 1 ;Номер данного контроллера
NBYTE: DS 1 ;Количество полученных подряд
;байт данных
CURRENT: DS 1 ;Номер контроллера, передающего ;в данный момент свои данные в ;сеть. Если CURRENT=0FFh, то
;данные игнорируются
IMPCOUNT: DS 1 ;Счётчик числа импульсов
PREPIMP: DS 1 ;Байт подготовки числа
;импульсов. В этой переменной в течение времени 0,05 с
;происходит инкрементирование числа импульсов и по прошествии
;этого времени значение PREPIMP копируется в IMPCOUNT, после
;чего PREPIMP обнуляется и начинается подсчёт импульсов снова.
;Весь этот процесс происходит в фоновом режиме и не мешает
;нормальной работе системы
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.