文档详情

南京工程学院单片机课程设计——电子琴.docx

发布:2017-07-05约字共17页下载文档
文本预览下载声明
南京工程学院自动化学院 单片机课程 :电子琴设计 目录  TOC \o 1-3 \h \z \u  HYPERLINK \l _Toc346137004 目录  PAGEREF _Toc346137004 \h 1  HYPERLINK \l _Toc346137005 一、设计任务(要求)  PAGEREF _Toc346137005 \h 2  HYPERLINK \l _Toc346137006 二、总体方案  PAGEREF _Toc346137006 \h 2  HYPERLINK \l _Toc346137007 三、原理框图  PAGEREF _Toc346137007 \h 3  HYPERLINK \l _Toc346137008 四、系统模块详细设计与调试  PAGEREF _Toc346137008 \h 4  HYPERLINK \l _Toc346137009 (一)键盘扫描模块  PAGEREF _Toc346137009 \h 4  HYPERLINK \l _Toc346137010 (二)数码管显示模块  PAGEREF _Toc346137010 \h 4  HYPERLINK \l _Toc346137011 (三)音调编码读取模块  PAGEREF _Toc346137011 \h 4  HYPERLINK \l _Toc346137012 (四)定时器中断模块  PAGEREF _Toc346137012 \h 4  HYPERLINK \l _Toc346137013 五、设计总结  PAGEREF _Toc346137013 \h 5  HYPERLINK \l _Toc346137014 六、参考文献  PAGEREF _Toc346137014 \h 6  HYPERLINK \l _Toc346137015 七、附件材料  PAGEREF _Toc346137015 \h 6  一、设计任务(要求) 利用51系列单片机、按键、扬声器等器件,设计一个电子琴。 具体功能要求如下: 设计键盘电路,使其具有数字键1、2、3、4、5、6、7、8、9作为电子琴按键,演示键DEMO,其中1~7号键按下后即发出相应的音调。8号键按下后依次发出“1、2、3、4、5、6、7” 音调,9号键按下后依次发出“7、6、5、4、3、2、1” 音调,按下DEMO键,自动演示一首歌曲,用单片机某一接口发出音频脉冲,驱动扬声器发音。 利用定时器定时,可以发出不同频率的脉冲,不同频率的脉冲经扬声器驱动电路放大滤波后,就会发出不同的音调.定时器按设置的定时参数产生中断,一次中断发出脉冲低电平,下一次反转发出脉冲高电平.由于定时参数不同,就发出了不同频率的脉冲.按键一次,发50个脉冲.发完后继续检测键盘,如果键还按下,继续发音,发脉冲个数的多少可以决定节拍的长短。 二、总体方案 按照设计任务(要求),电子琴的主要涉及以下几个模块: 1、定时器控制不同频率发音; 2、矩阵键盘的扫描; 3、除此以外,我还在本次设计中加入了数码管显示,分别显示当前弹奏的音符。于是又多了数码管显示模块; 实现方案: 通过不断地键盘进行扫描。当有按键按下时,执行该按键对应的程序,包括:发出相应的音符或音乐、数码管显示当前音符。当按键松开,将音符停止发出,如果是音乐,将进行演奏。 其中,不同的音符,采用定时器中断,从而发出不同的音符。即改变不同的定时器初始值。 对于音乐的音符,采用自编的特殊编码,以便程序的调用。本程序的设计采用了三位数编码,即:利用三位数表示一个音符。第一位由1-7组成,表示音符1-7;第二位由1-4组成,表示音阶的低、中、高和超高;第三位由1-9组成,表示该音阶的拍数,计算方式是1/2拍数字。 例如:6,2,2……表示一拍中音6;4,3,1……表示半拍高音4。 关于对音符编码的调用,设一个音的编码为则,调用的频率参数为,该参数用于修改定时器初始值;调用的时间参数为,该参数用于修改定时器执行时间。 三、原理框图 开始 各模块初始化 键盘扫描 否 是否键盘按下 是 判别按键 播放音乐 (5个) 弹奏单音节 (8个) 无动作 按键14-16 按键9-13 按键1-8 显示音乐编号 显示对应音符 读取当前第一个音符 否 调用定时器中断,发出不同频率音调 读取下一个音符 结束标志 是 读取下一音符 四、系统模块详细设计与调试 (一)键盘扫描模块 1、矩阵键盘工作原理 矩阵键盘的
显示全部
相似文档