音乐盒实验报告
专业:生产过程自动化
班级:08机电(2)班
姓名:何远龙
指导老师:陈玉琼
2010-10-08
一、实验材料
1、仪器设备,软件工具
软件
用途
keil软件
源程序的编译
Proteus 软件
p4: cjne a,#03,next ;A 是否=3,不等就跳转到 next
acall first
ret
last:
dec shuzhi mov a, shuzhi cjne a,#02,last 1 mov dptr,#dat3 mov dul,#ObOh mov wel,#7fh
;shuzhi-1
acall musicO
lastl: cjne a,#01,last2
mov dptr,#dat2
mov dul,#0a4h
mov wel,#7fh
acall musicO
Iast2: cjne a,#00,last
mov dptr,#datl mov dul,#0f9h mov wel,#7fh acall musicO ret
musicO:
mov 20h,#00h ;中断计数单元清0
music 1: clr a
move a,***@a+dptr ;查表取音阶常数
jz endO ;是结束符?
cjne a,#0ffh,music5;是休止符?
Ijmp music3
产生100ms停顿
music5:
nop
key: jnb play,kO
;
jnb addone,kl
;
jnb subone,k2
;
mov r6,a ;音阶常数送R6
inc dptr ;DPTR+1
mov a,#0
move a,***@a+dptr ;取常数送 R7
mov r7,a
setb trO ;启动定时器TO
music2: nop
cjne r0,#0,$
cpl song ;输出电平取反
mov a, r6
mov r3,a ;音阶常数送R3
Icall del20
mov a, r7 ;节拍常数送A
cjne a,20h,music2 ;节拍时间到否
mov 20h,#00h ;为取下一音阶作准备
inc dptr
Ijmp music 1
music3: nop ;休止 100ms
clr trO ;关闭定时器
mov r2, #14h ;R2=20
music4: nop
mov r3, #250 ;R3=250
Icall del20
djnz r2, music4
inc dptr ;为取下一音阶作准备
Ijmp music 1
endO: mov r2, #200 ;歌曲结束后,延时Is后继续 music6: mov r3, #250
Icall del20
djnz r2,music6 del20: mov r4,#05h del4:nop
kl:
k2:
kO:
acalldel20 jnb addone,kl acall next acall del20 jnb subone,k2 acall last acall del20 jnb play,kO Ijmp start ret
;调用延时子程序
;
;
djnz r4,del4
djnz r3,del20
ret
cont:inc 20h ;计数单元+1
mov thO,#Odbh ;重新10ms定时初值
mov tlO,#Offh
reti ;跳出中断
pause: acall del20
jnb ,pause ;
mov a,rO ;把RO的值给A
cpl a ;A值取反
mov rO,a
reti
datl:
db 3bh,20h,3bh,20h,30h,20h,33h,20h,3bh,80h,0ffh
db 3bh,20h,3bh,20h,26h,20h,2bh,20h,26h,80h,0ffh
db 26h,20h,26h,20h,20h,20h,26h,20h,2bh,20h,2bh,20h,30h,20h,33h,10h,33h,10h
db 3bh,60h,40h,20h,4ch,80h,0ffh
db 3bh,20h,3bh,20h,30h,20h,33h,20h,3bh,80h,0ffh
db 3bh,20h,3bh,20h,26h,20h,2bh,20h,26h,80h,0ffh
db 26h,20h,26h,20h,20h,20h,26h,20h,
音乐盒实验报告 来自淘豆网m.daumloan.com转载请标明出处.