Meranie frekvencie s 80C552 s prerušením - Diversant Software

Logo DSW
Logo DSW
Logo DSW
Prejsť na obsah

Meranie frekvencie s 80C552 s prerušením

Projekty > 8051 > Programy
Meranie frekvencie sieťového napätia s 80C552 riadeného prerušením
Meranie frekvencie sieťového napätia je vykonávané pomocou špeciálneho integrovaného hardware mikroprocesora 80c552 ktorý obsahuje celkovo 4 záchytné jednotky CAPTURE ktoré reagujú na zmenu logickej úrovne na vstupoch P1.0P1.3 a pri vyvolaní prerušenia zachytia vo svojich registroch obsah čítača T2 ktorého obsah zvyšuje s 1/12 frekvencie oscilátora. Po zachytení dvoch po sebe nasledujúcich obsahov registrov mikroprocesora CTH0 a CTL0 je pomocou vzťahu Delta=256*CTH0+CTL0 vykonaný výpočet počtu impulzov medzi jednotlivými zmenami polarity sieťového napätia. Počet impulzov priamo vyjadruje dĺžku periódy sieťového napätia ktorá by mala byť v ideálnom prípade T=20ms. Podľa vzťahu f=1/T získame priamo frekvenciu napätia ktorú v pravidelných cca. 250ms intervaloch zobrazujeme na display-i. Pre presné meranie sieťovej frekvencie je nevyhnutné využívať hardware záchytnej jednotky, pretože pri použití softwareových spôsoboch získavame pomerne veľké odchýlky meranej veličiny. Task vykonávajúci meranie dĺžky periódy sieťového napätia by mal mať vyššiu prioritu oproti súbežným taskom, ale nie je to nutnou podmienkou a musí byť obslúžený do približne 3,00ms ináč hlási chybu.
Prítomnosť všetkých fáz sa pravidelne kontroluje a pri cca. 20ms výpadku je signalizovaný výpadok signálom DIR=0x00 a rozsvietením LED na pine P3.2, pričom LED na P3.3 a P3.4 zhasnú. Program využíva prerušenie záchytnej jednotky integrovanej v procesore na sledovanie jednotlivých signálov a priame meranie frekvencie pomocou funkcií operačného systému RTX51:

  • os_attach_interrupt(6),
  • os_attach_interrupt(7),
  • os_attach_interrupt(8).
Program si môžete stiahnúť kliknutím na nižšie uvedenú ikonu.
Aktualizácia údajov bola vykonaná dňa 15.04.2024.
Logo DSW
Logo DSW
Návrat na obsah