Курсовая работа: Разработка устройства, предназначенного для формирования импульсных сигналов с заданным периодом и скважностью - ШИМ-регулятор
В нашем случае, так как предполагается чтения из порта, а только запись в порт, то регистр 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;