ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:501.73KB ,
资源ID:23967416      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23967416.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机简易电子琴.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机简易电子琴.docx

1、单片机简易电子琴微机原理课外设计制作终期报告题 目(B1): 组 号: 任课教师: 组 长: 成 员: 成 员: 成 员: 成 员: 联系方式: 二零一四年 五月十六日一 实验目的二 设计要求三 实验方案四 实验结果及分析五 收获与体六 会团队分工合作七 附录代码课外设计项目:简易电子琴一 实验目的 设计具有播放预设音乐、弹奏8个以上音阶、节拍/音量可以设定等功能的简易电子琴。二 设计要求1)按下播放按键,播放预设音乐。 2)按下演奏按键,发出1,2,3,4,5,6,7,1 ?共8个音阶(C调)。 3)液晶屏显示当前的操作信息(如播放的乐曲名,弹奏的音符)。4)演奏按键的发声时长和音量大小可调

2、。 5)可以对演奏按键的发声做升调/降调处理。三实验方案1.实验材料实验材料:1)单片机实验板 2)小喇叭 3)电阻、电容、三极管若干,使用元件:AT89C51、LM324,喇叭,按键等。2.原件介绍1)AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方

3、案。2)LM324系列器件带有差动输入的四运算放大器。与单电源应用场合的标准运算放大器相比,它们有一些显著优点。该四放大器可以工作在低到3.0伏或者高到32伏的电源下,静态电流为MC1741的静态电流的五分之一。共模输入范围包括负电源,因而消除了在许多应用场合中采用外部偏置元件的必要性。每一组运算放大器可用图1所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的相位相反;Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。LM

4、324系列由四个独立的,高增益,内部频率补偿运算放大器,其中专为从单电源供电的电压范围经营。从分裂电源的操作也有可能和低电源电流消耗是独立的电源电压的幅度。应用领域包括传感器放大器,直流增益模块和所有传统的运算放大器可以更容易地在单电源系统中实现的电路。例如,可直接操作的LM324系列,这是用来在数字系统中,轻松地将提供所需的接口电路,而无需额外的15V电源标准的5V电源电压。3.设计思路设计并制作一个简易的电子琴可采用集成电路设计,基于AT89S52单片机设计一款简易的电子琴,采用4*4距阵键盘,有16个按钮矩阵,设计成16个音,可以实现音阶在低音4-高音5之间。从而可以用来弹奏喜欢的乐曲。

5、由于一首音乐是由许多不同音阶组成,每个音阶对应不同的频率,这样我们可用不同频率组合,即可构成我们想要的音乐了,当然对单片机产生不同的频率非常方便,我们可用单片机的定时/计数器0来产生这样的方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系设定正确即可。 对于晶振频率为12MHz的单片机,其定时器的计数周期为1MHz,假如选择工作方式1,那T值便为T2165*105/相应的频率,那么根据不同的频率计算出应该赋给定时器的计数值。建立这样一个数据表,然后采用查表程序即可。 而升降调的实现则可以通过频率范范和减半来实现。音符频率(Hz)简谱码(T值)中1 DO52364580中2 RE58764

6、684中3 MI65964777中4 FA69864820中5 SO78464898中6 LA88064968中7 SI98865030a) LCD1602 显示设计工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字

7、符和数字)。如图,板载的变阻器W1 可以用来调节1602 显示屏的对比度。本次采用的Mini80e 升级版开发板在电路设计上,将显示屏的数据口放在P0 上,RS、RW、E 分别对应P2.4、P2.5、P2.6。依据LCD1602 的使用手册,可以对LCD1602发送指令和数据。b) 发声音调设计音阶由不同频率的方波产生,音阶与频率的关系如表1所示。要产生音频方波,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用计时器计时此半周期时间,每当计时到后就将输出方波的I/0反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚得到此频率的方波。在ZKS-03实验仪上

8、,产生方波的I/O脚选用P1.6,通过跳线选择器JP1将单片机的P1.6与扬声器的驱动电路相连。这样P1.6输出不同频率的方波,扬声器便会发出不同的声音。另外,音乐的节拍是由延时实现的,如果1拍为0.4秒,1/4拍是0.1秒。只要设定延时时间,就可求得节拍的时间。延时作为基本延时时间,节拍值只能是它的整数倍。每个音阶相应的定时器初值X可按下法计算: 当晶振fose=12MHz时,各音阶相应的定时器初值X如下表1表1总体框图如下:c) 发声时长设计根据定时器工作的独立性特点,当定时器0 控制发生频率时,可以在主程序中使用延时子程序控制发生时长,每次执行延时子程序前打开定时器0,延时结束后关闭定时

