单片机电子琴课程设计报告.docx

上传人:b****6 文档编号:4842831 上传时间:2022-12-10 格式:DOCX 页数:30 大小:743.51KB
下载 相关 举报
单片机电子琴课程设计报告.docx_第1页
第1页 / 共30页
单片机电子琴课程设计报告.docx_第2页
第2页 / 共30页
单片机电子琴课程设计报告.docx_第3页
第3页 / 共30页
单片机电子琴课程设计报告.docx_第4页
第4页 / 共30页
单片机电子琴课程设计报告.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

单片机电子琴课程设计报告.docx

《单片机电子琴课程设计报告.docx》由会员分享,可在线阅读,更多相关《单片机电子琴课程设计报告.docx(30页珍藏版)》请在冰豆网上搜索。

单片机电子琴课程设计报告.docx

单片机电子琴课程设计报告

1课程设计的意义

单片机自20世纪70年代问世以来,已对人类社会产生了巨大的影响。

尤其是美国Intel公司生产的MCS-51系列单片机,由于其具有集成度高、处理功能强、可靠性高、系统结构简单、价格低廉、易于使用等优点,在工业控制、智能仪器仪表、办公室自动化、家用电器等诸多领域得到广泛的应用。

20世纪80年代中期以后,Intel公司已把精力集中在CPU芯片的开发、研制上,并逐渐放弃了单片机芯片的生产,但是以MCS-51内核技术为主导的单片机已经成为许多厂家及公司竞相选用的对象。

因此,Intel公司以专利转让或技术交换的形式把MCS-51的内核技术转让给了许多国际上著名的半导体芯片生产厂家,如ATMEL、PHILIPS、Cygnal等公司。

这些厂家生产的与MCS-51系列单片机兼容的各种增强型、扩展型单片机,已成为世界上8位单片机市场的主流产品。

估计在今后若干年内,它们仍是我国8位单片机应用领域的主流机型。

音乐已经成为现代人们生活所不可缺少的艺术,美妙的音乐可以让人放松,使人愉悦,电子琴作为一种乐器已经得到很多音乐人的重视和应用,一个质量好的电子琴可以做出让人欣赏的美好音乐,所以作为从事电子技术领域的我们来说,能做出质量优越的电子琴是我们的义务和责任,虽然今天我们做的是简易电子琴,但其已经具有电子琴的基本功能,为以后的进一步开发研究奠定一个良好的基础。

本课程设计的目的是为了深入了解MCS-51系列单片机的功能以及应用,学会制作简单的电子琴。

会使用LCD显示屏,对其有进一步的了解。

 

2方案论证

2.1设计的任务

本课程设计的任务是应用单片机制作一个简易的电子琴,能够准确发出基本的音符,并且同时能将音符在显示屏上现实出来。

2.2设计的要求

利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出8个不同的音调,并且要求按下键发声,松开延时一段时间停止,中间再按别的键则发另外一音调的声音。

当系统扫描到有按键被按下,则快速检测出是哪一个键被按下,然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就回发出相应的音调。

如果在前一个按下的键发声的同时有另一个键被按下,则启用中断系统,前面键的发音停止,转到后按的键发音程序,发出后按的键的音调。

2.3创新部分

1.用一个诺基亚5110显示屏来显示当前所发出的音符,便于使用者对音符的识别,还可以编辑一首歌并同时显示歌词和时间。

2.可播放音乐。

2.4各部分元器件选用方案论证

2.4.1单片机的选用

 STC单片机是一款增强型5l单片机,完全兼容MCS-51。

STC89C52可以代替AT89C51,而且功能更强,速度更快,寿命更长,价格更低。

该单片机具有40个引脚,采用双列直插DIP-40封装。

STC89C52可以完成ISP在线编程功能,而AT89C51则不能。

因此,将AT89C51中的程序直接烧录到STC89C52中后,STC89C52就可以代替AT89C51直接工作。

STC推出的系列51单片机芯片全面兼容其它51单片机。

