Широтно-импульсная модуляция (ШИМ, англ. pulse-width modulation (PWM)) — процесс управления мощностью, подводимой к нагрузке, путём изменения скважности импульсов, при постоянной частоте. Различают аналоговую ШИМ и цифровую ШИМ, двоичную (двухуровневую) ШИМ и троичную (трёхуровневую) ШИМ. Основной причиной применения ШИМ является стремление к повышению КПД при построении вторичных источников питания электронной аппаратуры и в других узлах, например, ШИМ используется для регулировки яркости подсветки LCD-мониторов и дисплеев в телефонах, КПК и т.п..
HPWM
Синтаксис:
HPWM Channel , Dutycycle , Frequency
Команда HPWM предназначена для работы с аппаратными модулями CCP, которые входят в состав некоторых типов микроконтроллеров. Модули ССР могут использоваться для генерации импульсной последовательности заданного периода с управляемой скважностью выходных импульсов, так называемой широтно-импульсной модуляции PWM (ШИМ). В отличии от команды PWM, команда HPWM может выполняться резидентно (в фоновом режиме), непрерывно работая на заднем плане основной программы, не прерываясь, пока выполняются другие команды основной программы.
Параметр Frequency может быть переменной, константой (которые могут принимать значения в диапазоне от 0 до 32767 Гц.), или выражением, которое определяет заданный период широтно-импульсного сигнала. Параметр Channel - это постоянное значение в диаппазоне от 1 до 3, определяющее какой канал модуля CCP будет использоваться. Некоторые PIC-микроконтроллеры имеют 1, 2 или 3 PWM (ШИМ) канала. В микроконтроллерах с 2 каналами, частота генерации последовательности импульсов должна быть одинаковой в обоих каналах. Необходимо отметить, что это не ограничение компилятора, а ограничение самого микроконтроллера. В даташитах каждого конкретного микроконтроллера указаны номера выводов для каждого канала, которые могут использоваться с этой командой. Например, для PIC16F877, канал 1 (модуля CCP1) это вывод PORTC.2. Канал 2 (CCP2) это вывод PORTC.1. Параметр Dutycycle - переменная, константа которые могут принимать значения в дипазоне чисел от 0 до 255), или выражение, которое определяет отношение продолжительности нахождения сигнала в
состоянии 1 к продолжительности нахождения сигнала в состоянии 0 (см. рис. 1). При Dutycycle = 0 уровень выходного сигнала все время будет находится в низком состоянии (уровень логического 0), а при Dutycycle = 255 - выходной сигнал все время находится в высоком состоянии (уровень логической 1).
Значению Dutycycle = 127 соответствует 50%-ый цикл режима работы. В этом случае выходной сигнал PWM (ШИМ) на выходе ССР модуля u1080 имеет равные длительности высокого и низкого уровня (1 и 0), так называемый меандр.
Значение Dutycycle = 127.
Device = 16 F 873
Xtal = 12
ADCON1 = %00000110 ' Сделать PORTA обычным цифровым портом ввода/вывода
TRISA = %00000001 ' Сделать PORTA.0 входом
Dim pwm_out As Word
Dim x As Byte
TRISB = %00011111
TRISC.2=0
TRISC.1=0
pwm_out=0
main:
If PORTB.3=0 Then ' проверка кнопки реверс
CCP1_Pin = PORTC.2
CCP2CON=%00000000
x=1
Else
x=2
CCP2_Pin = PORTC.1
CCP1CON=%00000000
EndIf
If PORTB.2=0 Then ' проверка кнопки стоп
pwm_out=0
CCP1CON=%00000000
CCP2CON=%00000000
PORTC.1=0
PORTC.2=0
GoTo main
EndIf
If PORTB.0=0 And PORTB.1=1 Then ' проверка кнопки больше и меньше
pwm_out = pwm_out + 1
If pwm_out>254 Then
pwm_out=254
EndIf
EndIf
If PORTB.1=0 And PORTB.0=1 And pwm_out>1 Then ' проверка кнопки больше и меньше
pwm_out=pwm_out-1
If pwm_out<2 Then
pwm_out=1
EndIf
EndIf
' установка скорости привода
HPWM x,pwm_out,1000
DelayMS 20
GoTo main
19.10.2018
Дата: 2019-02-02, просмотров: 226.