汇编语言电子琴实验c语言,电子琴实验及报告.docx

电子琴实验及报告

电子琴实验报告  一,实验目的  1.学习使用AT89S52单片机的功能,进行单片机编程,实现键盘演奏音乐的功能,进一步加深对于单片机功能实现过程的理解,强化单片机编程的能力。  2.设计实现各种功能,包括对音乐的录音以及回访放能,要求能实现各种不同音调,在编程过程中必须考虑到各种细节,例如按键的干扰问题以及滞键。  二,实验要求  基本要求:  1:能够通过键盘演奏音符。  2:能够保存演奏的音乐,并实现回放。3:有音调调整功能。4:自由发挥其他功能.  5:要求有单片机硬件系统框图,电路原理图,软件流程图。  三,实验基本原理  在单片机的设计中,电子琴是一个典型的例子,电子琴的实现需要用到单片机AT89S52、蜂鸣器等模块。而在本次的实验中,我们利用简单的模块,实现了一个简单的电子琴功能,使用单片机可以驱动蜂鸣器发出声音,还可以控制其发出不同的音调,在一首歌曲里面,不同的音阶对应着不同的频率,在蜂鸣器的发音原理里面,我们只需要给蜂鸣器输入不同的脉冲,蜂鸣器就会发出对应的声音,因此,我们只需要弄明白音阶对应的脉冲就可以了。在键盘控制中,每个按键对应不同的音阶,按键按下的时候,单片机程序里面都会执行一次程序判断是否有前一次的按键被按下,按键按下以后会控制单片机对蜂鸣器输出不同频率的方波,每种情况对应不同的音阶或者音调。一首歌曲就是有不同的音阶构成,从而就实现了电子琴的功能。  四,实验设计分析  针对要实现的功能,采用AT89S52单片机进行设计,AT89S52单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程的可反复擦写1000次的Flash只读程序存储  器,器件采用高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构。这样,既能做到经济合理又能实现预期的功能。  在设计程序的时候,分析道电子的功能有三个模块构成,分别是单片机本身,键盘按键输入和蜂鸣器的功能响应。首先应该把程序分开成三个主要部分,分别为按键输入程序、高低音的发生程序和主程序。需要注意的是设计程序的时候,需要把各个程序兼容起来,综合匹配的时候,还要注意各种单片机编程的小细节。  在进行编程之前,需要安装各种必须的软件,包括编程用的ukeil软件、模拟程序运行的Progisp软件,最重要的是电脑必须安装正确的单片机驱动程序。硬件部分需要我们学生自己动手焊制,在焊制的时候一定要保证原件的完好连接,从而保证在运行程序的过程中不会出现硬件问题的影响。编程之前,需要先学习理解C语言编程的方法,再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。  五,实验要求实现  A.电路设计  1.整体设计  此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模块:显示电路用8个共阴数码管分别显示,星期,小时、分钟和秒,通过动态扫描进行显示,从而避免了译码器的使用,同时节约了I/0端口,使电路更加简单。单片机采用AT89S51系列,这种单片机应用简单,适合电子钟设计。  电路的总体设计框架如下:  B.程序总体设计  本实验用汇编程序完成.程序总的流程图如下:  结合电路图,程序设计的整体思路为:  接通电源,执行程序,在程序至此那个过程中各个按键代表不同的功能,下面是不同状态下各个按键的实现目标方式:  在程序执行开始时,先判断之前是否有按键按下,若之前没有按键按下:按1键--蜂鸣器发出Do的声音;  按2键--蜂鸣器发出Rei的声音;按3键--蜂鸣器发出Mi的声音;按4键--蜂鸣器发出Fa的声音;按5键--蜂鸣器发出Suo的声音;按6键--蜂鸣器发出La的声音;按7键--蜂鸣器发出Xi的声音;  按8键--蜂鸣器发出程序里本来自带的的声音;按9键--系统执行录音功能,开始录音;  按10键--蜂鸣器发出录音功能执行时所录下的声音;按11键—系统进入调音的功能,改变输出声音的音调。  在执行录音功能的时候,当你按下录音键以后,每按下键盘里的1——7键的其中一个,系统就会以数组的形式记录下这一按键代表的数字,在你按下回放录音的10键的以后,系统就会从数组里一次取出值,把录下的声音重新播放出来。  主程序  //按键1-7分别代表"DO"~"XI",第八个键保存一首歌曲,第九个键控制录音开始和停止,第十个键播放录音,第十一个键调节音调#include  #defineucharunsignedchar#defineuintunsignedintuchari,j,x=0,y=0,k,u=0,temp=0;ucharm[100];sbitsound=P0^1;voidkeyscan();voidmusicH(uchar);voidmu

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值