数字音乐盒的设计.docx

上传人:b****6 文档编号:7563908 上传时间:2023-01-25 格式:DOCX 页数:29 大小:212.85KB
下载 相关 举报
数字音乐盒的设计.docx_第1页
第1页 / 共29页
数字音乐盒的设计.docx_第2页
第2页 / 共29页
数字音乐盒的设计.docx_第3页
第3页 / 共29页
数字音乐盒的设计.docx_第4页
第4页 / 共29页
数字音乐盒的设计.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

数字音乐盒的设计.docx

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

数字音乐盒的设计.docx

数字音乐盒的设计

单片机原理与接口技术

课程设计

成绩评定表

设计课题:

数字音乐盒的设计

学院名称:

电气工程学院

专业班级:

_

学生姓名:

__

学号:

指导教师:

王黎、臧海河、周刚

设计地点:

31-630

设计时间:

2012-12-17~2012-12-28

指导教师意见:

 

成绩:

签名:

年月

 

单片机原理与接口技术

课程设计

 

课程设计名称:

数字音乐盒的设计

专业班级:

学生姓名:

学号:

指导教师:

王黎、臧海河、周刚

课程设计地点:

31-630

课程设计时间:

2012-12-17~2012-12-28

 

单片机原理与接口技术课程设计任务书

学生姓名

专业班级

学号

题目

数字音乐盒的设计

课题性质

工程设计

课题来源

自拟

指导教师

王黎、臧海河、周刚

主要内容

(参数)

89c51数字音乐盒:

1.利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少三首乐曲,每首不少于30秒)。

2.采用LCD显示信息,显示乐曲编号,播放时间或剩余时间,开机时有英文欢迎提示字符。

3.可通过功能键选择乐曲,暂停,播放。

任务要求

(进度)

第1-2天:

熟悉课程设计任务及要求,查阅技术资料,确定设计方案。

第3-4天:

按照确定的方案设计单元电路。

要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。

第5-6天:

软件设计,编写程序。

第7-8天:

实验室调试。

第9-10天:

撰写课程设计报告。

要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅合理。

主要参考

资料

[1]吴亦峰,陈德伟,单片机原理与接口技术,北京:

电子工业出版社,2010年11月

[2]黄智伟全国大学生电子设计竞赛系统设计[M],北京:

北京航空航天大学出版社,2006.6.

[3]黄智伟凌阳单片机课程设计指导[M],北京:

北京航空航天大学出版社,2006.11.

[4]李广弟,朱月秀,王秀山.单片机基础[M],北京:

北京航空航天大学出版社,2001.7.

 

审查意见

系(教研室)主任签字月日

1.概述

本设计是以AT89C51芯片的电路为基础,外部加上放音设备,以此来实现音乐演奏控制器的硬件电路,通过软件程序来控制单片机内部的定时器使其演奏出优美动听的音乐。

1.1设计任务

设计一个基于单片机的音乐盒,利用按键切换演奏出不同的乐曲。

蜂鸣器发出某个音调,使用两个按键,一个用来选择上一首歌曲,另一个切换下一首歌曲。

1.2设计内容

用单片机设计一个音乐盒。

功能如下:

1.利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少三首乐曲,每首不少于30秒)。

2.采用LCD显示信息,显示乐曲编号,播放时间或剩余时间,开机时有英文欢迎提示字符。

3.可通过功能键选择乐曲,暂停,播放。

2.系统总体方案介绍

2.1系统组成

系统组成框图如图2.1所示

 

2.1系统组成框图

2.1.1控制器选择

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。

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

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

引脚如图2.1所示

主要特性:

·与MCS-51兼容

·4K字节可编程闪烁存储器

·寿命:

1000写/擦循环

·数据保留时间:

10年

·全静态工作:

0Hz-24Hz

·三级程序存储器锁定

·128*8位内部RAM

·32可编程I/O线

·两个16位定时器/计数器

·5个中断源图2.289c51引脚图

·可编程串行通道

·低功耗的闲置和掉电模式

·片内振荡器和时钟电路

音频输出部分

整个输出部分由一个蜂鸣器/喇叭组成,原理图如右图所示:

用P3.0口控制蜂鸣器。

输出显示电路如图2.3所示:

 

图2.3输出显示电路

3.硬件设计

当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。

同时启动定时器T1,显示乐曲播放的时间,并驱动LCD,显示歌曲号及播放时间。

也可在LED显示歌曲号。