9、器0。根据试验,延时256*256 个单片机周期的时间很短暂,故放弃采用定时器1 而选用采用三层循环设计,使延时为256*256*n。调节n 即可调节发生时长。d) 发声音量设计LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。LM386的外形和引脚的排列如图所示。引脚2为反相输入端,3为同相输入端;引脚5为输出端;引脚6和4分别为电源和地;引脚1和8为电压增益设定端;使用时在引脚7和地之间接旁路电容,通常取10F。音量调节电路图:四 实验结果及分析经过大家坚持不懈的努力,简易电子琴的要求都被我们基本实现

10、了,下面就是我们的实验结果。按下演奏按键,发出1,2,3,4,5,6,7,1 ?共8个音阶(C调)。这里是1的音调。音调为1,音长也为预设的1。演奏按键的发声时长可调。这里为音调3,音长由预设的1变为了2,加长音长。可以对演奏按键的发声做升调/降调处理。这里为音调4,可从图中看出4后面有一个“+”号,此为升调。按下播放按键,播放预设音乐。我们在这里预设的音乐为梁祝。此外音调大小是有一个外围电路做的,在实验原理中可以看到。五 收获与体会由于本组完全由5个女生组合而成,所以要独立完成本课外设计项目对于我们组来说有很大的难度。首先遇到的难题就是编写代码。我们小组在编写代码这一环节上花费了极大的精力和

11、时间。编写完成的代码的最低要求是通过keil的编译。且不说以我们自己的能力自己编写的程序很难通过编译,即使是代码经历千辛万苦编译成功,如果烧入单片机内不能实现功能,也是让人心力交瘁的。通过本次实验也使我们对个个元器件有了进一步的了解,这是一次难得的实践机会。还有你的方案设计是否能达到最佳的效果,通过仿真做一系列的了解。所以在本次设计中遇到了许多问题,在调试阶段的时候,根据电路图把电路连接好以后,扬声器没有任何的反应。经过一系列的检查才发现杜邦线的接线有问题,音频输出口P1.6插到了第六个角(实际上是P1.5)还在调试的最后阶段的种种问题,经过查阅资料才把简易电子琴顺利完成设计。六 团队分工合作

12、潘黎:查找资料、撰写终期报告原媛:编辑程序、修改及完善 黄静 :编辑程序、修改及完善 刘晓涵 :调试程序、测试功能徐雅文:查找资料、撰写中期报告附录;代码部分LCDRS EQU P2.4 ;定义管脚和接口LCDRW EQU P2.5 E EQU P2.6 SPK EQU P1.6 LCDDATA EQU P0 KEY EQU P3 JIEPAI EQU 24H ;节拍 YINDIAO EQU 25H ;升降调ORG 00H LJMP STARORG 0BH ; T0中断 控制音调发声频率LJMP TIME0ORG 1BH ;T1中断 控制音乐播放LJMP TIME1ORG 30HTIME0:

13、MOV TL0,R3 MOV TH0,R2 CPL SPK RETITH01: DB 008H,007H,006H,006H,005H,004H,004H,004HTL01: DB 028H,043H,079H,016H,070H,0D7H,04FH,011H TIME1: MOV TL1,20H MOV TH1,21H CPL SPK ;由该口输出音频数据 ;CLR P1.2 RETISTAR: MOV SP,#70H MOV TMOD,#11H ;定时器模式为1 MOV IE,#8AH CLR TR0 MOV R3,#0FFH;LOW_8_BIT MOV R2,#0FFH;HIGH_8_B

14、IT CLR YINDIAO.0 ;判断是否升降调位清零 MOV P2,0 MOV P0,0MAIN: LCALL PANDUAN ;调用判断按键子程序 JZ MAIN ;都不按下返回继续判断 CJNE A,#9,M1 ;按键不等于9跳转 M1: JNC M2 ;若按键为=9中一个跳转到M 2 DEC A ;按键为1到8执行单音播放 PUSH ACC MOV R5,A LCALL PRINT ;调用屏幕显示 POP ACC LCALL BF ;调用单音播放 SJMP MAIN M2: CJNE A,#9,M3 ;按键大于9跳转 LCALL KEY9 ;调用播放键子程序 LCALL DELAY1

