基于AT89C51单片机音乐盒课程设计 - 图文

更新时间:2024-01-04 14:30:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

.

《单片机原理及应用》课程设计说明书

设计题目:基于AT89C52单片机的音乐盒的设计

学 院: 专业班级: 设 计 者: 学 号: 指导老师:

..

.

目 录

摘 要…………………………………………………………………4 第1章 概述……………………………………………………………5 第2章 音乐盒的发音原理……………………………………………6

2.1 播放音乐的原理……………………………………………6

2.2 音符频率的产生……………………………………………6 2.3 节拍频率的产生……………………………………………8

第3章 硬件电路设计…………………………………………………9

3.1 硬件电路……………………………………………………9 3.2 整体硬件电路………………………………………………10

3.3 原理说明 …………………………………………………10 3.4 键盘按键 …………………………………………………10

第4章 软件设计………………………………………………………11

4.1 程序设计流程………………………………………………11 4.2 设计源程序代码……………………………………………12

第5章 仿真及调试……………………………………………………16

..

.

5.1 调试 ………………………………………………………16

5.2 仿真 ………………………………………………………16

5.3 程序调试中出现的问题及解决的办法 ………………………17

第6章 设计小结………………………………………………………18

附录元件清单…………………………………………………19

..

.

基于AT89C52单片机的音乐盒的设计

【摘要】:随着人类社会的发展,人们对视觉、听觉方面

的享受提出了越来越高的要求。小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。传统的音乐盒多是机械型的,体积笨重,发音单调,不能实现批量生产。本文设计的音乐盒是以单片机为核心元件的电子式音乐盒,体积小,重量轻,能演奏和旋音乐,功能多,使用方便,可以批量生产,具有一定的商业价值。 【关键词】:音乐盒;单片机

..

.

第1章 概述

传统的音乐盒多是机械音乐盒,其工作原理是通过齿轮带动一个带有铁钉的铁桶转动,铁桶上的铁钉撞击铁片制成的琴键,从而发出声音。但是,机械式的音乐盒体积比较大,比较笨重,且发音单调。水、灰尘等外在因素,容易使内部金属发音条变形,从而造成发音跑调。另外,机械音乐盒放音时为了让音色稳定,必须放平不能动摇,而且价格昂贵,不能实现大批量生产。

本文设计的音乐盒,是基于单片机设计制作的电子式音乐盒。与传统的机械式音乐盒相比更小巧,音质更优美且能演奏和弦音乐。电子式音乐盒动力来源是电池,制作工艺简单,可进行批量生产,所以价格便宜。基于单片机制作的电子式音乐盒,控制功能强大,可根据需要选歌,使用方便。所放歌曲的节奏可以根据需要进行设置,根据存储容量的大小,可以尽可能多的存储歌曲。另外,可以设计彩灯外观效果,增设放歌时间、序号显示灯功能,使音乐盒的功能更加丰富,如图1-1所示。

电源电路复位电路AT89S52单片机晶振电路蜂鸣器电路控制按键

图1-1 单片机音乐盒功能框图

..

.

第2章 音乐盒的发音原理

2.1 播放音乐的原理

发音原理:播放一段音乐需要的是两个元素,一个是音调,另一个是音符。首先要了解对应的音调,音调主要由声音的频率决定,同时也与声音强度有关。对一定强度的纯音,音调随频率的升降而升降;对一定频率的纯音、低频纯音的音调随声强增加而下降,高频纯音的音调却随强度增加而上升。另外,音符的频率有所不同。基于上面的内容,这样就对发音的原理有了一些初步的了解。

音符的发音主要靠不同的音频脉冲。利用单片机的内部定时器/计数器0,使其工作在模式1,定时中断,然后控制P3.7引脚的输出音乐。只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。 2.2 音符频率的产生

音符及定时器初始值:

例如:中音1(do)的音频=523HZ,周期T=1/523s=1912?s 定时器/计数器0的定时时间为:T/2=1912/2?s=956?s

定时器956?s的计数值=定时时间/机器周期=956?s/1?s=956(时钟频率=12MHZ)

装入T0计数器初值为65536-956=64580

