单边机报告.docx

上传人:b****8 文档编号:9705239 上传时间:2023-02-05 格式:DOCX 页数:28 大小:412.68KB
下载 相关 举报
单边机报告.docx_第1页
第1页 / 共28页
单边机报告.docx_第2页
第2页 / 共28页
单边机报告.docx_第3页
第3页 / 共28页
单边机报告.docx_第4页
第4页 / 共28页
单边机报告.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

单边机报告.docx

《单边机报告.docx》由会员分享,可在线阅读,更多相关《单边机报告.docx(28页珍藏版)》请在冰豆网上搜索。

单边机报告.docx

单边机报告

成绩

□优□良□中□及格□不及格

课程设计

课程名称

单片机原理及应用

课题名称

音乐播放器设计

专业

电气工程及其自动化

班级

电气1201班

学号

37

姓名

何方

指导老师

寻大勇

2015年7月10日

报告撰写要求(此页不打印)

课程设计报告是体现课程设计成果的载体,具体要求如下:

1、课程设计报告的基本格式

(1)说明书统一使用word文档打印,A4纸张,页边距设置为:

上2cm,下2cm,左2.54cm,右2cm。

(2)正文采用宋体小四,字间距20磅;1级标题采用黑体小三,2级标题采用黑体四号,3级标题采用黑体小四;1和2级标题段落间距为上下0.5行。

(3)图表需统一编号,图标标题采用黑体五号;图标题在图片下方,表格标题在表格上方。

(4)装订顺序为:

封面、任务书、报告正文、评分表。

2、课程设计报告的撰写要求

(1)设计报告正文内容为10页左右为宜,主要内容为自己的设计思路、设计步骤、关键性步骤的记录、重要结果的记录以及自己本次课程设计的总结。

报告撰写要求思路清晰、结构合理、层次清晰,报告简洁但又要能体现设计过程。

(2)报告中图表要求清晰、规范,图表的尺寸大小适当。

(3)课程设计报告内容(仅供参考):

 

电气信息学院

课程设计任务书

课题名称

音乐播放器设计

姓名

何方

专业

电气工程及其自动化

班级

1201

学号

37

指导老师

寻大勇

课程设计时间

2015年6月29日-2015年7月10日

一、任务及要求

设计任务:

本课题以单片机为核心,设计和制作一个音乐播放器。

可以自动播放音乐,包括播放、暂停、上一首、下一首等功能。

设计要求:

(1)确定系统设计方案;

(2)进行系统的硬件设计;

(3)完成应用程序设计;

(4)应用系统的硬件和软件的调试。

二、进度安排

第一周:

周一:

集中布置课程设计任务和相关事宜,查资料确定系统总体方案。

周二~周三:

完成硬件设计和电路连接

周四~周日:

完成软件设计

第二周:

周一~周三:

程序调试

周四~周五:

设计报告撰写。

周五进行答辩和设计结果检查。

三、参考资料

1、王迎旭等.单片机原理及及应用.2版.机械工业出版社,2012

2、胡汉才.单片机原理及其接口技术.3版.清华大学出版社,2010.

3、戴灿金.51单片机及其C语言程序设计开发实例.清华大学出版社,2010

(报告正文:

正文采用宋体小四,字间距20磅;1级标题采用黑体小三,2级标题采用黑体四号,3级标题采用黑体小四;1和2级标题段落间距为上下0.5行。

打印前删除)

 

目录

第1章总体方案设计

设计任务与要求;设计原理或者设计思路,给出总体设计框图。

第2章硬件电路设计

系统各模块硬件电路的设计方法、与单片机I/O口连接方法及原理图。

第3章软件设计

系统主程序、中断服务程序及主要的子程序的设计思路(文字描述)及其流程图。

第4章调试

系统调试方法(硬件调试,还是仿真调试)、调试结果、调试中遇到的问题及其解决方法。

第5章总结

整个课程设计过程中,你觉得学习到了什么,课设过程中自己做的不足的地方有哪些?

对自己的学习有何启示?

希望课程设计过程或者指导老师如何改进?

……

附录

附录A***原理图

附录B程序清单

《单片机原理及应用》课程设计评分表

项目

评价

及格

不及格

设计方案的合理性与创造性(10%)

