单片机课程设计

大庆石油学院课程设计

课程单片课程设计

题目简易电子琴设计

院系电气信息工程学院测控系

专业班级测控技术与仪器专业06-1班

学生姓名刘洁

学生学号060601240105

指导教师曹广华宋金波

2009年7 月17 日

大庆石油学院课程设计任务书

课程单片机课程设计

题目简易电子琴设计

专业测控技术与仪器姓名刘洁学号060601240105 一、任务

设计一个基于AT89C51单片机的简易电子琴。

二、设计要求

[1] 利用所给键盘的八个键,能够发出8个不同的音调,并且要求按下按键发声,松开延时一段时间停止,中间再按别的键则发另一音调的声音。

[2] 当系统扫描到键盘上有键被按下,则快速检测出是哪一个键被按下,然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有另一个键被按下,则启用中断系统,前面键的发音停止,转到后按的键的发音程序,发出后按的键的音。

三、参考资料

[1] 刘国钧,陈绍业,王凤翥.图书馆目录[M].北京:高等教育出版社,1957.15-18.

[2] 刘润华,刘立山.模拟电子技术[J].山东:石油大学出版社,2003.

[3] 苏成富.彩灯控制器[J].北京:电机电器技术,2000,(01).

[4] 祝富林.音乐彩灯电路CS9482[J].北京:电子世界,1995,(12).

[5] 彭介华.电子技术课程设计指导[J].北京:高等教育出版社,1997.

完成期限 2009.7.6至2009.7.17

指导教师曹广华宋金波

专业负责人曹广华

2009年 7 月 6 日

目录

1 引言 (3)

1.1电子琴概述 (3)

1.2电子琴技术状况 (3)

1.3本设计任务 (4)

2 总体方案论证与设计 (5)

2.1 播放模块 (5)

2.2按键控制模块 (5)

2.3总体硬件组成框图 (5)

3 系统硬件设计 (6)

3.1 中心控制模块的硬件设计 (6)

3.2 播放模块的硬件设计 (6)

3.3 按键控制模块的硬件设计 (6)

4 系统的软件设计 (8)

4.1 下位机软件流程 (8)

4.2上位机软件 (9)

5 系统调试与测试结果分析 (11)

5.1 使用的仪器仪表 (11)

5.2 系统调试 (11)

5.3 测试结果 (11)

总结 (12)

参考文献 (13)

附录1 (14)

附录2 (16)

课程设计成绩评价表. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1 引言

在电子音乐领域,自从20世纪末期MIDI(乐器数字化接口)推出和逐步规范化后,各种乐器及众多数码音视频产品中采用MIDI技术已逐渐成为一种潮流。但是当前各厂商的电子琴产品通常使用自己设计的专用音源,并且软硬件均不对外公开,阻碍了MIDI技术的交流。作者在开发基于MIDI模块的音乐发生器的过程中,进行了用单片机控制通用MIDI音源模块的相关功能制作电子琴的实践,制作出具有8个按键的 MIDI电子琴,该琴支持单音和复音弹奏,单片机以标准的MIDI波特率传送信息,通过串口连接蜂鸣器,从而获得优美的乐音。

1.1电子琴概述

键盘乐器,采用半导体集成电路,对乐音信号进行放大,通过扬声器产生音响。发音音量可以自由调节。音域较宽,和声丰富,甚至可以演奏出一个管弦乐队的效果,表现力极其丰富。它还可模仿多种音色,甚至可以奏出常规乐器所无法发出的声音(如人声,风雨声等)。另外,电子琴在独奏时,还可随意配上类似打击乐音响的节拍伴奏,适合于演奏节奏性较强的现代音乐。另外,电子琴还安装有混响、回声、延长音、震音和颤音等多项功能装置,表达各种情绪时运用自如。

电子琴是电声乐队的中坚力量,常用于独奏主旋律并伴以丰富的和声。还常作为独奏乐器出现,具有鲜明时代特色。但电子琴的局限性也十分明显:旋律与和声缺乏音量变化,过于协和、单一;在模仿各类管、弦乐器时,音色还不够逼真,模仿提琴类乐器的音色时,失真度更大,还需要不断改进。电子琴的演奏有较大一部分是通过自动和弦伴奏来配合完成的,在音乐中和弦的连接推动了旋律地进行,不同的和声连接,形成了不同的音乐色彩。

1.2电子琴技术状况

本次设计提出了用AT89C51单片机为核心控制元件,设计一个简易的电子琴. 本方案以AT89C51单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块在主控模块上设有16个按键和扬声器.根据使用者的操作随意弹奏

想要表达的音乐。一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号。

1.3本设计任务

利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出8个不同的音调,并且要求按下按键发声,松开延时一段时间停止,中间再按别的键则发另一音调的声音。当系统扫描到键盘上有键被按下,则快速检测出是哪一个键被按下,然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有另一个键被按下,则启用中断系统,前面键的发音停止,转到后按的键的发音程序,发出后按的键的音。

2 总体方案论证与设计

本系统采用单片机AT89C51为电子琴的控制核心,系统主要包括播放模块、按键控制模块。下面对各模块的设计逐一进行论证比较。

2.1 播放模块

播放模块是喇叭构成。它几乎不存在噪声,音响效果较好。而且由于所需驱动功率较小,且价格低廉,所以,被广泛应用。

2.2按键控制模块

