收藏 分销(赏)

音乐盒课程设计报告.doc

上传人:丰**** 文档编号:4005756 上传时间:2024-07-24 格式:DOC 页数:21 大小:349.88KB
下载 相关 举报
音乐盒课程设计报告.doc_第1页
第1页 / 共21页
音乐盒课程设计报告.doc_第2页
第2页 / 共21页
音乐盒课程设计报告.doc_第3页
第3页 / 共21页
音乐盒课程设计报告.doc_第4页
第4页 / 共21页
音乐盒课程设计报告.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、音乐盒课程设计报告 XXXXXXXXXXXXX一、 项目概述: 随着社会的发展进步,许多人性化的电子产品被用在人们的日常生活中,而单片机被广泛运用到人们长期接触的事物上,比如银行交易窗口的滚动字幕,还有各种彩灯的控制,手机、计算机、机器人等各行各业中。基于AT89C52单片机的数字音乐盒就是这类产品,它不仅给人们带来了快乐,而且提高了人们的生活质量。二、 项目要求:基于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的排阻。(二) 、LCD1602资料:1)、LCD1602介绍:1602液晶显示器也叫1602

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

7、H),显示时模块把地址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背光显示。四、系统设计:(一)、系统框图: 电源电路AT89C52 单片机 复位电路LCD液晶显示电路 晶振电路 蜂鸣器电路44矩阵按键 电路(二)系统框架图说明: 1、 电源电路:以+5V

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

9、,2引脚接高电平,3引脚通过滑动变阻器接地。15以及16引脚是背光电源,可根据实际情况选取。具体实现见原理图。5、 蜂鸣器电路:17号引脚(P3.7)接蜂鸣器电路通过定时器控制P3.7引脚上方波的占空比可以实现驱动蜂鸣器,发出不同的音调的功能。驱动喇叭的功率管采用型号为 2N5088的三级管,使喇叭在各种频率的脉冲信号下能准确的发出各个音阶的音调。6、矩阵按键电路:P1端口控制44矩阵键盘,其中P1.0P1.3 进行列扫描,P1.4P1.7进行行扫描。五、硬件设计: 蜂鸣器电路:元件清单:基于AT89C52单片机的音乐盒元件清单:原件名称型号数量/个用途单片机AT89C521控制核心晶振12M

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

11、D上显示序号和播放时间。程序流程图(一)、主程序流程图和显示流程:设定LCD初始化开始设LCD模组为2行显示,8位元界面LCD初始化按键是否按下?显示器ON识别按键功能LCD模组接收资料清除显示结束送LCD显示播放音乐并计算播放时间(二)、实验源程序:RS BIT P2.0;引脚定义,定义液晶显示端口标号RW BIT P2.1E BIT P2.2L50MS EQU 60H ;工作内存定义L1MS EQU 61HL250MS EQU 62HSEC EQU 65HMIN EQU 64HHOU EQU 63HORG 0000H LJMP MAINORG 000BH ;定时器T0溢出中断入口地址LJM

12、P TT0ORG 001BH ; 定时器T1溢出中断入口地址 LJMP T1INT ORG 1000HMAIN: ;液晶初始化 MOV SP,#70H MOV P0,#01H ;清屏 CALL DISPLAY MOV P0,#38H ;8位,2行显示 LCALL DISPLAY MOV P0,#0FH ;屏显on,光标on,闪烁on LCALL DISPLAY MOV P0,#06H ;计数地址加1,显示幕on LCALL DISPLAYLCALL INITIL ;内存初始化WAIT: LCALL KEY ;键盘扫描,是否有键按下,否则等待LCALL MODD LJMP WAITKEY: NO

13、P 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 ;读键盘 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

14、,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: MOV 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 ;判断P

15、1口 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 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

16、CALL WRITE2 RETKAIJI: MOV A,37H ;开机提示字CJNE A,#0FH,DFF MOV P0,#80H ;设光标地址 CALL DISPLAY MOV DPTR,#TABLE1;写数据 CALL WRITE1 DFF: RET;按键值播放歌曲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

17、MOV 53H,#LOW TABLE20 LCALL INITILE2 lcall MAIN0A22: CJNE A,#03H,A33 LCALL MODD MOV 52H,#HIGH TABLE30 MOV 53H,#LOW TABLE30 LCALL INITILE2 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 TABL

18、E50 MOV 53H,#LOW TABLE50 LCALL INITILE2 lcall MAIN0A55: CJNE A,#06H,A66 LCALL MODD MOV 52H,#HIGH TABLE60 MOV 53H,#LOW TABLE60 LCALL 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

19、 TABLE80 MOV 53H,#LOW TABLE80 LCALL INITILE2 lcall MAIN0A88: CJNE A,#09H,A99 LCALL MODD MOV 52H,#HIGH TABLE90 MOV 53H,#LOW TABLE90 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 L

20、1MS,#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 ;显示小时十位 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

21、 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 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 ;显

22、示秒个位 CALL DISPLAY CALL WRITE2 MOV P0,#0C0H ;设光标地址 CALL DISPLAY MOV DPTR,#TABLE2;写数据 CALL WRITE1 RETDISPLAY: CLR RS ;写指令 CLR RW CLR 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 DE

