1、单片机实验报告4单片机原理与应用实验报告(四) 题 目: 音乐播放模块实验 学 院: 专 业: 姓 名: 指导教师: 赫辽瓦 完成日期: 2012年11月04日 一、 实验题目音乐播放模块实验二、 实验目的(1)掌握可编程的软件K3设计与应用;(2)掌握实验所用电子元件的特性、使用性能及其焊接方法;(3)掌握用软件CAD画图;(4)了解歌曲的编译规则。三、 实验内容(1)编译毛阿敏的思念;(2)焊接共阳接法的音乐播放模块。四、 硬件电路1.硬件电路图及设计说明电路图:(共阳接法)+5V音乐播放模块电路图彩灯模块实物图硬件电路图说明 1)共阳极接法。 2)本电路设计追求最简原则,没用驱动器。2.
2、电子元器件清单序号名称数量1电路板1块2扬声器1个3排插针座1个4电阻33016个5焊锡若干69013三极管1个7电阻10k1个五、 编制软件1.程序流程框图2.歌曲简谱3.LST表格文件清单A51 MACRO ASSEMBLER STARTUP 10/30/2012 21:22:05 PAGE 1MACRO ASSEMBLER A51 V8.00OBJECT MODULE PLACED IN STARTUP.OBJASSEMBLER INVOKED BY: E:KeilC51BINA51.EXE STARTUP.A51 SET(SMALL) DEBUG EPLOC OBJ LINE SOUR
3、CE 1 $nomod51 2 ;- 3 ; This file is part of the C51 Compiler package 4 ; Copyright (c) 1988-2005 Keil Elektronik GmbH and Keil Software, Inc. 5 ; Version 8.01 6 ; 7 ; * * 8 ;- 9 ; STARTUP.A51: This code is executed after processor reset. 10 ; 11 ; To translate this file use A51 with the following in
4、vocation: 12 ; 13 ; A51 STARTUP.A51 14 ; 15 ; To link the modified STARTUP.OBJ file to your application use the following 16 ; Lx51 invocation: 17 ; 18 ; Lx51 your object file list, STARTUP.OBJ controls 19 ; 20 ;- 21 ; 22 ; User-defined Power-On Initialization of Memory 23 ; 24 ; With the following
5、EQU statements the initialization of memory 25 ; at processor reset can be defined: 26 ; 27 ; IDATALEN: IDATA memory size 28 ; Note: The absolute start-address of IDATA memory is always 0 29 ; The IDATA space overlaps physically the DATA and BIT areas. 0080 30 IDATALEN EQU 80H 31 ; 32 ; XDATASTART:
6、XDATA memory start address 33 ; The absolute start address of XDATA memory 0000 34 XDATASTART EQU 0 35 ; 36 ; XDATALEN: XDATA memory size 37 ; The length of XDATA memory in bytes. 0000 38 XDATALEN EQU 0 39 ; 40 ; PDATASTART: PDATA memory start address 41 ; The absolute start address of PDATA memory
7、0000 42 PDATASTART EQU 0H 43 ; 44 ; PDATALEN: PDATA memory size 45 ; The length of PDATA memory in bytes. 0000 46 PDATALEN EQU 0H 47 ; 48 ; 49 ;- 50 ; 51 ; Reentrant Stack Initialization 52 ; 53 ; The following EQU statements define the stack pointer for reentrant 54 ; functions and initialized it:
8、55 ; 56 ; Stack Space for reentrant functions in the SMALL model. 57 ; IBPSTACK: Enable SMALL model reentrant stack 58 ; Stack space for reentrant functions in the SMALL model.A51 MACRO ASSEMBLER STARTUP 10/30/2012 21:22:05 PAGE 2 0000 59 IBPSTACK EQU 0 ; set to 1 if small reentrant is used. 60 ; IB
9、PSTACKTOP: End address of SMALL model stack 61 ; Set the top of the stack to the highest location. 0100 62 IBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1 63 ; 64 ; 65 ; Stack Space for reentrant functions in the LARGE model. 66 ; XBPSTACK: Enable LARGE model reentrant stack 67 ; Stack space for reentrant
10、functions in the LARGE model. 0000 68 XBPSTACK EQU 0 ; set to 1 if large reentrant is used. 69 ; XBPSTACKTOP: End address of LARGE model stack 70 ; Set the top of the stack to the highest location. 0000 71 XBPSTACKTOP EQU 0xFFFF +1 ; default 0FFFFH+1 72 ; 73 ; 74 ; Stack Space for reentrant function
11、s in the COMPACT model. 75 ; PBPSTACK: Enable COMPACT model reentrant stack 76 ; Stack space for reentrant functions in the COMPACT model. 0000 77 PBPSTACK EQU 0 ; set to 1 if compact reentrant is used. 78 ; 79 ; PBPSTACKTOP: End address of COMPACT model stack 80 ; Set the top of the stack to the hi
12、ghest location. 0100 81 PBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1 82 ; 83 ; 84 ;- 85 ; 86 ; Memory Page for Using the Compact Model with 64 KByte xdata RAM 87 ; Compact Model Page Definition 88 ; 89 ; Define the XDATA page used for PDATA variables. 90 ; PPAGE must conform with the PPAGE set in the li
13、nker invocation. 91 ; 92 ; Enable pdata memory page initalization 0000 93 PPAGEENABLE EQU 0 ; set to 1 if pdata object are used. 94 ; 95 ; PPAGE number 96 ; uppermost 256-byte address of the page used for PDATA variables. 0000 97 PPAGE EQU 0 98 ; 99 ; SFR address which supplies uppermost address byt
14、e 100 ; most 8051 variants use P2 as uppermost address byte 00A0 101 PPAGE_SFR DATA 0A0H 102 ; 103 ; 104 ;- 105 106 ; Standard SFR Symbols 00E0 107 ACC DATA 0E0H 00F0 108 B DATA 0F0H 0081 109 SP DATA 81H 0082 110 DPL DATA 82H 0083 111 DPH DATA 83H 112 113 NAME ?C_STARTUP 114 115 116 ?C_C51STARTUP SE
15、GMENT CODE 117 ?STACK SEGMENT IDATA 118 - 119 RSEG ?STACK0000 120 DS 1 121 122 EXTRN CODE (?C_START) 123 PUBLIC ?C_STARTUP 124 A51 MACRO ASSEMBLER STARTUP 10/30/2012 21:22:05 PAGE 3 - 125 CSEG AT 00000 020000 F 126 ?C_STARTUP: LJMP STARTUP1 127 - 128 RSEG ?C_C51STARTUP 129 0000 130 STARTUP1: 131 132
16、 IF IDATALEN 00000 787F 133 MOV R0,#IDATALEN - 10002 E4 134 CLR A0003 F6 135 IDATALOOP: MOV R0,A0004 D8FD 136 DJNZ R0,IDATALOOP 137 ENDIF 138 139 IF XDATALEN 0 140 MOV DPTR,#XDATASTART 141 MOV R7,#LOW (XDATALEN) 142 IF (LOW (XDATALEN) 0 143 MOV R6,#(HIGH (XDATALEN) +1 144 ELSE 145 MOV R6,#HIGH (XDAT
17、ALEN) 146 ENDIF 147 CLR A 148 XDATALOOP: MOVX DPTR,A 149 INC DPTR 150 DJNZ R7,XDATALOOP 151 DJNZ R6,XDATALOOP 152 ENDIF 153 154 IF PPAGEENABLE 0 155 MOV PPAGE_SFR,#PPAGE 156 ENDIF 157 158 IF PDATALEN 0 159 MOV R0,#LOW (PDATASTART) 160 MOV R7,#LOW (PDATALEN) 161 CLR A 162 PDATALOOP: MOVX R0,A 163 INC
18、 R0 164 DJNZ R7,PDATALOOP 165 ENDIF 166 167 IF IBPSTACK 0 168 EXTRN DATA (?C_IBP) 169 170 MOV ?C_IBP,#LOW IBPSTACKTOP 171 ENDIF 172 173 IF XBPSTACK 0 174 EXTRN DATA (?C_XBP) 175 176 MOV ?C_XBP,#HIGH XBPSTACKTOP 177 MOV ?C_XBP+1,#LOW XBPSTACKTOP 178 ENDIF 179 180 IF PBPSTACK 0 181 EXTRN DATA (?C_PBP)
19、 182 MOV ?C_PBP,#LOW PBPSTACKTOP 183 ENDIF 184 0006 758100 F 185 MOV SP,#?STACK-1 186 187 ; This code is required if you use L51_BANK.A51 with Banking Mode 4 188 ; Code Banking 189 ; Select Bank 0 for L51_BANK.A51 Mode 4 190 A51 MACRO ASSEMBLER STARTUP 10/30/2012 21:22:05 PAGE 4 195 ;0009 020000 F 1
20、96 LJMP ?C_START 197 198 ENDA51 MACRO ASSEMBLER STARTUP 10/30/2012 21:22:05 PAGE 5SYMBOL TABLE LISTING- - -N A M E T Y P E V A L U E ATTRIBUTES?C_C51STARTUP. . . C SEG 000CH REL=UNIT?C_START . . . . . C ADDR - EXT?C_STARTUP . . . . C ADDR 0000H A ?STACK . . . . . . I SEG 0001H REL=UNITACC. . . . . .
21、 . . D ADDR 00E0H A B. . . . . . . . . D ADDR 00F0H A DPH. . . . . . . . D ADDR 0083H A DPL. . . . . . . . D ADDR 0082H A IBPSTACK . . . . . N NUMB 0000H A IBPSTACKTOP. . . . N NUMB 0100H A IDATALEN . . . . . N NUMB 0080H A IDATALOOP. . . . . C ADDR 0003H R SEG=?C_C51STARTUPPBPSTACK . . . . . N NUMB
22、 0000H A PBPSTACKTOP. . . . N NUMB 0100H A PDATALEN . . . . . N NUMB 0000H A PDATASTART . . . . N NUMB 0000H A PPAGE. . . . . . . N NUMB 0000H A PPAGEENABLE. . . . N NUMB 0000H A PPAGE_SFR. . . . . D ADDR 00A0H A SP . . . . . . . . D ADDR 0081H A STARTUP1 . . . . . C ADDR 0000H R SEG=?C_C51STARTUPXB
23、PSTACK . . . . . N NUMB 0000H A XBPSTACKTOP. . . . N NUMB 0000H A XDATALEN . . . . . N NUMB 0000H A XDATASTART . . . . N NUMB 0000H A REGISTER BANK(S) USED: 0 ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)六、 实验总结 通过本次实验,我编译了毛阿敏的思念,虽然某些音跑调,但在老师的指点下编写完成相匹配的旋律。在焊接方面,由于前期设计,使得焊接更加简洁迅速。编写相应的程序是用查表法,方便易行。通过此次实验,使我对单片机产生更加浓的兴趣,听着自己编译的歌曲,那是一种享受的体验。参考文献1李群芳,肖看,张士军.单片微型计算机与接口技术.北京:电子工业出版社,2012年1月.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1