Tartalomjegyzék:

PWM hullám generálása PIC mikrokontrollerrel: 6 lépés
PWM hullám generálása PIC mikrokontrollerrel: 6 lépés

Videó: PWM hullám generálása PIC mikrokontrollerrel: 6 lépés

Videó: PWM hullám generálása PIC mikrokontrollerrel: 6 lépés
Videó: Прямой запуск инверторного компрессора холодильника и тестирование UVW 2024, Július
Anonim
PWM hullám generálása a PIC mikrokontrollerrel
PWM hullám generálása a PIC mikrokontrollerrel
PWM hullám generálása a PIC mikrokontrollerrel
PWM hullám generálása a PIC mikrokontrollerrel
PWM hullám generálása a PIC mikrokontrollerrel
PWM hullám generálása a PIC mikrokontrollerrel
PWM hullám generálása a PIC mikrokontrollerrel
PWM hullám generálása a PIC mikrokontrollerrel

MI A PWM?

A PWM STANDS PULSE WIDTH MODULATION egy olyan technika, amellyel az impulzus szélessége változtatható.

Ennek a koncepciónak a megértéséhez vegye figyelembe az óraimpulzust vagy bármely négyzethullámú jelet, amelynek 50% -os működési ciklusa van, ami azt jelenti, hogy a Ton és a Toff periódus megegyezik. időszak.

A fenti képen ennek a hullámnak a működési ciklusa 50%

Üzemidő = (bekapcsolási idő / teljes idő)*100

ON time - az az idő, amelynél a jel magas volt

KIKAPCSOLÁSI idő - az az ellenfél, amelynek jele alacsony volt

Lépés: A mikrokontroller kiválasztása

A mikrokontroller kiválasztása
A mikrokontroller kiválasztása

A projekthez megfelelő mikrokontroller kiválasztása ez a projekt lényeges része. A PWM jelek PWM csatornákkal (CCP regiszterek) rendelkező mikrovezérlőkben generálhatók. Ehhez a projekthez a pic16f877 -et tervezem. letöltheti az adatlap linkjét

A PIC16F877a adatlapja kattintson ide

A CCP modul felelős a PWM jel előállításáért. A CCCP1 és a CCP2 multiplexelt PORTC -vel. A PORTC egy 8 bites széles kétirányú port. A megfelelő adatirány -regiszter a TRISC. A TRISC bit (= 1) beállítása a megfelelő PORTC tűt veszi bemenetként. A TRISC bit törlése (= 0) a megfelelő PORTC tűt eredményezi.

TRISC = 0; // Ennek a bitnek a törlésével a PORTC lesz kimenet

2. lépés: KONFIGURÁLJA a CCP MODULOT

KONFIGURÁLÁS CCP MODUL
KONFIGURÁLÁS CCP MODUL
KONFIGURÁLÁS CCP MODUL
KONFIGURÁLÁS CCP MODUL

CCP - CAPTURE/COMPARE/PWM MODULOK

Minden Capture/Compare/PWM (CCP) modul tartalmaz egy 16 bites regisztert, amely a következőképpen működhet:

• 16 bites rögzítési regiszter

• 16 bites összehasonlító regiszter

• PWM Master/Slave Duty Cycle regiszter

Állítsa be a CCP1CON regisztert PWM módba

Regisztráció Leírás

CCPxCON Ez a regiszter a CCP modul beállítására szolgál a Capture/Compare/PWM opertaion számára.

CCPRxL Ez a regiszter tartalmazza a PWM 8 Mb-os bitjeit, az alsó 2-bitek a CCPxCON regiszter részét képezik.

TMR2 Szabadonfutó számláló, amelyet összehasonlítanak a CCPR1L -vel és a PR2 -vel a PWM kimenet generálásához.

Most binárisan fogom használni a biteket a CCP1CON regiszter konfigurálásához.

lásd a fenti képet.

CCP1CON = 0b00001111;

Azt is hatszögletű formátumban

CCP1CON = 0x0F; // a CCP1CON regiszter konfigurálása PWM módhoz

3. lépés: A Timer2 modul konfigurálása (TMR2 regisztráció)

A Timer2 modul konfigurálása (TMR2 regiszter)
A Timer2 modul konfigurálása (TMR2 regiszter)

A Timer2 egy 8 bites időzítő, elő- és utóskálázóval. PWM időalapként használható a CCP modul (ok) PWM módjához. A TMR2 regiszter olvasható és írható, és törlődik minden eszközön.

Megjelenik a T2CON regiszter

Az elő- és utóskála beállítja a generált PWM hullám kimeneti frekvenciáját.

Frekvencia = órajel/(4*előskálázó*(PR2-TMR2)*Utóskálázó*szám)

Ahol Tout = 1/gyakoriság

T2CON = 0b00000100;

Ez 2,5 KHz @ 1Mhz vagy 100KHz @ 4MHz kristályt generál (gyakorlatilag van korlátozás erre a PWM frekvenciára, lásd az adott adatlapot a további részletekért)

hatszögletű ábrázolás

T2CON = 0x04; // engedélyezze a T2CON -t az előskálázás és az utólagos skála beállítása nélkül

4. lépés: A PR2 konfigurálása (Timer2 Period Register)

A Timer2 modul 8 bites periódusregiszterrel rendelkezik, PR2. Az időzítő2 00 órától növekszik, amíg megfelel a PR2 értéknek, majd a következő növekedési ciklusban visszaáll 00 órára. A PR2 olvasható és írható regiszter. A PR2 regiszter alaphelyzetbe állításkor FFh lesz.

A PR2 megfelelő tartományának beállítása lehetővé teszi a generált PWM hullám működési ciklusának megváltoztatását

PR2 = 100; // Állítsa a ciklusidőt 100-ra, ha a munkaciklus 0-100 között változik

Az egyszerűség kedvéért PR2 = 100 -at használok CCPR1L = 80 értékkel; 80% -os munkaciklus érhető el.

5. lépés: A CCPR1l modul konfigurálása

Mivel a PR2 = 100 CCPR1l bárhol konfigurálható 0-100 között a kívánt életciklus eléréséhez.

6. lépés: Írja fel Önre a vázlatot MPLAB X IDE A kód alább látható

Írja be Önnek a vázlatot MPLAB X IDE A kód alább
Írja be Önnek a vázlatot MPLAB X IDE A kód alább

#befoglalni

void delay (int a) // késleltetést generáló függvény {

mert (int i = 0; i <a; i ++)

{

mert (int j = 0; j <144; j ++);

}

}

void main ()

{TRISC = 0; // Ennek a bitnek a törlésével a PORTC lesz kimenet.

CCP1CON = 0x0F; // a CCP1CON regiszter konfigurálása PWM módhoz

T2CON = 0x04; // engedélyezze a T2CON -t az előskálázás és az utólagos skála beállítása nélkül.

PR2 = 100; // Állítsa a ciklusidőt 100-ra, ha a munkaciklus 0-100 között változik

míg (1) {

CCPR1L = 75; // a működési ciklus 75% -os késleltetése (1);

}

}

Kicsit módosítottam a kódon is, hogy a generált PWM hullám frekvenciája

Ezt a kódot a proteus szimulálja, és a kimeneti PWM hullám az alábbiakban látható. Ennek feltöltéséhez a képfejlesztő táblákra használja a #include megfelelő konfigurációs biteket.

Köszönöm

Ajánlott: