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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

音乐盒课程设计报告.docx

1、音乐盒课程设计报告音乐盒课程设计报告 XXXXXXXXXXXXX1、项目概述: 随着社会的发展进步,许多人性化的电子产品被用在人们的日常生活中,而单片机被广泛运用到人们长期接触的事物上,比如银行交易窗口的滚动字幕,还有各种彩灯的控制,手机、计算机、机器人等各行各业中。基于AT89C52单片机的数字音乐盒就是这类产品,它不仅给人们带来了快乐,而且提高了人们的生活质量。2、项目要求:基于AT89C52单片机的数字音乐盒的设计要求如下: (1)用AT89C2单片机的I/O端口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。 (2)共有10首乐曲,每首乐曲都有相应的按键控制,并且有开关键

2、、暂停键、上一曲以及下一曲的控制键。 (3)LCD液晶显示歌曲的序号、播放时间、开机时显示英文欢迎提示字符。三、知识要点:(一)、AT89C2芯片资料:1)功能说明:1、兼容MCS51指令系统 。2、8k可反复擦写(大于1000次)Flash ROM。 3、2KB的E2PROM程序存储器,可擦写10万次4、32个双向I/O口。 5、256x8bit内部RAM。 5、3个16位可编程定时/计数器中断。 6、时钟频率12MHz。 7、1个可编程UART串行通道。 8、2个外部中断源,共9个中断源,6个中断矢量。 9、2个读写中断口线,3级加密位。 10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能

3、。 11、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。2)引脚说明:AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。AT89C52为40 脚双列直插封装的8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/VP

4、d(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚)被定义为 N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。本项目使用到的单片机引脚说明:1) 20、40号引脚分别

5、接地和+5V电源。2) 18、29号引脚分别接振荡器反相放大器的输出端和振荡器反相放大器的及内部时 钟发生器的输入端。3)9号引脚接RST复位电路。3)单片机使能信号接31号引脚,接+5V。4)17号引脚(P3.7)接蜂鸣器电路通过定时器控制P3.7引脚上方波的占空比可以实现驱动 蜂鸣器,发出不同的音调的功能。5)P1端口控制44矩阵键盘,其中P1.0P1.3 进行列扫描,P1.4P1.7进行行扫描。6)P0端口用于接液晶显示器的数据位,由于P0端口驱动能力小,需外接电源和上拉电阻,此项目中接1K的排阻。(2)、LCD1602资料:1)、LCD1602介绍:1602液晶显示器也叫1602字符型

6、液晶 它是一种专门用来显示字母、数字、符号等的点阵型液晶模块 它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔,每行之间也有也有间隔,起到了字符间距和行间距的作用,正因为如此 所以他不能显示图形。LCD1602是指显示的内容为16X2,即可以显示2行,每行16个字符液晶模块(显示字符和数字)。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常 用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),

7、显示时模块把地址41H中的点 阵字符图形显示出来,我们就能看到字母“A” 。2)1602引脚说明:本项目中使用到的LCD的引脚说明:1)1脚VSS接地,2脚VDD接+5V电源。2)3脚VEE接地,中间连10K变位器,用于调节液晶显示器对比度。3)4脚RS、5脚RW、6脚E分别接单片机P2.0、P2.1、P2.2脚。4)7脚接对应单片机P0口,用于数据传送。5)15脚和16脚分别接电源和地,用于1602背光显示。四、系统设计:(一)、系统框图:(二)系统框架图说明: 1、 电源电路:以+5V表示高电平,0表示低电平。 2、复位电路:复位电路分为手动复位和上电复位两种,本实验复位电路综合了以上两种

8、复位方式,RST引脚十复位信号的输入端口,高电平有效。在时钟振荡器稳定工作的情况下,该引脚若由低电平升到高电平,并保持两个机器周期系统实现一次复位操作。具体实现见电路原理图。 3、晶振电路:晶振电路分为内部振荡器接法和外部振荡器接法,本实验采用内部接法。晶振频率12MHz。具体实现见原理图。 4、LCD液晶显示电路:P0端口用于接液晶显示器的数据位,由于P0端口驱动能力小需外接电源和上拉电阻,液晶显示器的RS RW E 三个引脚分别接在单片机的P2.0、P2.1、P2.2引脚上。1引脚接地,2引脚接高电平,3引脚通过滑动变阻器接地。15以及16引脚是背光电源,可根据实际情况选取。具体实现见原理