将64580装入T0寄存器中,启动T0工作后,每计数956次时将产生溢出中断,进入中断服务时,每次对P3.0引脚的输出值进行取反,就可得到中音DO(523HZ)的音符音频。将51单片机内部定时器工作在计数器模式1下,改变计数初值TH0,TL0以产生不同的频率。下表2-1是C调各音符频率与计数初值T的对照表:

..

.

表2-1 C调各音符频率与计数初值T的对照表

音符 低1DO 高1DO 中2RE 低3M 高3M 中4FA 低5SO 高5SO 中6LA 低7SI 高7SI 频率(Hz)/初值(?s) 262/63627 1042/65056 589/64687 330/64021 1318/65157 700/64822 393/64264 1568/65217 882/64969 495/64526 1967/65282 音符 中1DO 低2RE 高2RE 中3M 低4FA 高4FA 中5SO 低6LA 高6LA 中7SI 频率(Hz)/初值(?s) 523/64580 294/63835 1245/65134 661/64780 350/64107 1397/65178 786/64900 441/64402 1760/65252 990/65031

音符、音符编码及定时器初始值:

为了产生音符,必须求出音符低音5—高音5的计数初值。例如C调的低1DO的THTL=65536-50000/262=63627,中音DO的THTL=65536-500000/523=64580,高音DO的THTL=65536-500000/1042=65056。为了方便写谱,对其进行简单的编码,在编程时,根据音符编码查找对应的计数初值。比如说音乐是C调的,那么出现低音的5SO,直接将代码写为1;出现低音6LA,直接写一个2的代码;出现低音7SI,直接写一个3代码。

表2-2 音符编码表

音符 不发音 低6LA 中1DO 中3M 中5SO 中7SI 高2RE 高4FA 高6LA ..

音符编码 0 2 4 6 8 A C E G 音符 低5SO 低7SI 中2RE 中4FA 中6LA 高1DO 高3M 高5SO 音符编码 1 3 5 7 9 B D F .

2.3 节拍频率的产生 节拍的产生与编码:

音乐中的节拍用延时时间产生。例如,1拍=0.4s,1/4拍=0.1s,以此类推。假设1/4拍执行一次延时程序,则1/2拍就执行两次延时程序,所以只要求出1/4拍的延时时间,其余节拍就是它的倍数。为了方便,将节拍数也进行了编码,并且计算了乐谱节拍编程时的延时时间,如表2-3和表2-4所示。

表2-3 节拍数编码表

按1/4拍为一个延时时间的节拍编码与节按1/8拍为一个延时时间的节拍编码与节拍对应的表 拍对应的表 节拍编码 1 2 3 4 5 节拍 1/4 2/4 3/4 4/4 5/4 节拍编码 6 8 A C F 节拍 6/4 8/4 10/4 12/4 15/4 节拍编码 1 2 3 4 5 节拍 1/8 2/8 3/8 4/8 5/8 节拍编码 6 8 A C 节拍 6/8 8/8 10/8 12/8

表2-4 乐谱节拍编程时的时间延时表

乐谱节拍 4/4 3/4 2/4 1/4拍的延时时间 125 ms 187 ms 250 ms 乐谱节拍 4/4 3/4 2/4 1/8拍的延时时间 62 ms 94 ms 125 ms

音符编码和节拍编码完成后,在编程时,每个音符占一个字节,高四位是音符编码,低四位是节拍编码。

..

.

第3章 硬件电路设计

3.1 硬件电路

设计中用到了AT89C52单片机,3*3键盘,蜂鸣器等硬件电路常用元器件。 3.1.1 时钟复位电路

时钟电路由单片机XTAL1、 XTAL2引脚外接晶振(12MHz)及起振电容C1、C2(均为30pf)组成。如图3-1所示:

图3-1 时钟复位电路

3.1.2 按键输入电路

按键输入电路由3*3矩阵键盘组成, P3口作为输入控制按键,其中P3.4~P3.6扫描行,P3.0~P1.2扫描列。

图3-2 按键输入电路

..

.

3.2 整体硬件电路 如图3-3所示:

图3-3 音乐盒硬件电路原理图

3.3 原理说明:

当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。

(1) 硬件电路中用P3口控制按键,其中P3.0~P3.2扫描列,P3.4~P1.6扫描行;

(2) 用P1.0口控制蜂鸣器;

(3) 电路为12MHz晶振频率工作,起振电路中C1,C2均为30pf。

3.4 键盘按键

键盘按键分布如下: 按键功能说明: 1 4 7

..

2 5 8 3 6 9 1—5 6 7 8 9 五首歌曲 上一首歌曲 关机 暂停 下一首歌曲

.

第4章 软件设计

本程序可以实现该课程设计的基本要求,并可以通过按键播放达10首歌曲。

4.1 程序设计流程

程序设计流程图如图4-1所示:

主程序开始 初始化计数器T0,计时器T1

N 等待按键,是否有按键?包括播放键,暂停键,停止键 Y 依据按键码演奏对应的歌曲 图4-1 程序设计流程图

..

.

4.2 设计源程序代码

ORG 0000H LJMP MAIN ORG 000BH ;定时器T0溢出中断入口地址 LJMP TT0 ORG 001BH ;定时器T1溢出中断入口地址 LJMP T1INT ORG 1000H MAIN: MOV SP,#70H LCALL INITIL ;内存初始化 WAIT: LCALL KEY LJMP WAIT KEY: ;键盘扫描 NOP NOP LCALL KS JNZ K1 ;有按键转到K1 MOV A,37H LCALL SOP XN: LJMP KEY K1: LCALL KS JNZ K2 LJMP KEY K2: ;读键盘 MOV R2,#0FEH MOV R4,#00H K3: MOV A,R2 MOV P3,A MOV A,P3 JB ACC.4,L1 ;为1跳转,第一行无按键 MOV A,#01H LJMP LK L1: JB ACC.5,L2 MOV A,#04H LJMP LK L2: JB ACC.6,NEXT1 MOV A,#07H LK: ADD A,R4 PUSH ACC K4: LCALL DELAY1 LCALL KS JNZ K4 ;若同时有其他按键,则等待(同时按视为无效) MOV R3,#07H CLR A MOV R0,#30H MOV R1,#31H ..

MM1: MOV A,@R1 ;键值给37H MOV @R0,A INC R0 INC R1 DJNZ R3,MM1 POP ACC MOV @R0,A RET

NEXT1: INC R4 ;列扫描 MOV A,R2 JNB ACC.2,N2 LJMP N1 N2: LJMP KEY N1: RL A MOV R2,A LJMP K3 KS: MOV A,#0F0H ;判断P1口 MOV P3,A NOP NOP MOV A,P3 CPL A ANL A,#0F0H RET DELAY1: ;延时2.55ms 63×4×1us×10+10×3×1us SETB RS0 DL: MOV R5,#0AH DL2: MOV R6,#63 DL3: NOP NOP DJNZ R6,DL3 DJNZ R5,DL2 CLR RS0 RET INITIL: ;30H~37H初值为零 MOV R3,#08H MOV R0,#30H M1: MOV @R0,#00H INC R0 DJNZ R3,M1 CLR P1.0 RET ;按键值播放歌曲 SOP: MOV A,37H CJNE A,#01H,A11 MOV 52H,#HIGH TABLE10 MOV 53H,#LOW TABLE10

LCALL MAIN0

A11: CJNE A,#02H,A22

MOV 52H,#HIGH TABLE20 MOV 53H,#LOW TABLE20 LCALL MAIN0

A22: CJNE A,#03H,A33

MOV 52H,#HIGH TABLE30 MOV 53H,#LOW TABLE30 LCALL MAIN0 A33: CJNE A,#04H,A44

MOV 52H,#HIGH TABLE40 MOV 53H,#LOW TABLE40 LCALL MAIN0

A44: CJNE A,#05H,A55

MOV 52H,#HIGH TABLE50 MOV 53H,#LOW TABLE50 LCALL MAIN0 A55: RET

DELAY: MOV R4,#05 D1: MOV R5,#0FFH DJNZ R5,$ DJNZ R4,D1 RET

