Mạch Khóa Số Điện Tử Mạch Đếm Sản Phẩm Mạch Đèn giao thông Ngã Tư Mạch Trái Tim Final Mạch Trái Tim Final Mạch Trái Tim I Love U

December 18, 2011

Đồ án phát nhạc đơn âm ra loa


Chip tìm được 1 đồ án phát nhạc đơn âm rất hay,về cho thử chạy mô phỏng nghe mấy bài Tây Du Ký,999 đóa hoa hồng thấy hay hay,nhưng không hiểu lập trình ra các mã nhạc như thế nào,các bạn xem demo ở đây,nhớ mở loa to to 1 tí để nghe cho rõ na,máy chip Mic nó đang hỏng,hehehe,bạn nào hiểu code thì chia sẻ với chip na,chip có gì cũng chia sẻ mà,hì hì.

Đề tài này thuộc về nhóm sinh viên khoa điện.Trường ĐH Công Nghiệp Tp.HCM
DEMO VIDEO





Code



org 00h
bienlap equ 20h
hieuchinhtruongdo equ 21h
btd equ 22h ;bien truong do
bl equ 23h  ;bien lang
;mov btd,#01h
;mov bl,#01h
_32 equ 1
_16 equ 2
_8 equ 4
_4 equ 8
_2 equ 16
_1 equ 32
bu1 bit p0.0
bu2 bit p0.1
bu3 bit p0.2
bu4 bit p0.3
bu5 bit p0.4
quet:
jnb bu1,bai1
jnb bu2,bai2
jnb bu3,bai3
jnb bu4,bai4
jnb bu5,bai5
sjmp quet

bai1:
jmp giavoyeu
bai2:
jmp tinhdonphuong
bai3:
jmp bantoi
bai4:
jmp tayduky
bai5:
jmp cauvongkhuyet
cauvongkhuyet:
#include <999 doa hong.asm>
giavoyeu:
#include <happy busday.asm>
tayduky:
#include <tay du ky.asm>
tinhdonphuong:
#include <ngoi ben em.asm>
jmp quet ;chua chon dc bai
bantoi:
#include <ban toi.asm>
jmp quet

;*******************************************************
;******************CHUONG TRINH CON CAC NOT*************

c_1:   ;not do  ;1911us  bienlap=191
mov r3,btd
lc_1:
mov hieuchinhtruongdo,#16
loopc_1:
mov bienlap,#191
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopc_1
djnz r3,lc_1
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

c_1t:   ;not do thang  ;1804us  bienlap=180
mov r3,btd
lc_1t:
mov hieuchinhtruongdo,#17
loopc_1t:
mov bienlap,#180
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopc_1t
djnz r3,lc_1t
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

d_1:   ;not re  ;1703us  bienlap=170
mov r3,btd
ld_1:
mov hieuchinhtruongdo,#18
loopd_1:
mov bienlap,#170
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopd_1
djnz r3,ld_1
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

d_1t:   ;not re thang  ;1607us  bienlap=161
mov r3,btd
ld_1t:
mov hieuchinhtruongdo,#19
loopd_1t:
mov bienlap,#161
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopd_1t
djnz r3,ld_1t
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

e_1:   ;not mi   ;1517us  bienlap=152
mov r3,btd
le_1:
mov hieuchinhtruongdo,#21
loope_1:
mov bienlap,#152
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loope_1
djnz r3,le_1
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

f_1:   ;not pha   ;1432us  bienlap=143
mov r3,btd
lf_1:
mov hieuchinhtruongdo,#22
loopf_1:
mov bienlap,#143
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopf_1
djnz r3,lf_1
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

f_1t:   ;not pha thang   ;1351us  bienlap=135
mov r3,btd
lf_1t:
mov hieuchinhtruongdo,#23
loopf_1t:
mov bienlap,#135
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopf_1t
djnz r3,lf_1t
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

g_1:   ;not sol    ;1276us  bienlap=128
mov r3,btd
lg_1:
mov hieuchinhtruongdo,#25
loopg_1:
mov bienlap,#128
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopg_1
djnz r3,lg_1
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

g_1t:   ;not sol thang   ;1204us  bienlap=120
mov r3,btd
lg_1t:
mov hieuchinhtruongdo,#26
loopg_1t:
mov bienlap,#120
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopg_1t
djnz r3,lg_1t
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

a_1:   ;not la    ;1136us  bienlap=114
mov r3,btd
la_1:
mov hieuchinhtruongdo,#28
loopa_1:
mov bienlap,#114
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopa_1
djnz r3,la_1
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

a_1t:   ;not la thang   ;1073us  bienlap=107
mov r3,btd
la_1t:
mov hieuchinhtruongdo,#29
loopa_1t:
mov bienlap,#107
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopa_1t
djnz r3,la_1t
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