3.1按键电路设计

按键电路如图3.1所示:

P1.0-P1.5控制按键,其中P1.0-P1.1扫描行,P1.4-P1.5扫描列。

图3.1按键电路

3.2LCD显示电路设计与原理

LCD显示电路如图3.2所示,文字型LCD(16×2)的D0-D07端口与AT89C51端口P0.0-P0.7相连接VSS与VEE两端接地。

P2.0-P2.2作为LCD的RS,R/W,E的控制信号。

用P0.0-P0.7作为LCD的D0-D7的控制信号。

图3.2LCD显示电路

3.3时钟振荡电路

AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。

这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构成自然振荡器。

外接石英晶体及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。

振荡器电路入图3.3所示:

 

图3.3单片机内部时钟电路

4.软件设计

4.1主程序流程图

主程序流程图如图4.1所示。

 

 

4.1主程序流程图

 

LCD显示流程图如图4.2所示

 

 

图4.2LCD显示流程图

5调试

5.1检查硬件连接

在PROTUES检查各硬件管脚是否连接正确,线路逻辑是否正确,例如:

晶振电路的连接,复位电路是否设计正确。

5.2检查软件系统

1.根据系统的原理结构检查各流程图是否正确,再根据流程图来检查程序是否也正确。

2.将所有程序组织起来,在软件环境下运行,检查程序是否正确。

通过对硬件和软件系统的认真检查,反复测试,如果没有出现问题即可把源程序编译成HEX文件装载到单片机中,对硬件进行仿真。

5.3测试结果

5.3.1.总体运行图

图5.1系统总体运行图

6.课程设计体会

这学期学习单片机的课时不多,对单片机的硬件设计,软件设计掌握的深度不够,但通过此次课程设计,明显的改善了,首先对于硬件电路的工作原理有了进一步的学习,同时有了一个提升;软件方面,在程序的设计,程序的调试方面都有了很大的进步。

在一个好的氛围里才能踏下心来做东西,在这一段时间里,同学们都认真对待这次课程设计,除了自己做好自己的课题外,在遇到不懂的地方互相讨论,查阅资料,互助解决问题。

另外在编程中出现问题时,一定要戒骄戒躁,脚踏实地,认真看书,仔细分析,仔细调试,就一定会发现错误。

我们也是这么做的,这一点在这次的课程设计中十分重要。

通过这次课程设计,我体会到了成功的喜悦,听着自己设计的程序下载到单片机中播放出音乐,心理非常自豪。

这次的课程设计在一定程度上改变了我学习单片机这门课程的态度,从最初的认为学它没有什么实际意义,到如今爱上单片机学习,并希望能将理论运用到实践,设计出更好更完整的系统。

我明白了一个人要想做好一件事,就必须具备自信心,耐心,还要有毅力,要胆大心细,要勇于尝试,要手脑并用,最后才能交出一份令人满意的答卷。

对我而言,知识上的收获重要,精神上的丰收更加。

让我知道了学无止境的道理。

我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。

挫折是一份财富,经历是一份拥有。

这次课程设计必将成为为我人生旅途上一个非常美好的回忆

在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!

参考文献

[1]吴亦峰,陈德伟,单片机原理与接口技术,北京:

电子工业出版社,2010年11月

[2]黄智伟全国大学生电子设计竞赛系统设计[M],北京:

北京航空航天大学出版社,2006.6.

[3]黄智伟凌阳单片机课程设计指导[M],北京:

北京航空航天大学出版社,2006.11.

[4]李广弟,朱月秀,王秀山.单片机基础[M],北京:

北京航空航天大学出版社,2001.7.

[5]赵曙光,郭万有,杨颂华.可编程逻辑器件原理开发与应用[M],西安:

西安电子科技大学,2000.

[6]候伯亨.VHDL硬件描述语言与数字逻辑电路设计[M],西安:

西安电子科技大学出版社,1999.

[7]康华光.模拟电子技术基础(第四版)[M],武汉:

华中理工大学出版社,1999。

附录A系统原理图

系统原理图

附录B程序源代码及注释

RSBITP2.0;定义液晶显示端口标号

RWBITP2.1

EBITP2.2

;*************************

L50MSEQU60H

L1MSEQU61H

L250MSEQU62H

SECEQU65H

MINEQU64H

HOUEQU63H

ORG0000H

;*************************

LJMPMAIN

ORG000BH

LJMPTT0

ORG001BH

LJMPT1INT

