飞思卡尔单片机电子琴课程设计

飞思卡尔单片机电子琴课程设计

ID:13965083

大小:110.00 KB

页数:9页

时间:2018-07-25

飞思卡尔单片机电子琴课程设计_第1页
飞思卡尔单片机电子琴课程设计_第2页
飞思卡尔单片机电子琴课程设计_第3页
飞思卡尔单片机电子琴课程设计_第4页
飞思卡尔单片机电子琴课程设计_第5页
资源描述:

《飞思卡尔单片机电子琴课程设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、单片机课程设计报告电子琴设计学院信息工程学院专业信息工程(电子信息工程方向)年级班别学号学生姓名指导教师申柏华答辩记录开始时间结束时间考题:答辩结果:主要特点或功能可以发出高音,中音,低音的1~7直接按1~7,蜂鸣器发出中音;当同时按下L和1-7时,蜂鸣器发出低音;同时按下H和1-7时,蜂鸣器发高音。20年6月1设计要求:设计一个电子琴,在实验箱上实现功能电子琴的功能。键盘符号定义如下:1234567L=H按下1-7,实验箱上的蜂鸣器发出对应的音调(中音),当同时按下L和1-7时,蜂鸣器发出低音,同时按下H和1-7时,蜂鸣器发高音。只要按键没松开,蜂鸣器一直发声,直到松到按键。蜂鸣器的

2、电路见下图。按键L+12345671234567H+1234567音符低中高123456712345671234567频率值26229433034939244049452355866069878488098810461175131813971568176019762设计思路电子琴的设计主要分为两个部分,输入和输出。键盘输入得出所要的键值,通过判别,蜂鸣器输出对应的音符。输入:采用的键盘扫描方法为线反转法,来辨别有无按键按下,以及是哪一个按键按下。输出:由查资料就可以得出每个音符的的音频,则对应就可以求出每个音符信号的周期。因此,输出主要是利用延时,只要判断出对应的按键按下,则延时相对应

3、音符的半个周期的时间,然后将接蜂鸣器的输出端口的电平翻转,再进行延时,然后翻转输出电平,直到按键松开。为了能够发出高低音,要同时按下两个键,即当同时按下L和1-7时,蜂鸣器发出低音,同时按下H和1-7时,蜂鸣器发高音。则按键扫描必须能够识别两个按键,通过两个按键进行判断到底是要发出哪一个频率的声音。解决重键问题的办法:方案一:因为1~7和H,L分别在不同行上,所以分为两个扫描程序,第一个扫描程序只扫描1~7所在的3~4行,得出键值1~7而第二个扫描程序只扫描H和L所在的1~2行,判断此时应发的是高音,低音或是中音。8方案二:键盘扫描方法采用线反转法,这样单个键按下(中音)得到的键盘接口

4、的八位二进制值就会与两个键同时按下(高音或低音)得出的键盘接口的八位二进制的值不同。那么只要根据键盘的接口值,就可以判断出此时应发的是高音,低音或是中音的1~71设计步骤1)首先建立一个全新的工程,添加必要的头文件,如键盘程序的头文件keyboard.h,总头文件includes.h,接着其他的程序都可以在main.c中编写;2)编写程序;3)编译程序;4)在板上调试;5)修改,编译,直到成功。2程序流程(含流程图及详细步骤解释)方案一:8方案二:88方案一详细步骤解析:1)对芯片进行初始化,设置总线时钟信号,分频,清标志位等。2)采用方案一的键盘扫描程序,具体为:先设置键盘的接口为高

5、四位输入,低四位输出,输出接键盘的行,输入接键盘的列。从第一行开始,逐行输入0,接收到列的值,如果列值不全为1,则说明此行有按键按下,并可知道按键的位置,若全为1,则此行没有按键按下,那么就用同样的方法扫描下一行,判断有无按键按下,知道将所有的行扫描完毕。为了防止键盘的抖动问题,每次都要键盘进行多次的扫描才能确定键值。为了能够发出高低音,要同时按下两个键,则按键扫描必须能够识别两个按键,通过两个按键进行判断到底是要发出哪一个频率的声音。解决重键问题的办法是:编写两个扫描程序,第一个扫描程序scan1(8)只扫描1~7所在的3~4行,得出键值1~7而第二个扫描程序scan2()只扫描H和

6、L所在的1~2行,判断此时应发的是高音,低音或是中音。1)判断声音应该发出的频率。首先需要从第二个扫描程序中得出是否有按下H或是L键,如果有按下H键,则发出的是高音的1~7,如果有按下L键,则发出的是低音的1~7,否则,就发出中音的1~7。接着从第二个扫描程序中可以得出键值1~7。通过这两层判断,就可得出相应声音的频率值。2)用公式t=1000000(μS)/(F*2),得出每个声音信号半个周期的时间。3)判断按键是否还在按下的状态,如果是,则不断地将输出信号延时半个周期后翻转电平,这样就可以得出所要声音的频率,如果判断出按键松开了,则跳出循环,电平不再翻转,这样就会停止发声。4)重复

7、的进行键盘扫描,按键识别,设置延时时间,翻转电平,根据按键是否按下来持续发声,这几个步骤,就可以实现电子琴的功能了。方案二详细步骤解析:具体是改变步骤二的键盘扫描的方法,其余步骤基本跟方案一相同。键盘扫描方法:线反转法。首先,定义键盘的高四位为输入,低四位为输出。先低四位全部输出零,得到高四位的值tmp1。然后定义键盘的高四位为输出,第四位为输入,再高四位全部输出零,得到低四位的值tmp2。再将tmp1和tmp2的值相或,得到相应的键值,根据键

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。