开发板焊接及其调试完成情况*(10%)

硬件设计或软件编程完成情况(20%)

硬件测试或软件调试结果*(10%)

设计说明书质量(20%)

答辩情况(10%)

完成任务情况(10%)

独立工作能力(10%)

出勤情况(10%)

综合评分

课程设计成绩评定为:

□优□良□中□及格□不及格

指导老师签名:

______________

日期:

______________

 

注:

表中标*号项目是根据课题实际情况二选一;

此表装订在课程设计说明书的最后一页。

目录

第1章总体方案设计………………………………………………………………4

1.1设计任务与要求…………………………………………………………………4

1.1.1设计任务……………………………………………………………………4

1.1.2设计要求……………………………………………………………………4

1.2设计总体框图……………………………………………………………………4

1.3芯片介绍…………………………………………………………………………5

第2章硬件电路设计………………………………………………………………5

2.1晶振电路…………………………………………………………………………5

2.2复位电路…………………………………………………………………………6

2.3LED显示屏………………………………………………………………………6

2.4键盘………………………………………………………………………………7

2.5蜂鸣器……………………………………………………………………………7

2.6硬件总设计图……………………………………………………………………8

第3章软件设计………………………………………………………………………8

3.1主程序流程图……………………………………………………………………9

3.2主程序…………………………………………………………………………10

3.3按键模块…………………………………………………………………………23

3.4音乐提示模块……………………………………………………………………24

第4章调试………………………………………………………………………………24

第5章总结………………………………………………………………………………25

第1章总体方案设计

1.1设计任务与要求

1.1.1设计任务:

本课题以单片机为核心,设计和制作一个音乐播放器。

可以自动播放音乐,包括播放、暂停、上一首、下一首等功能。

1.1.2设计要求:

(1)确定系统设计方案;

(2)进行系统的硬件设计;

(3)完成必要的参数计算与元器件选择;

(4)开发板焊接及测试

(5)完成应用程序设计;

(6)应用系统的硬件和软件的调试

1.2设计总体框图

图1

本设计基于单片机基础,使用了AT89C51单片机芯片作为控制器,通过硬件电路和C语言编辑芯片程序,使单片机运行定时程序,通过蜂鸣器发出音乐提示完成音乐定时器的功能。

总体分为键盘模块,复位电路模块,晶振电路模块,单片机芯片,LED显示器模块和蜂鸣器模块,具体框图如图1。

 

1.3芯片介绍

图2是AT89C51芯片,它是一种带4K字节FLASH存储器的低电压、高性能CMOS8位微处理器,俗称单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。

它为很多嵌入式控制系统提供了一种灵活性高且价廉的方案

图2

 

第2章硬件电路设计

2.1晶振电路

 

图3

图3为晶振电路,晶振电路的作用是为系统提供基本的时钟信号。

 

2.2复位电路

 

图4

图4为复位电路,89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。

当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。

2.3LED显示

本次设计中,显示屏使用的是图5中的LED,该显示屏为颜色的显示,根据音符的不同,LED显示不一样的颜色。

图5

 

2.4键盘

图6

图6为键盘模块,它由2个按键组成,p3.4为歌曲的暂停按钮,当按下时,中断T0接受低电平的信号,中断停止达到暂停的目的;p3.5为切换歌曲的中断。

当按下时,中断T1开始工作,换位下一首歌曲。

2.5蜂鸣器

图7为蜂鸣器模块,蜂鸣器通过单片机输出的高电频使蜂鸣器发出声音,而单片机通过C语言程序的控制来改变输出高电频的频率从而改变蜂鸣器发出声音的音调组成音乐。

 

图7

 

2.6硬件总设计图

图8

第3章软件设计

3.1主程序流程图

 

图9

 

3.2主程序

#include

/*------------------------------------------------

硬件端口定义

------------------------------------------------*/

sbitSPK=P2^3;//定义音乐输出端口

sbitkey1=P3^4;//定义按键用于暂停

sbitkey2=P3^5;//定义按键用于切换

unsignedcharW=0,T;//用于选择音乐

unsignedcharTimer0_H,Timer0_L,Time;

voiddelay5ms(void)//误差0us

{

unsignedchara,b;

for(b=185;b>0;b--)

for(a=12;a>0;a--);

}