STC89C52内部有E2PROM,可以在程序中修改,而且断电不丢失数据。

此外,还增加了两级中断优先级等等。

2.4.2显示元件的选用

液晶显示模块采用的是NOKIA公司生产的LCD5110液晶显示模块。

该液晶屏为48*84点阵的格式,每个英文字符占用6*8个点阵,一行可以显示14个字符,可以显示六行。

汉字可以采用两种点阵方式显示,一种是12*12点阵,一种是16*16点阵,一共可以显示3行汉字。

LCD5110有10个引脚,原理图如图1所示:

 

图1LCD5110模块引脚图

 

引脚1为LCD5110的复位键,由软件控制即可。

引脚2为片选端,引脚3用于控制输入的数据是命令还是普通数据。

引脚5为液晶显示器的时钟输入,引脚6为电源输入端,引脚8为电源地。

引脚7为背光控制开关,低电平打开背光。

引脚9、10用于扩展。

2.4.3键盘的选用

常用键盘分为独立式键盘接口和行列式键盘接口。

本次课题设计使用的是独立式键盘接口。

独立式键盘接口就是各键是相互独立的,每个按键各接一条输入线,检验输入线电平的高低可以很容易判断哪个按键被按下。

这种键盘适用于按键较少后操作速度较高的场合。

我们共用了9个按键,其中8个按键控制1、2、3、4、5、6、7、i的发音。

还有一个按键控制LCD屏的显示。

2.4.4电源的选用

要想使单片机正常运行,可靠、稳定的电源必不可少,在以往的电子设计中,我们一般制作5V电源,这样做的目的是通过变压器变压,将民用220V电直接转为5V电供单片机使用,在没有电脑USB时可以直接找一个插座接上便可使用。

但缺点是制作成本较高,且体积较大,烧录程序时还需要另配烧录器。

由于我们在课程设计过程中时刻都要使用笔记本电脑,且程序需要在线烧写,故我们选择使用了USB烧录器,既可以在线烧写程序也可以当作电源使用,方便快捷。

2.4.5其他元器件的选用

在确定了单片机芯片、诺基亚5110显示屏、电源模块和按键后,我们还确定选用排针、排阻、导线若干以及用于单片机最小系统的电容、晶振、电阻等。

 

3系统硬件设计

3.1总体设计

本设计采用STC89C50032RC单片机作为系统控制芯片,单片机对P0口的按键进行查询,如果有按键按下,则产生相应频率的脉冲通过P2.0口输出,再经过放大电路驱动扬声器,发出相应的音调。

在显示系统中对当前的音符进行显示。

系统的总体框图如图2所示:

 

3.2单片机最小系统

最小系统包括晶振电路、复位电路和电源部分。

最小系统电路图如图3所示:

图3最小系统电路图

 

3.3按键的连接

一共有八个按键,分别和单片机的P1口相连,并分别连接一个上拉电阻。

电路图如图4所示:

图4按键连接电路图

 

3.4蜂鸣器的连接

蜂鸣器经过一个放大电路和单片机的P2.0口相连,选用无源蜂鸣器。

电路图如图5所示:

 

 

3.5显示屏的连接

显示屏总共有八个引脚,其中VCC和GND分别接3.3V电源和接地,其他引脚与单片机的P0口相连。

电路图如图6所示:

图6显示屏连接电路图

 

3.6整体电路

综合上面所介绍的各个模块的电路图的连接情况,最后总结出整体的电路图。

整体电路图如图7所示:

图7整体连接电路图

 

4系统软件设计

4.1主程序的设计

设计软件应从设计主程序着手开始,而设计程序应从流程图开始,经过考察论证,查阅资料,再根据所学的单片机编程的知识,最后总结出主程序的流程图如图8所示:

初始化设置

开始

判断是否有按键按下

延时10ms

判断是否仍然有按键按下

查看是哪个按键按下,并跳转到相应的程序段

设置相应的指针偏移量

调用显示子程序,调用定时子程序,开始定时

进入定时服务子程序

结束

N

Y

Y

N

图8主程序流程图

 

4.2显示子程序的设计

指令格式分为两种模式:

如果D/C(模式选择)置为低,当前字节解释为命令字节(见表1)。

如果D/C置为高,接下来的字节将存储到显示数据RAM。

每一个数据字节存入之后,地址计数自动递增。

在数据字节最后一位期间会读取D/C信号的电平。

每一条指令可用任意次序发送到PCD8544。

首先传送的是字节的MSB(高位)。

当SCE为高时,串行接口被初始化。

在这个状态,SCLK时钟脉冲不起作用,串行接口不消耗电力。

SCE上的负边缘使能串行接口并指示开始数据传输。

 

4.3定时子程序的设计

定时子程序只需将TAB中对应的数值送给定时器的初值寄存器,然后开始定时。

 

5软硬件联调

5.1调试步骤

第一:

按照整体电路图焊接硬件,硬件实物图如图9所示:

 

第二:

编辑软件程序,用Uv4对程序进行编译,编译无误后保存,再用protuse对软件进行仿真。

图10硬件运行结果图

第三:

将硬件通过USB与RS-232串口转换线与电脑连接,用STC下载软件将编译完成后的程序下载烧录到硬件中,观察硬件的运行结果。

硬件运行结果如图10所示:

 

5.2软硬件联调过程中出现的问题和解决办法

◎问题1:

将USB烧写器尾部的短路帽子摘掉后插上电脑,程序无法烧写进芯片。

解决措施:

将STC中单片机的设置更改为STC89C52型号的,再将波特率改小一点,端口设置正确即可。

◎问题2:

程序烧录进去后显示屏不显示任何数字。

解决措施:

将USB口从电脑上拔下然后再插入即可。

◎问题3:

按键按下之后扬声器的声音抖动。

解决措施:

将放大电路检查一遍再将每个焊点焊实即可。

 

6课设计总结

6.1收获

通过一个多星期的课程设计,从选题到查资料,从完善原理图到写报告文档,让我明白了课程设计是名副其实的综合性训练,不仅要运用学过的单片机技术及应用,数字电路、模拟电路以及电子技术实验等知识,还要学会查阅各种图书资料和工具书,并将新知识和所学的结合起来为自己所用。

在做整个课程设计的过程中,我进一步熟悉使用了protuse仿真软件和Uv4软件编辑软件,能较好的应用这些软件,不管是文本程序的编写还是在顶层原理图的设计都有所提高,还增强了动手能力。

应用软件的时候,要注意积累每次的体会和错误,下次碰到该注意的地方就要小心点,碰到出过错误的地方就要格外注意不要再犯同样的错误,这种方法应该适用做任何一件事吧。

在设计中遇到一些困难和问题,在向老师请教和与同学的讨论中,解决了问题,觉得很有收获。

6.2心得体会

一个星期很快就过去了,这一周我收获了很多。

在过去的一周里,我和耿勇杰、张兴旺、张扬组成的小组,经过大家一起坚持不懈的努力,最终完成了我们选择的单片机课题设计——电子琴设计。

在原设计的基础上,我们还加入了显示模块。

用诺基亚5110的液晶显示屏,完成弹奏音符的显示,使设计更加完美。

在这一个星期里,我们先把以前收集的资料进行了整理。

在做课设之前,我们已经通过学校的图书馆和网络,进行了资料的收集,对基于单片机的电子琴设计有了大体的了解和认识。

并且在这学期得课余时间,我们经过研究和讨论,制定了设计的基本思路,并焊接完成了硬件电路。

这个星期我们的任务安排主要是完成电子琴的程序和5110液晶显示的程序,进行程序调试,使之在硬件上实现,最后完成任务书。

在最初的两天里,先进行的是电子琴的程序设计,了解的音乐产生的原理。

音乐的产生是通过单片机的I\O端口输出高低不同的脉冲信号来控制蜂鸣器发声。