9、图。5、蜂鸣器电路:17号引脚(P3.7)接蜂鸣器电路通过定时器控制P3.7引脚上方波的占空比可以实现驱动蜂鸣器,发出不同的音调的功能。驱动喇叭的功率管采用型号为 2N5088的三级管,使喇叭在各种频率的脉冲信号下能准确的发出各个音阶的音调。6、矩阵按键电路:P1端口控制44矩阵键盘,其中P1.0P1.3 进行列扫描,P1.4P1.7进行行扫描。五、硬件设计: 蜂鸣器电路:元件清单:基于AT89C52单片机的音乐盒元件清单:原件名称型号数量/个用途单片机AT89C521控制核心晶振12MHz1晶振电路电容30PF2晶振电路电解电容10uF/10V1复位电路电阻10k1复位电路液晶显示器1602

10、A1LCD显示排阻1k1上拉电阻喇叭0.5w/81蜂鸣器电路电阻1k2三极管S90151电源+5V/0.5A1提供电源按键四脚17按键电路六、软件设计:键盘采用动态扫描方式。每次扫描一行键盘,送此行低电平,读输入口的状态,判断有没由按键按下。若有按键按下,则根据读入口的值选择显示值并送至显示值寄存单元,判断键值;启动计数器T0,根据此值为偏移地址找到药选择的音乐的代码的首地址,根据代码产生一定频率的脉冲,驱动蜂鸣器,放出音乐;同时启动定时器T1,计算音乐的播放时间,并且启动LCD,在LCD上显示序号和播放时间。程序流程图(一)、主程序流程图和显示流程:(二)、实验源程序:RS BIT P2.0

11、 ;引脚定义,定义液晶显示端口标号RW BIT P2.1E BIT P2.2L50MS EQU 60H ;工作内存定义L1MS EQU 61HL250MS EQU 62HSEC EQU 65HMIN EQU 64HHOU EQU 63H ORG 0000H LJMP MAIN ORG 000BH ;定时器T0溢出中断入口地址 LJMP TT0 ORG 001BH ; 定时器T1溢出中断入口地址 LJMP T1INT ORG 1000HMAIN: ;液晶初始化 MOV SP,#70H MOV P0,#01H ;清屏 CALL DISPLAY MOV P0,#38H ;8位,2行显示 LCALL

12、DISPLAY MOV P0,#0FH ;屏显on,光标on,闪烁on LCALL DISPLAY MOV P0,#06H ;计数地址加1,显示幕on LCALL DISPLAYLCALL INITIL ;内存初始化WAIT: LCALL KEY ;键盘扫描,是否有键按下,否则等待LCALL MODD LJMP WAITKEY: NOP NOP LCALL KS JNZ K1 ;有按键转到K1 LCALL KAIJI LCALL SOPXN: LJMP KEYK1: LCALL MODD LCALL MODD LCALL KS JNZ K2 LJMP KEYK2: MOV R2,#0FEH ;

13、读键盘 MOV R4,#00HK3: MOV A,R2 MOV P1,A MOV A,P1JB ACC.4,L1 ;为1跳转,第一行无按键 MOV A,#00H LJMP LKL1: JB ACC.5,L2 MOV A,#04H LJMP LKL2: JB ACC.6,L3 MOV A,#08H LJMP LKL3: JB ACC.7,NEXT1 MOV A,#0CHLK: ADD A,R4 PUSH ACCK4: LCALL DELAY1 ;若同时有其他按键,则等待 LCALL KS JNZ K4 MOV R3,#07H CLR A MOV R0,#30H MOV R1,#31HMM1: M

14、OV A,R1 MOV R0,A INC R0 INC R1 DJNZ R3,MM1 POP ACC MOV R0,A RETNEXT1: INC R4 ;列扫描 MOV A,R2 JNB ACC.3,N2 LJMP N1N2: LJMP KEYN1: RL A MOV R2,A LJMP K3KS: MOV A,#0F0H ;判断P1口 MOV P1,A NOP NOP MOV A,P1 CPL A ANL A,#0F0H RETDELAY1:SETB RS0DL: MOV R5,#0AHDL2: MOV R6,#63DL3: NOP NOP DJNZ R6,DL3 DJNZ R5,DL2

