数字音乐盒设计Word格式文档下载.docx

上传人:b****1 文档编号:4690371 上传时间:2023-05-03 格式:DOCX 页数:36 大小:96.14KB
下载 相关 举报
数字音乐盒设计Word格式文档下载.docx_第1页
第1页 / 共36页
数字音乐盒设计Word格式文档下载.docx_第2页
第2页 / 共36页
数字音乐盒设计Word格式文档下载.docx_第3页
第3页 / 共36页
数字音乐盒设计Word格式文档下载.docx_第4页
第4页 / 共36页
数字音乐盒设计Word格式文档下载.docx_第5页
第5页 / 共36页
数字音乐盒设计Word格式文档下载.docx_第6页
第6页 / 共36页
数字音乐盒设计Word格式文档下载.docx_第7页
第7页 / 共36页
数字音乐盒设计Word格式文档下载.docx_第8页
第8页 / 共36页
数字音乐盒设计Word格式文档下载.docx_第9页
第9页 / 共36页
数字音乐盒设计Word格式文档下载.docx_第10页
第10页 / 共36页
数字音乐盒设计Word格式文档下载.docx_第11页
第11页 / 共36页
数字音乐盒设计Word格式文档下载.docx_第12页
第12页 / 共36页
数字音乐盒设计Word格式文档下载.docx_第13页
第13页 / 共36页
数字音乐盒设计Word格式文档下载.docx_第14页
第14页 / 共36页
数字音乐盒设计Word格式文档下载.docx_第15页
第15页 / 共36页
数字音乐盒设计Word格式文档下载.docx_第16页
第16页 / 共36页
数字音乐盒设计Word格式文档下载.docx_第17页
第17页 / 共36页
数字音乐盒设计Word格式文档下载.docx_第18页
第18页 / 共36页
数字音乐盒设计Word格式文档下载.docx_第19页
第19页 / 共36页
数字音乐盒设计Word格式文档下载.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数字音乐盒设计Word格式文档下载.docx

《数字音乐盒设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数字音乐盒设计Word格式文档下载.docx(36页珍藏版)》请在冰点文库上搜索。

数字音乐盒设计Word格式文档下载.docx

验收盖章

2012年12月28日

数字音乐盒地设计

1设计目地

(1)熟悉用于单片机C语言地一些用法.

(2)掌握单片机地基本功能.

(3)了解程序是如何控制硬件.

2设计思路

音乐部分用控制I/O口高低电平变化地快慢来改变发出音符地频率(即不同唱名地音)

按键部分利用中断来控制播放/暂停、上曲/下曲功能

3设计过程

3.1方案论证

该程序总体分为三个部分:

音乐部分、按键部分、显示部分.

音乐部分实现不用频率不同节拍地音构成完整曲目;

按键部分实现播放/暂停(key1)、上曲/下曲功能;

(key2/key3)

显示部分实现开机问候语和曲目播放中曲名地显示;

3.2程序设计

音符部分:

while(x<

uchara)//此处uchara填地数决定音符响地时长,uintb填地数决定音符频率

{

speaker=1。

delayus(uintb)。

speaker=0。

delayus(uintb)

}

x=0。

按键部分(播放/暂停)

voidkeyscan()

{

if(key1==0)

delayms(10)。

ET0=~ET0。

//通过控制中断开关ET0来实现播放暂停

上一曲/下一曲部分

voidT0_time()interrupt1

LCD部分程序(显示歌曲状态为暂停)

while

(1)

{if(key1==0)

if(key1==0)

}

LCD 

部分程序

break。

voidINT0_time()interrupt0

keyscan()。

按键部分(上曲/下曲)

key1部分

if(key2==0)

n--。

if(n==0)

n=3。

}}

if(key3==0)

n++。

if(n==4)

n=1。

uchara)

if(n!

=c)//c填地是曲目序号

=c)

4程序调试与结果分析

4.1程序调试

在程序没有写完之前,如果前面声明了子函数,但是后面没有用到地话,会出现警告.只有程序写完整了警告才会不再出现;

还有其中key=1和key==1地意义不同,编译之后系统也判为警告,但实际上只能写作key==1,写程序时应注意.

4.2结果分析

在程序只完成了音乐部分和按键部分时(即没有加入显示部分时),用proteus仿真时反应速度较理想.在加入显示部分后,播放第一曲时按下“下一曲”键会过几秒才调到第二曲;

播放曲目时按下“播放/暂停”键大概超过半秒才会暂停,而从暂停到继续播放时快速点击按键即可.上述情况仍存在,但不影响音乐盒基本功能.

5设计体会

通过这次对数字音乐盒地设计与制作,我大概明白了设计一个具有一定功能地产品地部分基本步骤,了解到自己才刚起步,还有许多东西等着我去学习,我会在不断学习与实践中累积经验,向更高地目标迈进.

参考文献(至少5篇)

[1]新概念51单片机C语言教程(郭天祥著)

[2]互联网

[3]老师、同学地指导

附件

完整程序(分段显示程序)

#include<

reg52.h>

#defineucharunsignedchar

#defineuintunsignedint

