数字音乐盒设计说明.docx

上传人:b****5 文档编号:30049089 上传时间:2023-08-04 格式:DOCX 页数:35 大小:93.80KB
下载 相关 举报
数字音乐盒设计说明.docx_第1页
第1页 / 共35页
数字音乐盒设计说明.docx_第2页
第2页 / 共35页
数字音乐盒设计说明.docx_第3页
第3页 / 共35页
数字音乐盒设计说明.docx_第4页
第4页 / 共35页
数字音乐盒设计说明.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

数字音乐盒设计说明.docx

《数字音乐盒设计说明.docx》由会员分享,可在线阅读,更多相关《数字音乐盒设计说明.docx(35页珍藏版)》请在冰豆网上搜索。

数字音乐盒设计说明.docx

数字音乐盒设计说明

文理学院

综合课程设计

(一)

IntegratedCurriculumDesign

(1)

所在院系

信息工程系

专业名称

电子信息工程

班级

1001

题目

数字音乐盒设计

指导教师

成员

完成时间

2012.12.28

一、设计任务及要求:

设计任务:

设计一个数字音乐盒程序。

要求:

预写3个曲子

可以实现播放/暂停、上一曲/下一曲功能

有开机欢迎词,播放曲目时LCD屏幕上显示曲目名称

指导教师签名:

2012年12月28日

二、指导教师评语:

 

指导教师签名:

2012年12月28日

三、成绩

 

验收盖章

2012年12月28日

数字音乐盒的设计

1设计目的

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

(2)掌握单片机的基本功能。

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

2设计思路

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

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

3设计过程

3.1方案论证

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

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

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

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

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

3.2程序设计

音符部分:

while(x

{

speaker=1;

delayus(uintb);

speaker=0;

delayus(uintb)

}

x=0;

按键部分(播放/暂停)

voidkeyscan()

{

if(key1==0)

{

delayms(10);

if(key1==0)

{

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

}

}

上一曲/下一曲部分

}

 

voidT0_time()interrupt1

{

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

while

(1)

{if(key1==0)

{

delayms(10);

if(key1==0)

}

LCD 部分程序

break;

}

}

 

voidINT0_time()interrupt0

{

keyscan();

}

 

按键部分(上曲/下曲)

{

key1部分

if(key2==0)

{

delayms(10);

if(key2==0)

{

n--;

if(n==0)

n=3;}}

if(key3==0)

{

delayms(10);

if(key3==0)

{

n++;

if(n==4)

n=1;}}

}

 

while(x

{

speaker=1;

delayus(uintb);

if(n!

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

break;

speaker=0;

delayus(uintb);

if(n!

=c)

break;

}

 

4程序调试与结果分析

4.1程序调试

在程序没有写完之前,如果前面声明了子函数,但是后面没有用到的话,会出现警告。

只有程序写完整了警告才会不再出现;还有其中key=1和key==1的意义不同,编译之后系统也判为警告,但实际上只能写作key==1,写程序时应注意。

4.2结果分析

在程序只完成了音乐部分和按键部分时(即没有加入显示部分时),用proteus仿真时反应速度较理想。

在加入显示部分后,播放第一曲时按下“下一曲”键会过几秒才调到第二曲;播放曲目时按下“播放/暂停”键大概超过半秒才会暂停,而从暂停到继续播放时快速点击按键即可。

上述情况仍存在,但不影响音乐盒基本功能。

5设计体会

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

参考文献(至少5篇)

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

[2]互联网.baidu.

[3]老师、同学的指导

 

附件

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

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharcodetable[]="WELCOME";

ucharcodetable1[]="THEMUSICBOX";

ucharcodetable2[]="STATE:

ON";

ucharcodetable3[]="STATE:

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,;

uinty;

voiddelayus(uint);

voiddelayms(uint);

voidmusicalnotea(uchar,uint);

voidmusicalnoteb(uchar,uint);

voidmusicalnotec(uchar,uint);

 

voidwrite_(uchar)

{

lcdrs=0;

P1=;

delayms(5);

lcden=1;

delayms(5);

lcden=0;

}

voidwrite_data(uchardate)

{

lcdrs=1;

P1=date;

delayms(5);

lcden=1;

delayms(5);

lcden=0;

}

voidclean2()

{

write_(0x80+0x40);

for(num=0;num<16;num++)

{

write_data(table4[num]);

delayms(5);

}

}

voidclean1()

{

write_(0x80);

for(num=0;num<16;num++)

{

write_data(table4[num]);

delayms(5);

}

}

voidkeyscan()

{

if(key1==0)

{

delayms(10);

if(key1==0)

{

ET0=~ET0;

}

}

if(key2==0)

{

delayms(10);

if(key2==0)

{

n--;

if(n==0)

n=3;

}

}

if(key3==0)

{

delayms(10);

if(key3==0)

{

n++;

if(n==4)

n=1;

}

}

}

 

voidinit()

{lcden=0;

write_(0x38);

write_(0x0c);

write_(0x06);

write_(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);

x=0;

musicalnotea(6,198);//D

musicalnotea(12,223);//C

musicalnotea(12,238);//低B

musicalnotea(18,269);//低A

musicalnotea(6,238);//低B

delayus(1000);

x=0;

musicalnotea(3,238);//低B

musicalnotea(15,223);//C

musicalnotea(3,238);//低B

musicalnotea(3,223);//C

musicalnotea(18,238);//低B

delayus(1000);

x=0;

musicalnotea(6,238);//低B

musicalnotea(18,269);//低A

delayus(1000);

x=0;

musicalnotea(6,269);//低A

musicalnotea(24,298);//低G

delayms(600);

x=0;

musicalnotea(12,198);//D

musicalnotea(18,148);//G

musicalnotea(6,158);//#F

musicalnotea(6,133);//A

musicalnotea(6,148);//G

musicalnotea(6,198);//D

musicalnotea(6,238);//低B

musicalnotea(18,178);//E

delayus(1000);

x=0;

musicalnotea(6,178);//E

musicalnotea(12,223);//C

delayms(300);

x=0;

musicalnotea(6,178);//E

musicalnotea(18,133);//A

musicalnotea(6,148);//G

musicalnotea(6,158);//#F

musicalnotea(6,178);//E

musicalnotea(6,198);//D

musicalnotea(6,223);//C

musicalnotea(24,238);//低B

delayms(600);

x=0;

musicalnotea(12,198);//D

musicalnotea(18,148);//G

musicalnotea(6,158);//#F

musicalnotea(6,133);//A

musicalnotea(6,148);//G

musicalnotea(6,198);//D

musicalnotea(6,238);//低B

musicalnotea(18,178);//E

delayus(1000);

x=0;

musicalnotea(6,178);//E

musicalnotea(6,223);//C

musicalnotea(6,178);//E

musicalnotea(6,133);//A

musicalnotea(6,148);//G

musicalnotea(12,158);//#F

musicalnotea(12,133);//A

musicalnotea(12,111);//高C

musicalnotea(12,158);//#F

musicalnotea(30,148);//G

delayms(300);

x=0;

musicalnotea(9,118);//B

musicalnotea(3,133);//A

musicalnotea(24,158);//#F

musicalnotea(6,178);//E

musicalnotea(6,158);//#F

musicalnotea(6,148);//G

musicalnotea(6,178);//E

musicalnotea(24,158);//#F

musicalnotea(12,198);//D

musicalnotea(6,210);//#C

musicalnotea(6,198);//D

musicalnotea(18,178);//E

delayus(1000);

x=0;

musicalnotea(6,178);//E

musicalnotea(18,133);//A

musicalnotea(6,148);//G

musicalnotea(30,158);//#F

delayms(300);

x=0;

musicalnotea(12,133);//A

delayus(1000);

x=0;

musicalnotea(18,133);//A

musicalnotea(6,158);//#F

musicalnotea(6,198);//D

delayus(1000);

x=0;

musicalnotea(6,198);//D

musicalnotea(6,210);//#C

musicalnotea(6,198);//D

musicalnotea(24,118);//B

musicalnotea(6,148);//G

musicalnotea(6,178);//E

musicalnotea(6,158);//#F

musicalnotea(6,148);//G

musicalnotea(12,158);//#F

musicalnotea(12,133);//A

musicalnotea(12,148);//G

musicalnotea(12,178);//E

musicalnotea(30,198);//D

delayms(300);

x=0;

musicalnotea(9,118);//B

musicalnotea(3,133);//A

musicalnotea(24,148);//G

musicalnotea(18,198);//D

musicalnotea(6,238);//低B

musicalnotea(24,178);//E

musicalnotea(6,223);//C

delayms(300);

x=0;

musicalnotea(9,133);//A

musicalnotea(3,148);//G

musicalnotea(24,158);//#F

musicalnotea(12,178);//E

musicalnotea(12,198);//D

delayus(1000);

x=0;

musicalnotea(30,198);//D

delayms(300);

x=0;

musicalnotea(12,198);//D

musicalnotea(24,118);//B

musicalnotea(12,133);//A

musicalnotea(12,198);//D

musicalnotea(24,148);//G

musicalnotea(18,158);//#F

delayus(1000);

x=0;

musicalnotea(6,158);//#F

musicalnotea(18,178);//E

musicalnotea(6,188);//#D

musicalnotea(12,178);//E

musicalnotea(12,133);//A

delayus(1000);

x=0;

musicalnotea(30,133);//A

delayms(300);

x=0;

musicalnotea(9,118);//B

musicalnotea(3,133);//A

musicalnotea(24,148);//G

musicalnotea(18,198);//D

musicalnotea(6,238);//低B

musicalnotea(24,178);//E

musicalnotea(6,223);//C

delayms(300);

x=0;

musicalnotea(9,133);//A

musicalnotea(3,148);//G

musicalnotea(24,158);//#F

musicalnotea(12,178);//E

musicalnotea(12,198);//D

musicalnotea(36,118);//B

delayus(1000);

x=0;

musicalnotea(12,118);//B

musicalnotea(24,99);//高D

musicalnotea(12,111);//高C

musicalnotea(12,118);//B

musicalnotea(18,133);//A

musicalnotea(6,118);//B

musicalnotea(12,111);//高C

delayms(300);

x=0;

musicalnotea(6,111);//高C

musicalnotea(18,118);//B

delayus(1000);

x=0;

musicalnotea(6,118);//B

musicalnotea(18,133);//A

delayus(1000);

x=0;

musicalnotea(6,133);//A

while(x<24)//G

{

speaker=1;

delayus(148);

if(n!

=1)

break;

speaker=0;

delayus(148);

if(n!

=1)

break;

}

if(n>1)

n--;

if(n<1)

n++;

x=0;

n++;

}

 

voidicegirl()

{

delayms(800);

x=0;

musicalnoteb(6,210);//#C

musicalnoteb(6,238);//B

musicalnoteb(4,210);//#C

musicalnoteb(16,178);//E

musicalnoteb(4,423);//低#C

musicalnoteb(4,210);//#C

musicalnoteb(4,238);//B

musicalnoteb(4,210);//#C

musicalnoteb(4,178);//E

musicalnoteb(4,158);//#F

musicalnoteb(4,210);//#C

musicalnoteb(4,238);//B

musicalnoteb(6,210);//#C

musicalnoteb(6,238);//B

musicalnoteb(4,210);//#C

musicalnoteb(16,178);//E

musicalnoteb(4,423);//低#C

musicalnoteb(4,210);//#C

musicalnoteb(4,238);//B

musicalnoteb(4,210);//#C

musicalnoteb(8,140);//#G

musicalnoteb(8,158);//#F

musicalnoteb(6,210);//#C

musicalnoteb(6,238);//B

musicalnoteb(4,210);//#C

musicalnoteb(16,178);//E

musicalnoteb(4,538);//低低A

musicalnoteb(4,210);//#C

musicalnoteb(4,238);//B

musicalnoteb(4,210);//#C

musicalnoteb(4,178);//E

musicalnoteb(4,158);//#F

musicalnoteb(4,210);//#C

musicalnoteb(4,238);//B

musicalnoteb(6,210);//#C

musicalnoteb(6,238);//B

musicalnoteb(4,210);//#C

musicalnoteb(12,178);//E

musicalnoteb(4,210);//#C

musicalnoteb(4,538);//低低A

musicalnoteb(4,210);//#C

musicalnoteb(6,140);//#G

delayus(1000);

x=0;

musicalnoteb(6,140);//#G

musicalnoteb(4,158);//#F

musicalnoteb(2,269);//低A

musicalnoteb(2,238);//低B

musicalnoteb(2,223);//C

musicalnoteb(2,198);//D

musicalnoteb(4,448);//低C

musicalnoteb(4,198);//D

musicalnoteb(4,178);//E

musicalnoteb(8,398);//低D

musicalnoteb(4,148);//G

musicalnoteb(4,158);//#F

musicalnoteb(4,198);//D

musicalnoteb(8,178);//E

musicalnoteb(4,358);//低E

musicalnoteb(4,198);//D

musicalnoteb(4,398);//低D

musicalnoteb(4,178);//E

musicalnoteb(4,158);//#F

musicalnoteb(4,148);//G

musicalnoteb(12,118);//B

delayus(1000);

x=0;

musicalnoteb(4,118);//B

musicalnoteb(4,148);//G

delayus(1000);

x=0;

musicalnoteb(2,148);//G

musicalnoteb(2,118);//B

musicalnoteb(4,148);//G

musicalnoteb(4,158);//F

musicalnoteb(20,178);//E

delayus(1000);

x=0;

musicalnoteb(4,178);//E

musicalnoteb(4,148);//G

musicalnoteb(4,118);//B

musicalnoteb(12,89);//高E

delayus(1000);

x=0;

musicalnoteb(4,89);//高E

musicalnoteb(4,99);//D

delayus(1000);

x=0;

musicalnoteb(2,99);//高D

musicalnoteb(2,89);//高E

musicalnoteb(4,99);//高D

musicalnoteb(4,133);//A

musicalnoteb(24,118);//B

 

musicalnoteb(8,79);//高#F

musicalnoteb(12,74);//高G

delayus(1000);

x=0;

musicalnoteb(4,74);//高G

musicalnot

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

当前位置:首页 > 外语学习 > 英语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1