单片机电子琴课程设计报告
- 格式:doc
- 大小:657.00 KB
- 文档页数:32
1 / 32 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 / 32
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所示: 3 / 32
引脚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显示屏、电源模块和按键后,我们还确定选用排针、排阻、导线若干以及用于单片机最小系统的电容、晶振、电阻等。
图1 LCD5110模块引脚图 RST1CS2D/C3DIN4CLK5VDD6BLC7GND8SCL9SDA104 / 32
3 系统硬件设计 3.1 总体设计 本设计采用STC89C50032RC单片机作为系统控制芯片,单片机对P0口的按键进行查询,如果有按键按下,则产生相应频率的脉冲通过P2.0口输出,再经过放大电路驱动扬声器,发出相应的音调。在显示系统中对当前的音符进行显示。系统的总体框图如图2所示:
3.2 单片机最小系统 最小系统包括晶振电路、复位电路和电源部分。最小系统电路图如图3所示:
STC89C52 8个按键 P1口
放大电路 P2.0口 5110显示屏
P0口
蜂鸣器图2 系统总体框图
图3 最小系统电路图 5 / 32
3.3 按键的连接 一共有八个按键,分别和单片机的P1口相连,并分别连接一个上拉电阻。电路图如图4所示:
3.4 蜂鸣器的连接 蜂鸣器经过一个放大电路和单片机的P2.0口相连,选用无源蜂鸣器。电路图如图5所示:
图4 按键连接电路图 6 / 32
3.5 显示屏的连接 显示屏总共有八个引脚,其中VCC和GND分别接3.3V电源和接地,其他引脚与单片机的P0口相连。电路图如图6所示:
图5 蜂鸣器连接电路图
图6 显示屏连接电路图 7 / 32
3.6 整体电路 综合上面所介绍的各个模块的电路图的连接情况,最后总结出整体的电路图。整体电路图如图7所示:
图7 整体连接电路图 8 / 32 4 系统软件设计 4.1主程序的设计 设计软件应从设计主程序着手开始,而设计程序应从流程图开始,经过考察论证,查阅资料,再根据所学的单片机编程的知识,最后总结出主程序的流程图如图8所示:
初始化设置 开始
判断是否有按键按
延时10ms 判断是否仍然有按键按下
查看是哪个按键按下,并跳转到相应的程序段
设置相应的指针偏移量 调用显示子程序,调用定时子程序,开始定时
进入定时服务子程序 结束
N Y
Y N
图8 主程序流程图 9 / 32
4.2 显示子程序的设计 指令格式分为两种模式:如果D/C(模式选择)置为低,当前字节解释为命令字节(见表1)。如果D/C置为高,接下来的字节将存储到显示数据RAM。每一个数据字节存入之后,地址计数自动递增。在数据字节最后一位期间会读取D/C信号的电平。每一条指令可用任意次序发送到PCD8544。首先传送的是字节的MSB(高位)。当SCE为高时,串行接口被初始化。在这个状态,SCLK时钟脉冲不起作用,串行接口不消耗电力。SCE上的负边缘使能串行接口并指示开始数据传输。
4.3 定时子程序的设计 定时子程序只需将TAB中对应的数值送给定时器的初值寄存器,然后开始定时。
表1 命令字节 10 / 32
5 软硬件联调 5.1 调试步骤 第一:按照整体电路图焊接硬件,硬件实物图如图9所示:
第二:编辑软件程序,用Uv4对程序进行编译,编译无误后保存,再用protuse对软件进行仿真。 第三:将硬件通过USB与RS-232串口转换线与电脑连接,用STC下载软件将编译完成后的程序下载烧录到硬件中,观察硬件的运行结果。硬件运行结果如图10所示:
图9 硬件实物图
图10 硬件运行结果图 11 / 32
5.2 软硬件联调过程中出现的问题和解决办法 ◎问题1: 将USB烧写器尾部的短路帽子摘掉后插上电脑,程序无法烧写进芯片。 解决措施: 将STC中单片机的设置更改为STC89C52型号的,再将波特率改小一点,端口设置正确即可。 ◎问题2: 程序烧录进去后显示屏不显示任何数字。 解决措施: 将USB口从电脑上拔下然后再插入即可。 ◎问题3: 按键按下之后扬声器的声音抖动。 解决措施: 将放大电路检查一遍再将每个焊点焊实即可。