单片机课程设计电子琴

发布时间 : 星期六 文章单片机课程设计电子琴更新完毕开始阅读

简易电子琴设计

图4-1 软件程序流程图

4.2上位机软件

本系统的上位机软件主要是编辑电子琴播放状态的内容,在设计中采用汇编

语言编写了电子琴控制系统控制和播放内容的程序。

ORG 0000H LJMP MAIN ORG 000BH LJMP INT_T0 ORG 0100H

MAIN:

MOV SP,#60H ;初始化堆栈指针 MOV 30H,#00 ;定时器初值清零 MOV 31H,#00

8

简易电子琴设计

MOV P1,#0FFH ;设置P1口为输入模式 MOV TMOD,#01H ;设置定时器0为工作模式1 SETB ET0 ;开定时器0中断 SETB EA ;开总中断 CLR TR0 ;关闭定时器0 START:

MOV R0, P2

CJNE R0,#0FFH,KEY1 ;键盘扫描 CLR TR0 SJMP KEY1:

CJNE MOV MOV LJMP KEY2:

CJNE MOV MOV LJMP KEY3:

CJNE MOV MOV LJMP KEY4:

CJNE MOV MOV LJMP KEY5:

CJNE MOV MOV LJMP KEY6:

CJNE MOV MOV LJMP KEY7:

CJNE

START R0,#0FEH,KEY2 ;K1键按下 30H,#0FBH ;设置音阶1 31H,#0E9H SET_TIMER

R0,#0FDH,KEY3 ;K2键按下 30H,#0FCH ;设置音阶2 31H,#5CH SET_TIMER R0,#0FBH,KEY4 ;K3键按下 30H,#0FCH ;设置音阶3 31H,#0C1H SET_TIMER

R0,#0F7H,KEY5 ;K4键按下 30H,#0FCH ;设置音阶4 31H,#0EFH SET_TIMER R0,#0EFH,KEY6 ;K5键按下 30H,#0FDH ;设置音阶5 31H,#045H SET_TIMER

R0,#0DFH,KEY7 ;K6键按下 30H,#0FDH ;设置音阶6 31H,#92H SET_TIMER R0,#0BFH,KEY8 ;K7键按下

9

简易电子琴设计

MOV 30H,#0FDH ;设置音阶7 MOV 31H,#0D6H LJMP SET_TIMER

KEY8:

CJNE R0,#7FH,NOKEY ;K8按下 MOV 30H,#0FDH ;设置音阶8 MOV 31H,#0FBH SET_TIMER:

SETB TR0 ;发声 SJMP START NOKEY:

CLR TR0 ;无键按下 SJMP START

INT_T0: ;T0中断服务程序 MOV TH0,30H ;定时器赋初值 MOV TL0,31H

CPL P1.0 ;输出方波 RETI END

5 系统调试与测试结果分析

5.1 使用的仪器仪表

单片机仿真器 KEILC 蜂鸣器 LS1

5.2 系统调试

10

简易电子琴设计

根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试:中心控制模块的调试,音乐播放模块的调试,按键控制模块的调试等,最后将各模块组合后进行整体测试。 5.2.1硬件调试

对各个模块的功能进行调试,主要调试各模块能否实现指定的功能。 5.2.2软件调试

软件调试采用单片机仿真器KEILC及微机,将编好的程序进行调试,主要是检查语法错误。 5.2.3硬件软件联调

将调试好的硬件和软件进行联调,主要调试系统的实现功能。

5.3 测试结果

此次系统设计结果较好,分别播动8个按键会发出8种高低不同的声音,如果送入音乐程序,则会播放歌曲。

总结

经过两周的忙碌,我的电子琴终于仿真成功.虽然失败了几次,但经过老师对

硬件连接图的纠正,自己又调整.了程序最后终于方仿真成功.心情很激动,一方面:觉得很有成就感;另一方面:收获很大,:不但锻炼了编程的能力,而且通过编程对硬件的整个流程了解了。在仿真过程中,我犯了两个低级错误:一个是用了没有模型的元件,另一个是喇叭可以不用驱动就能发出声音。经老师提醒,我改正了连接图。结果成功了。用单片机控制播放模块和按键控制模块制作出的电子琴,结构简单,可靠性高,并且价格低廉,具有实用的价值。这种电子琴能够支持单音和复音弹奏,如果与高品质的音源芯片连接,音质更可与高档电子琴相媲

11

联系合同范文客服:xxxxx#qq.com(#替换为@)