voiddelay500ms(void)//误差0us

{

unsignedchara,b,c;

for(c=205;c>0;c--)

for(b=116;b>0;b--)

for(a=9;a>0;a--);

}

//世上只有妈妈好数据表音谱,高中低音,音长

codeunsignedcharMUSIC[102]={6,2,3,5,2,1,3,2,2,5,2,2,1,3,2,6,2,1,5,2,1,

6,2,4,3,2,2,5,2,1,6,2,1,5,2,2,3,2,2,1,2,1,

6,1,1,5,2,1,3,2,1,2,2,4,2,2,3,3,2,1,5,2,2,

5,2,1,6,2,1,3,2,2,2,2,2,1,2,4,5,2,3,3,2,1,

2,2,1,1,2,1,6,1,1,1,2,1,5,1,6,0,0,0

};

//送别数据表音谱,高中低音,音长

codeunsignedcharMUSIC1[174]={5,2,2,3,2,1,5,2,1,1,3,4,

6,2,2,1,3,2,5,2,4,

5,2,2,1,2,1,2,2,1,3,2,2,2,2,1,1,2,1,

2,2,8,

5,2,2,3,2,1,5,2,1,1,3,3,7,2,1,

6,2,2,1,3,2,5,2,4,

5,2,2,2,2,1,3,2,1,4,2,3,7,1,1,

1,2,8,

6,2,2,1,3,2,1,3,4,

7,2,2,6,2,1,7,2,1,1,3,4,

6,2,1,7,2,1,1,3,1,6,2,1,6,2,1,5,2,1,3,2,1,1,2,1,

2,2,8,

5,2,2,3,2,1,5,2,1,1,3,3,7,2,1,

6,2,2,1,3,2,5,2,4,

5,2,2,2,2,1,3,2,1,4,2,3,7,1,1,

1,2,8

};

//新年好数据表音谱,高中低音,音长

codeunsignedcharMUSIC2[90]={1,2,1,1,2,1,1,2,2,5,1,2,

3,2,1,3,2,1,3,2,2,1,2,2,

1,2,1,3,2,1,5,2,2,5,2,2,

4,2,1,3,2,1,2,2,4,

2,2,1,3,2,1,4,2,2,4,2,2,

3,2,1,2,2,1,3,2,2,1,2,2,

1,2,1,3,2,1,2,2,2,5,1,2,

7,1,1,2,2,1,1,2,4

};

//童年数据表音谱,高中低音,音长

codeunsignedcharMUSIC3[423]={5,1,1,5,1,1,3,1,1,5,1,2,3,1,1,5,1,2,

6,1,1,6,1,1,1,2,1,6,1,2,6,1,1,1,2,2,

2,2,1,2,2,1,3,2,1,2,2,2,5,1,1,6,1,1,5,1,1,

1,2,1,1,2,1,5,1,1,1,2,1,1,2,1,1,2,2,1,2,1,

1,2,1,5,1,2,1,2,1,6,1,1,5,1,1,3,1,1,2,1,1,

1,1,2,3,1,1,5,1,1,5,1,2,5,1,1,3,1,1,

6,1,1,6,1,1,1,2,1,6,1,1,6,1,1,6,1,1,6,1,1,5,1,1,

1,2,2,1,2,1,1,2,1,1,2,1,6,1,1,1,2,1,6,1,1,

5,1,2,0,2,1,3,1,1,6,1,1,1,2,1,6,1,1,5,1,1,

3,1,1,2,1,1,3,1,1,5,1,1,5,1,2,5,1,1,3,1,1,

6,1,1,6,1,1,1,2,1,6,1,1,6,1,1,6,1,1,6,1,1,5,1,1,

1,2,2,1,2,1,1,2,1,1,2,1,6,1,1,6,1,1,1,2,1,

2,2,2,0,2,1,5,1,1,2,2,1,5,2,1,2,2,2,

5,2,1,5,2,2,5,2,1,5,2,1,5,2,1,3,2,1,2,2,1,

1,2,1,1,2,2,6,1,1,6,1,1,1,2,1,6,1,1,1,2,1,

2,2,1,2,2,1,2,2,1,2,2,1,2,2,1,1,2,1,3,2,1,2,2,1,

2,2,8,

3,2,1,3,2,2,3,2,1,3,2,2,2,2,2,

1,2,1,1,2,2,1,2,1,2,2,1,1,2,1,6,1,1,5,1,1,

5,1,1,5,1,2,5,1,1,6,1,1,5,1,1,2,2,1,3,2,1,

1,2,8,

1,2,1,5,1,2,1,2,1,6,1,1,5,1,1,3,1,1,2,1,1,

1,2,6,0,2,2

};

