最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

单片机简易电子琴

来源:动视网 责编:小OO 时间:2025-09-23 23:15:01
文档

单片机简易电子琴

电子设计作品使用说明——多功能13音电子琴一、功能及特点说明:1、一个琴键可弹出两个音符2、可手动导入任意歌曲并控制播放(本设计预录歌曲《月亮代表你的心》)3、声音音调准确,音色优质4、体积小,集成度高5、覆盖所有常用音阶(低So——高Me)二、使用说明:1、本设计有八个琴键,按k1—k7为音调输出2、按一下k8后再按k1—k7则输出高阶音调3、先按着k8再+k2键后会在音频输出自己收录的歌曲,复位键停止三、器件说明:器件数量器件数量扬声器1LM3861按键10STCC511晶振1插排若干
推荐度:
导读电子设计作品使用说明——多功能13音电子琴一、功能及特点说明:1、一个琴键可弹出两个音符2、可手动导入任意歌曲并控制播放(本设计预录歌曲《月亮代表你的心》)3、声音音调准确,音色优质4、体积小,集成度高5、覆盖所有常用音阶(低So——高Me)二、使用说明:1、本设计有八个琴键,按k1—k7为音调输出2、按一下k8后再按k1—k7则输出高阶音调3、先按着k8再+k2键后会在音频输出自己收录的歌曲,复位键停止三、器件说明:器件数量器件数量扬声器1LM3861按键10STCC511晶振1插排若干
电子设计作品使用说明

——多功能13音电子琴

一、功能及特点说明:

1、一个琴键可弹出两个音符

2、可手动导入任意歌曲并控制播放(本设计预录歌曲《月亮代表你的心》 )

3、声音音调准确,音色优质

4、体积小,集成度高

5、覆盖所有常用音阶(低So——高Me)

二、使用说明:

1、本设计有八个琴键,按 k1—k7为音调输出

2、按一下k8后再按k1—k7则输出高阶音调

3、先按着k8再+k2键后会在音频输出自己收录的歌曲,复位键停止

三、器件说明:

器件数量器件数量
扬声器1LM3861
按键10STCC511
晶振1插排 

若干
电容 

20pf*2  10uf*3  47uf*1 4.7nf*1USB接口

1
电阻10k*4 1k*1 200*2排线 

若干
led*240脚插座

1
Ptotues仿真图:                            实物图说明:

四、设计原理

1、原理说明

1.1  音阶的产生

     由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。

本次设计中单片机晶振为12MHZ,那么定时器的计数周期为1MHZ,假如选择工作方式1,那T值便为T= 216--5﹡105/相应的频率 ,那么根据不同的频率计算出应该赋给定时器的计数值,列出不同音符与单片机计数T0相关的计数值如下表所示:

音符频率(HZ)

简谱码(T值)

中 1 DO

523580
中 2 RE

587684
中 3 M

659777
中 4 FA

698820
中 5 SO

7848
中 6 LA

880968
中 7 SI

98865030
2、实现及编程

2.1程序框图

2.3程序内容

音调的产生方法

按k2让音调转换

如何按k8+k2放出音乐 和如何让音乐停止

2.4 汇编源程序

BUZZ EQU P2

BUZZ1 EQU P1.7

ORG 0000H

LJMP MAIN

 ORG 000BH

LJMP INT_T0

ORG   001BH

LJMP  TIME1

 ORG 8000H 

MAIN:

   MOV SP,#90H

   MOV  BUZZ,#0FFH

   MOV TMOD,#11H

   SETB ET0

   SETB ET1

   SETB EA

   CLR TR0

START:

   MOV R0, BUZZ

   CJNE R0,#0FFH,KEY1

   CLR TR0

   SJMP START

KEY1:

   CJNE R0,#0FEH,KEY2

   MOV 30H,#0FBH

   MOV 31H,#0E9H

   LJMP SET_TIMER

KEY2:

   CJNE R0,#0FDH,KEY3

   MOV 30H,#0FCH

   MOV 31H,#5CH

   LJMP SET_TIMER

KEY3:

   CJNE R0,#0FBH,KEY4

   MOV 30H,#0FCH

   MOV 31H,#0C1H

   LJMP SET_TIMER

KEY4:

   CJNE R0,#0F7H,KEY5

   MOV 30H,#0FCH

   MOV 31H,#0EFH

   LJMP SET_TIMER

KEY5:

   CJNE R0,#0EFH,KEY6

   MOV 30H,#0FDH

   MOV 31H,#045H

   LJMP SET_TIMER

KEY6:

   CJNE R0,#0DFH,KEY7

   MOV 30H,#0FDH

   MOV 31H,#92H

   LJMP SET_TIMER

KEY7:

   CJNE R0,#0BFH,KEY8

   MOV 30H,#0FDH

   MOV 31H,#0D6H

   LJMP SET_TIMER

KEY8:

  CJNE R0,#7FH,NOKEY

   LOOP1:MOV R0, BUZZ

   CJNE R0,#7DH,LOOP

     LJMP MAIN1

 LOOP:  CJNE R0,#0FFH,LOOP1

         

    LJMP OSTART

 

