Текст программы расчета параметров транзистора и диода

program parametr; {программа расчета диодов, транзисторов}

uses CRT; {подключение модуля CRT}

var ch,ch1:char; {символьные переменные для определения нажатой клавиши}

i:integer;

procedure clear; {процедура очистки экрана с сохранением заголовка программы}

begin

gotoXY(1,2); {установка позиции курсора}

for i:=1 to 23 do {цикл зарисовки содержимого экрана цветом фона}

write(' ');

end;

procedure tell(xPos,yPos:byte; s:string; color:byte); {процедура, выводящая}

begin {надпись s в позиции экрана xPos,yPos цветом color}

textColor(color); {установка цвета color}

gotoXY(xPos,yPos); {установка позиции курсора}

writeln(s); {вывод надписи}

end;

procedure fiz_po_h; {расчет физ. парам. транз. по h-параметрам}

var n:byte;

y,h1,h2,h3,h4,r1,r2,r3,r4,a:real;

begin

clear; {вызов процедуры очистки экрана}

tell(5,4,'РАСЧЕТ ФИЗИЧЕСКИХ ПАРАМЕТРОВ ТРАНЗИСТОРА ПО h-ПАРАМЕТРАМ:',0);

tell(5,6,'Выберите вариант схемы включения:',0);

tell(15,7,'[1]...С общим эмиттером',1);

tell(15,8,'[2]...С общей базой',1);

tell(15,9,'[3]...С общим коллектором',1);

repeat

ch1:=readKey; {ожидание нажатия клавиши}

if ch1='1' then n:=1;

if ch1='2' then n:=2;

if ch1='3' then n:=3;

until (ch1='1')or(ch1='2')or(ch1='3');

writeln;

if n=1 then writeln(' Выбрана схема с ОЭ');

if n=2 then writeln(' Выбрана схема с ОБ');

if n=3 then writeln(' Выбрана схема с ОК');

writeln;

textColor(0);

{ввод данных для расчета}

write(' Введите сопротивление эмттера Rэ=');readln(r1);

write(' Введите сопротивление базы Rб=');readln(r2);

write(' Введите сопротивление коллектора Rк=');readln(r3);

write(' Введите коэффициент передачи тока эмиттера А=');readln(a);

clear; {очистка экрана}

if n=1 then {расчет для схемы с ОЭ}

begin

y:=r1+r3-a*r3;

h1:=r2+r1*r3/y;

h2:=r1/y;

h3:=(a*r3-r1)/y;

h4:=1/y;

end;

if n=2 then {расчет для схемы с ОБ}

begin

y:=r2+r3;

h1:=r1+((1-a)*r2*r3)/y;

h2:=r2/y;

h3:=-(r2+a*r3)/y;

h4:=1/y;

end;

if n=3 then {расчет для схемы с ОК}

begin

y:=r1+r3-a*r3;

h1:=r2+r1*r3/y;

h2:=r3*(1-a)/y;

h3:=-r3/y;

h4:=1/y;

end;

clear; {очистка экрана}

textColor(0);

{вывод результатов расчета}

tell(5,4,'Результаты расчета:',1);

writeln(' Входное сопротивление h11=',h1);

writeln(' Коэффициент обратной связи по напряжению h12=',h2);

writeln(' Коэффициент передачи по току h21=',h3);

writeln(' Выходная проводимость h22=',h4);

ch1:=readKey; {ожидание нажатия клавиши}

end;

procedure h_po_fiz; {расчет физ. парам. транз. по h-параметрам}

var n:byte;

h1,h2,h3,h4,r1,r2,r3,r4,a:real;

begin

clear; {очистка экрана}

tell(5,4,'РАСЧЕТ ФИЗИЧЕСКИХ ПАРАМЕТРОВ ТРАНЗИСТОРА ПО h-ПАРАМЕТРАМ:',0);

tell(5,6,'Выберите вариант схемы включения:',0);

tell(15,7,'[1]...С общей базой',1);

tell(15,8,'[2]...С общим эмиттером',1);

repeat

ch1:=readKey; {ожидание нажатия клавиши}

if ch1='1' then n:=1;

if ch1='2' then n:=2;

until (ch1='1')or(ch1='2');

writeln;

if n=1 then writeln(' Выбрана схема с ОБ');

if n=2 then writeln(' Выбрана схема с ОЭ');

writeln;

textColor(0);

write(' Введите входное сопротивление h11=');readln(h1);

write(' Введите коэффициент обратной связи по напряжению h12=');readln(h2);

write(' Введите коэффициент передачи по току h21=');readln(h3);

write(' Введите коэффициент входную проводимость h22=');readln(h4);