电子琴设有8个按键,其中7个作为音符输入,另外1个作为模式转换按键,实现用户自弹作曲。7个按键分别代表7个音符,包括中音段的全部音符。通过软硬件设计,模式转换按键触发外部中断,中断使程序跳转,实现模式转换,启动电子琴。然后通过查询电子琴所按下的按键,读取电子琴输入状态,跳转到对应的程序人口,实现自编歌曲。当需要取消电子琴编曲功能时,再次按下模式转换按键引起外部中断.即可退出电子琴功能而返回原来按键播放处。

2.3总体硬件组成框图

图2-1 总体硬件组成框图

3 系统硬件设计

为使该模块化电子琴控制系统具有更加方便和灵活性,我们对系统的硬件做了精心设计。硬件电路包括中心控制模块、播放模块、按键控制模块三大模块。

3.1 中心控制模块的硬件设计

本次设计中中心控制模块是采用AT89C51单片机来控制整个系统。其中P1口作为输入口,连接蜂鸣器驱动电路,而P2口连接按键控制电路,从而实现播放音乐的功能。

3.2 播放模块的硬件设计

如下图所示,播放模块其实就是喇叭,它接到P1.0口上当有按键按下时,它就会发出声音..

图 3-1 播放模块硬件连接图

3.3 按键控制模块的硬件设计

在P.2口十连有8个按键并加有8个拉电阻.它们一端接5伏电源,一端接地.在仿真时,只要有一个键被按下,并被单片机扫描到,则会使播放器发出声音.

图 3-2按键控制连接图图3-2按键控制电路图

4 系统的软件设计

软件是该电子琴控制系统的重要组成部分,在系统的软件设计中我们也才用了模块化设计,将系统的各部分功能编写成子模块的形式,这样增强了系统软件的可读性和可移植性。

4.1 下位机软件流程

本系统中下位机(单片机89C51)的主要功能就是实现音乐播放功能。其主程序流程如图4-1所示。

图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

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 START

KEY1:

CJNE R0,#0FEH,KEY2 ;K1键按下

MOV 30H,#0FBH ;设置音阶1

MOV 31H,#0E9H

LJMP SET_TIMER

KEY2:

CJNE R0,#0FDH,KEY3 ;K2键按下

MOV 30H,#0FCH ;设置音阶2

MOV 31H,#5CH

LJMP SET_TIMER

KEY3:

CJNE R0,#0FBH,KEY4 ;K3键按下

MOV 30H,#0FCH ;设置音阶3

MOV 31H,#0C1H

LJMP SET_TIMER

KEY4:

CJNE R0,#0F7H,KEY5 ;K4键按下

MOV 30H,#0FCH ;设置音阶4

MOV 31H,#0EFH

LJMP SET_TIMER

KEY5:

CJNE R0,#0EFH,KEY6 ;K5键按下

MOV 30H,#0FDH ;设置音阶5

MOV 31H,#045H

LJMP SET_TIMER

KEY6:

CJNE R0,#0DFH,KEY7 ;K6键按下

MOV 30H,#0FDH ;设置音阶6

MOV 31H,#92H

LJMP SET_TIMER

KEY7:

CJNE R0,#0BFH,KEY8 ;K7键按下

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 系统调试

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

5.2.1硬件调试

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

5.2.2软件调试

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

5.2.3硬件软件联调

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

5.3 测试结果

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

总结

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

参考文献

[1] 张毅刚,彭喜元。单片机原理与应用[M](十)北京:高等教育出版社,2007.10

[2] 张毅刚。MCS-51单片机应用设计[M]。哈尔滨。哈尔滨工业大学出版,1999

[3] 李广弟。单片机基础[M]。北京:北京航天航空大学出版社,2001

[4] 杨振江。智能仪器与数据采集系统的新器件及应用[M]。西安:西安电子科技大学出版社,2001

[5] 彭介华.电子技术课程设计指导[J].北京:高等教育出版社,1997.

附录1 源程序

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP INT_T0

ORG 0100H

MAIN:

MOV SP,#60H ;初始化堆栈指针

MOV 30H,#00 ;定时器初值清零

MOV 31H,#00

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 START

KEY1:

CJNE R0,#0FEH,KEY2 ;K1键按下

MOV 30H,#0FBH ;设置音阶1

MOV 31H,#0E9H

LJMP SET_TIMER

KEY2:

CJNE R0,#0FDH,KEY3 ;K2键按下

MOV 30H,#0FCH ;设置音阶2

MOV 31H,#5CH

LJMP SET_TIMER

KEY3:

CJNE R0,#0FBH,KEY4 ;K3键按下

MOV 30H,#0FCH ;设置音阶3

MOV 31H,#0C1H

LJMP SET_TIMER

KEY4:

CJNE R0,#0F7H,KEY5 ;K4键按下

MOV 30H,#0FCH ;设置音阶4

MOV 31H,#0EFH

LJMP SET_TIMER

KEY5:

CJNE R0,#0EFH,KEY6 ;K5键按下

MOV 30H,#0FDH ;设置音阶5

MOV 31H,#045H

LJMP SET_TIMER

KEY6:

CJNE R0,#0DFH,KEY7 ;K6键按下

MOV 30H,#0FDH ;设置音阶6

MOV 31H,#92H

LJMP SET_TIMER

KEY7:

CJNE R0,#0BFH,KEY8 ;K7键按下

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

附录2 电子琴仿真图

图6-1 电子琴仿真电路图

大庆石油学院课程设计成绩评价表

指导教师:年月日

相关文档
最新文档