15、 MOV LCDDATA,#01H ;写指令01H,清屏 LCALL ENABLE LJMP MAIN M3: CJNE A,#10,M4 ;按键10控制加长节拍 INC JIEPAI ANL JIEPAI,#07H LJMP MAIN M4: CJNE A,#11,M5 ;按键11控制减短节拍 DEC JIEPAI ANL JIEPAI,#07H LJMP MAIN M5: CJNE A,#14,M6 SETB YINDIAO.0 ;升降调执行 CLR YINDIAO.1 ;降调 LJMP MAIN M6: CJNE A,#15,M7 SETB YINDIAO.0 ;升降调执行 SETB Y

16、INDIAO.1 ;升调 LJMP MAIN M7: CJNE A,#13,M8 ;按键13复位 CLR YINDIAO.0 ;没有升降调 LJMP MAIN M8: LJMP MAINKEY9: ;播放已有音乐 LCALL DELAY1 ;调用延时 MOV LCDDATA,#01H ;清屏及设置屏幕 LCALL ENABLE MOV LCDDATA,#38H LCALL ENABLE MOV LCDDATA,#0CH LCALL ENABLE MOV LCDDATA,#06H LCALL ENABLE MOV LCDDATA,#80H ;显示屏第一行起始地址 MOV R1,#16 LCALL

17、 ENABLE MOV DPTR,#GEMING1 ;显示歌名 LCALL DISP MOV R1,#16 MOV LCDDATA,#0C0H ;第二行起始地址 LCALL ENABLE MOV DPTR,#GEMING2 LCALL DISP PUSH ACC MOV 30H,#00H JIXU3:MOV A,30H MOV DPTR,#QUMU1 MOVC A,A+DPTR MOV R2,A JZ END0 ANL A,#0FH MOV R5,A MOV A,R2 SWAP A ANL A,#0FH JNZ SONG CLR TR1 JMP D1 SONG: DEC A MOV 22H,A

18、 RL A MOV DPTR,#QUMU0 MOVC A,A+DPTR MOV TH1,A MOV 21H,A MOV A,22H RL A INC A MOVC A,A+DPTR MOV TL1,A MOV 20H,A SETB TR1 D1:LCALL DELAY2 INC 30H JMP JIXU3 END0:CLR TR1 POP ACC RETDELAY1: MOV R7,#1 ;延时子程序 S1: MOV R6,#255 S2: DJNZ R6,S2 DJNZ R7,S1 RETDELAY2: MOV R7,#02H D2: MOV R4,#255 D3: MOV R3,#248

19、DJNZ R3,$ DJNZ R4,D3 DJNZ R7,D2 DJNZ R5,DELAY2 RETPANDUAN: MOV P3,#0FH MOV A,P3 XRL A,#0FH JNZ JIXU1 RET JIXU1: ;消除按键抖动 MOV R6,#255 HJ:MOV R7,#255 DJNZ R7,$ DJNZ R6,HJ MOV P3,#0FH MOV A,P3 XRL A,#0FH JNZ JIXU2 RET JIXU2: MOV P3,#0FH MOV A,P3 MOV P3,#0F0H ORL A,P3 MOV B,0 CJNE A,#0FFH,K1 ;扫描按键 LJMP Y

20、Y K1:INC B CJNE A,#7EH,K2 LJMP YY K2:INC B CJNE A,#0BEH,K3 LJMP YY K3:INC B CJNE A,#0DEH,K4 LJMP YY K4:INC B CJNE A,#0EEH,K5 LJMP YY K5:INC B CJNE A,#7DH,K6 LJMP YY K6:INC B CJNE A,#0BDH,K7 LJMP YY K7:INC B CJNE A,#0DDH,K8 LJMP YY K8:INC B CJNE A,#0EDH,K9 LJMP YY K9:INC B CJNE A,# 7BH,K10 LJMP YY K1

21、0:INC B CJNE A,#0BBH,K11 LJMP YY K11:INC B CJNE A,#0DBH,K12 LJMP YY K12:INC B CJNE A,#0EBH,K13 LJMP YY K13:INC B CJNE A,#77H,K14 LJMP YY K14:INC B CJNE A,#0B7H,K15 LJMP YY K15:INC B CJNE A,#0D7H,K16 LJMP YY K16:INC B CJNE A,#0E7H,YY YY: MOV A,B ;将按键数值放于A RETPRINT: ;显示屏显示按键及节拍音调 LCALL DELAY1 ;延时一段时间

