电子音响单片机汇编设计.docx
- 文档编号:23440981
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:14
- 大小:50.91KB
电子音响单片机汇编设计.docx
《电子音响单片机汇编设计.docx》由会员分享,可在线阅读,更多相关《电子音响单片机汇编设计.docx(14页珍藏版)》请在冰豆网上搜索。
电子音响单片机汇编设计
课程设计报告
学院:
信息工程学院
班级:
电信0801班
学生:
●
课程名称:
单片机课程设计
2011年12月31日
设计科目:
课程设计
学生姓名
●
性别
男
班级
电信0801
学号
200842XXXX
实习地点
中南分校信息工程学院
实习单位名称
武汉科技大学中南分校
课程设计指导人
肖若愚
陈少敏李登科
课程设计题目:
设计一个基于单片机的简单电子琴,要求能按键发出音符“1、2、3、4、5、6、7”。
基本要求:
1、完成PROTUES硬件电路设计。
2、完成电路焊接、程序设计。
3、完成设计调试及程序烧录(下载)
扩展要求:
编写电子音乐程序。
课程设计内容
1.电路原理图
图4.22.1
2.系统板硬件连线
(1.把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPKIN端口上;
(2.把“单片机系统“区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1-C4 R1-R4端口上;
3.相关程序内容
(1.4X4行列式键盘识别;
(2.音乐产生的方法;
一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。
现在以单片机12MHZ晶振为例,例出高中低音符与单片机计数T0相关的计数值如下表所示
音符
频率(HZ)
简谱码(T值)
音符
频率(HZ)
简谱码(T值)
低1 DO
262
63628
#4FA#
740
64860
#1 DO#
277
63731
中5SO
784
64898
低2 RE
294
63835
#5SO#
831
64934
#2RE#
311
63928
中6LA
880
64968
低3M
330
64021
#6
932
64994
低4FA
349
64103
中7SI
988
65030
#4FA#
370
64185
高1DO
1046
65058
低5SO
392
64260
#1DO#
1109
65085
#5SO#
415
64331
高2RE
1175
65110
低6LA
440
64400
#2RE#
1245
65134
#6
466
64463
高3M
1318
65157
低7SI
494
64524
高4FA
1397
65178
中1DO
523
64580
#4FA#
1480
65198
#1DO#
554
64633
高5SO
1568
65217
中2RE
587
64684
#5SO#
1661
65235
#2RE#
622
64732
高6LA
1760
65252
中3M
659
64777
#6
1865
65268
中4FA
698
64820
高7SI
1967
65283
下面我们要为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据
低音0-19之间,中音在20-39之间,高音在40-59之间
TABLE:
DW0,63628,63835,64021,64103,64260,64400,64524,0,0
DW0,63731,63928,0,64185,64331,64463,0,0,0
DW0,64580,64684,64777,64820,64898,64968,65030,0,0
DW0,64633,64732,0,64860,64934,64994,0,0,0
DW0,65058,65110,65157,65178,65217,65252,65283,0,0
DW0,65085,65134,0,65198,65235,65268,0,0,0
DW0
2、音乐的音拍,一个节拍为单位(C调)
曲调值
DELAY
曲调值
DELAY
调4/4
125ms
调4/4
62ms
调3/4
187ms
调3/4
94ms
调2/4
250ms
调2/4
125ms
对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。
下面就用AT89S51单片机产生一首“生日快乐”歌曲来说明单片机如何产生的。
在这个程序中用到了两个定时/计数器来完成的。
其中T0用来产生音符频率,T1用来产生音拍。
4.程序框图
图4.22.2
5.汇编源程序
keybufequ30h
sth0equ31h
stl0equ32h
tempequ33h
org00h
ljmpstart
org0bh
ljmpint_t0
start:
movtmod,#01h
setbet0
setbea
wait:
movp3,#0ffh
clrp3.4
mova,p3
anla,#0fh
xrla,#0fh
jznokey1
lcalldely10ms
mova,p3
anla,#0fh
xrla,#0fh
jznokey1
mova,p3
anla,#0fh
cjnea,#0eh,nk1
movkeybuf,#0
ljmpdk1
nk1:
cjnea,#0dh,nk2
movkeybuf,#1
ljmpdk1
nk2:
cjnea,#0bh,nk3
movkeybuf,#2
ljmpdk1
nk3:
cjnea,#07h,nk4
movkeybuf,#3
ljmpdk1
nk4:
nop
dk1:
mova,keybuf
movdptr,#table
movca,@a+dptr
movp0,a
mova,keybuf
movb,#2
mulab
movtemp,a
movdptr,#table1
movca,@a+dptr
movsth0,a
movth0,a
inctemp
mova,temp
movca,@a+dptr
movstl0,a
movtl0,a
setbtr0
dk1a:
mova,p3
anla,#0fh
xrla,#0fh
jnzdk1a
clrtr0
nokey1:
movp3,#0ffh
clrp3.5
mova,p3
anla,#0fh
xrla,#0fh
jznokey2
lcalldely10ms
mova,p3
anla,#0fh
xrla,#0fh
jznokey2
mova,p3
anla,#0fh
cjnea,#0eh,nk5
movkeybuf,#4
ljmpdk2
nk5:
cjnea,#0dh,nk6
movkeybuf,#5
ljmpdk2
nk6:
cjnea,#0bh,nk7
movkeybuf,#6
ljmpdk2
nk7:
cjnea,#07h,nk8
movkeybuf,#7
ljmpdk2
nk8:
nop
dk2:
mova,keybuf
movdptr,#table
movca,@a+dptr
movp0,a
mova,keybuf
movb,#2
mulab
movtemp,a
movdptr,#table1
movca,@a+dptr
movsth0,a
movth0,a
inctemp
mova,temp
movca,@a+dptr
movstl0,a
movtl0,a
setbtr0
dk2a:
mova,p3
anla,#0fh
xrla,#0fh
jnzdk2a
clrtr0
nokey2:
movp3,#0ffh
clrp3.6
mova,p3
anla,#0fh
xrla,#0fh
jznokey3
lcalldely10ms
mova,p3
anla,#0fh
xrla,#0fh
jznokey3
mova,p3
anla,#0fh
cjnea,#0eh,nk9
movkeybuf,#8
ljmpdk3
nk9:
cjnea,#0dh,nk10
movkeybuf,#9
ljmpdk3
nk10:
cjnea,#0bh,nk11
movkeybuf,#10
ljmpdk3
nk11:
cjnea,#07h,nk12
movkeybuf,#11
ljmpdk3
nk12:
nop
dk3:
mova,keybuf
movdptr,#table
movca,@a+dptr
movp0,a
mova,keybuf
movb,#2
mulab
movtemp,a
movdptr,#table1
movca,@a+dptr
movsth0,a
movth0,a
inctemp
mova,temp
movca,@a+dptr
movstl0,a
movtl0,a
setbtr0
dk3a:
mova,p3
anla,#0fh
xrla,#0fh
jnzdk3a
clrtr0
nokey3:
movp3,#0ffh
clrp3.7
mova,p3
anla,#0fh
xrla,#0fh
jznokey4
lcalldely10ms
mova,p3
anla,#0fh
xrla,#0fh
jznokey4
mova,p3
anla,#0fh
cjnea,#0eh,nk13
movkeybuf,#12
ljmpdk4
nk13:
cjnea,#0dh,nk14
movkeybuf,#13
ljmpdk4
nk14:
cjnea,#0bh,nk15
movkeybuf,#14
ljmpdk4
nk15:
cjnea,#07h,nk16
movkeybuf,#15
ljmpdk4
nk16:
nop
dk4:
mova,keybuf
movdptr,#table
movca,@a+dptr
movp0,a
mova,keybuf
movb,#2
mulab
movtemp,a
movdptr,#table1
movca,@a+dptr
movsth0,a
movth0,a
inctemp
mova,temp
movca,@a+dptr
movstl0,a
movtl0,a
setbtr0
dk4a:
mova,p3
anla,#0fh
xrla,#0fh
jnzdk4a
clrtr0
nokey4:
ljmpwait
dely10ms:
movr6,#10
d1:
movr7,#248
djnzr7,$
djnzr6,d1
ret
int_t0:
movth0,sth0
movtl0,stl0
cplp1.0
reti
table:
db3fh,06h,5bh,4fh,66h,6dh,7dh,07h
db7fh,6fh,77h,7ch,39h,5eh,79h,71h
table1:
dw64021,64103,64260,64400
dw64524,64580,64684,64777
dw64820,64898,64968,65030
dw65058,65110,65157,65178
end
自我小结
通过这次的课程设计,让我学习到很多单片机方面的知识以及其应用,同时也发现不少问题。
本次的设计过程是一个从无到有的过程,虽然过程艰辛,但也让我受益良多。
我深刻认识到要开发单片机的应用,不但要掌握单片机硬件和软件方面的知识,而且还要深入了解各应用系统的专业知识,只有将这两方面的知识融会贯通和有机结合,才能设计出优良的应用系统。
通过这次课程设计我更深入的了解了单片机的知识,我要更加努力的学习相关知识。
努力掌握该门知识,学以致用。
指导人评语
指导人签名
2011年月日
实习答辩成绩:
优良中及格不及格
课程设计鉴定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 音响 单片机 汇编 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)