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.
Đăng nhận xét