用单片机演奏电子乐曲课程设计报告-林星星-100706241
单片机课程设计实验报告(带歌曲的电子钟)
一、目的任务本课程设计是主干实践课。
课程的任务在于提高学生综合运用所学知识理论、分析解决问题的能力。
二、内容(1)题目带歌曲演奏的电子表(参考硬件25,P78)(2)要求a.利用8051单片机设计出具有时、分、秒显示的电子表。
b.在设定的时间到时,可以演奏一首歌曲。
c.可以定闹,闹钟是另一首歌曲。
(3)设计说明对于这个题目我选择的是汇编语言编程加韦福单片机仿真系统合作完成。
主要由两大模块组成,电子钟模块和歌曲模块,设计思想如下:电子钟模块:利用仿真器的六个LED显示当前时间,通过软件编程完成十分秒的计时,并在LED上同步的显示出来。
其中设置两个按键的功能,当A键按下时,从电子钟模块转换到手动键盘输入的界面,此时手动输入时间,当B键按下时,返回电子钟的界面继续计时并且显示。
歌曲模块:当手动键盘输入时间和当前时间相同时,调取歌曲的子程序,利用仿真器的扬声器放一首歌,本设计中是祝你平安,当歌曲播放完毕,继续回到电子钟的界面,继续计时并且显示。
(4)硬件设计(完整电路图),文字说明硬件的连接比较简单,只有两根线,即片选端CSO连接LED输入端,P3.6口连接扬声器的输入端,完整的电路图如下所示:(5)软件设计(程序框图,源程序(带注释)),文字说明程序框图:A键和B键的功能框图源程序:OUTBIT equ 08002h ; 位控制口OUTSEG equ 08004h ; 段控制口IN equ 08001h ; 键盘读入口LEDBuf equ 60h ; 显示缓冲LEDBuf1 equ 50h ; 显示缓冲Hour equ 40hMinute equ 41hSecond equ 42hC100us equ 43hSPK equ P3.6 ;扬声器接P3.6口Tick equ 10000T100us equ 256-50Num equ 70hljmp Start ;跳入主程序org 000bh ;定时器中断0入口地址jmp T0Intorg 001bh ;定时器中断1入口地址ljmp PPT0Int:push PSWpush ACCmov a, C100us+1jnz Goondec C100usGoon:dec C100us+1mov a, C100usorl a, C100us+1jnz Exitmov C100us, #high(Tick)mov C100us+1, #low(Tick)inc Secondmov a, Secondcjne a, #60, Exitmov Second, #0inc Minutemov a, Minutecjne a, #60, Exitmov Minute, #0inc Hourmov a, Hourcjne a, #24, Exitmov Hour, #0Exit:pop ACCpop PSWretiDelay: ; 延时子程序mov r7, #0DelayLoop:djnz r7, DelayLoopdjnz r6, DelayLoopretLEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h DisplayLED: ;显示程序mov r0, #LEDBufmov r1, #6 ; 共6个八段管mov r2, #00100000b ; 从左边开始显示Loop:mov dptr, #OUTBITmov a, #0movx @dptr, a ; 关所有八段管mov a, @r0mov dptr, #OUTSEGmovx @dptr,amov dptr, #OUTBITmov a, r2movx @dptr, a ; 显示一位八段管mov r6, #1call Delaymov a, r2 ; 显示下一位rr amov r2, ainc r0djnz r1, LoopretisplayLED1:mov r0, #LEDBuf1mov r1, #6 ; 共6个八段管mov r2, #00100000b ; 从左边开始显示DisplayLED1:mov r0, #LEDBuf1mov r1, #6 ; 共6个八段管mov r2, #00100000b ; 从左边开始显示Loop1:mov dptr, #OUTBITmov a, #0movx @dptr, a ; 关所有八段管mov a, @r0mov dptr, #OUTSEGmovx @dptr,amov dptr, #OUTBITmov a, r2movx @dptr, a ; 显示一位八段管mov r6, #1call Delaymov a, r2 ; 显示下一位rr amov r2, ainc r0djnz r1, Loop1retTestKey:mov dptr, #OUTBITmov a, #0movx @dptr, a ; 输出线置为0mov dptr, #INmovx a, @dptr ; 读入键状态cpl aanl a, #0fh ; 高四位不用retKeyTable: ; 键码定义db 16h, 15h, 14h, 0ffhdb 13h, 12h, 11h, 10hdb 0dh, 0ch, 0bh, 0ahdb 0eh, 03h, 06h, 09hdb 0fh, 02h, 05h, 08hdb 00h, 01h, 04h, 07hGetKey:mov dptr, #OUTBITmov P2, dphmov r0, #Low(IN)mov r1, #00100000bmov r2, #6KLoop:mov a, r1 ; 找出键所在列cpl amovx @dptr, acpl arr amov r1, a ; 下一列movx a, @r0cpl aanl a, #0fhjnz Goon1 ; 该列有键入djnz r2, KLoopmov r2, #0ffh; 没有键按下, 返回0ffhsjmp Exit1Goon1:mov r1, a ; 键值= 列X 4 + 行mov a, r2dec arl arl amov r2, a ; r2 = (r2-1)*4mov a, r1 ; r1中为读入的行值mov r1, #4loopz:rrc a ; 移位找出所在行jc Exit1inc r2 ; r2 = r2+ 行值djnz r1, LoopzExit1:mov a, r2 ; 取出键码mov dptr, #KeyTablemovc a, @a+dptrmov r2, aWaitRelease:mov dptr, #OUTBIT ; 等键释放clr amovx @dptr, amov r6, #10call Delaycall TestKeyjnz WaitReleasemov a, r2retToLED:mov dptr, #LEDMapmovc a, @a+dptrretStart: MOV SP,#50Hmov r4,#0mov TMOD, #12h ; 模式2, 定时器mov TH0, #T100usmov TL0, #T100usmov IE, #10001010b ; EA=1, IT0 = 1MOV TH1,#0D8HMOV TL1,#0EFH;MOV TMOD,#10Hmov Hour, #09mov Minute, #0mov Second, #0mov C100us, #high(Tick)mov C100us+1, #low(Tick)setb TR0 ; 启动定时器0MLoop:mov a, Hourmov b, #10div abcall ToLEDmov LEDBuf, a;将小时分开两位来显示mov a, bcall ToLEDmov LEDBuf+1, amov a, Minutemov b, #10div abcall ToLED;将分钟分开两位来显示mov LEDBuf+2, amov a, bcall ToLEDmov LEDBuf+3, amov a, Secondmov b, #10div abcall ToLED;将秒钟分开两位来显示mov LEDBuf+4, amov a, bcall ToLEDmov LEDBuf+5, acall DisplayLED ;调用显示程序cjne r4,#0,zzljmp xxloopzzloop:mov a,60h;对当前输入的时间和计时时间进行比较cjne a,50h,rrrmov a,61hcjne a,51h,rrrmov a,62hcjne a,52h,rrrmov a,63hcjne a,53h,rrrmov a,64hcjne a,54h,rrrmov a,65hcjne a,55h,rrrcall MUSIC0 ;相等即调用音乐程序mov r4,#0rrr: ljmp xxloop ;不相等调用显示程序xxloop: call DisplayLED ; 显示call TestKey ; 有键入?jz MLoop ; 无键入, 继续显示call GetKey ; 读入键码anl a, #0fh ; 显示键码mov dptr, #LEDMapmovc a, @a+dptrmov LEDBuf+5, acjne a,#77h, xxloop 判断A键是否被按下jjloop :mov LEDBuf+0, #0 ; 显示8.8.8.8.mov LEDBuf+1, #0mov LEDBuf+2, #0mov LEDBuf+3, #0mov LEDBuf+4, #0mov LEDBuf+5, #0t1P:call DisplayLED1 ; 显示call TestKe ; 有键入?jz t1p ; 无键入, 继续显示call GetKey ; 读入键码anl a, #0fh ; 显示键码mov dptr, #LEDMapmovc a, @a+dptrmov 50h,at2P:call DisplayLED ; 显示call TestKey ; 有键入?jz t2P ; 无键入, 继续显示call GetKey ; 读入键码anl a, #0fh ; 显示键码mov dptr, #LEDMapmovc a, @a+dptrmov 51h, at3P:call DisplayLED ; 显示call TestKey ; 有键入?jz t3P ; 无键入, 继续显示call GetKey ; 读入键码anl a, #0fh ; 显示键码mov dptr, #LEDMapmovc a, @a+dptrmov 52h, at4P:call DisplayLED ; 显示call TestKey ; 有键入?jz t4P ; 无键入, 继续显示call GetKey ; 读入键码anl a, #0fh ; 显示键码mov dptr, #LEDMapmovc a, @a+dptrmov 53h, at5P:call DisplayLED1 ; 显示call TestKey ; 有键入?jz t5P ; 无键入, 继续显示call GetKey ; 读入键码anl a, #0fh ; 显示键码mov dptr, #LEDMapmovc a, @a+dptrmov 54h, at6P:call DisplayLED1 ; 显示call TestKey ; 有键入?jz t6P ; 无键入, 继续显示call GetKey ; 读入键码anl a, #0fh ; 显示键码mov dptr, #LEDMapmovc a, @a+dptrmov 55h, ayyLoop:call DisplayLED1 ; 显示call TestKey ; 有键入?jz yyLoop ; 无键入, 继续显示call GetKey ; 读入键码anl a, #0fh ; 显示键码mov dptr, #LEDMapmovc a, @a+dptrmov LEDBuf+5, acjne a,#7ch,yyloop;判断B键是否被按下mov r4,#1ljmp mloopPP: INC 20H ;歌曲的子程序MOV TH1,#0D8HMOV TL1,#0EFHRETIMUSIC0: NOPMOV DPTR,#DATMOV 20H,#00HMUSIC1: NOPCLR AMOVC A,@A+DPTRJZ END0CJNE A,#0FFH,MUSIC5LJMP MUSIC3MUSIC5: NOPMOV num+6,AINC DPTRMOV A,#0MOVC A,@A+DPTRMOV num+7,ASETB TR1MUSIC2: NOPCPL SPKMOV A,num+6MOV num+3,ALCALL DELMOV A,num+7CJNE A,20H,MUSIC2MOV 20H,#00HINC DPTRLJMP MUSIC1 MUSIC3: NOPCLR TR1MOV num+2,#0DH MUSIC4: NOPMOV num+3,#0FFHLCALL DELDJNZ num+2,MUSIC4INC DPTRLJMP MUSIC1END0: NOP;MOV R2,#0FFHljmp mloopMUSIC6: MOV num+3,#00HLCALL DELDJNZ num+2,MUSIC6LJMP MUSIC0DEL: NOPDEL3: MOV num+4,#02H DEL4: NOPDJNZ num+4,DEL4NOPDJNZ num+3,DEL3RETNOPDA T: DB 26h,20h,20h,20hDB 20h,20h,26h,10hDB 20h,10h,20h,80hDB 26h,20h,30h,40hEND ;程序结束。
单片机音乐课程设计
单片机音乐课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理和编程方法,理解音乐信号产生的机理;2. 培养学生运用单片机实现音乐播放的基本技能,了解音符、节奏与编程之间的关系;3. 使学生掌握音乐基础知识,如音阶、音名、节拍等,并能将其运用到单片机音乐编程中。
技能目标:1. 培养学生动手操作能力,能独立完成单片机音乐编程和电路连接;2. 培养学生运用所学知识解决实际问题的能力,如设计具有一定音乐效果的程序;3. 提高学生的团队协作能力,通过分组合作完成课程设计任务。
情感态度价值观目标:1. 培养学生对单片机编程的兴趣和热情,激发其创新精神;2. 培养学生积极向上的学习态度,勇于面对挑战,不断探索新知识;3. 增强学生的集体荣誉感,培养其团结协作、互相帮助的品质。
本课程针对高年级学生,结合单片机技术和音乐知识,旨在提高学生的编程技能和实际操作能力。
通过本课程的学习,使学生能够将所学的单片机知识与音乐相结合,创作出具有个性化的音乐作品,培养学生的创新思维和团队协作能力。
同时,注重学生情感态度的培养,使其在学习过程中始终保持积极、主动的态度,为未来的学习和生活打下坚实基础。
二、教学内容1. 单片机基础理论:介绍单片机的组成、工作原理,重点讲解内部结构、指令系统、编程方法等;2. 音乐基础知识:讲解音阶、音名、节拍等基本概念,分析音乐信号产生的机理;3. 单片机音乐编程:结合教材相关章节,教授如何编写音乐播放程序,包括音符、节奏的控制;4. 电路设计与连接:指导学生设计音乐播放电路,学会使用相关电子元器件,完成电路连接;5. 实践操作:分组进行实际操作,让学生动手编写音乐程序,调试并优化程序;6. 创新设计:鼓励学生发挥创意,设计具有一定音乐效果的程序,展示个人作品;7. 团队协作:组织学生分组合作,共同完成课程设计任务,培养学生的团队协作能力。
教学内容按照教材章节进行安排,结合课程目标,注重理论与实践相结合。
基于单片机的电子琴设计报告-含有经典的程序案例
设计报告课程:微机接口技术与数字控制设计名称:基于单片机的电子琴设计小组成员:学号:专业:机械电子工程日期:指导老师:成绩:1 设计任务以生活中的电子琴为设计对象,实现音乐的按键控制功用。
尽量能弹奏出和谐而优美的旋律。
2 设计目的通过单片机电子琴的设计,更深层次的了解单片机技术。
熟悉单片机的控制功用和系统原理应用。
对系统设计与实用编程有进一步强化。
体验音乐的原理与魅力。
3 设计要求设计采用C语言编程控制,巧妙的运用单片机的定时器与中断功能,实现音乐的音频、节拍的实时控制。
具体要求如下:1)构造出微单片机的最小控制系统,能实现基本框架运作;2)学习音乐音符的发音原理与节拍原理,了解音乐的神奇效果,熟悉常用歌曲的歌谱,并为下面的相关实践打好理论基础;3)采用键盘设计理念,建立键符——音符的对应关系,巧妙运用音乐的频率特性,实现按键既得特定音符的功用;4)并增加按钮控制系统运作,数码管实现实时音符(按键)符显示的功能,使按键弹奏的效果更加人性化与和谐完美。
4 设计方案与技术分析4.1 某微机控制系统简介控制系统的整体设计框架,如图1所示。
图1 电子琴设计框架图设计中涉及被控对象模块和人机交互模块的电路设计,以及软件编程部分。
这将在后面的论述中逐一介绍。
本控制系统的整体设计图,如图2所示。
图2 控制系统整体设计硬件图上图为整体的电路设计,并利用PROTEUS进行了模拟仿真。
实现了预期效果。
设计中,选用两种工作模式:试音与弹奏。
通过两个按钮控制选取,并有相应的指示灯指示工作状态。
试音用于测试系统的可行性,选取童年歌曲“两只老虎”中的几句作为检测乐谱;弹奏模式下,通过4×4矩阵式键盘,完成美妙音乐的弹奏。
操作者可以按相应的键,弹奏出特定的音乐,实现作曲与奏乐的完美体验。
并且本设计中还添加了数码显示功能,用于显示实时的显示按下的键码,同时也与音符有内在的对应关系。
下面主要介绍,为何单片机可以实现美妙音乐的实时再现。
单片机电子琴实训报告
一、实训目的1. 熟悉单片机的基本原理和编程方法。
2. 学习电子琴的原理和结构。
3. 掌握基于单片机的电子琴设计方法。
4. 培养动手实践能力和创新意识。
二、实训内容1. 单片机原理与编程2. 电子琴原理与结构3. 单片机电子琴设计4. 单片机电子琴制作与调试三、实训过程1. 单片机原理与编程在实训初期,我们学习了单片机的基本原理和编程方法。
单片机是一种集成了CPU、存储器、输入/输出接口等功能的微型计算机,具有体积小、功耗低、成本低等特点。
我们学习了51系列单片机的结构、指令系统、程序设计方法等。
2. 电子琴原理与结构电子琴是一种通过电子电路发出不同音阶声音的乐器。
我们学习了电子琴的原理和结构,包括音源模块、键盘模块、音量控制模块等。
3. 单片机电子琴设计在设计阶段,我们根据所学知识,设计了基于单片机的电子琴。
具体如下:(1)硬件设计电子琴的硬件主要由单片机、键盘、蜂鸣器、音量控制模块等组成。
我们选择了STC89C51单片机作为核心控制单元,键盘采用矩阵键盘,蜂鸣器用于发出声音,音量控制模块用于调节音量。
(2)软件设计软件设计主要包括以下几个部分:1)初始化:设置单片机的工作模式、初始化定时器、初始化键盘扫描等。
2)键盘扫描:检测键盘是否被按下,并读取按键值。
3)音阶生成:根据按键值计算对应的频率,通过定时器产生PWM信号,驱动蜂鸣器发出声音。
4)音量控制:根据音量控制模块的输入,调节PWM信号的占空比,实现音量控制。
5)音乐播放:存储一首或多首歌曲,通过键盘控制播放、暂停、停止等操作。
4. 单片机电子琴制作与调试在制作阶段,我们根据设计方案,搭建了电子琴的硬件电路,并编写了相应的程序。
在调试过程中,我们遇到了以下问题:(1)键盘扫描不稳定:经过分析,发现是由于按键抖动引起的。
我们通过软件去抖动的方法解决了这个问题。
(2)音阶不准确:经过分析,发现是由于定时器设置不当引起的。
我们调整了定时器的计数值,使音阶更加准确。
基于单片机的音乐播放课程设计报告
目录一、引言—本课程设计的目的 (2)二、八路LED跑马灯实验 (2)2.1设计内容 (2)2.2电路图 (2)2.3上机程序 (3)2.4调试结果及结论: (4)三、二位数码管循环显示00~99的实验 (4)3.1设计内容 (4)3.2电路图 (4)3.3上机程序 (5)3.4调试结果及结论 (6)四、单片机演奏音乐实验 (6)4.1设计内容 (6)4.2电路图 (6)4.3上机程序 (7)4.4调试结果及结论 (9)五、心得体会 (9)六、参考文献 (10)摘要:由于单片机体积小、成本低、使用方便,所以被广泛地应用于仪器仪表、现场数据的采集和控制。
通过本次课程设计掌握单片机硬件和软件方面的知识,更深入的了解单片机的实际应用。
一、单片机课程设计的目的以本学期对单片机的学习和认识,并通过本次课程设计加以应用,从而达到一个对所学知识的巩固、更深一步的理解,面对一个电子设计,应对出系统的方案,分析出各个板块来,再对各个板块进一步的具体的设计,先进行硬件电路设计,此时一定要考虑好要用什么元件、各个元件的具体参数、是否能实现应有功能,从而得到一个完整的硬件电路。
在根据该电路设计出软件的功能模块、从而完成程序流程图,在根据流程图完成程序的设计,并通过反复的调试、运行、更正,直至完成既定功能为止,最后将软件、硬件结合进行调试、运行,对其功能进行最终测试,并反复思考其测试中遇到相应问题的原因,并将其一一处理,从而完成本次设计的实验要求,以及本次课程设计的最终目的。
二、八路LED跑马灯实验2.1设计内容:八路发光二极管轮流点亮的实验,也就是通常所说的跑马灯实验,首先让我们来完成必须的硬件部分,我们需要焊接上8个发光二极管和8个限流电阻,可以参考下面的原理图和实物图像进行操作,需要注意的是LED是有极性的,引脚长的为正极,引脚短的为负极,负极和电阻一侧连接,如果接错那么相应的那一路可能在实验中不会点亮了。
2.2电路图:.2.3上机程序:org 0000hajmp startorg 0030hstart:mov a,#7fhclr cmov r2,#08hloop: rrc amov p0,acall delaydjnz r2,loopmov r2,#07hloop1: rlc amov p0,acall delaydjnz r2,loop1jmp startdelay:d1: mov r4,#20d2: mov r5,#248djnz r5,$djnz r4,d2retend2.4调试结果及结论:八路发光二极管轮流点亮汇编语言的一大优势就是能够精确控制程序的执行时间,这在编写一些对时序要求严格的外围器件驱动时由为重要!三、二位数码管循环显示00~99的实验3.1设计内容:8段数码管显示.两位数码管显示00--99依次循环(动态扫描方式).p1做LED 显示数据输出口.p3.2;p3.3分别控制数码管个位数和十位数显示.用单片机进行数码显示应具有显示器件;应用最广泛的是8段数码管。
用单片机演奏电子乐曲课程设计报告 林星星 100706241
1、课程设计目的:我们学习了一个学期的单片机,这次课程设计就是以现有的基础和能力,利用本次设计加以运用,从而达到对所学知识的巩固,更深一步的理解,面对一个电子设计,应对出系统的方案,分析出各个板块来,在对各个板块进一步的具体的设计,先进行硬件电路设计,此时一定要考虑好要用什么元件、各个元件的具体参数、是否能实现应有功能,从而得到一个完整的硬件电路。
在根据该电路设计出软件的功能模块、从而完成程序流程图,在跟据程序流程图完成程序的设计,并通过反复的调试、运行、更正,直至完成既定功能为止,最后将软件,硬件结合进行调试、运行,对其功能进行最终测试,并反复思考其测试中遇到相应问题的原因,并将其一一处理,从而完成本次设计的实验要求,以及本次课程设计的最终目的。
本课程设计教学根据课程的教学大纲的要求和单片机原理与接口实验室建设所提供的条件,安排了单片机控制系统的设计课题,从而使我们更好地掌握课堂学习的理论知识,掌握基本实践技能,并能进行一定的综合应用和探索。
通过课程设计的教学,使我们巩固和深化已学的理论知识,加强综合应用能力,训练学生掌握分析问题、解决问题的方法,培养较强的动手能力和一定的单片机应用系统的设计和调试能力。
2、课程设计要求:本次课程设计要求在一周的时间内利用实验室的现有条件或者自己的设备完成程序的编写和调试,具体要求如下:1、设计题目都需要进行硬件设计和软件设计,并调试成功;2、设计的硬件电路要包含I/O设备,并使用I/O功能;3、尽可能使用单片机的定时计数器和中断资源4、硬件可使用THDPJ-1/2型单片机开发综合实验箱,也可使用自己的硬件电路5、可用C51或汇编语言编程3、设计题目分析3.1 题目简介用单片机演奏电子乐曲,相当于制作一个带有录音播放功能的电子琴。
电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。
它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。
单片机音乐播放实验报告
课程设计课程名称微机原理与单片机技术实践题目名称单片机制作与音乐播放学生学院自动化学院专业级电子产品学生卡学生指导教师学习MCU制作和音乐播放课程设计的内容1. 使用面包板焊接PIC单片机的最小系统,包括晶振、复位电路、按键、LED灯。
2.独立添加新模块。
3、编写程序驱动单片机工作。
2. 课程设计要求和数据1、焊板所需原理图:复位晶振LED灯蜂鸣器2. 音乐播放所需的信息。
摘要:利用16F877A 单片机原理和控制原理设计了八音盒的硬件电路,并使用16位单片机语言进行编程。
通过控制单片机的定时器产生不同频率的方波,驱动扬声器发出不同音调的音乐,然后利用延时来控制发声时间的长短。
该程序通过将乐谱转换为相应的时间常数来驱动发声设备播放悦耳的音乐。
这种控制电路结构简单,可靠性高,适用性强;软件程序适应范围广,只需要针对不同的音乐改变相应的定时常数即可。
音乐是如何产生的:一首音乐是由许多不同的音阶组成的,每个音阶对应不同的频率,这样我们就可以利用不同频率的组合来形成我们想要的音乐。
频率很方便。
我们可以使用微控制器的定时器/计数器T0来产生这样的方波频率信号。
因此,我们只需要修正一首歌曲的音阶之间的频率关系。
现在以单片机的12MHZ 晶振为例,单片机的高、中、低音符相关的计数值和计数T0如下表4.1所示:表 4.1 与单片机计数 T0 相关的高、中、低音符的计数值笔记对应PR2值 笔记 对应PR2值 M_1119 M_2 105 M_394 M_5 79 M_670 H_1 59 L_5 158 L_6 141如表4.2:音乐的节拍,一拍为单位(C 键)表 4.2 音乐节拍 调整值延迟 调整值 延迟 调4/4125毫秒 调4/4 62毫秒 调3/4187毫秒 调3/4 94 毫秒 调2/4250毫秒 调2/4 125毫秒对于不同的曲调,我们也可以使用单片机的另一个定时器/计数器来完成。
代码的发音部分在程序中实现,由单片机的一个引脚输出。
基于单片机的电子琴课程设计报告书
本科课程设计课程名称:单片机原理与接口技术设计项目:简易电子琴设计实验地点:跨越机房专业班级:通信0901 学号: 2009001330 学生:田野同组人:刚瑛梁邦爽指导教师:武娟萍2012年 05月 26日一、设计目的本设计以AT89C51单片机为核心,采用常用电子器件设计。
要求最少8个按键,每个按键对应一种音调,按下按键发声,松开按键后声音延迟一段时间后停止,即带余音的电子琴,延时时间可以设置,要求最少8个不同音调,可以采用标准的音调设计。
本次课程设计主要研究基于AT89C51单片机的简易电子琴设计二、设计器材AT89C51,蜂鸣器,PNP型三极管,晶振,独立按键三、总体设计方案1.设计思路此次设计硬件电路分四大模块较为简单,主要由独立按键、单片机AT89C51、音频功放及扬声器构成。
以AT89C51为主控器件,对其进行编译,达到我们的设计要求。
对于软件部分下面有详细介绍。
2.电路总设计框图如图1:图1 电路总设计框图3.音频放大电路在一定频率围,具有固定频率的振动就能产生音乐,但是单片机产生的音频脉冲直接驱动扬声器并不能产生所要实现的音乐,因为他没有足够的驱动能力,需要音频功率放大电路。
这里选用PNP型三极管来驱动蜂鸣器,是音响效果更为理想,音频功放电路接口如图2所示:图2 音频放大电路4.音乐播放电路对于播放一首固定音乐,不仅要知道音符也要知道节拍,对应节拍延时时间设定表,对单片机进行编程就可以实现功能。
放歌产生电路如图3,其中单片机的P3.0口控制音乐开始播放控制端口,P3.2口是控制音乐停止播放的控制端口,当小按键S10按下时P3.0口获得低电平,音乐开始重复播放,当小按键S9按下时,P3.2口获得低电平,经过单片机的处理,音乐停止播放,单片机回到最初工作状态。
而P2口的每个端口都连接一个按键,分别控制1,2,3,4,5,6,7,˙1八个不同的音符。
图3 音乐播放电图5.总体电路图如下图:图4 总体电路图,四、设计原理分析1.产生声音的方法:只要让扬声器通过产生大小变化的电流(脉动电流或交流),就能使扬声器发出声音,因此若以程序不断的输出1—0—1—0—1……就可以令扬声器发出声音,由于MCS—51系列的输出端口输出电流不够大,所以必须加上晶体管把电流放大后再驱动扬声器,如图2所示。
基于单片机的电子琴设计_毕业设计
湄洲湾职业技术学院基于单片机的电子琴设计系别:自动化工程系年级: 10级专业:电气自动化姓名:林家家学号: 1001010111导师姓名:许振龙职称:讲师2013年5月29日目录1.前言............................................................. - 1 - 2.系统设计技术参数要求............................................. - 2 -2.1设计要求..................................................... - 2 - 3.系统设计......................................................... - 3 -3.1系统设计总框图............................................... - 3 -3.2各模块原理说明............................................... - 3 -3.3系统总原理图说明............................................. - 4 -3.4系统印刷电路板的制作图....................................... - 5 -3.5系统的操作说明............................................... - 5 -3.6系统操作注意事项............................................. - 5 - 系统设计参考文献........................................ 错误!未定义书签。
致谢词.............................................................. - 6 - 附录............................................................... - 8 - 附录1.电路总原理图.............................................. - 8 - 附录2.电路元件清单.............................................. - 9 - 附录3.程序...................................................... - 9 -1. 前言单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。
课程设计报告---基于单片机的电子琴设计
课程设计报告---基于单片机的电子琴设计河南理工大学《单片机应用与仿真训练》设计报告基于单片机的电子琴设计姓名:郭鹏超王芳学号:310808010609 310808010602专业班级:电气08-6班指导老师:王莉所在学院:电气工程与自动化学院2012年5月19 日摘要当代,爱好音乐的人越来越多,有不少人自己练习弹奏乐器作为业余爱好和一种放松的手段,鉴于一些乐器学习难度大需要太多的学习时间,且其价格又太过于高昂,使得一部分有这种想法的人不得不放弃这种想法。
而一些简易的电子乐器价格相对便宜,学习上手快,一般人容易负担的起,能够满足一般爱好者的需求,故简易电子琴的研制具有一定的社会意义。
本次课程设计主要研究基于AT89S52单片机的简易电子琴设计。
整个系统主要包括以下几个部分组成:(1)单片机的最小系统:最小应用系统设计是单片机应用系统的设计基础。
它包括单片机的选择、时钟系统设计、复位电路设计、简单的I/O口扩展、掉电保护等。
(2)矩阵键盘:当按键数目较多时,为了节省I/O口线,通常采用矩阵式键盘接口电路。
本设计采用5*8矩阵键盘(共40个按键,其中36个按键用来显示高中低音的1、1#、2、2#、3、4、4#、5、5#、6、6#、7的36个音调,其它4个按键可以随意的播放已存歌曲)。
(3)产生外部中断的系统:它由两个四输入与非门74LS20和一个两输入或非门74LS02组成,把矩阵的五行与与非门74LS20和或非门74LS02相接后接在了单片机的P3.2口,下降沿触发产生中断INT0。
(4)发音电路:此电子琴发音电路是由或非门来驱动扬声器发音的,控制单片机的P2.7口产生不同频率使扬声器发出不同的音调。
本文主要对单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴的硬件组成。
并且从原理图,主要芯片,各模块的原理和各个模块的程序调试来阐述。
利用单片机产生不同频率来获得我们要求的音阶,最终可以随意弹奏想要表达的音乐,还设计了一按键用来自动播放一首曲子。
单片机音乐播放器设计报告[]
1.1.1 单片机概述单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
概括的讲,一块芯片就成了一台计算机。
MCS-51单片机是美国INTEL公司于1980年推出的产品,与MCS- 48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品,各高校及专业学校的培训教材仍与MSC-51单片机作为代表进行理论基础学习。
MCS-51系列单片机主要包括8031、8051和8751等通用产品。
DP-51S单片机仿真实验仪是由广州致远电子有限公司设计的DP系列单片机仿真实验仪之一,是一种功能强大的单片机应用技术学习、调试。
1.1.2 单片机的应用领域单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分为如下几个范畴:一、在智能仪器仪表的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。
采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。
例如精密的测量设备(功率计,示波器,各种分析仪)。
二、在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。
三、在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。
例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。
四、在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机、电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。
单片机音乐播放器课程设计总结
软件问题:编 写高效的程序 代码,优化算 法,提高运行
效率
兼容性问题: 确保播放器能 够兼容多种音 频格式和设备
用户体验问题: 优化用户界面, 提高易用性和
用户体验
经验教训
问题:硬件设计复杂,需要深入了解单片机原理 解决方案:查阅相关资料,请教专业老师 问题:软件编程难度大,需要掌握C语言和单片机编程技巧 解决方案:参加相关培训,实践操作,积累经验
词显示方式
音效调节:调节音效, 如低音、高音、环绕
声等
定时关闭:设置定时 关闭时间,到时间后
自动关闭播放器
音量控制功能
音量调节:通过按键或触摸屏调节音量大小 音量显示:在屏幕上显示当前音量值 音量记忆:保存用户设定的音量值,下次开机自动恢复 音量均衡:实现左右声道音量平衡,提高音质效果
歌曲切换功能
功能描述:用户可以通过按键或触摸屏等方式切换歌曲 实现方法:通过单片机控制音频解码芯片,实现歌曲的切换 技术难点:如何实现歌曲的平滑切换,避免出现声音中断或卡顿 解决方案:采用缓冲技术,提前加载下一首歌曲,实现无缝切换
其他附加功能
定时播放:设置播放时间,到时自动停止 音量调节:根据需要调整音量大小 歌曲切换:支持上一首、下一首、随机播放等功能 歌词显示:支持歌词同步显示,方便用户跟唱
对课程设计的建议
加强实践操作,提高动手能力 增加课程难度,提高挑战性 增加团队合作,提高沟通协作能力 增加课程内容,提高知识面和技能水平
感谢观看
汇报人:
06
课程设计的收获与展望
收获与体会
掌握了单片机的基本原理和编程方法 提高了硬件设计和调试能力 学会了如何将理论知识应用到实际项目中 增强了团队合作和沟通能力 对未来在电子领域的发展有了更清晰的认识和规划
单片机电子琴课程设计报告
1课程设计的意义单片机自20世纪70年代问世以来,已对人类社会产生了巨大的影响。
尤其是美国Intel公司生产的MCS-51系列单片机,由于其具有集成度高、处理功能强、可靠性高、系统结构简单、价格低廉、易于使用等优点,在工业控制、智能仪器仪表、办公室自动化、家用电器等诸多领域得到广泛的应用。
20世纪80年代中期以后,Intel公司已把精力集中在CPU芯片的开发、研制上,并逐渐放弃了单片机芯片的生产,但是以MCS-51内核技术为主导的单片机已经成为许多厂家及公司竞相选用的对象。
因此,Intel公司以专利转让或技术交换的形式把MCS-51的内核技术转让给了许多国际上著名的半导体芯片生产厂家,如ATMEL、PHILIPS、Cygnal等公司。
这些厂家生产的与MCS-51系列单片机兼容的各种增强型、扩展型单片机,已成为世界上8位单片机市场的主流产品。
估计在今后若干年内,它们仍是我国8位单片机应用领域的主流机型。
音乐已经成为现代人们生活所不可缺少的艺术,美妙的音乐可以让人放松,使人愉悦,电子琴作为一种乐器已经得到很多音乐人的重视和应用,一个质量好的电子琴可以做出让人欣赏的美好音乐,所以作为从事电子技术领域的我们来说,能做出质量优越的电子琴是我们的义务和责任,虽然今天我们做的是简易电子琴,但其已经具有电子琴的基本功能,为以后的进一步开发研究奠定一个良好的基础。
本课程设计的目的是为了深入了解MCS-51系列单片机的功能以及应用,学会制作简单的电子琴。
会使用LCD显示屏,对其有进一步的了解。
2方案论证2.1设计的任务本课程设计的任务是应用单片机制作一个简易的电子琴,能够准确发出基本的音符,并且同时能将音符在显示屏上现实出来。
2.2设计的要求利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出8个不同的音调,并且要求按下键发声,松开延时一段时间停止,中间再按别的键则发另外一音调的声音。
当系统扫描到有按键被按下,则快速检测出是哪一个键被按下,然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就回发出相应的音调。
单片机课程设计报告电子琴
电子音调发生器一、实验目的1. 了解计算机发声原理。
2. 熟悉定时器和键盘扫描电路的工作原理及编程方法。
实验完成的功能1. 利用键盘1~7进行音调选择,即按下音符产生对应音调。
2. 事先存储三首歌曲,并可进行选择播放。
3. 谱曲功能:通过按键对LCD菜单选项进行选择,进入谱曲界面,通过按键1~7分别输入音高与几分音符类型,由按键输入若干数据完成谱曲。
4. 在播放存储歌曲与谱曲播放时,对应音符及其节奏LCD显示对应频谱。
5. 在播放音乐时按“返回”键出现返回界面,由键盘按“确认”键选择返回主菜单或循环播放。
三、实验原理1.音节由不同频率的方波产生,音节与频率的关系如表(1)所示。
要产生音频方波,只要计算出某一音频的周期(1 /频率),然后将此周期除以2,即为半周期的时间。
利用计时器计时此半周期时间,每当计时到后就将输出方波的I/O(P1.7)反相,然后重复计时此半周期时间再对I/O反相,就可在P1.7脚得到此频率的方波。
将P1.7经过驱动电路与蜂鸣器相连,随着P1.7 口输出不同频率的方波,蜂鸣器便会发出不同的声音。
音乐的节拍是由延时实现的,如果1拍的时间为0.4秒,1/4拍是0.1秒。
只要设定延时时间,就可得到节拍的时间。
延时实现基本延时时间,节拍值只能是它的整数倍。
每个音节相应的定时器初值计算公式如下:(1/2)*(1/f)=(12/fose)*(2 16-x)即x=2 16-(fose/24f)其中,f是音调频率,当晶振fosc=11.0592MHz时,音节“ 1”相应的定时器初值为x,则可得到x=63777D=F921H其它的可同样得到。
表(1频率(Hz)X(HEX)音调1 262 F9212 294 F9E13 330 FA8C4 349 FAD85 392 FB686 440 FBE97 494 FC5B在编写歌曲代码过程中,音高由三位数字组成:个位是表示1~7这七个音i 523 FC8F符;十位是表示音符所在的音区:1-低音,-中音,-高音;百位表示这个音符是否要升半音:0-不升,-升半音。
单片机课程设计报告 简易电子琴
目录1概述 (1)2方案设计 (2)2.1系统设计要求 (2)2.2电子琴系统的组成 (2)2.3电子琴系统的设计思想 (2)2.3.1 硬件设计思想 (2)2.3.2 软件设计思想 (3)3硬件电路设计 (4)3.1系统方案 (4)3.2系统功能框图 (5)3.3功能模块详细设计 (5)3.4主要芯片功能描述 (9)4 系统软件设计 (11)4.1主程序流程图 (11)4.2源程序 (12)4.3设计总结 (16)5 仿真与调试 (17)结束语 (19)参考文献 (20)1概述单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),单片机芯片常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
概括的讲:一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
它最早是被用在工业控制领域。
由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
INTEL的Z80是最早按照这种思想设计出的处理器,当时的单片机都是8位或4位的。
其中最成功的是INTEL的8031,此后在8031上发展出了MCS51系列单片机系统。
因为简单可靠而性能不错获得了很大的好评。
尽管2000年以后ARM已经发展出了32位的主频超过300M的高端单片机,直到目前基于8031的单片机还在广泛的使用。
在很多方面单片机比专用处理器更适合应用于嵌入式系统,因此它得到了广泛的应用。
事实上单片机是世界上数量最多处理器,随着单片机家族的发展壮大,单片机和专用处理器的发展便分道扬镳。
基于单片机的电子琴课程设计报告
基于单片机的电子琴课程设计报告课程名称单片机原理及应用设计题目电子琴的设计专业班级自动化1041姓名赵伟学号 1004421112指导教师蔡长青起止时间 2013.6.24-2011.7.12成绩评定考核设计设计综合答辩内容表现报告评定成绩电气与信息学院12/13学年第二学期《单片机控制系统设计与调试》课程设计任务书指导教师:蔡长青班级:自动化1041、2班地点:机房、单片机实验室(实训中心415)课程设计题目:基于51单片机原理的电子琴的设计一、课程设计目的1. 灵活运用单片机的基础知识,依据课程设计内容,能够完成从硬件电路图设计,到PCB制版,再到软件编程及系统调试实现系统功能,完成课程设计,加深对单片机基础知识的理解,并灵活运用,将各门知识综合应用。
2. 能够上网查询器件资料,培养对新知识新技术的独立的学习能力和应用能力。
3. 独立完成一个小的系统设计,从硬件设计到软件设计,增强分析问题、解决问题的能力,为日后的毕业设计及科研工作奠定良好的基础。
二、课程设计内容(包括技术指标)本设计主要任务是设计一简易电子琴,利用所给键盘的1,2,3,4,5,6,7七个键,能够发出1,2,3,4,5,6,7等7个音符,具有一般演奏功能,同时利用第八个键具有自动播放已存曲目功能。
1. 电子琴及串口原理图的设计、PCB板的制作、焊接。
特别在焊接过程中认真、仔细,避免缺焊、漏焊。
2. 频率初值的计算。
会计算脉冲值与频率的关系。
正确计算出各音阶所对应的频率的初值。
3. 电子琴的工作过程分析。
(1)初始化过程启动时,首先是对定时器T0 进行初始化,设定它的工作状态,对于本系统将T0 设定为工作方式1;(2)按键检测过程初始化完成后,是判断是否有键按下,如果没有按键按下,则继续判断,如果有按键按下,延时一段时间在判断是否有键按下,若无按键按下返回继续判断,若确实有键按下则判断是哪个键按下;(3)声音播放过程根据按键的功能将计数初值装入定时器T0 、T1中中并启动T0 、T1,当T0定时完毕后,重新装入计数初值继续定时并将P3(3取反,再次定时完毕后再一次的装入计数初值继续定时并将P3(3取反,一直循环此操作直到按键释放为止,按键释放后停止T0工作并再次判断是否又有按键按下,并继续执行以前的过程。
单片机课程设计报告(利用蜂鸣器播放音乐)
课程设计:嵌入式系统应用题目名称:利用蜂鸣器实现音乐播放功能姓名:学号:班级:完成时间:1设计的任务设计内容:动手焊接一个51单片机设计目标:利用单片机上的蜂鸣器实现音乐播放功能2 设计的过程2.1 基本结构1.STC89C52RC在本次的试验中采用了STC89C52RC单片机.STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机.指令代码完全兼容传统8051单片机.12时钟/机器周期.工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机).工作频率范围:0~40MHz.相当于普通8051的0~80MHz.实际工作频率可达48MHz.用户应用程序空间为8K字节。
(STC89C52RC引脚图)STC89C52RC单片机的工作模式:(1)典型功耗<0.1μA,可由外部中断唤醒.中断返回后.继续执行原程序(2)空闲模式:典型功耗2mA(3)正常工作模式:典型功耗4Ma~7mA(4)唤醒.适用于水表、气表等电池供电系统及便携设备2.蜂鸣器及其工作原理:蜂鸣器按其结构分主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。
电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。
接通电源后.振荡器产生的音频信号电流通过电磁线圈.使电磁线圈产生磁场.振动膜片在电磁线圈和磁铁的相互作用下.周期性地振动发声。
本实验采用的是电磁式蜂鸣器。
蜂鸣器按其是否带有信号源又分为有源和无源两种类型。
有源蜂鸣器只需要在其供电端加上额定直流电压.其内部的震荡器就可以产生固定频率的信号.驱动蜂鸣器发出声音。
无源蜂鸣器可以理解成与喇叭一样.需要在其供电端上加上高低不断变化的电信号才可以驱动发出声音。
本实验采用的是有源蜂鸣器。
(蜂鸣器与单片机连接电路图)2.2 软件设计过程1.蜂鸣器发声原理本实验由于采用有源蜂鸣器.只需将引脚端口P3^4清零.蜂鸣器即可发声;P3^4置位.蜂鸣器停止发声。
课程设计报告基于单片机的简易电子琴设计
课程设计报告课程设计名称:基于51单片机的简易电子琴设计系部名称:中印计算机软件学院学生姓名:班级:学号:成绩:指导教师:开课时间:2012-2013学年第二学期目录1 课程设计目的 (1)2 课程设计题目和要求 (1)3 课程设计报告内容 (2)3.1原理图 (2)3.2系统板硬件连线 (3)3.3主要芯片简介 (3)3.3.1AT89S51简介 (3)3.3.2 LM386 (4)3.3.3LED数码管 (6)4 实现过程 (7)4.1 4X4行列式键盘识别及显示 (8)4.1.1硬件板上的系统连线设计 (9)4.1.2 程序设计内容 (9)4.1.3 I/O并行口直接驱动LED显示 (9)4.2 音乐产生的方法 (11)4.2.1 原理 (11)4.2.2 程序框图 (13)5. 总结 (14)参考书目 (15)附录 (16)1 课程设计目的音乐是热情洋溢的自由艺术,是室外的艺术,像自然那样无边无际,像风,像天空,像海洋。
音乐是灵魂的完美表现。
音乐表达的是无法用语言描述,却又不可能对其保持沉默的东西。
而能把音乐演绎出来的乐器又是很多人的最爱。
在此设计的是一个基于单片机的简易电子琴。
我们对于电子琴如何实现其功能,如音色选择、声音强弱控制、节拍器、声音强弱显示功能等等也很好奇。
电子琴有着独特的音色,它在爱音乐人的手里就是一个有生命的工具,是我们的朋友,它也是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。
它在现代音乐扮演着重要的角色。
单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。
本文的主要内容是用AT89S51单片机为核心控制元件,设计一个电子琴。
以单片机作为主控核心,与键盘、LED显示器、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。
本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。
单片机电子琴实验报告
单片机及DSP课程设计报告专业:通信工程班级:姓名:学号:指导教师:李贺时间:2015-06-22~2015-07-03通信与电子工程学院基于单片机的电子琴设计一、课设的目的及内容本设计主要是用单片机为核心控制元件,设计一台电子琴。
以单片机作为主控核心,与键盘、蜂鸣器、数码管等模块组成核心主控制模块,在主控模块上设有7个按键和1个复位按键。
本系统主要是完成的功能:电子琴弹奏并显示所按的按键对应音的唱名。
关于声音的处理,使用单片机C语言,利用定时器来控制频率,而每个音符的符号只是存在自定义的表中。
总之,本设计的电子琴有以下要求:(1)用键盘作出电子琴的按键,共7个,每键代表1个音符。
各音符按照符合电子琴的按键顺序排列;(2)达到电子琴的基本功能,可以用弹奏出简单的乐曲;(3)在按下按键发出音符的同时显示出音符所对应的唱名即1(dao)、2(ruai)、3(mi)、4(fa)、5(sao)、6(la)、7(xi)。
二、问题分析、解决思路及原理图本系统采用STC89C52RC为主控芯片,因其精度较高,操作比较灵活,输入电路和输出电路由芯片来进行处理,电路的系统的稳定性高,功耗小。
其中,输入电路有7个独立按键,通过按键随意按下所要表达的音符,作为电平送给主体电路,中央处理器通过识别,解码输出音符,在蜂鸣器中发出有效的声音。
由于需要显示的信息不多,显示电路未采用液晶屏显示,而是使用数码管显示电路负责显示按下的琴键所对应音符的唱名,这样既节省了成本,又降低了编程难度。
图1如图1所示基于单片机STC89C52RC的电子琴电路,它主要由琴键控制电路、数码管显示电路、音频功放电路和时钟-复位电路四部分所构成。
三、硬件设计(一)琴键控制电路琴键控制电路作为人机联系的输入部分,也是间接控制数码显示和音频功放的重要组成部分。
本设计采用独立式键盘的思路。
独立式键盘的特点是一键一线,各键相互独立,每个键各接一条I/O口线,通过检测I/O输入线的电平状态,可判断出被按下的按键。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
我们学习了一个学期的单片机,这次课程设计就是以现有的基础和能力,利用本次设计加以运用,从而达到对所学知识的巩固,更深一步的理解,面对一个电子设计,应对出系统的方案,分析出各个板块来,在对各个板块进一步的具体的设计,先进行硬件电路设计,此时一定要考虑好要用什么元件、各个元件的具体参数、是否能实现应有功能,从而得到一个完整的硬件电路。
在根据该电路设计出软件的功能模块、从而完成程序流程图,在跟据程序流程图完成程序的设计,并通过反复的调试、运行、更正,直至完成既定功能为止,最后将软件,硬件结合进行调试、运行,对其功能进行最终测试,并反复思考其测试中遇到相应问题的原因,并将其一一处理,从而完成本次设计的实验要求,以及本次课程设计的最终目的。
本课程设计教学根据课程的教学大纲的要求和单片机原理与接口实验室建设所提供的条件,安排了单片机控制系统的设计课题,从而使我们更好地掌握课堂学习的理论知识,掌握基本实践技能,并能进行一定的综合应用和探索。
通过课程设计的教学,使我们巩固和深化已学的理论知识,加强综合应用能力,训练学生掌握分析问题、解决问题的方法,培养较强的动手能力和一定的单片机应用系统的设计和调试能力。
2、课程设计要求:本次课程设计要求在一周的时间内利用实验室的现有条件或者自己的设备完成程序的编写和调试,具体要求如下:1、设计题目都需要进行硬件设计和软件设计,并调试成功;2、设计的硬件电路要包含I/O设备,并使用I/O功能;3、尽可能使用单片机的定时计数器和中断资源4、硬件可使用THDPJ-1/2型单片机开发综合实验箱,也可使用自己的硬件电路5、可用C51或汇编语言编程3、设计题目分析3.1 题目简介用单片机演奏电子乐曲,相当于制作一个带有录音播放功能的电子琴。
电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。
它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。
本次课程设计的主要内容是用AT89C51单片机为核心控制元件,设计一个电子琴。
以单片机作为主控核心,与键盘、蜂鸣器等模块组成核心主控制模块,在主控模块上设有16个弹奏按键、1个播放键,1个暂停键和蜂鸣器。
该课题则增强了我们对于4×4矩阵式键盘的了解和使用能力,在扫键,取键值,赋值三个方面的进行了加强和巩固。
另外也对存储区域和空间进行了复习和使用,加深了我们对于单片机内部结构的认知,为我们进一步学习单片机提供了更深厚的能力。
另外,通过实践和成果展示,我们也能在学习中获得学习的兴趣,让我们的学习充满了乐趣。
3.2 设计要求本设计是以AT89C51芯片的电路为基础,利用蜂鸣器进行音乐的播放,并且利用4×4的键盘进行弹奏,并把弹奏的音录入存储单元内,然后将弹奏的音符播放出来。
并且添加了LED指示灯来区别模式的不同。
归纳总结为以下四个功能:1、可以播放若干首程序自带的音乐库里的歌曲;2、使用4×4矩阵式键盘设计出16个音符,随意弹奏;3、将演奏的音符存放到单片机的存储单元中,并且可以作为音乐库里的音乐播放;4、用LED指示灯来区分播放与演奏两个功能。
4.1 总体设计 4.1.1总体设计框架:该系统结构以AT89C51单片机位控制核心,4*4矩阵键盘,加上2个按键、时钟复位电路、蜂鸣器等模块组成。
单片机负责接收按键的输入,根据的输入按键所对应的音符蜂由鸣器发音。
系统总体组成框图如图所示。
图一 系统组成框图4.1.2系统功能模块:电子琴的功能结构如图2所示。
切歌键负责切换播放歌曲,播放歌曲共4首,分别是千年之恋和寂寞沙冷,七子之歌,感恩的心,另外第一首播放的为录音录入的曲调,不想播放可以再次按播放键进行四首歌的播放。
暂定键负责暂停并且进入电子琴弹奏模式,4X4的键盘,每个按键都对应这不同的音调,并且弹奏的同时也把所弹奏的曲调录入了存储单元里。
在区分不同的模式上用的是LED 灯明和灭来区分演奏模式和播放模式。
图二 系统功能模块图4.1.3程序总流程:(1)键盘扫描程序:检测是否有键按下,有键按下则记录按下键的键值,并跳转至功能转移程序;无键按下,则返回键盘扫描程序继续检测。
(2)功能转换程序:对检测到得按键值进行判断,是琴键则跳转至琴键处理程序,是功能键则跳转至相应的功能程序,我们设计的功能程序有两种,即电子琴弹奏功能和自动播放乐曲功能。
(3)琴键处理程序:根据检测到得按键值,查询音律表,给计时器赋值,使发出相应频率的声音。
并且把键值对应的频率放入歌曲播放数组中,等待播放。
(4)自动播放歌曲程序:检测到按键按下的是自动播放歌曲功能键后执行该程序,电子琴会自动播放事先已经存放好的歌曲,歌曲播放完毕之后自动返回至键盘扫描程序,继续等待是否有键按下。
否图三程序总流程图4.1.4系统整体电路在电路的设计上,我们利用的是实验室的实验箱,用到的主要硬件有AT89C51芯片,两个独立按键,一个LED灯,和4X4的键盘。
整体电路图如下:1.电路中用P3.2、P3.3控制按键。
2.P1.0~P1.7控制4*4矩阵键盘3.P3.7控制蜂鸣器。
4.P2.0控制LED灯的明灭图四系统整体硬件图各个部分的放大图片如下:A 键盘B振荡电路C复位电路D功能键和蜂鸣器模块图五电路模块4.2 详细设计:4.2.1弹奏录音模块:弹奏录音模块中我们用到了扫键程序keys_scan,键值赋值程序keybranch,另外设定了一个录音数组playmusic[16],可放入相应按键对应的频率。
再者在这个模块中我们用到了定时器0以及其中断,用来是蜂鸣器鸣叫。
补充说明在弹奏录音功能进行时是LED灯是灭的。
这个模块中涉及到了几个函数参数,如选歌参数count2,4X4键盘接口P1,启动关闭定时器0的参数TR0,录音可放入的音调数量cnt。
另外还调用了延迟子函数delay_ms。
弹奏录音程序流程:开始开中断并允许中断设定定时器工作方式取键值根据键值查音律,并把按键做对应的频率和拍子放入录音数组中等待给定时器T0赋值开始计时图六弹奏录音程序流程图4.2.1歌曲播放模块歌曲播放模块中我们用到了歌曲播放子程序song,在这个模块中我们也用到了定时器0以及其中断,用来是蜂鸣器鸣叫。
补充说明在弹奏录音功能进行时是LED灯是亮的。
这个模块中涉及到了几个函数参数,如选歌参数count2,简谱参数jp,另外还有定时器0初值数组cuzhi,启动关闭定时器0的参数TR0,录音可放入的音调数量cnt。
四首歌简谱对应的四个数组分别为ganen,qnzl,jmszl,qizige,以及录音播放数组playmusic。
还调用了延迟子函数delay_ms以及节拍时间函数delay。
自动播放歌曲程序流程:图七自动播放歌曲程序流程4.3 调试与测试:程序调试过程:1.检查实验箱和硬件设备是否能够正常使用:我们用实验箱搭了一个简单的电路,在软件上写了一段很简单的程序,运行后,实验箱正常工作。
证明了实验箱是完好的,没有损坏,接下来的实验排除了箱子故障的问题。
2.调试各个子程序:我们先把硬件电路在实验箱上搭好,然后再把子程序一个一个套进去,一个一个的调试。
首先调试的是基本的电子琴弹奏功能子程序,包括键盘扫描程序,赋值程序,延迟程序,以及每个按键对应的按键音的播放程序。
而后,我们调试音乐播放模块程序,最后把录音模块加上去。
3.最后将程序完整化,把整个程序完整运行,看看功能程序是否能够在整体中正常发挥作用。
4.调整好程序的结构,是结构的可读性增强,添加适当的备注。
调试中出现的问题和解决方法:问题一:在演奏功能的实现时,每个按键的音调有些跑偏了。
解决方法:我们在当前的频率值附近逐个取值试验,用最合适的频率值替代,最后使按键音能够基本符合标准。
问题二:在播放功能中,我们放入的歌曲简谱是从网上直接找出来的,在有一些地方音调就跑了。
解决方法:我们自己对应着歌曲的简谱,把个别错误的地方改正过来。
问题三:这是最大的一个问题,录音功能没办法实现,没办法把键盘对应的音调存入数组中。
解决方法:虽然我们到最后也没能把这个问题解决,但是在这个问题上我们想尽了办法。
刚开始我们本来打算放入ROM中,打算放入30h中,但是没有效果。
我们也不知道问题出在哪里,后来老师提醒我们在memory 的窗口中可以看到内存中是否有东西存入,就可以判断到底有没有存入。
很不幸,里面没有存入东西。
后来我们放入录音数组中,打算弄成一个格式和四首已放入简谱的歌曲一样的数组,但是我们在内存中还是没有看到。
最后一天的时候,我发现偶尔有几次是可以写进去的,但是写进去的东西不是我们按键按下去所对应的键值,依然不能写入。
究其原因,可能是硬件内部存储单元发生了问题,也可能是软件的问题,也可能真的是程序的问题,由于我们水平有限,所以也真的没办法解决问题,很遗憾啊。
5、设计心得与总结:在这次的课程设计中,我收获了很多,也更了解单片机在生活中的一些运用,同时也让我们收获了学习的乐趣。
在设计和调试的过程中我遇到了很多困难,也在这过程中明白了自己的不足,也谢谢老师和同学的帮助。
刚开始的第一天我是满怀信心,完成了选题,程序框图,实际电路的设计,也在网络和书籍上寻找相关的程序范例,一些都进行得很顺利,但是往后,在程序上我遇到了很大的问题。
第二天的时候,几个子程序和大致的主程序已经写好,但是在录音功能的程序编写上遇到了很大的问题,录音程序在调试的过程失败了,但是也有收获,基本的功能已经可以实现,包括演奏和播放以及指示灯都基本可以实现。
第三天我就一直在纠结程序录音功能为什么会失败,我尝试了各种方法,找了其它同学,但是还是解决不了问题,就这样整整纠结了一天。
第四天的时候,我向老师求救,最后判断为单片机的内部RAM里写不进去内容,至于为什么这还是一个未知的结论,可能是单片机硬件的问题。
但是我们还是没办法解决这个问题。
第五天的时候,就要进入收尾的阶段了,我们依然还在奋斗着,很可惜,最后我们也没能把录音功能成功调试出来。
因为以前做实验的经验,所以我们对大致的过程比较熟悉,可是还是有一些小问题不断地出现,要不断地进行修改,我的经验太少,能力不够,对于出现的问题,没办法找到原因,也没办法解决,这一点我很惭愧,有待加强。
经过一周的课程设计,我对于单片机的运用有了一个新的认识,同时也更好的掌握了Keil uVision该软件的的大致用法。
在不断地学习和巩固中,提高了自学能力和解决问题的能力,同时积累了经验。
6、建议:从人员数量上来说,每一组的人数过多了点,造成了人力资源的浪费以及个别同学无所事事。
实验设备的数量太少,而且都有不同程度的损伤,应该及早进行维修。
设备的提供能够让每个同学都能独立完成课程设计,让每个人都能在课程设计上多多收获。