Thông báo

Collapse
No announcement yet.

Phát nhạc dùng 8051

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Phát nhạc dùng 8051

    các tiền bối chỉ em phát nhạc với 8051 với, em nghe nói 8051 có thể phát nhạc nên định ngich 1 tý nhưng không biết làm thế nào??

  • #2
    quan trọng là viết code cho vdk bạn ak.

    Comment


    • #3
      mình tìm được cái nay trên mạng,
      phat nhac đơn âm bài cô bé dỗi hờn nhưng
      k hiểu người ta viết gì, nhất là mấy cái nốt nhạc
      không hiểu sao mà ng ta lại viết dk như vậy

      db 94h,0a4h,94h,74h,84h,92h,0a2h,0a8h => không biết cach tao ra cái này



      ;++++++description+++++++++++++
      ; khai bao cac bien dung trong bai
      thutu_not equ 20h ; cac not trong ban nhac ;dinh dia chi byte
      truong_do equ 21h ; tao tr truong do cac not ;dinh dia chi byte

      tso_l equ 22h ; byte thap chua gia tri se nap cho timer
      tso_h equ 23h ; chua byte cao

      tam_1 equ 24h ; dey la 2 bien de chua
      tam_2 equ 25h ; tam thoi du lieu cho xu li
      phat bit p1.4 ; chan output nhac
      ;play_again equ 26h ; quan li so lan lap lai cua bai hat
      ; qui uoc not_trang = 8 , den = 4 , moc_don = 2
      ;+++++++++++++++++++++++++++++++++++++++++++++++++ +
      org 0000h ;chon dia chi trong bo nho
      ljmp main

      org 000bh ;chon dia chi ngat
      ljmp timer_0 ; ngat do timer 0


      org 0030h ;chon dia chi luu main

      main: ;Ö÷³ÌÐò

      mov ie,#82h ; cho phep ngat timer 0
      mov tmod,#01h ; chon timer_0 mod_1: 16 bit
      lo: jnb p0.1,start0 ;cho nhan nut cho chay
      jmp lo ;cho nhan nut cho chay
      start0:
      mov thutu_not,#00h ;
      next_m:
      mov a,thutu_not
      mov dptr,#table
      movc a,@a+dptr
      mov tam_2,a

      jz end0 ; neu het ban nhac thi exit ;nhay neu a=0

      anl a,#0fh ;lay ham and giua a va #fh
      mov truong_do,a
      mov a,tam_2
      swap a
      anl a,#0fh
      jnz sing ; neu a khac 0 thi nhay vao SING

      clr tr0 ; dung bo dinh thoi
      ; neu a=0 tuc se la not lang (silent)
      ljmp d1
      sing:
      dec a
      rl a ; nhan a cho 2 (a x 2)
      mov tam_1 ,a

      mov dptr,#table1 ; mov dptr=00h (vi tri dau tien cua bang))
      movc a,@a+dptr
      mov th0,a
      mov tso_h,a
      mov a,tam_1

      inc a

      movc a,@a+dptr
      mov tl0,a
      mov tso_l,a
      setb tr0 ; khoi dong bo dinh thoi
      d1:
      call length
      inc thutu_not
      ljmp next_m
      end0:
      clr tr0 ;neu muon play again
      ljmp exit ;thi call start0

      timer_0:
      push acc
      push psw

      mov tl0,tso_l
      mov th0,tso_h

      cpl phat
      pop psw
      pop acc
      reti

      length: ; truong do
      mov r7,#01h ; =01h neu not_den = 4
      ; =02h neu not_den = 2
      d2:
      mov r4,#187 ; t = truong_do x 92752us (12MHZ))
      d3:
      mov r3,#240
      djnz r3,$
      djnz r4,d3
      djnz r7,d2
      djnz truong_do,length
      ret
      ;++++++++++++++++++++++++++++++
      ; day la cac not co xuat hien trog ban nhac
      ; xep theo thu tu do-re-mi-fa-sol-la-si
      table1:

      ; not do(1)re(2) mi(3) fa sol la si
      dw 63625,63834,64019,64104,64261,64400,64524
      ; not do'(8) re' mi'(A)
      dw 64580,64685,64778

      ;+++++++++++++++++++++++++++++++
      ; bang nay chua cac not trong ban nhac
      ; nen xep theo tung cau nhac to easy manage
      table:
      ;1 chieu hom nay vua tan buoi hoc
      db 22h,54h,52h,54h,54h,64h,72h,32h,38h
      ;2 em lo ngo ra truoc san truong
      db 42h,44h,42h,44h,54h,64h,32h,22h,28h
      ;3 Duong nhu anh dung do bao gio
      db 22h,74h,72h,74h,84h,94h,82h,32h,38h
      ;4 Doi cho em da lau?
      db 44h,54h,64h,74h,6fh ; 0xh la not lang
      ;+++++++++
      ;1 long em nhu mua xuan den gan
      db 22h,54h,52h,54h,54h,64h,72h,32h,38h
      ;2 nhung con tim sao cu ngap ngung
      db 42h,44h,42h,44h,54h,64h,32h,22h,28h
      ;3 Vi sao anh ko noi bao gio
      db 22h,74h,72h,74h,84h,94h,82h,32h,38h
      ;4 Loi yue thuong dam say
      db 44h,54h,64h,72h,62h,5fh
      ; chorus:
      ;1 Em ghet anh goi em co be
      db 94h,0a4h,94h,74h,84h,92h,0a2h,0a8h
      ; nen thay anh em vo nhu ko thay
      db 84h,94h,84h,72h,62h,74h,82h,92h,98h
      ;2 Em bat anh lam cai duoi em do
      db 74h,84h,74h,52h,51h,71h,64h,72h,82h,88h
      ; Xem rat toi nghiep
      db 68h,74h,22h,22h,2fh
      ; chorus_lan 2
      ;1 Anh co theo hang tram cay so
      db 94h,0a4h,94h,74h,84h,92h,0a2h,0a8h
      ; Em van ko them quen anh do
      db 84h,94h,84h,72h,62h,74h,82h,92h,98h
      ;2 Em ngo lo du long nghe xao xuyen
      db 74h,84h,74h,52h,51h,71h,64h,72h,82h,88h
      ; Dang doi anh chua
      db 88h,44h,52h,52h,5fh
      ; Dang doi anh chua
      db 88h,44h,52h,52h,5fh
      db 0
      exit:

      end

      Comment


      • #4
        t cũng mới học vdk lên ko biết rõ nhưng có cách nữa
        • Mỗi nốt nhạc có một tần số riêng, do đó chu kỳ T cũng khác nhau.
        • Dựa vào chu kỳ T, ta sẽ viết chương trình tạo ra các dạng xung có T tương ứng

        Comment


        • #5
          Ban ngkien cua xong thi chi gjao cho to voi

          Comment


          • #6
            Chi cho minh cach doc not nhac cua tren voi, minh thay not nhac thuong ng ta viet vi du nhu
            8c2 nghia la truong do bang 8, not do thang 2
            con tren kia thi toan cai dang 82h, 81h khonh hjeu do la not gi, minh tim tren mang bai nay nhung k tim dk not nhac dang 8a2 de so sanh

            Comment


            • #7
              Nguyên văn bởi zxcvbnmasdfg Xem bài viết
              Chi cho minh cach doc not nhac cua tren voi, minh thay not nhac thuong ng ta viet vi du nhu
              8c2 nghia la truong do bang 8, not do thang 2
              con tren kia thi toan cai dang 82h, 81h khonh hjeu do la not gi, minh tim tren mang bai nay nhung k tim dk not nhac dang 8a2 de so sanh
              có bạn ko hiểu gì VDK thì có, 82h,81h,... chỉ là các giá trị nạp vào cho timer để tạo ra tần số của nốt, muốn biết nốt nào tần số bao nhiêu thì down ebook Họ vi điều khiển 8051 của Tống Văn On trang 227 mà đọc

              Comment


              • #8
                Nguyên văn bởi chung1608 Xem bài viết
                có bạn ko hiểu gì VDK thì có, 82h,81h,... chỉ là các giá trị nạp vào cho timer để tạo ra tần số của nốt, muốn biết nốt nào tần số bao nhiêu thì down ebook Họ vi điều khiển 8051 của Tống Văn On trang 227 mà đọc
                Thanks bác rất nhiều.

                Let's go!!!

                Comment


                • #9
                  Y minh la not nhac no duoc ma hoa nhu the nao ma ra duoc cai ma hex 8 bit do.
                  Cai minh k hjeu la tu ma do lam sao suy ra duoc ten not nhac, truong do
                  quyen cua thay On minh co, minh se xem.
                  Cho nao mjh k hjeu minh se up len, co gj ban chj giup minh voi

                  Comment


                  • #10
                    Bạn cố gắng nghiên cứu, xong chỉ mình, mình cũng đang nghiên cứu, code nhìn hơi kì phát được mấy nốt nhạc thôi, k phát đk bài nhạc, k hjểu sao lại thế.

                    Comment


                    • #11
                      mình cũng vậy nè, ghép nhạc vào thì nghe không ra cái gì cả, cứ ò e í e, khó thật, mình định ghép bài happy bỉthday vô nhưng chạy k ra gì cả

                      Comment


                      • #12
                        Cái này chắc là bạn phải coi bên phần nhạc lý 1 chút rồi. Ví dụ nốt la tần số là 440Hz, mình dùng timer phát đúng tần số đó sẽ ra. Rồi còn trường độ bao nhiêu (delay), vâng vâng và vâng vâng
                        - Mạch nạp vdk 8051, AVR, PIC, EEPROM
                        - Linh kiện điện tử cho sinh viên


                        Comment


                        • #13
                          Mình xem qua rồi, mình viet mấy gần 20 ctr con cho mấy nốt nhạc, đô trưởng, đô thứ, thăng gì viết hết rồi, cao độ, trường độ cũng viết rồi, cho chạy từ đồ đến si thj ổn nhưng gkép nhạc thj k dk

                          Comment


                          • #14
                            Noel vừa rồi có làm cái tặng người yêu cũng là sinh nhật luôn, up lên các bạn có nhu cầu tham khảo nhé! hjhj
                            Co j rep cho mình: doduytu@gmail.com
                            https://www.dropbox.com/s/xyotbrn3mj...%20Present.rar

                            Comment


                            • #15
                              Moi not ban phai de nghi 1 quang(de im lang,10 ms chang han).Vi hien tuong am thanh giua cac not lien tuc dan den tai nguoi nghe khong dung.Cai phat nhac nay minh ko lam.Nhung minh da thu nghiem cai hien tuong nay.muon am thanh hay hon thi phai phoi hop nhieu tan so cho mot not.
                              , , ,

                              Comment

                              Về tác giả

                              Collapse

                              zxcvbnmasdfg Tìm hiểu thêm về zxcvbnmasdfg

                              Bài viết mới nhất

                              Collapse

                              Đang tải...
                              X