ORG1000H

MAIN:

;-----------------------;液晶初始化

MOVSP,#70H;设置堆栈指针

MOVP0,#01H;清屏

CALLENABLE;调用延时程序

MOVP0,#38H;8位,2行显示

LCALLENABLE

MOVP0,#0FH;屏显ON,光标ON,闪烁ON

LCALLENABLE

MOVP0,#06H;计数地址加1,显示幕ON

LCALLENABLE

;-------------------------------内存初始化

LCALLINITIL

;-------------------------------

KEY1:

LCALLKEY

LCALLMODD

LJMPKEY1

;---------------------键盘扫描

KEY:

NOP

NOP

LCALLKS

JNZK1;有按键转到K1

LCALLKAIJI

LCALLSOP

XN:

LJMPKEY

K1:

LCALLMODD

LCALLMODD

LCALLKS

JNZK2

LJMPKEY

K2:

MOVR2,#0FEH;读键盘

MOVR4,#00H

K3:

MOVA,R2

MOVP1,A

MOVA,P1

JBACC.4,L1;为1跳转,第一行无按键

MOVA,#00H

LJMPLK

L1:

JBACC.5,NEXT1

MOVA,#0CH

;-------------------------------------------------------

LK:

ADDA,R4

PUSHACC

K4:

LCALLDELAY1;若同时有其他按键,则等待

LCALLKS

JNZK4

;--------------------------------------------------------

MOVR3,#07H

CLRA

MOVR0,#30H

MOVR1,#31H

MM1:

MOVA,@R1

MOV@R0,A

INCR0

INCR1

DJNZR3,MM1

POPACC

MOV@R0,A

RET

;------------------------------------------------------

NEXT1:

INCR4;------列扫描

MOVA,R2

JNBACC.3,N2

LJMPN1

N2:

LJMPKEY

N1:

RLA

MOVR2,A

LJMPK3

;----------------------------------------------

KS:

MOVA,#0F0H;判断P1口

MOVP1,A

NOP

NOP

MOVA,P1

CPLA

ANLA,#0F0H

RET

;--------------------------------------------------

DELAY1:

SETBRS0

DL:

MOVR5,#0AH

DL2:

MOVR6,#63

DL3:

NOP

NOP

DJNZR6,DL3

DJNZR5,DL2

CLRRS0

RET

;---------------------------------------------------

;30H-37H初值为零

;----------------------------------------------------

INITIL:

MOVR3,#08H

MOVR0,#30H

M1:

MOV@R0,#00H

INCR0

DJNZR3,M1

RET

;----------------------------------------------------

;显示

;---------------------------------------------------

MODD:

MOVP0,#8EH

LCALLENABLE

MOVA,37H

MOVDPTR,#TABLE3

MOVCA,@A+DPTR

LCALLWRITE2

RET

;--------------------------------------------------

;开机提示字

;-------------------------------------------------

KAIJI:

MOVA,37H

CJNEA,#0FH,DFF

MOVP0,#80H;设光标地址

LCALLENABLE

MOVDPTR,#TABLE1;写数据

LCALLWRITE1

DFF:

RET

;----------------------------------------------

;按键值播放歌曲

;----------------------------------------------

SOP:

MOVA,37H

CJNEA,#01H,A11

LCALLMODD

MOV52H,#HIGHTABLE10

MOV53H,#LOWTABLE10

LCALLINITILE2

LCALLMAIN0

A11:

CJNEA,#02H,A22

LCALLMODD

MOV52H,#HIGHTABLE20

MOV53H,#LOWTABLE20

LCALLINITILE2

LCALLMAIN0

A22:

CJNEA,#03H,AAA

LCALLMODD

MOV52H,#HIGHTABLE30

MOV53H,#LOWTABLE30

LCALLINITILE2

LCALLMAIN0

AAA:

RET

;******************************************

INITILE2:

MOVL50MS,#20

MOVL1MS,#00H

MOVL250MS,#00H

MOVSEC,#00H

MOVMIN,#00H

MOVHOU,#00H

MOVA,HOU

MOVB,#10

DIVAB

ADDA,#30H;将BCD吗转化为ASIIC码

MOVP0,#0C8H;显示小时十位

CALLENABLE

CALLWRITE2

MOVA,B

ADDA,#30H

MOVP0,#0C9H;显示小时个位

CALLENABLE

CALLWRITE2

MOVA,#3AH

MOVP0,#0DH;显示冒号