15、CLR RS0 RETINITIL: ;30H-37H初值为零 MOV R3,#08H MOV R0,#30HM1: MOV R0,#00H INC R0 DJNZ R3,M1 RETMODD: ;显示 MOV P0,#8EH CALL DISPLAY MOV A,37H MOV DPTR,#TABLE3 MOVC A,A+DPTR CALL WRITE2 RETKAIJI: MOV A,37H ;开机提示字 CJNE A,#0FH,DFF MOV P0,#80H ;设光标地址 CALL DISPLAY MOV DPTR,#TABLE1;写数据 CALL WRITE1 DFF: RET;按键值

16、播放歌曲SOP: MOV A,37H CJNE A,#01H,A11 LCALL MODD MOV 52H,#HIGH TABLE10 MOV 53H,#LOW TABLE10 LCALL INITILE2 LCALL MAIN0A11: CJNE A,#02H,A22 LCALL MODD MOV 52H,#HIGH TABLE20 MOV 53H,#LOW TABLE20 LCALL INITILE2 lcall MAIN0A22: CJNE A,#03H,A33 LCALL MODD MOV 52H,#HIGH TABLE30 MOV 53H,#LOW TABLE30 LCALL INI

17、TILE2 lcall MAIN0 A33: CJNE A,#04H,A44 LCALL MODD MOV 52H,#HIGH TABLE40 MOV 53H,#LOW TABLE40 LCALL INITILE2 lcall MAIN0A44: CJNE A,#05H,A55 LCALL MODD MOV 52H,#HIGH TABLE50 MOV 53H,#LOW TABLE50 LCALL INITILE2 lcall MAIN0A55: CJNE A,#06H,A66 LCALL MODD MOV 52H,#HIGH TABLE60 MOV 53H,#LOW TABLE60 LCALL

18、 INITILE2 lcall MAIN0 A66: CJNE A,#07H,A77 LCALL MODD MOV 52H,#HIGH TABLE70 MOV 53H,#LOW TABLE70 LCALL INITILE2 lcall MAIN0 A77: CJNE A,#08H,A88 LCALL MODD MOV 52H,#HIGH TABLE80 MOV 53H,#LOW TABLE80 LCALL INITILE2 lcall MAIN0A88: CJNE A,#09H,A99 LCALL MODD MOV 52H,#HIGH TABLE90 MOV 53H,#LOW TABLE90

19、LCALL INITILE2 lcall MAIN0 A99: CJNE A,#0AH,AAA LCALL MODD MOV 52H,#HIGH TABLE100 MOV 53H,#LOW TABLE100 LCALL INITILE2 lcall MAIN0 AAA: RET INITILE2: MOV L50MS,#20 MOV L1MS,#00H MOV L250MS,#00H MOV SEC,#00H MOV MIN,#00H MOV HOU,#00HMOV A,HOU MOV B,#10 DIV AB ADD A,#30H ;将BCD吗转化为ASIIC码MOV P0,#0C8H ;显

20、示小时十位 CALL DISPLAY CALL WRITE2 MOV A,B ADD A,#30H MOV P0,#0C9H ;显示小时个位 CALL DISPLAY CALL WRITE2 MOV A,#3AH MOV P0,#0DH ;显示冒号 CALL DISPLAY CALL WRITE2 MOV A,MIN MOV B,#10 DIV AB ADD A,#30H MOV P0,#0CBH ;显示分十位 CALL DISPLAY CALL WRITE2 MOV A,B ADD A,#30H MOV P0,#0CCH ;显示分个位 CALL DISPLAY CALL WRITE2 MOV

21、 A,#3AH MOV P0,#0CDH ;显示冒号 CALL DISPLAY CALL WRITE2 MOV A,SEC MOV B,#10 DIV AB ADD A,#30H MOV P0,#0CEH ;显示秒十位 CALL DISPLAY CALL WRITE2 MOV A,B ADD A,#30H MOV P0,#0CFH ;显示秒个位 CALL DISPLAY CALL WRITE2 MOV P0,#0C0H ;设光标地址 CALL DISPLAY MOV DPTR,#TABLE2;写数据 CALL WRITE1 RETDISPLAY: CLR RS ;写指令 CLR RW CLR

