课程设计论文-基于at89c52单片机的简易电子琴设计内容摘要:

此提供给 LED 显示器的显示段码为 1 个字节。 河南理工大学本科课程设计报告 9 图 数码管电 路 按键部分设计 操作键设计 常用的按键有三种:机械触点式按键、导电橡胶式和柔性按键(又称触摸式键盘)。 机械触点式按键是利用 机械 弹性使键复位,手感明显,连线清晰,工艺简单,适合单件制造。 但是触点处易侵入灰尘而导致接触不良,体积相对较大。 导电橡胶按键是利用橡胶的弹性来复位,通过压制的方法把面板上所有的按键制成一块,体积小,装配方便,适合批量生产。 但是时间长了,橡胶老化而使弹力下降,同时易侵入灰尘。 柔性按键是近年来迅速发展的一种新型按键,可以分为凸球型和平面型两种。 柔性按键最大特点是防尘、防潮、耐蚀,外形美观,装嵌方便。 而且外形和面板的布局、色彩、键距可按照整机的要求来设计。 但是由于客观条件与经济能力有限,本系统采用机械触点式按键。 键盘设计 键盘在单片机应用系统中是一个关键的部件,它能实现向计算机输入数据,传送命令等功能,是人工干预计算机的主要手段。 键盘可以分为 2类:独立连接式键盘和矩阵式键盘。 河南理工大学本科课程设计报告 10 (1)矩阵式键盘 单片机系统中,若按键较多时,通常采用矩阵式(也称行列式)键盘。 矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上。 显然,在按键数量较多 时,矩阵式键盘较之独立式按键键盘要节省很多 I/O口。 矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到 +5V 上.当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。 这是识别按键是否按下的关键。 (2)独立连接式键盘 独立式按键是直接用 I/O 口线构成的单个按键电路,其特点是每个按键单独占用一根 I/O 口线,每个按键的工作不会影响其它 I/O 口线的状态。 独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根 I/O 口线, 然而 ,在按键较 多时, I/O 口线浪费较大,不宜采用。 独立式按键软件常采用查询式结构。 先逐位查询每根 I/O 口线的输入状态,如某一根 I/O 口线输入为低电平,则可确认该 I/O 口线所对应的按键已按下,然后,再转向该键的功能处理程序。 由于本程序较为简单,为了使用方便及节省资源,选择独立式键盘。 下图为独立式键盘电路图: 图 独立式键盘电路图 去抖动 键盘编程 中 主要考虑去抖动 的 问题。 当测试表明有键被按下之后,紧接着就进行去抖动处理。 因为键是机械开关河南理工大学本科课程设计报告 11 结构,由于机械触点的弹性及电压突跳等原因,在触点闭合或断开的瞬间会出现电压抖动。 为保证键识别的准确,在电压信号抖动的情况下不能进行行状态输入。 为此需进行去抖动处理。 去抖动有硬件和软件两种方法。 硬件方法就是加去抖动电路,从根本上避免抖动的产生。 软件消抖,在第一次检测到有键按下时,执行一段延时程序之后 ,再检测此按键,如果第二次检测结果仍为按下状态, CPU 便确认此按键己按下,消除了抖动。 发音部分设计 如下图所示,发音电路是由蜂鸣器、三极管、上拉电阻构成。 由三极管来驱动扬声器发音的,同时加上拉电阻增强驱动电流,提高驱动能力。 图 独立式键盘电路图 河南理工大学本科课程设计报告 12 系统分析 系统软件的组成 ( 1)键盘扫描程序:检测是否有按键按下,有按键按下则记录按下键的键值,并跳转至功能转移程序;无按键按下,则返回键盘扫描程序继续检测。 ( 2)功能转移程序:对检测到的按键值进行判断,是琴键则跳转至琴键处理程序,是功能键则跳转至相应的功能程序,我们设计的功能程序有两种,即音色调节功能和自动播放乐曲的功能。 ( 3)琴键处理程序:根据检测到的按键值,查询音调表,给计时器赋值,使发出相应频率的声音。 ( 4)自动播放歌曲程序:检测到按键按下的是自动播放歌曲功能键后执行该程序,电子琴会自动播放事先已经存放的歌曲,歌曲播放完毕之后自动返回至键盘扫描程序,继续等待是否有按键按下。 河南理工大学本科课程设计报告 13 系统总体功能流程图 开 始初 始 化 T 0自 动 播 放 键 按下键 盘 扫 描程 序b o + +音 阶 键 按 下得 到 高 中 低 三种 方 式判 断 P 0 口 输入 , 设 定 键 值键 值 不 为 0根 据 7 个 键 值 和工 作 方 式 确 定T 0 值启 动 T 0选 择 数 码 管 1 显示 工 作 方 式选 择 数 码 管 2 显示 7 个 音 调 , 发出 对 应 声 音关 闭 声 音播 放 内 部 存储 音 乐B o / 2 = = 0NYYNYN 河南理工大学本科课程设计报告 14 图 系统总体功能流程图 参数计算 发音原理 若要产生音频脉冲,只要算出某一音频的周期( 1/频率),再将此周期除以2,即为半周期的时间。 利用定时器计时半周期时间,每当计时终止后就将 反相,然后重复计时再反相。 就可在。 利用 AT89C51的内部定时器使其工作计数器模式( MODE1)下,改变计数值 TH0 及 TL0 以产生不同频率的方法产生不同音阶。 计算举例 例如,频率为 523Hz,其周期 T= 1/523= 1912μs ,因此只要令计 数器计时956μs/1μs = 956,每计数 956 次时将 I/O 反相,就可得到中音 DO( 523Hz)。 计数脉冲值与频率的关系式是: N= fi247。 2247。 fr , 式中, N 是计数值; fi 是机器频率(晶体振荡器为 12MHz 时,其频率为 1MHz); fr是想要产生的频率。 其计数初值 T 的求法如下: T= 65536- N= 65536- fi247。 2247。 fr 例如:设 K= 65536, fi= 1MHz,求 中 音 DO( 261Hz)。 T= 65536- N= 65536- fi247。 2247。 fr = 65536- 1000000247。 2247。 fr = 65536- 500000/fr, 中音 DO 的 T=65536- 500000/523= 64580。 计算结果 ( 1) 单片机 12MHZ 晶振,中音符与计数 T0 相关的计数值如表所示 : 音符 频率( HZ) 计数值( T 值) 音符 频率( HZ) 计数值( T值) 低 1DO 262 63628 4FA 740 64860 1DO 277 63737 中 5SO 784 64898 低 2RE 294 63835 5SO 831 94934 2RE 311 63928 中 6LA 880 64968 低 3MI 330 64021 6LA 932 64994 低 4FA 349 64103 中 7SI 968 65030 4FA 370 64185 低 1DO 1046 65058 低 SO 392 64260 1DO 1109 65085 5SO 415 64331 高 2RE 1175 65110 河南理工大学本科课程设计报告 15 低 6LA 440 64400 2RE 1245 65134 6LA 466 64463 高 3MI 1318 65157 低 7SI 494 64524 高 4FA 1397 65178 中 1DO 523 64580 4FA 1490 65198 1DO 554 64633 高 5SO 1568 65217 中 2RE 587 64633 5SO 1661 65235 2RE 622 64884 高 6LA 1760 65252 中 3MI 659 64732 6LA 1865 65268 中 4FA 698 64820 高 7SI 1967 65283 采用查表程序进行查表时,可以为这个音符建立一个表格,有助于 单片机 通过查表的。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。