23、LAY 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,88H,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

24、 DB 34H,35H,36H,37H DB 38h,39H,41H,42H DB 43H,44H,45H,46HMAIN0:MOV TMOD,#11H ;播放歌曲程序 MOV IE,#8aH MOV TH1, #3cH MOV TL1, #0b0H LCALL KS JNZ TTM12 MOV 40H,#00HNEXT20: MOV A,40H MOV DPH,52H MOV DPL,53H MOVCA,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 W1S

25、ING: 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 20H,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 LCAL

26、L DELAY1TTM120:LCALL KS LCALL DELAY1 JZ TTM120 LCALL K2 MOV A,37H CJNE A,#0EH,TTM120 SETB TR1 LJMP NEXT20TTM13: CJNEA,#0CH,TTM14 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:CJNEA,#0DH,TTM2 MOV A,52H DEC A MOV 52H,A MOV A,53H DEC A MOV 53H,A MOV A,36H

27、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;定时器中断子程序1T1INT: MOV TH1, #3CH ;定时器中断子程序1 MOV TL1, #0B0HDJNZ L50MS,X4 MOV L50MS,#20SECSET: ;每秒种时钟刷新秒显示一次MOV A,SEC MOV B,#10 DIV AB ADD A,#30H MOV P0,#0CEH ;显示秒十位 CALL DISPLAY CALL WRITE2MOV

28、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 ;显示分个位 CALL DISPLAY CALL WRITE2

29、 MOV A,MIN MOV B,#3 MUL AB MOV B,#100 DIV AB MOV R2,A MOV A,#10 XCH A,B DIV AB MOV A,MIN XRL A,#60 JNZ OUTHOUSET: MOV MIN,#00H ;每小时刷新小时显示一次 MOV A,HOU MOV B,#10 DIV AB ADD A,#30H ;将BCD吗转化为ASIIC码MOV P0,#0C8H ;显示小时十位 CALL DISPLAY CALL WRITE2MOV A,B ADD A,#30H MOV P0,#0C9H ;显示小时个位 CALL DISPLAY CALL WRIT

30、E2 MOV A,HOU INC A MOV HOU,A XRL A,#10 JNZ OUT SJMP OVERFLOWOUT: RETI;溢出处理OVERFLOW: MOV L50MS,#20 MOV L1MS,#00H MOV L250MS,#00H MOV SEC,#00H MOV MIN,#00H MOV HOU,#00H RETIDELAY30: MOV R7,#2W2: MOV R4,#125W3: MOV R3,#248DJNZ R3,$DJNZ R4,W3DJNZ R7,W2DJNZ R1,DELAY30RETTABLE00:DW 64580,64684,64777,64820

31、DW 64898,64968,65030,64260DW 64400,64524,65058,63835,64021TABLE10: ;第一首精忠报国DB 66H,52H,36H,22H,12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22HDB 32H,52H,22H,42H,38H,66H,52H,36H,22H,12H,22H,22H,32H,98HDB 24H,22H,32H,54H,52H,32H,92H,12H,92H,82H,98H,66H,52H,36H,22HDB 12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,

32、22H,32H,52H,22H,42H,38HDB 66H,52H,36H,22H,12H,22H,22H,32H,98H,24H,22H,32H,54H,52H,32HDB 22H,12H,92H,82H,98H,14H,24H,34H,44H,64H,0B4H,64H,32H,52HDB 62H,0B2H,62H,52H,38H,24H,22H,32H,54H,52H,62H,52H,32H,32H,22H,38HDB 64H,0B4H,64H,32H,52H,62H,0B2H,62H,52H,38H,22H,22H,22H,32H,52H,52HDB 52H,62H,7FH,74H,04

33、H,58H,6FHDB 00TABLE20:;第二首月亮代表我的心DB 02H,82HDB 16H,32H,54H,02H,52HDB 0A6H,32H,54H,02H,52HDB 64H,74H,0B6H,64HDB 52H,5CH,32H,22HDB 16H,12H,14H,32H,22HDB 16H,12H,14H,22H,32HDB 26H,12H,94H,22H,32HDB 2CHDB 32H,52HDB 36H,22H,14H,54HDB 0ACH,92H,0A2HDB 96H,0A2H,96H,82HDB 3CH,54HDB 36H,22H,14H,54HDB 0ACH,92H,

34、0A2HDB 16H,12H,14H,22H,32HDB 2CH,02H,82HDB 16H,32H,56H,12HDB 0A6H,32H,56H,52HDB 66H,72H,0B6H,62HDB 62H,52H,58H,32H,22HDB 16H,12H,14H,32H,22HDB 16H,12H,14H,22H,32HDB 26H,92H,0A4H,12H,22HDB 1CHDB 00TABLE30: ;第三首看我七十二变DB 0d4H,84H,94H,82H,92HDB 12H,22H,82H,92H,02H,92H,82H,0d2HDB 82H,92H,14H,84H,02H,0d1H,0d1HDB 0c2H,0d2H,84H,0d2H,0d2H,82H,82HDB 84H,82H,82H,94H,82H,0d2HDB 82H,82H,82H,92H,02H,82H,82H,0d2H

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服