b_1:   ;not si    ;1012us  bienlap=101
mov r3,btd
lb_1:
mov hieuchinhtruongdo,#31
loopb_1:
mov bienlap,#101
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopb_1
djnz r3,lb_1
ret
;************************************
;------------------------------------
c_2:   ;not do  ;956us  bienlap=96
mov r3,btd
lc_2:
mov hieuchinhtruongdo,#33
loopc_2:
mov bienlap,#96
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopc_2
djnz r3,lc_2
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

c_2t:   ;not do thang  ;902us  bienlap=90
mov r3,btd
lc_2t:
mov hieuchinhtruongdo,#35
loopc_2t:
mov bienlap,#90
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopc_2t
djnz r3,lc_2t
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

d_2:   ;not re  ;851us  bienlap=85
mov r3,btd
ld_2:
mov hieuchinhtruongdo,#37
loopd_2:
mov bienlap,#85
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopd_2
djnz r3,ld_2
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

d_2t:   ;not re thang  ;804us  bienlap=80
mov r3,btd
ld_2t:
mov hieuchinhtruongdo,#39
loopd_2t:
mov bienlap,#80
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopd_2t
djnz r3,ld_2t
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

e_2:   ;not mi   ;758us  bienlap=76
mov r3,btd
le_2:
mov hieuchinhtruongdo,#41
loope_2:
mov bienlap,#76
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loope_2
djnz r3,le_2
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

f_2:   ;not pha   ;716us  bienlap=72
mov r3,btd
lf_2:
mov hieuchinhtruongdo,#44
loopf_2:
mov bienlap,#72
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopf_2
djnz r3,lf_2
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

f_2t:   ;not pha thang   ;676us  bienlap=68
mov r3,btd
lf_2t:
mov hieuchinhtruongdo,#46
loopf_2t:
mov bienlap,#68
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopf_2t
djnz r3,lf_2t
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

g_2:   ;not sol    ;638us  bienlap=64
mov r3,btd
lg_2:
mov hieuchinhtruongdo,#49
loopg_2:
mov bienlap,#64
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopg_2
djnz r3,lg_2
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

g_2t:   ;not sol thang   ;602us  bienlap=60
mov r3,btd
lg_2t:
mov hieuchinhtruongdo,#52
loopg_2t:
mov bienlap,#60
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopg_2t
djnz r3,lg_2t
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

a_2:   ;not la    ;568us  bienlap=57
mov r3,btd
la_2:
mov hieuchinhtruongdo,#55
loopa_2:
mov bienlap,#57
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopa_2
djnz r3,la_2
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

a_2t:   ;not la thang   ;536us  bienlap=54
mov r3,btd
la_2t:
mov hieuchinhtruongdo,#58
loopa_2t:
mov bienlap,#54
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopa_2t
djnz r3,la_2t
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

b_2:   ;not si    ;506us  bienlap=51
mov r3,btd
lb_2:
mov hieuchinhtruongdo,#62
loopb_2:
mov bienlap,#51
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopb_2
djnz r3,lb_2
ret
;************************************
;************************************
;------------------------------------
c_3:   ;not do  ;478us  bienlap=48
mov r3,btd
lc_3:
mov hieuchinhtruongdo,#65
loopc_3:
mov bienlap,#48
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopc_3
djnz r3,lc_3
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

c_3t:   ;not do thang  ;451us  bienlap=45
mov r3,btd
lc_3t:
mov hieuchinhtruongdo,#69
loopc_3t:
mov bienlap,#45
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopc_3t
djnz r3,lc_3t
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

d_3:   ;not re  ;426us  bienlap=43
mov r3,btd
ld_3:
mov hieuchinhtruongdo,#73
loopd_3:
mov bienlap,#43
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopd_3
djnz r3,ld_3
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

d_3t:   ;not re thang  ;402us  bienlap=40
mov r3,btd
ld_3t:
mov hieuchinhtruongdo,#78
loopd_3t:
mov bienlap,#40
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopd_3t
djnz r3,ld_3t
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

e_3:   ;not mi   ;379us  bienlap=38
mov r3,btd
le_3:
mov hieuchinhtruongdo,#82
loope_3:
mov bienlap,#38
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loope_3
djnz r3,le_3
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

f_3:   ;not pha   ;358us  bienlap=36
mov r3,btd
lf_3:
mov hieuchinhtruongdo,#87
loopf_3:
mov bienlap,#36
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopf_3
djnz r3,lf_3
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

f_3t:   ;not pha thang   ;338us  bienlap=34
mov r3,btd
lf_3t:
mov hieuchinhtruongdo,#92
loopf_3t:
mov bienlap,#34
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopf_3t
djnz r3,lf_3t
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

g_3:   ;not sol    ;319us  bienlap=32
mov r3,btd
lg_3:
mov hieuchinhtruongdo,#98
loopg_3:
mov bienlap,#32
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopg_3
djnz r3,lg_3
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

