精品单片机课程设计-基于单片机的数字音乐盒设计-定(7)

2019-01-07 16:13

湖南铁路科技职业技术学院单片机课程设计说明书

样就可以利用不同的频率的组合,加以与拍数对应的延时,构成音乐。了解音乐的一些基础知识,我们可知产生不同频率的音频脉冲即能产生音乐。对于单片机来说,产生不同频率的脉冲是非常方便的,利用单片机的定时/计数器来产生这样的方波频率信号。因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。

表4.5节拍与节拍码对照

节拍码 1 2 3 4 5 6 8 A C F

节拍数 1/4拍 2/4拍 3/4拍 1拍 1又1/4拍 1又1/2拍

2拍 2又1/2拍

3拍 3又3/4拍

节拍码 1 2 3 4 5 6 8 A C

节拍数 1/8拍 1/4拍 3/8拍 2/1拍 5/8拍 3/4拍 1拍 1又1/4拍 1又1/2拍

每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,图4.5为节拍码的对照。如果1拍为0.4秒,1/4拍实0.1秒,只要设定延迟时间就可求得节拍的时间。假设1/4拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如表4.5为1/4和1/8节拍的时间设定。

表4.5 1/4和1/8节拍的时间设定

曲调值 调4/4 调3/4 调2/4

DELAY 125毫秒 187毫秒 250毫秒

曲调值 调4/4 调3/4 调2/4

DELAY 62毫秒 94毫秒 125毫秒

- - 30

湖南铁路科技职业技术学院单片机课程设计说明书

4.5.3 编码

do re mi fa so la si分别编码为1~7,重音do编为8,重音re编为9,停顿编为0。播放长度以十六分音符为单位(在本程序中为165ms),一拍即四分音符等于4个十六分音符,编为4,其它的播放时间以此类推。音调作为编码的高4位,而播放时间作为低4位,如此音调和节拍就构成了一个编码。以0xff作为曲谱的结束标志。

举例1:音调do,发音长度为两拍,即二分音符,将其编码为0x18。 举例2:音调re,发音长度为半拍,即八分音符,将其编码为0x22 歌曲播放的设计。先将歌曲的简谱进行编码,储存在一个数据类型为unsigned char 的数组中。程序从数组中取出一个数,然后分离出高4位得到音调,接着找出相应的值赋给定时器0,使之定时操作蜂鸣器,得出相应的音调;接着分离出该数的低4位,得到延时时间,接着调用软件延时。

表4.6 简谱对应的简谱码、T值、节拍数

简谱 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 发音 低音SO 低音LA 低音TI 中音DO 中音RE 中音MI 中音FA 中音SO 中音LA 中音TI 高音DO 高音RE 高音MI 高音FA 高音SO 简谱码 1 2 3 4 5 6 7 8 9 A B C D E F T值 64260 64400 64524 64580 64684 64777 64820 64898 64968 65030 65058 65110 65157 65178 65217 节拍码 1 2 3 4 5 6 8 A C F 节拍数 1/4拍 2/4拍 3/4拍 1拍 1又1/4拍 1又1/2拍 2拍 2又1/2拍 3拍 3又3/4拍 - - 31

湖南铁路科技职业技术学院单片机课程设计说明书

4.6程序流程图

本设计的程序流程如下:

先从主程序开始,接着初始化变量及 LCD 接口,然后初始化方波发生器、晶振管,使 LCD 显示信息,就进入了开机状态,等待动作——选择按键,包括播放键,暂停键,停止键,当然也可以选择返回;加入选择的是播放键,LCD 上就会 -7-现实歌曲编号,与此同时演奏相应的乐曲,此时,你可以按上一曲或下一曲键,使其演奏上一个或者先一个乐曲。 其流程图如下:

- - 32

湖南铁路科技职业技术学院单片机课程设计说明书

主程序流程图

33

- - LCD显示流程图

湖南铁路科技职业技术学院单片机课程设计说明书

4.7 文档顶端程序清单

RS BIT P2.0 端口标号 RW BIT P2.1 E BIT P2.2

L50MS EQU 60H ;工作内存定义 L1MS EQU 61H L250MS EQU 62H SEC EQU 65H MIN EQU 64H HOU EQU 63H 址 址 LJMP

T1INT

ORG 1000H

MAIN: ;液晶初始化

MOV SP,#70H MOV P0,#01H ;清屏 CALL DISPLAY

MOV P0,#38H ;8位,2行显示 LCALL 闪烁on LCALL 幕on

LCALL LCALL

DISPLAY

INITIL ;内存初始化

DISPLAY

MOV P0,#06H ;计数地址加1,显示

DISPLAY

MOV P0,#0FH ;屏显on,光标on,

LJMP

TT0

ORG 001BH ; 定时器T1溢出中断入口地ORG 0000H

ORG 000BH ;定时器T0溢出中断入口地 LJMP MAIN

;引脚定义,定义液晶显示

下,否则等待 LCALL KEY: XN: K1: K2: K3: 按键 L1: L2: L3: LK: K4:

MOV A,#00H LJMP

LK

JB ACC.5,L2 MOV A,#04H LJMP

LK

JB ACC.6,L3 MOV A,#08H LJMP

LK

JB ACC.7,NEXT1 MOV A,#0CH ADD A,R4 PUSH LCALL

ACC

DELAY1 ;若同时有其他

MODD LJMP NOP NOP LCALL LCALL LCALL LJMP LCALL LCALL LCALL JNZ K2 LJMP

KEY

MOV R2,#0FEH ;读键盘 MOV R4,#00H MOV A,R2 MOV P1,A MOV A,P1

KS KAIJI SOP KEY MODD MODD KS

JNZ K1 ;有按键转到K1

WAIT

JB ACC.4,L1 ;为1跳转,第一行无

WAIT: LCALL KEY ;键盘扫描,是否有键按

按键,则等待 - - 34


精品单片机课程设计-基于单片机的数字音乐盒设计-定(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高鸿业宏观经济学习题+答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: