Modul reproduktoru

Na obrázku je zobrazen možný způsob připojení malého reproduktoru k výstupu mikroprocesoru (I/O pin P1.1). Reproduktor je ovládán přes spínací tranzistor T1, odpor R2 slouží k nastavení hlasitosti. Při "oživování" místo pevného odporu R2 použijeme odporový trimr 4k7 nebo můžeme použít logaritmický potenciometr 5kW, pokud budeme chtít měnit hlasitost častěji a plynule v určitém rozsahu.

Připojení malého reproduktoru

Programová obsluha

Pro generování zvukového signálu nahrazujeme sinusový průběh tónové frekvence obdélníkovým tvarem tak, jak to ukazuje obrázek níže. Střídavě na dobu jedné půlperiody T/2 vysíláme do reproduktoru (=do pinu P1.1) logickou 1, na dobu druhé půlperiody logickou 0. Doba periody T nám pak určuje výšku tónu a počet period délku tónu. Takto vytváříme symetrický signál, tedy se střídou 1:1.

Průběh signálu na I/O pinu mikroprocesoru

Příklad jednoduchého programu, který vytváří symetrický nepřetržitý signál o frekvenci 2kHz (při f krystalu 12MHz). V programu je použit 16-bitový časovač, abychom mohli generovat i signál o velmi nízké frekvenci (až pod 10Hz). Je dobré si ale vypočítat max. a min. hodnotu periody pro slišitelný rozsah frekvencí (přibližně 100Hz až 16kHz), dle vztahu f=1/T. V programu není uvažováno s nutnou korekcí doby provádění instrukcí při obsluze přerušení (druhá půlperioda je tak zhruba o 6us delší než by měla být; při 12MHz). Jak je z programu vidět, nelze frekvenci signálu principielně nastavovat plynule v celém možném rozsahu. Pokud bychom ale potřebovali nastavit jednu konkrétní frekvenci, je tu ještě možnost změny frekvence krystalu.
        ORG 0
        JMP START
        ORG 30H
START:  MOV TMOD,#00000001B    ;casovac0 v modu1
        MOV TH0,#high 65285    ;perioda 500us (=2kHz)
        MOV TL0,#low 65285
        SETB EA
        SETB ET0
        SETB TR0
KONEC:  JMP KONEC
;obsluha preruseni od casovace0
        ORG 0BH
        JMP PRERUS
        ORG 50H
PRERUS: CPL P1.1               ;pin,na kterem je pripojeny reprak
        MOV TH0,#high 65285	
        MOV TL0,#low 65285 
        RETI
END


Zpět na hlavní stránku

Copyright © Michal Fuksa 2001