MAIN0: MOV TMOD,#11H ; 播放歌曲程序 MOV IE,#8AH MOV TH1,#3CH

MOV TL1,#0B0H LCALL KS

JNZ TTM12 MOV 40H,#00H NEXT20: 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 W1 SING: 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 TR1

W1: LCALL DELAY30 INC 40H

LCALL KS ;有键跳出 JNZ STOP LJMP NEXT20 STOP: CLR TR0 CLR TR1 CLR P1.0 LJMP MAIN0 TTM12: LCALL K2 MOV A,37H

CJNE A,#08H,TTM13 ;暂停 CLR TR1 CLR P1.0

LCALL DELAY1 TTM120: LCALL KS

LCALL DELAY1 JZ TTM120 LCALL K2 MOV A,37H

CJNE A,#08H,TTM120 SETB TR1 LJMP NEXT20

TTM13: CJNE A,#09H,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 TTM2

TTM14: CJNE A,#06H,TTM2 ; 上一曲 MOV A,52H DEC A

MOV 52H,A MOV A,53H DEC A

MOV 53H,A MOV A,36H DEC A

MOV 37H,A TTM2: RET

.

TT0: PUSH ACC ; 定时器中断子程序0 TABLE20: ;第二首《月亮代表我的心》 PUSH PSW MOV TL0,20H MOV TH0,21H CPL P1.0 ;获得脉冲 POP PSW POP ACC RETI

;定时器中断子程序1 T1INT:

MOV TH1, #3cH MOV TL1, #0b0H RETI DELAY30:

MOV R7,#2 W2: MOV R4,#125 W3: MOV R3,#248 DJNZ R3,$ DJNZ R4,W3 DJNZ R7,W2

DJNZ R1,DELAY30 RET TABLE00:

DW 64580,64684,64777,6482 ;音符 DW 64898,64968,65030,64260

DW 64400,64524,65058,63835,64021 TABLE10: ;第一首《精忠报国》 DB

66H,52H,36H,22H,12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22H DB

32H,52H,22H,42H,38H,66H,52H,36H,22H,12H,22H,22H,32H,98H DB

24H,22H,32H,54H,52H,32H,92H,12H,92H,82H,98H,66H,52H,36H,22H DB

12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22H,32H,52H,22H,42H,38H DB

66H,52H,36H,22H,12H,22H,22H,32H,98H,24H,22H,32H,54H,52H,32H DB

22H,12H,92H,82H,98H,14H,24H,34H,44H,64H,0B4H,64H,32H,52H DB

62H,0B2H,62H,52H,38H,24H,22H,32H,54H,52H,62H,52H,32H,32H,22H,38H DB

64H,0B4H,64H,32H,52H,62H,0B2H,62H,52H,38H,22H,22H,22H,32H,52H,52H

DB 52H,62H,7FH,74H,04H,58H,6FH DB 00

..

DB 02H,82H

DB 16H,32H,54H,02H,52H DB 0A6H,32H,54H,02H,52H DB 64H,74H,0B6H,64H DB 52H,5CH,32H,22H

DB 16H,12H,14H,32H,22H DB 16H,12H,14H,22H,32H DB 26H,12H,94H,22H,32H DB 2CH

DB 32H,52H

DB 36H,22H,14H,54H DB 0ACH,92H,0A2H DB 96H,0A2H,96H,82H DB 3CH,54H

DB 36H,22H,14H,54H DB 0ACH,92H,0A2H

DB 16H,12H,14H,22H,32H DB 2CH,02H,82H

DB 16H,32H,56H,12H DB 0A6H,32H,56H,52H DB 66H,72H,0B6H,62H DB 62H,52H,58H,32H,22H DB 16H,12H,14H,32H,22H DB 16H,12H,14H,22H,32H DB 26H,92H,0A4H,12H,22H DB 1CH DB 00

TABLE30: ; 第三首《大海》 DB

82H,92H,12H,14H,12H,14H,92H,82H,12H,14H,22H,14H,92H,12H,22H,24H DB

22H,24H,12H,92H,22H,24H,32H,24H,32H,52H,62H,54H,52H,64H,52H,32H DB

