logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak generować dźwięki za pomocą mikrokontrolera 89C51?

Leszsad 22 Lut 2005 22:34 1320 7
REKLAMA
  • #1 1256217
    Leszsad
    Poziom 11  
    Posty: 69
    Ocena: 2
    Chciałbym wykorzystać 89C51 do generowania dźwięków.
    Czy ktoś ma doświadczenie w tym zakresie ?
    Czy wogóle ołaca się zaczynać ?
    Może jakieś linki ?
  • REKLAMA
  • Pomocny post
    #2 1256286
    GienekS
    Poziom 32  
    Posty: 1971
    Pomógł: 139
    Ocena: 15
    Na tym procku jest to możliwe, też takie coś takiego zrobiłem, ale bardzo nieefektywne. Osobiście polecał bym coś co ma sprzętowe wspomaganie chociażby jakiś PWN to już daje większe możliwości z regulacją głośności włącznie.
  • REKLAMA
  • #3 1256375
    Leszsad
    Poziom 11  
    Posty: 69
    Ocena: 2
    Możesz mi przybliżyć skrót PWN ?
    Czy dobrze rozumuję ?
    Zakładam,że chcąc kontrolwać częstotliwość generowango dźwieku muszę znać czas trwania cyklu maszynowego i brać pod uwagę ilość cykli, które tzajmuje wykonanie karzdej instrukcji zawartej wewnątrz pętli.
    Dopiero zaczynam dłubać w assemblerze i jakoś nie mogę wskoczyć.
    Wcześniej programowałem w językach wyzszego poziomu na PC.
    Z góry dzieki.
    P....
  • Pomocny post
    #4 1256425
    ko_rex
    Poziom 19  
    Posty: 253
    Pomógł: 38
    Ocena: 2
    Jeśli chodzi o pojedyńcze tony, to można popróbować. Jednak lepiej użyć wewnętrznych TIMERów, a nie babrać się w liczenie cykli maszynowych. Odpowiednia obsługa przerwania od przepełnienia licznika oraz odpowiednia zmiana parametrów pracy licznika powinna przynieść dobre rezultaty.
  • REKLAMA
  • #5 1256466
    Leszsad
    Poziom 11  
    Posty: 69
    Ocena: 2
    No właśnie zależy mi na generowaniu skomplikowanych sekwencji dźwiękowych.
    Proste tony generuję za pomoca np. 555 i kluczuję z procka.
    Ale tak sobie myślę,że chyba odpuszczę sobie ten temat.
    Przynajmniej na tym etapie zaawansowania.
    Pozdr..
  • #6 1256605
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Chodzi o PWM a nie PWN, wszystko zalezy jak maja być to ładne dzwięki, jeśli chcesz odtwarzać jakaś muzyke i modyfikować ją programowo to lepiej użyć procesora DSP, a jeśli chcesz jakies proste jednokanałowe melodyjki to można spróbować zróbić to na 8 bitowym mikroprocesorze.
  • Pomocny post
    #7 1257262
    GienekS
    Poziom 32  
    Posty: 1971
    Pomógł: 139
    Ocena: 15
    Jeżeli Ci to w czymś pomoże to posyłam Ci mój programik, który między innymi miał możliwośc wygrywanie melodyjek, choć to nie było jego główną rolą. Taki wodotrysk.
    Załączniki:
    • Swkz.zip (6.7 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #8 1259262
    Leszsad
    Poziom 11  
    Posty: 69
    Ocena: 2
    Dzięki !
    Jestem pod wrażeniem.
    Wyłapałem właściwy fragment. Na pewno wykorzystam część, gdzie są określone częstotliwości dźwięków.
    Pozdrowienia

Podsumowanie tematu

✨ Generowanie dźwięków za pomocą mikrokontrolera 89C51 jest możliwe, jednak ze względu na brak sprzętowego wsparcia, np. PWM, jest to rozwiązanie mało efektywne. Do generowania prostych tonów można wykorzystać wewnętrzne timery mikrokontrolera oraz obsługę przerwań od przepełnienia licznika, co pozwala na precyzyjną kontrolę częstotliwości dźwięku bez konieczności ręcznego liczenia cykli maszynowych. Dla bardziej skomplikowanych sekwencji dźwiękowych lub muzyki lepszym wyborem są procesory DSP lub mikrokontrolery z wbudowanym PWM. W praktyce do prostych melodyjek 8-bitowy 89C51 może wystarczyć, ale generowanie złożonych dźwięków wymaga większego zaawansowania i sprzętowego wsparcia. Udostępniono również przykładowy program do odtwarzania melodyjek na 89C51, który może posłużyć jako punkt wyjścia do dalszych eksperymentów.
Wygenerowane przez model językowy.
REKLAMA