22、E LCALL DELAY SETB E RETWRITE1: MOV R1,#00H ;写数据A1: MOV A,R1 MOVC A,A+DPTR CALL WRITE2 INC R1 CJNE A,#0FEH,A1 ;未到字符串末尾继续 RETWRITE2: MOV P0,A SETB RS CLR RW CLR E CALL DELAY SETB E RETDELAY: MOV R4,#05D1: MOV R5,#0FFH DJNZ R5,$ DJNZ R4,D1 RET TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB 80H,90H,88

23、H,83H,0C6H,0A1H,86H,8EHTAB1: DB 89H,86H,0C7H,0C7H,0C0HTAB2: DB 0C6H,88H,0C0HTABLE1: DB Music Box,0FEHTABLE2: DB he jin ,0FEHTABLE4: DB CAU,0FEHTABLE3: DB 30H,31H,32H,33h DB 34H,35H,36H,37H DB 38h,39H,41H,42H DB 43H,44H,45H,46H MAIN0: MOV TMOD,#11H ;播放歌曲程序 MOV IE,#8aH MOV TH1, #3cH MOV TL1, #0b0H LCA

24、LL KS JNZ TTM12 MOV 40H,#00HNEXT20: MOV A,40H MOV DPH,52H MOV DPL,53H MOVC A,A+DPTR MOV R2,A JZ STOP ANL A,#0FH MOV R1,A MOV A,R2 SWAP A ANL A,#0FH JNZ SING CLR TR0 JMP W1SING: DEC A MOV 22H,A RL A MOV DPTR,#TABLE00 MOVC A,A+DPTR MOV TH0,A MOV 21H,A MOV A,22H RL A INC A MOVC A,A+DPTR MOV TL0,A MOV 2

25、0H,A SETB TR0 SETB TR1W1: LCALL DELAY30 INC 40H LCALL KS ;有键跳出 JNZ STOP LJMP NEXT20STOP: CLR TR0 CLR TR1 LJMP MAIN0 TTM12: LCALL K2 MOV A,37H CJNE A,#0EH,TTM13 CLR TR1 LCALL DELAY1TTM120: LCALL KS LCALL DELAY1 JZ TTM120 LCALL K2 MOV A,37H CJNE A,#0EH,TTM120 SETB TR1 LJMP NEXT20TTM13: CJNE A,#0CH,TTM

26、14 MOV A,52H INC A MOV 52H,A MOV A,53H INC A MOV 53H,A MOV A,36H INC A MOV 37H,A LJMP TTM2TTM14: CJNE A,#0DH,TTM2 MOV A,52H DEC A MOV 52H,A MOV A,53H DEC A MOV 53H,A MOV A,36H DEC A MOV 37H,ATTM2: RETTT0: PUSH ACC ;定时器中断子程序0 PUSH PSW MOV TL0,20H MOV TH0,21H CPL P3.7 POP PSW POP ACC RETI;定时器中断子程序1T1I

27、NT: MOV TH1, #3CH ;定时器中断子程序1 MOV TL1, #0B0H DJNZ L50MS,X4 MOV L50MS,#20SECSET: ;每秒种时钟刷新秒显示一次MOV A,SEC MOV B,#10 DIV AB ADD A,#30H MOV P0,#0CEH ;显示秒十位 CALL DISPLAY CALL WRITE2MOV A,B ADD A,#30H MOV P0,#0CFH ;显示秒个位 CALL DISPLAY CALL WRITE2 MOV A,SEC INC A MOV SEC,A XRL A,#60X4: JNZ OUTMINSET: MOV SEC,#00H ; 每分钟刷新分显示一次 MOV A,MIN INC A MOV MIN,A MOV B,#10 DIV AB ADD A,#30HMOV P0,#0CBH ;显示分十位 CALL DISPLAY CALL WRITE2MOV A,B ADD A,#30H MOV P0,#0CCH ;显示分个位 CA

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

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