基于51单片机数字音乐盒的设计
时间:2026-01-16
时间:2026-01-16
题 班
姓 学号:
单片机实物设计
目: 单片机音乐盒设计
级: K0312416-17 名:
摘 要
本设计是一个基于STC89C51RC系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。本音乐盒共有四首歌曲,用4个按键控制。播放歌曲时,蜂鸣器发出某个音调。本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试,节约了设计时间。 【关键词】STC89C51RC 按键 蜂鸣器 LCD1602液晶
目录
前 言 ................................................................................................................................. 第一章 工作原理 ..............................................................................................................
1.1设计目标 ...............................................................................................................
第二章 软件设计与分析 ...................................................................................................
2.1 软件设计的组成 ................................................................................................... 2.2 各部分软件分析 .................................................................................................
2.2.1 延时165MS,即十六分音符子函数 .......................................................... 2.2.2 延时1MS子函数 ...................................................................................... 2.2.3 定时器0中断子函数 .............................................................................. 2.2.4 播放音乐子函数 ...................................................................................... 2.5 定时器1中断子函数 .................................................................................. 2.6 按键扫描子函数 ......................................................................................... 2.2.7 主函数 ..................................................................................................... 2.3 总源程序 ............................................................................................................ 第三章 软件仿真 ..............................................................................................................
3.仿真图 ...................................................................................................................... 3.1 元件清单 ............................................................................................................... 总结 ..................................................................................................................................... 参考文献..............................................................................................................................
第一章 工作原理
1.1设计目标
1.1.1基本功能
具体要求是:以单片机为核心,设计一个数字音乐盒:
利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少3首乐曲,每首不少于30s)。 采用LCD显示信息。
a. 开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称)。 b. 可通过功能键选择乐曲、暂停、播放。
第二章 软件设计与分析
2.1 软件设计的组成
该系统由延时165MS,即十六分音符子函数、延时1MS子函数、按键扫描子函数、播放音乐子函数、定时器1中断子函数、定时器0中断子函数、主函数和数据定义这几部分组成。
2.2 各部分软件分析
2.2.1 延时165MS,即十六分音符子函数
//延时165MS,即十六分音符子函数 void delay1(uint z) { }
uint x,y; for(x=z;x>0;x--)
for(y=19000;y>0;y--);
2.2.2 延时1MS子函数
//延时1MS子函数 void delay2(uint z) {
uint x,y; for(x=z;x>0;x--)
for(y=110;y>0;y--);
2.2.3 定时器0中断子函数
//定时器0中断子函数
void t0() interrupt 1 //用于产生各种音调 { TH0=a; TL0=b; BEEP=~BEEP;
}
2.2.4 播放音乐子函数
//播放音乐子函数 void song() { uint temp;
uchar aa;//aa是简谱 c=0; while(1) {
if(count2==0) { break;
}
if(count2==1) //选曲
temp=table1[c];
if(count2==2)
temp=table2[c];
if(count2==3)
temp=table3[c];
}
}
temp=table4[c];
if(temp==0xff)
break;
aa=temp/16; //取数的高4位 if(aa!=0) { } else { }
delay1(temp%16); //取数的低4位 TR1=0; //唱完一个音停10MS BEEP=1; delay2(10); TR1=1; c++;
TR1=0;
BEEP=1;//关蜂鸣器 a=cuzhi[aa*2]; b=cuzhi[aa*2+1];
TR1=0; BEEP=1;
2.2.5 定时器1中断子函数
//定时器1中断子函数
void t1() interrupt 3 //用于产生各种音调 {
key();
}
2.2.6 按键扫描子函数
void key() { if(k3==0) { delay2(10); if(k3==0) { num1++; if(num1==1) { TR1=0; aa=count2; count2=0;
}
if(num1==2) { num1=0; count2=aa; TR1=1; }
while(!k3);
}
} if(k4==0) {
delay2(10);
if(k4==0) { TR1=0; count2=0; c=0;
write_com(0x01);//清屏 write_com(0x80+0); write_date('W'); write_com(0x80+1); write_date('e'); write_com(0x80+2); write_date('l'); write_com(0x80+3); write_date('c'); write_com(0x80+ …… 此处隐藏:7413字,全部文档内容请下载后查看。喜欢就下载吧 ……