Таблица 6.Контакты DD2
Таблица 7.Контакты DD3
Таблица 8.Контакты LPT
4 Программа управления
4.1 Логика работы
Программа осуществляет управление ШИМ-регулятором через LPT порт ЭВМ.
Для доступа к порту используются адреса 378H, 379H и 37AH. По адресу 378H осуществляется запись в регистр Data, по адресу 379H- в регистр Status и по адресу 37AH – в регистр Control.
В нашем случае, так как предполагается чтения из порта, а только запись в порт, то регистр Status не используется. Регистр Data используется для передачи байта в программируемый таймер-счётчик, а биты 0,1 и 2 регистра Control для выставления строба записи и выбора режима записи в таймер-счётчик.
На рисунке 12 изображены контакты LPT порта и их принадлежность тому или иному регистру.
Рисунок 12
Для формирования на выходе ШИМ- регулятора импульсов с заданной скважностью и периодом, таймер-счётчик КР580ВИ53 был запрограммирован в режим работы 2 и 1 – соответственно таймер-счётчик 1 и 0 . Таймер-счётчик 2 не использовался.
В режиме 2 таймер выполняет функцию делителя входной частоты CLK на n. Таким образм мы получаем импульсы с определённым периодом и подаём их на вход таймера-счётчика 0, который работает в режиме 1, то есть в режиме программируемого мультивибратора. В результате на выходе таймера-счётчика 0 мы получаем импульсы с заданным периодом и скважностью. Для реализации данного алгоритма была написана программа. Теакт программы представлен в приложении А.
Заключение
В результате проделанной работы были получены знания в области макетирования и сборке платы ШИМ-регулятора, также были получены теоретические знания в области микропроцессорных средств. Была разработана электрическая схема ШИМ – регулятора и программа для управления через LPT порт ЭВМ. По результатам проделанной работы можно сделать вывод, что ШИМ – регулятор достаточно прост с точки зрения схемотехнического решения, а значит экономичен как с точки зрения элементной базы, так и с точки зрения денежных затрат. У него высокий коэффициент полезного действия и он упрощает работу транзистора, тем самым, обеспечивая его сохранность. Эти достоинства делают предпочтительным применение ШИМ – регулятора там, где необходима надёжность и простота реализации.
Приложение А
Текст программы
programlpt;
uses dos,crt;
var
addr_d,addr_c: word;
e:integer;
in_t,in_tau:byte;
input_t,input_tau: String;
procedure set_kanal_0(value: byte);{процедураустановкирежимаработысчётчика-таймера 0}
var
PSW_strobe_0: byte;
PSW_strobe_1: byte;
N0_strobe_0: byte;
N0_strobe_1: byte;
psw_set: byte;
begin
PSW_strobe_1:=7;{00000111}
PSW_strobe_0:=6;{00000110}
N0_strobe_1:=1;{00000001}
N0_strobe_0:=0;{00000000}
psw_set:=50;{00110010}
{set mode}
Port[addr_c]:=PSW_strobe_1;
Port[addr_d]:=psw_set;
Port[addr_c]:=PSW_strobe_0;Port[addr_c]:=PSW_strobe_1;
{data => 8253}
Port[addr_d]:=value;
Port[addr_c]:=N0_strobe_0;Port[addr_c]:=N0_strobe_1;
end;
procedure set_kanal_1(value: byte); {процедураустановкирежимаработысчётчика-таймера 1}
var
var
PSW_strobe_0: byte;
PSW_strobe_1: byte;
N1_strobe_0: byte;
N1_strobe_1: byte;
psw_set: byte;
begin
PSW_strobe_1:=7;{00000111}
PSW_strobe_0:=6;{00000110}
N1_strobe_1:=3;{00000011}
N1_strobe_0:=2;{00000010}
psw_set:=116;{01110100}
{set mode}
Port[addr_c]:=PSW_strobe_1;
Port[addr_d]:=psw_set;
Port[addr_c]:=PSW_strobe_0;Port[addr_c]:=PSW_strobe_1;
{data => 8253}
Port[addr_d]:=value;
Port[addr_c]:=N1_strobe_0;Port[addr_c]:=N1_strobe_1;
end;
begin
{считывание адреса LPT порта}
addr_d:=MemW[$0040:$0008];
{вычисление адреса регистра ControlLPT порта}
addr_c:=addr_d+2;
whiletruedobegin {считывание значений скважности и периода в цикле}
write('Период [q - для выхода]: ');
readln(input_t);
if input_t='q' then break;
val(input_t,in_t,e);
set_kanal_1(in_t);
write('Скважность [q - длявыхода]: ');
readln(input_tau);
if input_tau='q' then break;
val(input_tau,in_tau,e);
set_kanal_0(in_tau);
writeln('==========================================');
end;{цикл выполняется до тех пор, пока не введена буква q}
end.