CALLENABLE

CALLWRITE2

MOVA,MIN

MOVB,#10

DIVAB

ADDA,#30H

MOVP0,#0CBH;显示分十位

CALLENABLE

CALLWRITE2

MOVA,B

ADDA,#30H

MOVP0,#0CCH;显示分个位

CALLENABLE

CALLWRITE2

MOVA,#3AH

MOVP0,#0CDH;显示冒号

CALLENABLE

CALLWRITE2

MOVA,SEC

MOVB,#10

DIVAB

ADDA,#30H

MOVP0,#0CEH;显示秒十位

CALLENABLE

CALLWRITE2

MOVA,B

ADDA,#30H

MOVP0,#0CFH;显示秒个位

CALLENABLE

CALLWRITE2

MOVP0,#0C0H;设光标地址

CALLENABLE

MOVDPTR,#TABLE2;写数据

CALLWRITE1

RET

;*********************************************写指令

ENABLE:

CLRRS

CLRRW

CLRE

LCALLDELAY

SETBE

RET

;**********************************************写数据

WRITE1:

MOVR1,#00H

A1:

MOVA,R1

MOVCA,@A+DPTR

CALLWRITE2

INCR1

CJNEA,#0FEH,A1;未到字符串末尾继续

RET

WRITE2:

MOVP0,A

SETBRS

CLRRW

CLRE

CALLDELAY

SETBE

RET

;**********************************************延时

DELAY:

MOVR4,#05

D1:

MOVR5,#0FFH

DJNZR5,$

DJNZR4,D1

RET

;----------------------------------------------显示开机,查表

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H

DB80H,90H,88H,83H,0C6H,0A1H,86H,8EH

TAB1:

DB89H,86H,0C7H,0C7H,0C0H

TAB2:

DB0C6H,88H,0C0H

TABLE1:

DB'WELCOME!

',0FEH

TABLE2:

DB'DFFWB',0FEH

TABLE4:

DB'CAU',0FEH

TABLE3:

DB30H,31H,32H,33H

DB34H,35H,36H,37H

;-------------------------------------------------------------------

;播放歌曲程序

;-------------------------------------------------------------------

MAIN0:

MOVTMOD,#11H

MOVIE,#8AH

MOVTH1,#3CH

MOVTL1,#0B0H

LCALLKS

JNZTTM12

MOV40H,#00H

;---------------------------------------------------------

NEXT20:

MOVA,40H

MOVDPH,52H

MOVDPL,53H

MOVCA,@A+DPTR

MOVR2,A

JZSTOP

ANLA,#0FH

MOVR1,A

MOVA,R2

SWAPA

ANLA,#0FH

JNZSING

CLRTR0

JMPW1

;----------------------------------------------------------

SING:

DECA

MOV22H,A

RLA

MOVDPTR,#TABLE00

MOVCA,@A+DPTR

MOVTH0,A

MOV21H,A

MOVA,22H

RLA

INCA

MOVCA,@A+DPTR

MOVTL0,A

MOV20H,A

SETBTR0

SETBTR1

W1:

LCALLDELAY30

INC40H

LCALLKS;------有键跳出

JNZSTOP

LJMPNEXT20

;-----------------------------------------------------------

STOP:

CLRTR0

CLRTR1

LJMPMAIN0

;----------------------------------------------------------

TTM12:

LCALLK2

MOVA,37H

CJNEA,#0EH,TTM13

CLRTR1

LCALLDELAY1

TTM120:

LCALLKS

LCALLDELAY1

JZTTM120

LCALLK2

MOVA,37H

CJNEA,#0EH,TTM120

SETBTR1

LJMPNEXT20

TTM13:

CJNEA,#0CH,TTM14

MOVA,52H

INCA

MOV52H,A

MOVA,53H

INCA

MOV53H,A

MOVA,36H

INCA

MOV37H,A

LJMPTTM2

TTM14:

CJNEA,#0DH,TTM2

MOVA,52H

DECA

MOV52H,A

MOVA,53H

DECA

MOV53H,A

MOVA,36H

DECA

MOV37H,A

;------------------------------------------------------

TTM2:

RET

;***************************************************

;定时器中断子程序0

;***************************************************

TT0:

PUSHACC

PUSHPSW

MOVTL0,20H

MOVTH0,21H

CPLP3.0

POPPSW

POPACC

RETI

;*****************************

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

当前位置:首页 > 求职职场 > 面试

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

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