22、MOV LCDDATA,#01H ;写指令01H,清屏 LCALL ENABLE MOV LCDDATA,#38H ;写指令38H,设定LCD为16*2显示,5*7 点阵,8位数据接口 LCALL ENABLE MOV LCDDATA,#0CH ;写指令0FH,显示ON,光标ON,闪烁ON LCALL ENABLE MOV LCDDATA,#06H ;写指令06H,光标输入方式增量移位 LCALL ENABLE MOV LCDDATA,#80H ;第一行起始字符地址 MOV R1,#16 LCALL ENABLE MOV DPTR,#TITLEA ;第一行显示字符表头地址 LCALL DISP

23、 ;显示第一行数据 MOV LCDDATA,#0C0H MOV R1,#16 LCALL ENABLE MOV DPTR,#TITLED LCALL DISP MOV R1,#5 MOV LCDDATA,#0C0H LCALL ENABLE MOV DPTR,#TITLEB LCALL DISP MOV LCDDATA,#0C5H LCALL ENABLE MOV A,#1 ADD A,R5 LCALL DISP1 MOV LCDDATA,#0C6H LCALL ENABLE MOV A,# JNB YINDIAO.0,PING JB YINDIAO.1,JIANG MOV A,#* ;升调符

24、号为* SJMP PING JIANG:MOV A,#_ ;降调符号为_ PING: LCALL DISP1 MOV R1,#5 MOV LCDDATA,#0C8H ;第二行起始字符地址 LCALL ENABLE MOV DPTR,#TITLEC ;第二行显示字符表头地址 LCALL DISP MOV LCDDATA,#0CDH LCALL ENABLE MOV A,#1 ADD A,JIEPAI LCALL DISP1 RETENABLE: CLR LCDRS ;写指令子程序 CLR LCDRW CLR E LCALL DELAY1 SETB E RETDISP: MOV A,#00H ;将

25、ACC清零 MOVC A,A+DPTR ;查表取得要显示的数据 LCALL DISP1 ;写入一个数据 INC DPTR ;数据表指针加1,准备取下一个数据 DJNZ R1,DISP RET;- DISP1: MOV LCDDATA,A SETB LCDRS CLR LCDRW CLR E MOV R7,#255 S3:DJNZ R7,S3 SETB E RETBF: MOV R4,A MOV DPTR,#TL01 MOVC A,A+DPTR MOV B,#02 JNB YINDIAO.0,TWO JB YINDIAO.1,ONE ZERO: DIV AB ;升调 SJMP TWO ONE:

26、MUL AB ;降调 TWO: CPL A INC A MOV R3,A MOV A,R4 MOV DPTR,#TH01 MOVC A,A+DPTR MOV B,#02 JNB YINDIAO.0,TWO2 JB YINDIAO.1,ONE2 ZERO2: DIV AB SJMP TWO2 ONE2: MUL AB TWO2: CPL A INC A MOV R2,A MOV A,R4 SETB TR0 LCALL DELAY CLR TR0 RETDELAY: ;控制节拍的延时ANL JIEPAI,#07XRL JIEPAI,#0FFHXRL JIEPAI,#0FFHINC JIEPAIMO

27、V R5,JIEPAIDEC JIEPAIX3:MOV R7,#255X2:MOV R6,#255X1:DJNZ R6,X1DJNZ R7,X2DJNZ R5,X3RET;-TITLEA: DB DIANZIQINXITONG ;显示的内容TITLEB: DB DIAO: TITLEC: DB Yinc: TITLED: DB QUMU0: ;音乐码表 DW 64260,64400,64524,64580 DW 64684,64777,64820,64898 DW 64968,65030,65058,65110 DW 65157,65178,65217 QUMU1: DB 51H,21H,41

28、H,12H,83H,81H,61H,81H,58H,53HDB 61H,31H,22H,13H,21H,42H,52H,0E2H,42H,21HDB 11H,91H,41H,18H,63H,81H,32H,52H,21H,41HDB 16H,0E4H,11H,21H,31H,51H,26H,11H,21H,43HDB 51H,82H,62H,52H,61H,51H,42H,21H,11H,0E4HDB 44H,21H,41H,21H,11H,0E1H,11H,21H,41H,18HDB 61H,81H,51H,61H,51H,41H,32H,21H,41H,18H ;音符 通过定时器发声DB 00HGEMING1: DB .Music. Playing.GEMING2: DB Liang zhu END

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

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