SET_TIMER:

   SETB TR0

   SJMP START

NOKEY:

   CLR TR0

   SJMP START

INT_T0:

   MOV TH0,30H

   MOV TL0,31H

   CPL  BUZZ1

   RETI

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

OSTART:

   MOV R0, BUZZ

   CJNE R0,#0FFH,OKEY1

   CLR TR0

  SJMP OSTART

OKEY1:

   CJNE R0,#0BFH,OKEY2

   MOV 30H,#0FBH

   MOV 31H,#0E9H

   LJMP OSET_TIMER

OKEY2:

   CJNE R0,#0DFH,OKEY3

   MOV 30H,#0FCH

   MOV 31H,#5CH

   LJMP OSET_TIMER

OKEY3:

   CJNE R0,#0EFH,OKEY4

   MOV 30H,#0FCH

   MOV 31H,#0C1H

   LJMP OSET_TIMER

OKEY4:

   CJNE R0,#0F7H,OKEY5

   MOV 30H,#0FCH

   MOV 31H,#0EFH

   LJMP OSET_TIMER

OKEY5:

   CJNE R0,#0FBH,OKEY6

   MOV 30H,#0FDH

   MOV 31H,#045H

   LJMP OSET_TIMER

OKEY6:

   CJNE R0,#0FDH,OKEY7

   MOV 30H,#0FDH

   MOV 31H,#92H

   LJMP OSET_TIMER

OKEY7:

   CJNE R0,#0FEH,OKEY8

   MOV 30H,#0FDH

   MOV 31H,#0D6H

    LJMP OSET_TIMER

OKEY8:      

   CJNE R0,#07FH,ONOKEY

   LOOP2:MOV R0, BUZZ

   CJNE R0,#7DH,LOOP3

     LJMP MAIN1

 LOOP3:  CJNE R0,#0FFH,LOOP2

    

     LJMP START

OSET_TIMER:

   SETB TR0

   SJMP OSTART

ONOKEY:

   CLR TR0

  LJMP OSTART

 ;;;;; ;;;;;;;;;;;;;;;;;;;;;;

MAIN1: MOV   40H,#00H                    

NEXT:  MOV R0, BUZZ

       MOV  41H,R0

       ORL  41H ,#0FEH

       MOV  R0,41H

      CJNE R0,#0FFH,STOP

      MOV   A,40H               

      MOV   DPTR,#SONG        

      MOVC  A,@A+DPTR

      CJNE  A,#00H,PLAY         

      LJMP  STOP 

PLAY: MOV   R1,A                    

      ANL   A,#0FH                 

      MOV   R2,A             

      MOV   A,R1

      ANL   A,#0F0H               

      CJNE  A,#00H,MUSIC          

      CLR   TR1                   

      LJMP  DEL

MUSIC:SWAP  A

      DEC   A

      MOV   22H,A

      ADD   A,22H

      MOV   R3,A

      MOV   DPTR,#SONG1          

      MOVC  A,@A+DPTR        

      MOV   TH1,A                

      MOV   21H,A

      MOV   A,R3

      INC   A

      MOVC  A,@A+DPTR           

      MOV   TL1,A                  

      MOV   20H,A

      SETB  TR1                    

DEL:  LCALL DELAY

      INC   40H           

      LJMP  NEXT

STOP: CLR   TR1                   

      LJMP  START

TIME1:PUSH  ACC                    

      PUSH  PSW

      CPL    BUZZ1               

      MOV   TL1,20H                  

      MOV   TH1,21H

       

      POP   PSW

      POP   ACC

      RETI

DELAY:MOV   R7,#02H                 

DELA1:MOV   R6,#125

DELA2:MOV   R5,#248

      DJNZ  R5,$

     

      DJNZ  R6,DELA2

      DJNZ  R7,DELA1

      DJNZ  R2,DELAY

      RET

SONG1:   

DW 580,684,777,820

    DW 8,968,65030,260

    DW 400,524,65058,63835,021

SONG :;;;;;;;月亮代表我的心;;;;;;;;;

     DB 02H,82H

    DB 16H,32H,54H,02H,52H

    DB 0A6H,32H,54H,02H,52H

    DB H,74H,0B6H,H

    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

 ;

   END 

文档

单片机简易电子琴

电子设计作品使用说明——多功能13音电子琴一、功能及特点说明:1、一个琴键可弹出两个音符2、可手动导入任意歌曲并控制播放(本设计预录歌曲《月亮代表你的心》)3、声音音调准确,音色优质4、体积小,集成度高5、覆盖所有常用音阶(低So——高Me)二、使用说明:1、本设计有八个琴键,按k1—k7为音调输出2、按一下k8后再按k1—k7则输出高阶音调3、先按着k8再+k2键后会在音频输出自己收录的歌曲,复位键停止三、器件说明:器件数量器件数量扬声器1LM3861按键10STCC511晶振1插排若干
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top