不同的音频信号的周期不同,通过单片机的定时器,给定时器设置不同的初值,通过定时器中断,中断过程中对I\O端口取反,就得到了音频信号的脉冲。

通过这次课设,我掌握了单片机设计单子琴的工作原理,又复习了单片机定时器的工作原理,熟练了计数初值的计算。

把自己感兴趣的电子琴和学习的单片机知识联系到了一起,设计过程中,既再次学习了单片机的知识,对学习的知识有了更深刻的认识和理解;又获得了快乐,自己设计了简易的电子琴。

用自己的设计弹奏出简单的音乐,还挺有成就感的。

兴趣是最好的老师,把自己的兴趣和所学的知识结合起来,学以致用,理论应用于实践,这是我最大的收获。

完成电子琴的发音程序后,我们开始编写5110液晶显示屏的程序。

5110液晶屏与一般课本上介绍的液晶显示屏不太一样。

我们用的5110液晶显示屏,只有8个引脚,引脚越少,电路的连接越简单。

可是看着越简单的东西,实际上要弄明白它的工作和使用就越难。

由于5110液晶显示屏的资料比较少,我们又没有接触过。

一开始我们先从其它的液晶显示屏资料开始研究,希望可以通过类比,了解5110液晶显示屏。

再弄明白了其它液晶显示屏以后,我们开始编写5110的显示程序,编写完成后,与硬件进行调试却失败了。

改程序,与硬件连接调试,失败;再改程序,再与硬件连接调试,再失败……这样的过程重复了不知多少遍。

调试了两天以后,我们又把5110液晶显示屏的资料拿出来认真的研究,把指令集看了又看,这次我们注重分析了5110液晶屏与其它液晶屏的区别。

放弃了通过其它液晶屏来认识5110,而是直接分析5110液晶屏。

因为通过学习我们发现,两样东西即使它是类似的,可是在汇编的过程中,一点微小的区别也是不同的。

后来在网上我们找到了5110液晶显示驱动PCD8544的使用手册,经过讨论和研究,我们再次编写了程序,结果和硬件连接了几次,还是失败了。

最后我们只得求助于柳老师,刘老师编写完程序后,一开始也没有显示,老师把硬件断电再接电后,显示成功。

于是我们也把自己写的程序下载到硬件中,断电再接电,显示也成功了。

再郁闷了这么长时间后,发现只是因为这个小动作,所以一直没有显示,我们在显示成功高兴的同时,也有点小无奈。

真是细节决定成败啊。

通过对5110液晶显示屏的使用,锻炼了我的自学能力。

对一个从来没有接触过的器件,通过自己的学习,分析和研究,最终完成任务。

这对我来说还是第一次,在这第一次的过程中,我走了很多弯路。

一开始不知道如何下手,先是研究错了方向,学习和研究了许多其他的液晶显示屏。

而后又拿着5110的资料不知道从哪看起,不知道那是编程要用的重点,只好把资料都看了。

再后来又对5110的资料有不少不理解的地方,对引脚的控制和它的工作有许多模糊的地方,只好在编程时,一次次的实验,验证那种理解是正确的。

虽然这个过程曲折,而又让我觉得无奈。

但是,在最后显示成功后,通过自己的努力而获得的喜悦,是无以言表的。

并且,通过这次学习,我初步学会了看器件的使用手册,看指令表。

学会了要想使用一个你不了解的器件,应该看什么,应该注意什么。

你要看器件的参数,看各个引脚的连接和作用,看指令表。

在编程的过程中,要严格按照指令表编写程序,不能自己想当然。

大学教育和课题设计的目的,就是教会我们如何自学,锻炼我们独立思考的能力,在这次课设中,我有了切身的体会。

老师在编写5110显示程序时,本身老师也没有接触过5110的汇编。

老师根据资料,通过简单的阅读,就把C语言的5110的显示程序,改成了汇编,并且显示成功。

我们的资料和老师看的差不多,却折腾了两三天才把程序编写出来。