//音阶频率表高八位

codeunsignedcharFREQH[]={

0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,

0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC,//1,2,3,4,5,6,7,8,i

0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,

0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,

};

//音阶频率表低八位

codeunsignedcharFREQL[]={

0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,

0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F,//1,2,3,4,5,6,7,8,i

0xEE,0x44,0x6B,0xB4,0xF4,0x2D,

0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,

};

/*------------------------------------------------

------------------------------------------------*/

voidDelayUs2x(unsignedchart)

{

while(--t);

}

/*------------------------------------------------

mS延时函数,含有输入参数unsignedchart

------------------------------------------------*/

voidDelayMs(unsignedchart)

{

while(t--)

{

//大致延时1mS

DelayUs2x(245);

DelayUs2x(245);

}

}

/*------------------------------------------------

节拍延时函数

各调1/4节拍时间:

调4/4125ms

调2/4250ms

调3/4187ms

------------------------------------------------*/

voiddelay(unsignedchart)

{

unsignedchari;

for(i=0;i

DelayMs(250);

TR0=0;

}

/*------------------------------------------------

定时器0中断

------------------------------------------------*/

voidTIM0_ISR()interrupt1

{

TR0=0;

SPK=!

SPK;

TH0=Timer0_H;

TL0=Timer0_L;

TR0=1;

}

/*------------------------------------------------

歌曲处理函数

------------------------------------------------*/

voidSong()

{

TH0=Timer0_H;//赋值定时器时间,决定频率

TL0=Timer0_L;

TR0=1;//打开定时器

delay(Time);//延时所需要的节拍

}

/*------------------------------------------------

主函数

------------------------------------------------*/

voidled(unsignedchara);

voidmain(void)

{

unsignedinti;

unsignedchark;

TMOD|=0x01;//置定时器0工作方式1

EA=1;//打开全局中断

ET0=1;//打开定时器0中断

EX0=1;//打开外部中断0中断

IT0=1;//设置为下降沿中断

EX1=1;//打开外部中断1中断

IT1=1;//设置为下降沿中断

PX1=1;//设置外部中断1为高优先级

while

(1)

{

//i=0;

if(W==0)

{

T=W;

for(i=0;i<100;i=i+3)

{//音乐数组长度,唱完从头再来

led(MUSIC[i]);

k=MUSIC[i]+7*MUSIC[i+1]-1;//去音符振荡频率所需数据

Timer0_H=FREQH[k];

Timer0_L=FREQL[k];

Time=MUSIC[i+2];//节拍时长

//i=i+3;

Song();

if(T!

=W)

break;

}

}

if(W==1)

{

T=W;

for(i=0;i<174;i=i+3)

{//音乐数组长度,唱完从头再来

led(MUSIC1[i]);

k=MUSIC1[i]+7*MUSIC1[i+1]-1;//去音符振荡频率所需数据

Timer0_H=FREQH[k];

Timer0_L=FREQL[k];

Time=MUSIC1[i+2];//节拍时长

//i=i+3;

Song();

if(T!

=W)

break;

}

}

if(W==2)

{

T=W;

for(i=0;i<90;i=i+3)

{//音乐数组长度,唱完从头再来

led(MUSIC2[i]);

k=MUSIC2[i]+7*MUSIC2[i+1]-1;//去音符振荡频率所需数据

Timer0_H=FREQH[k];

Timer0_L=FREQL[k];

Time=MUSIC2[i+2];//节拍时长

//i=i+3;

Song();

if(T!

=W)

break;

}

}

if(W==3)

{

T=W;

for(i=0;i<423;i=i+3)

{//音乐数组长度,唱完从头再来

led(M

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

当前位置:首页 > 高等教育 > 院校资料

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

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