ucharcodetable[]="

WELCOME"

ucharcodetable1[]="

THEMUSICBOX"

ucharcodetable2[]="

STATE:

ON"

ucharcodetable3[]="

STOP"

ucharcodetable4[]="

"

ucharcodetable5[]="

MUSICNO.1"

ucharcodetable6[]="

MUSICNO.2"

ucharcodetable7[]="

MUSICNO.3"

sbitspeaker=P2^7。

sbitkey1=P2^0。

sbitkey2=P2^1。

sbitkey3=P2^2。

sbitlcden=P3^4。

sbitlcdrs=P3^5。

ucharx,a,n=1,num,f,com。

uinty。

voiddelayus(uint)。

voiddelayms(uint)。

voidmusicalnotea(uchar,uint)。

voidmusicalnoteb(uchar,uint)。

voidmusicalnotec(uchar,uint)。

voidwrite_com(ucharcom)

lcdrs=0。

P1=com。

delayms(5)。

lcden=1。

lcden=0。

voidwrite_data(uchardate)

lcdrs=1。

P1=date。

voidclean2()

write_com(0x80+0x40)。

for(num=0。

num<

16。

num++)

{

write_data(table4[num])。

}

voidclean1()

write_com(0x80)。

if(key1==0)

if(key2==0)

if(n==0)

if(key3==0)

if(n==4)

voidinit()

{lcden=0。

write_com(0x38)。

write_com(0x0c)。

write_com(0x06)。

write_com(0x01)。

TMOD=0x11。

EA=1。

ET1=1。

TR1=1。

ET0=0。

TR0=1。

IT0=1。

EX0=1。

x=0。

voidinternationalsong()

musicalnotea(3,269)。

//低A

musicalnotea(9,238)。

//低B

musicalnotea(18,198)。

//D

delayus(1000)。

musicalnotea(6,198)。

musicalnotea(12,223)。

//C

musicalnotea(12,238)。

musicalnotea(18,269)。

musicalnotea(6,238)。

musicalnotea(3,238)。

musicalnotea(15,223)。

musicalnotea(3,223)。

musicalnotea(18,238)。

musicalnotea(6,269)。

musicalnotea(24,298)。

//低G

delayms(600)。

musicalnotea(12,198)。

musicalnotea(18,148)。

//G

musicalnotea(6,158)。

//#F

musicalnotea(6,133)。

//A

musicalnotea(6,148)。

musicalnotea(18,178)。

//E

musicalnotea(6,178)。

delayms(300)。

musicalnotea(18,133)。

musicalnotea(6,223)。

musicalnotea(24,238)。

musicalnotea(12,158)。

musicalnotea(12,133)。

musicalnotea(12,111)。

//高C

musicalnotea(30,148)。

musicalnotea(9,118)。

//B

musicalnotea(3,133)。

musicalnotea(24,158)。

musicalnotea(6,210)。

//#C

musicalnotea(30,158)。

musicalnotea(24,118)。

musicalnotea(12,148)。

musicalnotea(12,178)。

musicalnotea(30,198)。

musicalnotea(24,148)。

musicalnotea(24,178)。

musicalnotea(9,133)。

musicalnotea(3,148)。

musicalnotea(18,158)。

musicalnotea(6,188)。

//#D

musicalnotea(30,133)。

musicalnotea(36,118)。

musicalnotea(12,118)。

musicalnotea(24,99)。

//高D

musicalnotea(6,118)。

musicalnotea(6,111)。

musicalnotea(18,118)。

24)//G

delayus(148)。

=1)

if(n>

1)

if(n<

voidicegirl()

delayms(800)。

musicalnoteb(6,210)。

musicalnoteb(6,238)。

musicalnoteb(4,210)。

musicalnoteb(16,178)。

musicalnoteb(4,423)。

//低#C

musicalnoteb(4,238)。

musicalnoteb(4,178)。

musicalnoteb(4,158)。

musicalnoteb(8,140)。

//#G

musicalnoteb(8,158)。

musicalnoteb(4,538)。

//低低A

musicalnoteb(12,178)。

musicalnoteb(6,140)。

musicalnoteb(2,269)。

musicalnoteb(2,238)。

musicalnoteb(2,223)。

musicalnoteb(2,198)。

musicalnoteb(4,448)。

//低C

musicalnoteb(4,198)。

musicalnoteb(8,398)。

//低D

musicalnoteb(4,148)。

musicalnoteb(8,178)。

musicalnoteb(4,358)。

//低E

musicalnoteb(4,398)。

musicalnoteb(12,118)。

musicalnoteb(4,118)。

musicalnoteb(2,148)。

musicalnoteb(2,118)。

//F

musicalnoteb(20,178)。

musicalnoteb(12,89)。

//高E

musicalnoteb(4,89)。

musicalnoteb(4,99)。

musicalnoteb(2,99)。

musicalnoteb(2,89)。

musicalnoteb(4,133)。

musicalnoteb(24,118)。

musicalnoteb(8,79)。

//高#F

musicalnoteb(12,74)。

//高G

musicalnoteb(4,74)。

musicalnoteb(4,79)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2