我们一定会通过努力向老师看齐。

最后,我们还发现了蜂鸣器的问题,一开始我们用的蜂鸣器是有源的,声音小,把分压电阻短路后,声音大了,可是一直“滴滴”响个不停。

上网查证后,发现蜂鸣器分为有源和无源的,电子琴设计要用无源的蜂鸣器。

虽然是个小问题,但是也增加了一个小知识点。

通过这次课题设计,我的收获很大。

我们获得了知识,完成了设计,锻炼了独立思考能力,和动手能力。

我也体会到无论是硬件设计还是软件编程,细节决定成败,一定要认真对待每一个小步骤。

最后,谢谢柳延领老师的指导和帮助。

 

参考文献

1.《基于Proteus的8051单片机实例教程》李学礼主编电子工业出版社

2.《Proteus教程——电子线路设计、制版与仿真》朱清慧张凤蕊翟天嵩王志奎编著清华大学出版社

3.《单片机原理及应用技术》陈益飞主编国防工业出版社

4.《单片机控制实训指导及综合应用实例》张大明主编机械工业出版社

 

附录

电子琴课程设计程序源代码

SCEEQUP2.1

RESEQUP2.2

DCEQUP2.3

SDINEQUP3.0

SCLKEQUP3.1

RXDATA55H

RYDATA56H

;单片机初始化

ORG0000H

LJMPMAIN

ORG0003H

LJMPPNT0

ORG000BH

LJMPINT_T0

ORG001BH

LJMPTIME1

;设置定时器0\1工作方式0,开中断

MAIN:

MOVSP,#70H

MOVTMOD,#11H

SETBEA

SETBET0

SETBET1

SETBF0

;LCD5110复位,清屏,初始化功能

SRART:

SETBRES

SETBSCE

SETBSCLK

CALLCLEAR

CLRRES

NOP

SETBRES

NOP

LCALLLCDRST

LCALLLCD

;判断是否有键按下

KEY:

MOVP1,#0FFH

MOVA,P1

XRLA,#0FFH

JZKEY2

LCALLDE10MS

MOVA,P1

MOVR5,A

XRLA,#0FFH

JNZTKEY

SJMPKEY

KEY2:

MOVA,P2

JNBACC.5,L1

L2:

SJMPKEY

L1:

LCALLDE10MS

MOVA,P2

JBACC.5,L2

LJMPFLCD

;判断那个键按下了

TKEY:

MOVA,R5

JNBACC.0,K1

SJMPK2

K1:

MOVR2,#0

MOVDPTR,#TLCD1;设置LCD5110显示字的表格位置

MOV51H,DPH

MOV50H,DPL

LCALLSLCD

LJMPMUSIC

K2:

JNBACC.1,KK2

SJMPK3

KK2:

MOVR2,#2

MOVDPTR,#TLCD2

MOV51H,DPH

MOV50H,DPL

LCALLSLCD

LJMPMUSIC

K3:

JNBACC.2,KK3

SJMPK4

KK3:

MOVR2,#4

MOVDPTR,#TLCD3

MOV51H,DPH

MOV50H,DPL

LCALLSLCD

LJMPMUSIC

K4:

JNBACC.3,KK4

SJMPK5

KK4:

MOVR2,#6

MOVDPTR,#TLCD4

MOV51H,DPH

MOV50H,DPL

LCALLSLCD

LJMPMUSIC

K5:

JNBACC.4,KK5

SJMPK6

KK5:

MOVR2,#8

MOVDPTR,#TLCD5

MOV51H,DPH

MOV50H,DPL

LCALLSLCD

LJMPMUSIC

K6:

JNBACC.5,KK6

SJMPK7

KK6:

MOVR2,#10

MOVDPTR,#TLCD6

MOV51H,DPH

MOV50H,DPL

LCALLSLCD

LJMPMUSIC

K7:

JNBACC.6,KK7

SJMPK8

KK7:

MOVR2,#12

MOVDPTR,#TLCD7