22H,32H,22H,12H,94H,82H,92H,12H,14H,12H,14H,94H,1CH DB

82H,92H,12H,14H,12H,14H,92H,82H,12H,14H,22H,14H,92H,12H,22H,24H DB

22H,24H,12H,92H,22H,24H,32H,24H,32H,52H,62H,54H,52H,64H,52H,32H DB

22H,32H,22H,12H,94H,82H,92H,12H,14H,12H,14H,22H,12H,1CH,32H,52H DB

62H,64H,62H,64H,0B2H,62H,52H,54H,62H,54H,32H,22H DB

12H,14H,12H,14H,24H,3CH,32H,22H,12H,14H,12H,14H,0B2H,62H,52H,54H,62H,54H,32H,5

2H DB

66H,0B2H,0B4H,62H,52H,5CH,32H,52H,62H,64H,62H,64H,0B2H,62H,52H,54H DB

62H,54H,32H,22H,12H,14H,12H,14H,54H,3CH,32H,22H,12H,14H,12H,14H,22H,32H DB

52H,54H,32H,54H,32H,52H,6FH,04H,02H,92H,32H,24H,12H,1FH DB 00

TABLE40: ;第四首《彩云追月》 DB

86H,92H,12H,22H,32H,52H,68H,63H,52H,34H,62H,0B2H,0B2H,62H,51H,61H,51H,31H,54H DB

62H,0B2H,0B2H,62H,52H,32H,52H,52H,51H,61H,51H,31H,34H,52H,62H,74H,32H,52H,52H,32H

DB 21H,31H,21H,11H,24H DB

32H,52H,52H,32H,22H,12H,24H,32H,52H,52H,32H,62H,52H,61H,51H

DB 31H,21H,21H,31H,21H,11H,1CH DB

21H,31H,22H,23H,31H,21H,18H,02H,0B2H,0BCH,0B4H,72H,61H,51H,72H,61H DB 71H,61H,51H,61H,71H,61H,6FH DB

86H,94H,12H,22H,32H,52H,64H,62H,51H,31H,52H,21H,31H,21H,33H,62H,0B2H,0B2H,62H DB 51H,61H,51H,31H,54H DB

62H,0B2H,72H,61H,51H,51H,61H,51H,31H,54H,61H,0B2H,72H,61H,51H,51H,61H,51H,31H,32H

DB 21H,11H,32H,51H,61H,54H DB

02H,32H,24H,32H,52H,52H,32H,22H,31H,21H,11H,24H,32H,52H,62H,0B2H,72H,61H,51H,61H ..

.

DB 51H,31H,32H,52H,52H,32H,62H DB

51H,31H,31H,21H,11H,91H,23H,31H,21H,1CH,12H,24H,32H,62H,51H,31H,34H,0B4H,72H DB 61H,51H,63H,71H,64H DB

0B2H,54H,72H,62H,71H,61H,54H,61H,51H,31H,21H,34H,73H,61H,54H,22H,32H,52H,22H,36H DB

52H,62H,61H,31H,32H,21H,11H,21H,11H,91H,81H DB

94H,52H,62H,52H,42H,32H,22H,32H,52H,0B4H,74H,64H,52H,61H,51H,41H,5CH,02H,52H,0B4H,74H

DB 63H,51H,61H,51H,31H,21H DB 00

TABLE50: ;第五首《看我七十二变》 DB 0D4H,84H,94H,82H,92H

DB 12H,22H,82H,92H,02H,92H,82H,0D2H DB 82H,92H,14H,84H,02H,0D1H,0D1H DB 0C2H,0D2H,84H,0D2H,0D2H,82H,82H DB 84H,82H,82H,94H,82H,0D2H

DB 82H,82H,82H,92H,02H,82H,82H,0D2H DB 0C4H,84H,0D4H,92H,0D2H DB 82H,0D2H,82H,92H,98H DB 04H,94H,88H DB 04H,94H,88H DB 04H,94H,88H

DB 04H,94H,88H,04H

DB 32H,32H,22H,12H,02H,92H,12H,92H DB 32H,32H,22H,12H,02H,92H,12H,92H DB 32H,32H,22H,12H,02H,92H,12H,22H DB 54H,44H,34H,12H,22H

