基于单片机的电子琴毕业设计内容摘要:

;按能显示多少个“ 8”可分为 1位、2位、 4位等等数码管;按发 光二极管单元连接方式分为共阳极数码管和共阴极数码管。 图 33为 2位数码管。 共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极 (COM)的数码管。 共阳数码管在应用时应将公共极 COM 接到 +5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。 当某一字段的阴极为高电平时,相应字段就不亮。 共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极 (COM)的数码管。 共阴数码管在应用时应将公共极 COM 接到地线 GND 上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。 当某一字段的阳极为低电平时,相应字段 就不亮。 图 33 LED 数码管 电子信息工程系毕业论文 10 见图 34。 【 数码管的驱动方式】 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 ① 静态显示驱动:静态驱动也称直流驱动。 静态驱动是指每个数码管的每一个段码都由一个单片机的I/O 端口进行驱动,或者使用如 BCD码二 十进制译码器译码进行驱动。 静态驱动的优点是编程简单,显示亮度高,缺点是占用 I/O 端口多,如驱动 5个数码管静态显示则需要 5 8=40根 I/O 端口来驱动,要知道一个89S51单片机可用的 I/O 端口才 32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 ② 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的 8个显示笔划 a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极 COM 增加位选通控制电路,位选通由各自独立的 I/O 线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通 COM 端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。 通过分时轮流控制各个数码管的的 COM端,就使各个数码管轮流受控显示,这就是动态驱动。 在轮流显示过程中,每位数码管的点亮时间为 1~ 2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据, 不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的 I/O 端口,而且功耗更低。 图 34 电子信息工程系毕业论文 11 硬件设计图 图中的矩阵键盘,从上到下,从左到右,依次为键盘的 015,在数码管上显示时顺序为 09 和 AF,在按功能键时,图上的两个指示灯会根据功能的不同实现亮 /灭状态的切换。 在播放内置音乐时,指示灯在一定程度上能指示出曲目的音符。 X11 .2 M H zC12 2 p FC22 2 p FX T A L 218X T A L 119A L E30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 2 .7 /A 1 528P 2 .0 / A 821P 2 .1 / A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427P 1 . 01P 1 . 12P 1 . 23P 1 . 34P 1 . 45P 1 . 56P 1 . 67P 1 . 78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT 012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 / R D17P 3 . 6 / W R16P 3 .5 /T 115U18 0 C5 1R11 0 kC31 0 p F+ 5 vR 1 2P ULL U PR 1 3P ULL U PR 1 4P ULL U PR 1 5P ULL U P+ 5 vL S 2S O UN D E R歌曲选择弹奏 / 停止D 1 弹奏 / 停止L E D B L U ED 2 播放L E D B L U ER2P ULL U PR3P ULL U PR4P ULL U PR5P ULL U P 利用 PROTEUS仿真设计的硬件电路图 电子信息工程系毕业论文 12 第四章 软件设计 整体程序处理流程图 图 41 整体程序处理流程图 在电子琴开始工作时,系统默认电子琴处于弹奏状态,歌曲选择功能键的目的是赋予矩阵键盘第二功能,即对系统内置的歌曲进行选择,在放歌时能且只能通过弹奏 /停止键来结束放歌,选歌时必须先按下歌曲选择功能键,在通过矩阵键盘来选择和切换曲目。 I/O 并行口直接驱动 LED 显示 把“ AT89C51”区域中的 - 电子信息工程系毕业论文 13 管的 a- h端口上;要求: , , 相连,„„,。 在本设计中,数码管的显示通过 P2=DSY_CODE[k] 这句语言来查表并输出,实现音符的显示。 音乐播放设计 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时 /计数器 T0 来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。 若要产生音频脉冲,只要算出某一音频的周期( 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)、中音 DO( 523Hz)、高音 DO( 1046Hz)的计数值。 T= 65536- N= 65536- fi247。 2247。 fr= 65536- 1000000247。 2247。 fr = 65536- 500000/fr 低音 DO的 T= 65536- 500000/262= 63628 中音 DO的 T= 65536- 500000/523= 64580 高音 DO的 T= 65536- 500000/1046= 65058 表 1 字形码 表 及对应的音符 1 0x3f 低 5 SO 9 0x7f 中 6 LA 2 0x06 低 6 LA A 0x6f 中 7 SI 3 0x5b 低 7 SI b 0x77 高 1 DO 4 0x4f 中 1 DO C 0x7c 高 2 RE 5 0x66 中 2 RE D 0x39 高 3 M 6 0x6d 中 3 M E 0x5e 高 4 FA 7 0x7d 中 4 FA F 0x79 高 5 SO 8 0x07 中 5 SO 0 0x71 高 6 LA 电子信息工程系毕业论文 14 单片机 12MHZ 晶振,高中低音符与计数 T0 相关的计数值如表 41 所示 表 41 音符频率表 音符 频率( HZ) 简谱码( T值) 音符 频率( HZ) 简谱码( T值) 休止 0 0 中 4 FA 698 64820 低 1 DO 262 63628 中 5 SO 784 64898 低 2 RE 294 63835 中 6 LA 880 64968 低 3 M 330 64021 中 7 SI 988 65030 低 4 FA 349 64103 高 1 DO 1046 65058 低 5 SO 392 64260 高 2 RE 1175 65110 低 6 LA 440 64400 高 3 M 1318 65157 低 7 SI 494 64524 高 4 FA 1397 65178 中 1 DO 523 64580 高 5 SO 1568 65217 中 2 RE 587 64684 高 6 LA 1760 65252 中 3 M 659 64777 高 7 SI 1967 65283 我们要为这个音符建立一个表格,单片机通过查表的方式来获得相应的数据 uint code tab[]= { 0, 63628,63835,64021,64103,64260,64400,64524, 64580,64684,64777,64820,64898,64968,65030, 65058,65110,65157,65178,65217,65252,65283 } 音乐的音拍,一个节拍为单位( C调)(如表 42所示) 表 42 曲调值表 曲调值 DELAY 曲调值 DELAY 调 4/4 125ms 调 4/4 62ms 调 3/4 187ms 调 3/4 94ms 调 2/4 250ms 调 2/4 125ms 对于不同的曲调 我们也可以用单片机的另外一个定时 /计数器来完成。 在这个程序中用到了两个定时 /计数器来完成的。 其中 T0 用来产生音符频率, T1 用来产。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。