Şimdi Ara

89S51 CD çalar devresi program düzenleme konusunda yardım

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
4
Cevap
0
Favori
473
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba. Atmel 89S51 ile bir CD-Çalar devresi yaptım. Kodları bir yerde hazır bulmuştum. Devreyi yapan adam P3.3 pinini hem open close butonu için, hem de kızılötesi alıcı için kullanmış. Ben devreye eski bir uydu cihazından söktüğüm kızılötesi alıcıyı ekledim. Kumandanın tuşuna basınca sensör tarafından gönderilen başlangıç biti denetleyici tarafından eject komutu olarak algılanıp CD'yi çıkartıyor.

    Burada başlangıç bitinin eject komutu olarak algılanmasını engellemek için birkaç ms delay eklemek lazım. Tuşa basınca sensör algıladığı kodu seri şekilde gönderiyor. Burada delay eklemek sureti ile işlemcinin ilk bit geldikten sonra ikinci biti beklesin, şayet ikinci bit gelmezse eject komutunu işletsin. İkinci bit gelirse bunu ve devamını hafızaya alıp, denk gelen komutu çalıştırsın.
    Program kodunda yeterli açıklama olmadığı için tuş komutlarının nasıl işlendiğini tam bulamadım. Programın sistemetiğini çözsem düzenleme yapmaya çalışacağım.
    Çözebilen var mı acaba?

    89S51 CD çalar devresi program düzenleme konusunda yardım
    Devremiz bu:
    89S51 CD çalar devresi program düzenleme konusunda yardım
    Kaynak kodu:
    http://www.geocities.ws/leo8597/ISPCDRom.a51.txt



    < Bu mesaj bu kişi tarafından değiştirildi ipli jeton -- 28 Nisan 2022; 11:4:23 >
    < Bu ileti mini sürüm kullanılarak atıldı >







  • acaba kızılötesi sinyal işlenmiyor ya da sinyal çakışması mı var diye düşündürür gibi ama sorun programsal düşünülüyor herhalde;

    Yalnız P3.3 data hattı olmalıyken buraya nasıl buton takılmış? Aldığınız örnek de incelenebilir hata açısından. Program içerisinde; her ne kadar uzmanı olmasam da, P3.3 data hattından ziyade direk eject yani çıkarma tuşu gibi yazılmış???

    alakalı komutlar,


    Kod

    Yığını:
    EJECT_Key bit p3.3 ;open cd-rom tray

    wait_for_ready_state_restart:

     jnb  EJECT_Key,Check_Tray_Status

     mov  r2,

    ......

    play_cd:

     jnb  PLAY_KEY,main_play

     jnb  EJECT_Key,unload_cd

     jmp  play_cd

    ......

     jnb  NEXT_TRK,play_next_track  ;

     jnb  EJECT_Key,unload_cd     ;

     jnb  Pause_key,Pause_cd

     jnb  STOP_KEY,stop_cd

     jnb  PREVIOUS_TRK,play_previous_track ;

     sjmp play_loop

    ....

    Pause_Loop:

     jnb   Stop_Key,Stop_cd

     jnb   Pause_key,resume_cd

     jnb   Eject_key,unload_cd

     acall  delay_100000us

     jmp   Pause_loop





  • karafetva K kullanıcısına yanıt
    Teşekkürler.
    Gerekirse eject tuşunu da iptal ederim sorun değil. Ama kumanda kodlarını programa tanıtmakta sorun yaşıyorum. Kodlarda yeterli açıklama yok.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.