g_3t:   ;not sol thang   ;301us  bienlap=30
mov r3,btd
lg_3t:
mov hieuchinhtruongdo,#104
loopg_3t:
mov bienlap,#30
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopg_3t
djnz r3,lg_3t
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

a_3:   ;not la    ;284us  bienlap=28
mov r3,btd
la_3:
mov hieuchinhtruongdo,#110
loopa_3:
mov bienlap,#28
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopa_3
djnz r3,la_3
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

a_3t:   ;not la thang   ;268us  bienlap=27
mov r3,btd
la_3t:
mov hieuchinhtruongdo,#117
loopa_3t:
mov bienlap,#27
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopa_3t
djnz r3,la_3t
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

b_3:   ;not si    ;253us  bienlap=25
mov r3,btd
lb_3:
mov hieuchinhtruongdo,#123
loopb_3:
mov bienlap,#25
setb p1.4
call delay
clr p1.4
call delay 
djnz hieuchinhtruongdo,loopb_3
djnz r3,lb_3
ret
;************************************
;--------------CHUONG TRINH LANG----------------------
lang:
mov r4,bl
llang:
mov tmod,#01h
mov th0,#high(-62487)
mov tl0,#low(-62487)
setb tr0
jnb tf0,$
clr tf0
clr tr0
djnz r4,llang
ret



delay:
mov r0,bienlap
loop:
nop   ;1us
nop   ;1us
nop   ;1us   
nop   ;1us
nop   ;1us
nop   ;1us
nop   ;1us
nop   ;1us
djnz r0,loop
ret   ;2us
;**************************************************************
x1:
mov btd,#_1
ret
x2:
mov btd,#_2
ret
x4:
mov btd,#_4
ret
x8:
mov btd,#_8
ret
x16:
mov btd,#_16
ret
x32:
mov btd,#_32
ret

;;;;;;
l1:
mov bl,#_1
call lang
ret
l2:
mov bl,#_2
call lang
ret
l4:
mov bl,#_4
call lang
ret
l8:
mov bl,#_8
call lang
ret
l16:
mov bl,#_16
call lang
ret
l32:
mov bl,#_32
call lang
ret
;***********************************************************
end




Các bạn chú ý code màu đỏ.Trong tệp tải về có rất nhiều file nhạc khác,nếu bạn muốn thử demo thì gom chúng lại vào 1 folder sau đó chèn nó vào file C51 - ASM trong keil C (lại quên các bạn nhớ biên dịch bằng keil C nhé).sau đó chỉ việc thay tên file là ok.


Toàn bộ file tải về trong tệp tin sau,bạn chú ý khi mô phỏng Protues thì dùng file HEX success music nhé,không xóa nhầm nó là xong,lại hì hục làm lại thì khổ.Thế thì chip làm cho.

(Server 4shared)
Khi nhấn nút "Tải Về Máy", bạn sẽ vào trang quảng cáo, vui lòng chờ 5 giây. Nút  hiện ra ở góc phải phía trên, nhấn vào để đến trang download


Blog Điện Tử | Tin Học - Chia sẻ kiến thức - Kết nối đam mê điện tử

6 comments:

nothing you said...
21/11/12
This comment has been removed by the author.
nothing you said...
21/11/12

link die mất rồi chipkool à :(

Trần Tấn Phú said...
20/12/12

chip ơi1 cai này kêt hợp với mạch trái tim được chứ, ...nếu làm được thì tuyệt

qa2990 said...
20/12/12

cái loa phát nhạc là loại j vậy bạn?

tra nguyen said...
24/12/12

cho mjnh xin lai link di
link die mat tieu roi

vktu_210 said...
16/1/13

Đã có link update rồi đó mấy bạn :)

Post a Comment

Bạn đọc hãy giúp chúng tôi xây dựng cộng đồng bằng cách để lại bình luận, chúng tôi luôn đón nhận mọi ý kiến của các bạn:
» Bình luận nghiêm túc và không chứa các liên kết quảng cáo.
» Vui lòng không Spam nhận xét với mọi hình thức.
» Rất mong bạn đề tên cho nhận xét của chính mình - Bằng cách chọn vào Tên/URL và điền tên bạn vào (Phần URL có thể bỏ trống ).

- Bạn có thể chèn Link nhạc (NCT), video(Youtube),Hình ảnh vào comment bằng cú pháp:
+ [youtube] Link video Youtube [/youtube].
+ [img] Link ảnh( định dạng PNG, JPG,GIF) [/img]
+Chèn link liên kết: <a href="LINK" rel="nofollow">Name</a>
-Bạn copy mã bên cạnh biểu tượng chèn vào nhận xét để bày tỏ cảm xúc!!

:) :( :)) :(( =)) =D> :D :P