if n=1 then {расчет для схемы с ОБ}

begin

r1:=h1-(1+h3)*h2/h4;

r2:=h2/h4;

r3:=(1-h2)/h4;

r4:=-(h2+h3)/h4;

a:=-(h2+h3)/(1-h2)

end;

if n=2 then {расчет для схемы с ОЭ}

begin

r1:=h2/h4;

r2:=h1-(1+h3)*h2/h4;

r3:=(1+h3)/h4;

r4:=(h2+h3)/h4;

a:=(h2+h3)/(1+h3)

end;

clear; {очистка экрана}

textColor(0);

{вывод результатов расчета}

tell(5,4,'Результаты расчета:',1);

writeln(' Сопротивление эмиттера Rэ=',r1:3:3);

writeln(' Сопротивление базы Rб=',r2:3:3);

writeln(' Сопротивление коллектора Rк=',r3:3:3);

writeln(' Сопротивление Rм=',r4:3:3);

writeln(' Коэффициент передачи тока эмиттера А=',a:3:3);

ch1:=readKey; {ожидание нажатия клавиши}

end;

procedure tranzMenu; {процедура меню расчета транзистора}

begin

clear; {очистка экрана}

tell(5,5,'ВАРИАНТЫ РАСЧЕТА ТРАНЗИСТОРА:',0);

tell(10,6,'[1]... Расчет физических параметров по h-параметрам',1);

tell(10,7,'[2]... Расчет h-параметров по физическим параметрам',1);

tell(5,10,'Другие клавиши - возврат в главное меню',8);

ch1:=readKey; {ожидание нажатой клавиши}

if ch1='1' then h_po_fiz; {если нажата 1, то вызов процедуры h_po_fiz }

if ch1='2' then fiz_po_h; {если нажата 2, то вызов процедуры fiz_po_h}

{если нажата другая клавиша, то возврат в главное меню}

end;

procedure diodParam; {процедура расчета характеристик диода}

var It,It0,Io,Io0,t,I,U,r:real;

begin

clear; {очистка экрана}

tell(5,5,'Расчет характеристик диода',0);

writeln;

textColor(1);

{ввод данных для расчета}

write(' Введите тепловой ток диода при t=20 град.С Iт(to)=');read(It0);

write(' Введите обратный ток диода при t=20 град.С Iобр(to)=');read(Io0);

write(' Введите рабочую температуру, град.С. t=');read(t);

write(' Введите ток проходящий через диод, А I=');read(I);

write(' Введите сопротивление базы, Ом rб=');read(r);

clear; {очистка экрана}

{расчет и вывод результатов}

tell(5,5,'Результаты расчета:',0);

textColor(1);

It:=It0*exp(0.09*(t-20));

writeln(' Тепловой ток при температуре t=',t:3:2,' град.С.');

writeln(' Для германиевых диодов It=',It);

It:=It0*exp(0.13*(t-20));

writeln(' Для кремниевых диодов It=',It);

writeln;

writeln(' Обратный ток при температуре t=',t:3:2,' град.С.');

Io:=Io0*exp((t-20)/9);

writeln(' Для германиевых диодов Iобр=',Io);

Io:=Io0*exp((t-20)/6.5);

writeln(' Для кремниевых диодов Iобр=',Io);

readKey; {ожидание нажатия клавиши}

end;

procedure menu; {процедура главного меню программы}

begin

repeat {цикл опроса меню}

textBackGround(7); {серый цвет фона}

clrscr; {очистка экрана}

textColor(0); {черный цвет символов}

textBackGround(3); {голубой цвет фона}

writeln(' ПРОГРАММА РАСЧЕТА ПАРАМЕТРОВ ЭЛЕМЕНТОВ ЭЛЕКТРИЧЕСКИХ СХЕМ ');

textBackGround(7); {серый цвет фона}

tell(10,5,'Произвести рассчет:',0);

tell(20,6,'[1]............ Диода',1);

tell(20,7,'[2]...... Транзистора',1);

tell(10,10,'Для выбора нажмите соответствующую клавишу',8);

tell(10,12,'[пробел]... Выход из программы',1);

ch:=readKey; {ожидание нажатия клавиши}

if ch='1' then diodParam; {если нажата 1, то вызов процедуры diodParam}

if ch='2' then tranzMenu; {если нажата 2, то вызов процедуры tranzMenu}

until ch=' '; {если нажат пробел, то выход из цикла меню}

end;

BEGIN {начало программы}

menu; {вызов процедуры главного меню программы}

textBackGround(0); {черный цвет фона}

textColor(15); {белый цвет символов}

clrScr; {очистка экрана}

END. {конец программы}

Заключение

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

Список использованной литературы:


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



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