MOV51H,DPH

MOV50H,DPL

LCALLSLCD

LJMPMUSIC

K8:

JNBACC.7,KK8

LJMPKEY

KK8:

MOVR2,#14

MOVDPTR,#TLCD8

MOV51H,DPH

MOV50H,DPL

LCALLSLCD

;取按键对应音符,设置定时器0的初值

MUSIC:

MOVA,R2

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVR7,A

MOVTH0,R7

INCR2

MOVA,R2

MOVCA,@A+DPTR

MOVR6,A

MOVTL0,R6

SETBTR0

;判断按键是否释放

LOOP:

MOVP1,#0FFH

MOVA,P1

XRLA,#0FFH

JNZLOOP

;按键释放后再响一段时间

DETY:

MOVR4,#200

LP1:

MOVR3,#126

DJNZR3,$

DJNZR4,LP1

CLRTR0

LJMPKEY

;消除抖动延时10MS

DE10MS:

MOVR1,#10

LP2:

MOVR0,#248

DJNZR0,$

DJNZR1,LP2

RET

;片P2.0口取反,提供音乐脉冲

INT_T0:

PUSHPSW

PUSHACC

MOVTH0,R7

MOVTL0,R6

CPLP2.0

POPACC

POPPSW

RETI

PNT0:

PUSHPSW

PUSHACC

JNBTR0,RE2

KEY1:

CLRTR0

MOVP1,#0FFH

MOVA,P1

XRLA,#0FFH

JZKEY1

LCALLDE10MS

MOVP1,#0FFH

MOVA,P1

MOVR5,A

XRLA,#0FFH

JNZRE3

RE3:

POPPSW

POPACC

LJMPTKEY

RE2:

POPPSW

POPACC

RETI

;LCD5110清屏

CLEAR:

MOV52H,#6

CLR1:

MOV53H,#84

CLR2:

MOVA,#0

CALLWR_D

DJNZ53H,CLR2

DJNZ52H,CLR1

RET

;LCD5110初始化

LCDRST:

MOVA,#21H

LCALLWR_C

MOVA,#0C8H

LCALLWR_C

MOVA,#20H

LCALLWR_C

MOVA,#0CH

LCALLWR_C

RET

;LCD5110显示“电子琴设计”

LCD:

SETBF0

MOVRY,#40H

MOVRX,#80H

LCALLSET_XY

MOVDPTR,#LCD0

LCALLWDATA

MOVRY,#41H

MOVRX,#80H

LCALLSET_XY

MOVDPTR,#LCD1

LCALLWDATA

MOVRY,#40H

MOVRX,#90H

LCALLSET_XY

MOVDPTR,#LCD2

LCALLWDATA

MOVRY,#41H

MOVRX,#90H

LCALLSET_XY

MOVDPTR,#LCD3

LCALLWDATA

MOVRY,#40H

MOVRX,#0A0H

LCALLSET_XY

MOVDPTR,#LCD4

LCALLWDATA

MOVRY,#41H

MOVRX,#0A0H

LCALLSET_XY

MOVDPTR,#LCD5

LCALLWDATA

MOVRY,#40H

MOVRX,#0B0H

LCALLSET_XY

MOVDPTR,#LCD6

LCALLWDATA

MOVRY,#41H

MOVRX,#0B0H

LCALLSET_XY

MOVDPTR,#LCD7

LCALLWDATA

MOVRY,#40H

MOVRX,#0C0H

LCALLSET_XY

MOVDPTR,#LCD8

LCALLWDATA

MOVRY,#41H

MOVRX,#0C0H

LCALLSET_XY

MOVDPTR,#LCD9

LCALLWDATA

RET

;LCD5110写指令子程序

WR_C:

CLRSCE

CLRDC

CALLSENT

SETBSCE

RET

;LCD5110写数据子程序

WR_D:

CLRSCE

SETBDC

CALLSENT

SETBSCE

RET

;LCD5110

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

当前位置:首页 > 高中教育 > 高考

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

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