基于单片机的音乐盒和电子琴设计Word格式文档下载.docx
- 文档编号:18212185
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:46
- 大小:621.09KB
基于单片机的音乐盒和电子琴设计Word格式文档下载.docx
《基于单片机的音乐盒和电子琴设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的音乐盒和电子琴设计Word格式文档下载.docx(46页珍藏版)》请在冰豆网上搜索。
功能键能实现2个以上按键同时按下来扩展按键数目或实现特殊功能如PC机上的ShiftCtrl
Alt键典型应用图中的S57~S64为功能键。
ZLG7290的电路图:
3、蜂鸣器工作原理
蜂鸣器的作用蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。
蜂鸣器的结构原理:
压电式蜂鸣器压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。
有的压电式蜂鸣器外壳上还装有发光二极管。
多谐振荡器由晶体管或集成电路构成。
当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。
压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。
在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。
电磁式蜂鸣器电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。
接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。
振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
4、16X16LED点阵的工作原理
点阵式显示器:
发光二极管封装成点阵形式,构成不同的字符甚至汉字、图形。
发光二极管排列成矩阵,由亮与暗来产生字符或图形。
每一行的阳极连在一起,每一列的阴极连在一起。
点阵显示器每一列的阴极连在一起,对每一列而言相当于一个共阴显示器。
同时每一行的阳极连在一起,相当于七段显示器的笔划。
这样,可以把5X7的发光二极管点阵看作一个五位显示器。
可采用动态显示电路,以笔划锁存器控制行信号,以位锁存器控制列信号。
实验设计:
1、系统软件的组成:
(1)键盘扫描程序:
检测是否有按键按下,有按键按下则记录按下键的键值,并跳转至功能转移程序;
无按键按下,则返回键盘扫描程序继续检测。
(2)功能转移程序:
对检测到的按键值进行判断,是琴键则跳转至电子琴处理程序,其中电子琴功能的按键是通过ZLG7290中的键盘控制;
是功能键则跳转至音乐盒相应的功能程序,我设计的功能程序有3种,其中通过按键SW2和SW3可查询控制歌曲播放的两倍快进和暂停,通过按键KEY1和KEY2可控制歌曲的切换。
(3)电子琴处理程序:
根据检测到的按键值,给计时器进行对应频率的赋值,使发出相应频率的声音。
并通过ZLG7290中的数码管显示相应音符对应的数值。
(4)音乐盒程序:
检测到按键按下的是音乐盒的功能键后执行该程序,会自动播放事先存放的歌曲,并通过16X16LED点阵显示歌词。
通过音乐盒中的功能键可控制歌曲的播放。
2、实验流程图:
(1)总体框图:
(2)系统总体功能流程图:
(3)LED点阵显示流程图:
(4)外部中断0控制换歌流程图:
(5)外部中断1控制换歌流程图:
3、实验电路图
ZLG7290部分(SDA连P3.1,SCL连P3.0,RST_L连P3.5)
4、参数计算
(1)发音原理
若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。
利用定时器计时半周期时间,每当计时终止后就将P3.4(蜂鸣器接口)反相,然后重复计时再反相。
就可在P3.4引脚上得到此频率的脉冲。
利用51单片机的内部定时器使其工作定时器方式1下,改变计数初值TH0及TL0以产生不同频率的方法产生不同音阶。
(2)计算举例
例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs=956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。
计数脉冲值与频率的关系式是:
N=fi÷
2÷
fr,式中,N是计数值;
fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);
fr是想要产生的频率。
其计数初值T的求法如下:
T=65536-N=65536-fi÷
fr
例如:
设K=65536,fi=1MHz,求中音DO(261Hz)。
fr=65536-1000000÷
fr=65536-500000/fr,中音DO的T=65536-500000/523=64580。
(3)计算结果
单片机12MHZ晶振,中音符与计数T0相关的计数值如表所示:
音符
频率(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
370
64185
1046
65058
低SO
392
64260
1109
65085
415
64331
高2RE
1175
65110
低6LA
440
64400
1245
65134
466
64463
高3MI
1318
65157
低7SI
494
64524
高4FA
1397
65178
中1DO
523
64580
1490
65198
554
64633
高5SO
1568
65217
中2RE
587
1661
65235
622
64884
高6LA
1760
65252
中3MI
659
64732
1865
65268
中4FA
698
64820
高7SI
1967
65283
采用查表程序进行查表时,可以为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据:
低音0-19之间,中音在20-39之间,高音在40-59之间。
用单片机播放音乐,或者弹奏电子琴,实际上是按照特定的频率,输出一连串的方波。
为了输出合适的方波,首先应该知道音符与频率的关系。
(4)音调数据表
曲调值
DELAY
调4/4
125ms
62ms
调3/4
187ms
94ms
调2/4
250ms
上表中的频率数值,有些过多,去掉不常用的黑键频率,只是把白键对应的数据存放在单片机中,即可满足绝大部分的应用需求。
定义音调数据表的程序如下:
DW63628,63835,64021,64103,64260,64400,64524;
64580,低音区:
1234567
DW64580,64671,64777,64820,64898,64968,6503065058中音区:
DW65058,65110,65157,65178,65217,65252,6528365312高音区:
把这个数据表,放在程序中,需要播音的时候,就从表中取出一个数据送到定时器,当定时器溢出中断的时候,再对输出引脚取反,那么,在扬声器中,即可听到上表中频率的声音。
实验步骤:
1、使用导线将A2区的P10~P14与C3区的L_DAT_H、L_DAT_L、L_CLK、L_OE、L_STR依次相连。
2、使用导线将A2区的P15~P17分别和D1区的SW1~SW3相连,并连接到LED上作为指示灯。
3、使用导线将A2区的P30、P31分别和D5区的SCL、,SDA相连。
4、使用导线将A2区的P32、P33分别和D1区的KEY1、KEY2相连。
5、使用导线将A2区的P34和B5区的BUZZ接口相连。
6、使用导线将A2区的P35和D5区的RST_L相连。
实验代码及注释:
;
寄存器说明:
10HI2C应答标志位
20HTL0
21HTH0
22H音乐盒部分的临时变量
23H歌曲序号标志位
24H两倍快进的标志位,0FFH快进
30H曲谱相对位置,歌词相对位置
31H,32H曲谱初始地址,DPL,DPH
33H,34H字模初始地址,DPL,DPH
40H-44HI2C发送缓存
45H-49HI2C接受缓存
50HI2C器件从地址
51HI2C器件子地址
52HI2C传输字节数
I/O口说明:
P1.0-P1.4点阵L_DAT_H,L_DAT_L,L_CLK,L_OE,L_STR
P1.5控制电子琴、音乐盒双功能
P1.6查询控制两倍快进
P1.7查询控制暂停
P3.0I2CSDA数据位
P3.1I2CSCL时钟位
P3.2外部中断0,控制换歌
P3.3外部中断1,控制换歌
P3.4蜂鸣器BUZZ
P3.5I2C初始化
SDABITP3.1;
I2C管脚定义
SCLBITP3.0
RST_I2CBITP3.5
BUZZBITP3.4
MTDEQU40H;
发送缓存,最多5B
MRDEQU45H;
接受缓存,最多5B
ZLG7290EQU70H;
ZLG器件地址
ACKBIT10H;
应答标志位
SLADATA50H;
器件从地址
SUBADATA51H;
器件子地址
NUMBYTEDATA52H;
传输字节变量
ORG8000H
LJMPMAIN
ORG8003H;
INT0中断入口地址
LJMPXET0
ORG800BH;
T0中断入口地址
LJMPTT0
ORG8013H;
INT1中断入口地址
LJMPXET1
ORG8100H
初始化
MAIN:
MOVSP,#60H;
初始化,堆栈从60H开始
MOVTMOD,#01H;
定时器0工作在1模式
SETBIT0;
开放外部中断IT0边沿触发
SETBPT0;
设置T0为高优先级中断
SETBIT1;
开放外部中断IT1边沿触发
CLRPT1;
设置T1为低优先级中断
CLRPX0;
设置INT0为低优先级中断
SETBEX0;
开放INT0中断
SETBET0;
开放T0中断
SETBEX1;
开放INT1中断
SETBEA;
开放CPU中断
SETBTR0;
启动T0工作
MOV23H,#1;
默认开始是第一首歌
MOV24H,#00H;
默认开始是正常播放
MOVDPTR,#TABLE_BELL
MOV31H,DPL;
曲谱初始地址
MOV32H,DPH
MOVDPTR,#LYRIC_BELL
MOV33H,DPL;
字模初始地址
MOV34H,DPH
SETBP1.5
SETBP1.6;
初始化引脚
SETBP1.7
SETBP3.3
SETBRST_I2C;
I2C初始化
CLRRST_I2C;
ZLG7290复位
LCALLDELAY
SETBRST_I2C
MOVMTD,#60H;
I2C通讯
MOVMTD+1,#01H
MOVSLA,#ZLG7290;
指定器件地址
MOVSUBA,#07H;
指定子地址
MOVNUMBYTE,#02H;
发送两字节数据
LCALLIWRNBYTE;
调用写两字节数据程序
MOVMTD+1,23H
MOVSLA,#ZLG7290
MOVSUBA,#07H
MOVNUMBYTE,#02H
LCALLIWRNBYTE
START:
MOVC,P1.5;
判断模式
JNCSTART0
LJMPKEYST;
P1.5为1,键盘琴转入KEYST
START0:
MOVMTD,#61H;
MOVMTD+1,#00H
SETBBUZZ
MOV30H,#00H;
相对偏移位置初始化为零
音乐盒模块
NEXT:
1则停止
JNCSINGER
SINGER:
MOVC,P1.7;
暂停位,1则停止
JCENDD
MOVC,P1.6;
快进位,1为快进
JNCNOTFF
MOV24H,#0FFH;
如快进,设置快进位24H
JMPREADNOTE
NOTFF:
MOV24H,#00H
READNOTE:
MOVA,30H;
读取音频及时间信息
MOVDPL,31H
MOVDPH,32H
MOVCA,@A+DPTR
MOVR2,A
CJNEA,#00H,GON
LJMPENDD
GON:
ANLA,#0FH
MOVB,#20;
原Delay时间为200ms,点阵刷屏时间10ms
MULAB
MOVR7,A;
分离时间信息
MOVA,R2
SWAPA
ANLA,#0FH;
分离音频信息
JNZSING
CLRTR0
JMPD1
SING:
DECA
MOV22H,A
RLA
MOVDPTR,#TABLE1;
调整定时器TH0与TL0控制频率变化
MOVTH0,A
MOV21H,A
MOVA,22H
INCA
MOVTL0,A
MOV20H,A
SETBTR0
D1:
CALLLED;
调入LED点阵
MOVA,24H;
是否快进
CJNEA,#0FFH,LOOPNOTFF
INC30H;
增加音符地址偏移量
MOVA,33H;
增加字模偏移量
ADDA,#32
MOV33H,A
MOVA,34H
ADDCA,#0
MOV34H,A
CLRC
LOOPNOTFF:
JMPNEXT
ENDD:
MOVA,23H
CJNEA,#1,S2
S1:
;
相对地址清零,第一首歌
MOV33H,DPL
SJMPRTEND
S2:
CJNEA,#2,S3
MOVDPTR,#LYRIC_FUDAN
S3:
MOVDPTR,#LYRIC_BIRTH
RTEND:
CLRTR0;
一遍结束
JMPSTART
电子琴模块
KEYST:
I2C通讯,将第二位数码管置为1
I2C通讯,将第一位数码管置0
KEYST0:
P1.5为1,键盘琴转入KEYST1
JCKEYST1
MOV30H,#00H
LJMPSTART
KEYST1:
MOVSUBA,#01H
MOVNUMBYTE,#1;
读操作初始化,读一个数字
LCALLIRDNBYTE
MOVR0,MRD
CJNER0,#00H,KEY1
LJMPKEYST0
KEY1:
CJNER0,#01H,KEY2
MOV21H,#0FBH
MOV20H,#68H
I2C通讯,将第二位数码管置为5
MOVMTD+1,#45H
LJMPSET_TIMER
KEY2:
CJNER0,#02H,KEY3
MOV20H,#0E9H
I2C通讯,将第二位数码管置为6
MOVMTD+1,#46H
KEY3:
CJNER0,#03H,KEY4
MOV21H,#0FCH
MOV20H,#5BH
I2C通讯,将第二位数码管置为7
MOVMTD+1,#47H
KEY4:
CJNER0,#04H,KEY5
MOV20H,#8FH
MOVMTD+1,#41
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 音乐盒 电子琴 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)