DB 34H,22H,12H,02H,92H,12H,92H

DB 32H,32H,22H,12H,02H,92H,12H,92H DB 32H,32H,22H,12H,02H,92H,12H,22H DB 54H,44H,32H,22H,12H,92H DB 00 END

.

第5章 仿真及调试

5.1 调试:

(1)按照第2章设计的硬件电路在proteus软件内画好电路图。

(2)打开单片机软件开发系统keil,选择AT89C51单片机,在其中编写程序,运行生成一个hex文件。

(3)电路检查无误后,双击AT89C51单片机,打开编辑元件对话框(如图5-1所示),将已经在keil环境下调试好的程序hex文件加载到单片机上。

图5-1 加载单片机程序

5.2 仿真:

(1)按下1-5中的某一按键,蜂鸣器播放当前乐曲。 (2)按下6键,则蜂鸣器响起上一首乐曲。 (3)按下9键,则蜂鸣器响起下一首乐曲。

(4)按下8键,则蜂鸣器停止当前音乐的播放再次按下8键后,音乐继续播放。

..

.

5.3 程序调试中出现的问题及解决的办法:

1. 有时会出现程序一点错误也没有,但就是不能正常运行的现象,最后我们发

现是因为程序中有的指令书写得不规范导致的,例如有的RET返回指令一定要按正确格式书写或在两行指令间最好不要留空行。

2. 程序中的跳转指令的运用很重要,为保险起见,都用LJMP,我们就遇到过跳

转指令用错程序无法正常运行的现象。当用JNZ指令时,跳转范围比较少,这时要用一个标号中转。

3. 编程时要注意,在程序开始时,要写入各定时器中断的入口地址。 4. 编程过程中要注意加注释或分割线,否则,在程序过长时容易变得很乱,不

便于查找或更改。

5. 程序的结构要设计的合理,避免上下乱调用的现象,这样会使程序更加清晰

化。

6. 编程前要加流程图,这样会使思路清晰,如设计思路完全可以按着MP3的

工作方式列写流程图。

7. 两个定时器同时工作,存在中断时序问题,刚开始时我们把定时器1设定在

方式3,计250us,由于定时中断过于频繁,使CPU负载过大,导致音乐不能正常播放,时间不能正常显示。解决办法:将定时器1设定在工作方式1,16位计数,计50ms,效果有很大改观。

8. 在歌曲中,当遇到一个音符发音为4拍,在编曲中为*CH,托因时间较长,

当定时器T1此时来中断时,就会对歌曲播放产生影响,若改为发音一拍,中断对歌曲播放影响减弱,但音乐效果变差。

9. 改进方案:若采用可以定时时间更长的单片机,可以避免其中的一些问题。

..

.

第6章 设计小结

1. 本学期学习单片机的时间很短,对单片机的硬件设计,软件设计掌握的深度不够,但通过此次课程设计,却改变了很多。 首先,对于硬件电路的工作原理有了进一步的学习,同样就有了进一步的认识;其次,软件方面,在程序的设计,程序的调试方面都学到了很多东西。

2. 在一个好的氛围里才能踏下心来做东西,在这几天课程设计的时间里,大家努力的氛围对我的影响很大,这也是我能完成课程设计的动力。另外在编程中出现问题时,一定要戒骄戒躁,脚踏实地,认真看书,仔细分析,仔细调试,就一定会发现错误,克服困难,我也是这么做的,这在课程设计中十分重要。

3. 在大学课堂的学习只是纯理论的专业知识,而我们应该把所学的用到现实生活中去,此次的音乐盒设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应社会激烈的竞争。

..

.

附录:

元器件清单:

名 称 单片机 按键开关 普通电阻 电容 晶振 三极管 蜂鸣器

数量(个) 1 10 4 3 1 1 1 型号/参数 AT89C51 备 注 BUTTON 10K(1个),1K(2个),100(1个) 30pf(2个),10uf(1个) 12MHz PNP SPEAKER ..

本文来源:https://www.bwwdw.com/article/z9ax.html

Top