单片机简易电子琴课程设计.docx
- 文档编号:515150
- 上传时间:2022-10-10
- 格式:DOCX
- 页数:13
- 大小:118.23KB
单片机简易电子琴课程设计.docx
《单片机简易电子琴课程设计.docx》由会员分享,可在线阅读,更多相关《单片机简易电子琴课程设计.docx(13页珍藏版)》请在冰豆网上搜索。
单片机简易电子琴课程设计
单片机简易电子琴课程设计
哈尔滨理工大学
单片机原理及接口技术
课程设计报告
设计题目:
简易电子琴实验
专业:
电机与电器
班级:
电机10-3
姓 名:
朱明海
学号:
1030350312
简易电子琴实验
1、课程设计目的与要求
1、掌握蜂鸣器的使用方法;
2、掌握蜂鸣器的不同发音的方法;
3、通过本次课程设计加深对单片机课程的认识和掌握,对单片机的应用做进一步了解。
2、课程设计设备
STAR序列试验仪一套、PC机一台
3、课程设计内容
1、简易电子琴原理
(1)蜂鸣器输入不同频率的方波,会发出不同的声音;
(2)通过按键,由单片机控制产生不同频率的方波,从而发出不同的声音。
2、课程设计过程
(1)通过单片机,是G6区的1-7号键由低到高发出1-7的音阶。
4、课程设计原理图
5、课程设计框图
主程序:
节拍1子程序(手动按键时用)节拍2子程序(手动按键时用)
节拍3子程序(手动按键时用)节拍4子程序(手动按键时用)
节拍5子程序(手动按键时用)节拍6子程序(手动按键时用)
节拍7子程序(手动按键时用)节拍1子程序(自动放音时用,时间约0.2s)
开始
节拍2子程序(自动放音时用,时间约0.2s)节拍3子程序(自动放音时用,时间约0.2s)
节拍4子程序(自动放音时用,时间约0.2s)节拍5子程序(自动放音时用,时间约0.2s)
节拍6子程序(自动放音时用,时间约0.2s)节拍7子程序(自动放音时用,时间约0.2s)
Y
N
0->P1.7
延时150us
计数器-1
1->P1.7
延时150us
开始
1420->计数器
计数器-1=0
返回
6、课程设计步骤
1、主机连线说明
D1区:
Ctrl
—
A3区:
P1.7
G6区:
JP74
—
A3区:
JP51(P1口)
2、运行程序,按G6区的1-7号键,输出7种音阶。
3、使用G6区的1-7号键,自弹一首歌曲。
7、课程设计演示程序
K1BITP1.0;按键1
K2BITP1.1;按键2
K3BITP1.2;按键3
K4BITP1.3;按键4
K5BITP1.4;按键5
K6BITP1.5;按键6
K7BITP1.6;按键7
BuzzerBITP1.7;蜂鸣器
M1EQU17
M2EQU16
M3EQU15
M4EQU14
M5EQU13
M6EQU12
M7EQU11
ORG0000H
LJMPSTART
ORG0100H
START:
MOVSP,#60H
MAIN:
MOVP1,#0FFH;P1口初始化
LCALLDemo;播放一段演示音乐
MAIN_1:
JBK1,MAIN_2;判断1号键是否按下,否则检测2号键
LCALLSound1;发音子程序
MAIN_2:
JBK2,MAIN_3;判断2号键是否按下,否则检测3号键
LCALLSound2;发音子程序
MAIN_3:
JBK3,MAIN_4;判断2号键是否按下,否则检测4号键
LCALLSound3;发音子程序
MAIN_4:
JBK4,MAIN_5;判断4号键是否按下,否则检测5号键
LCALLSound4;发音子程序
MAIN_5:
JBK5,MAIN_6;判断5号键是否按下,否则检测6号键
LCALLSound5;发音子程序
MAIN_6:
JBK6,MAIN_7;判断6号键是否按下,否则检测7号键
LCALLSound6;发音子程序
MAIN_7:
JBK7,MAIN_73;判断7号键是否按下,否则跳回检测1号键
LCALLSound7;发音子程序
MAIN_73:
SJMPMAIN_1;返回从1号键开始扫描
;播放演示音乐
Demo:
MOVDPTR,#Music
Demo_1:
CLRA
MOVCA,@A+DPTR
INCDPTR
JZDemo_Ret
LCALLSoundMCU;放音子程序
JMPDemo_1
Demo_Ret:
RET
;乐曲:
),0-结果标志
Music:
DBM1,M2,M3,M4,M5,M6,M7,M7,M7,M6,M5,M4,M3,M2,M1
DBM1,M2,M1,M2,M3,M2,M3,M4,M3,M4,M5,M4,M5,M6,M5
DBM6,M7,M6,M7,M7,M6,M6,M6,0
;程序控制发音
SoundMCU:
MOVR5,#40H;控制放音时间
MOVR7,A
ACALLTime
MOVR6,A
SoundMCU_0:
PUSH06H
SoundMCU_1:
ACALLMusicalScale
DJNZR6,SoundMCU_1
POP06H
DJNZR5,SoundMCU_0
RET
;计算时长
Time:
MOVB,#0FFH
XCHA,B
DIVAB
XCHA,B
CJNEA,#8,$+3
JCTime_1
INCB
Time_1:
XCHA,B
RET
MusicalScale:
MOVA,R7
MusicalScale1:
CLRBuzzer;1号键发音
LCALLDelay;延时
DJNZACC,MusicalScale1
MOVA,R7
MusicalScale2:
SETBBuzzer
LCALLDelay;延时
DJNZACC,MusicalScale2
RET
;1号键发音
Sound1:
MOVR7,#M1;发音频率,越大频率越低
Sound1_1:
ACALLMusicalScale
JNBK1,Sound1_1
RET
;2号键发音
Sound2:
MOVR7,#M2;发音频率,越大频率越低
Sound2_1:
ACALLMusicalScale
JNBK2,Sound2_1
RET
;3号键发音
Sound3:
MOVR7,#M3
Sound3_1:
ACALLMusicalScale
JNBK3,Sound3_1
RET
;4号键发音
Sound4:
MOVR7,#M4
Sound4_1:
ACALLMusicalScale
JNBK4,Sound4_1
RET
;5号键发音
Sound5:
MOVR7,#M5
Sound5_1:
ACALLMusicalScale
JNBK5,Sound5_1
RET
;6号键发音
Sound6:
MOVR7,#M6
Sound6_1:
ACALLMusicalScale
JNBK6,Sound6_1
RET
;7号键发音
Sound7:
MOVR7,#M7;发音频率,越大频率越低
Sound7_1:
ACALLMusicalScale
JNBK7,Sound7_1
RET
;延时
Delay:
NOP
RET
END
8、课程设计心得体会与总结
通过简易电子琴的课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。
创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。
使之不断地战胜别人,超越前人。
同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。
设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。
在这次设计过程中,能发现做事情需要综合运用知识的,要体会到学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。
理论结合实际,思想依靠操作。
我们学习的理论知识需要加以运用到实际才算学成。
这次课程设计的顺利完成,不仅是同学的帮助更有老师的指点,我进行课程设计中遇到的一些问题,在老师的辛勤帮助下,都慢慢解决了。
感谢老师和同学们的帮助支持是我能完整的进行完此次课程设计。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 简易 电子琴 课程设计