谁能给个AT89C51简易电子琴的源程序和原理图?
所有文件都在附件里面。
电子琴原理图怎样制作
电子琴的声调不同是由于频率不同导致的,所以,我们可以利用震荡电路来实现电子琴的制作,原理很简单,用时基电路555和一些分立的阻容元件构成多档位的振荡器驱动扬声器即可,电路在555的应用电路中有很多,你自己去搜集吧……
能不能将单片机电子琴代码以及原理图发给我,谢谢了,急着用
这是程序:BUZZ EQU P3.7
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP INT_T0
ORG 001BH
MAIN:
MOV SP,#60H ;初始化堆栈指针
MOV 30H,#00 ;定时器初值清零
MOV 31H,#00
MOV TMOD,#11H ;设置定时器0为工作模式1
SETB ET0 ;开定时器0中断
SETB ET1
SETB EA ;开总中断
CLR TR0 ;关闭定时器0
CLR TR1
MOV P1,#0FFH ;设置P1口为输入模式
;*************************按键扫描子程序******************
START:
MOV A,#0FFH ;判断是否P1口按键是否按下
MOV P1,A
MOV A,P1
MOV R0,A
LCALL DELAY0
MOV A,P1
MOV 49H,R0
CJNE A,49H,START
;*************************功能键判断子程序******************
KEY1:
CJNE R0,#0FEH,KEY2 ;K1键按下,P1.0
MOV 30H,#0FCH ;设置音阶1,左手中指
MOV 31H,#44H
LJMP PLAY
KEY2:
SETB P2.2
CJNE R0,#0FDH,KEY3 ;K2键按下,P1.1
MOV 30H,#0FCH ;设置音阶2,左手食指
MOV 31H,#0ACH
LJMP PLAY
KEY3:
SETB P2.1
CJNE R0,#0FBH,KEY4 ;K3键按下,P1.2
MOV 30H,#0FDH ;设置音阶3,左手拇指
MOV 31H,#09H
LJMP PLAY
KEY4:
SETB P2.0
CJNE R0,#0F7H,KEY5 ;K4键按下,P1.3
MOV 30H,#0FDH ;设置音阶4,右手拇指
MOV 31H,#34H
LJMP PLAY
KEY5:
SETB P3.5
CJNE R0,#0EFH,KEY6 ;K5键按下,P1.4
MOV 30H,#0FDH ;设置音阶5,右手食指指
MOV 31H,#82H
LJMP PLAY
KEY6:
SETB P3.3
CJNE R0,#0DFH,KEY7 ;K6键按下,P1.5
MOV 30H,#0FDH ;设置音阶6,右中指
MOV 31H,#0C8H
LJMP PLAY
KEY7:
SETB P3.2
CJNE R0,#0BFH,KEY8 ;K7键按下,P1.6
MOV 30H,#0FEH ;设置音阶7
MOV 31H,#06H
LJMP PLAY
KEY8:
SETB P3.1
CJNE R0,#7FH,NOKEY ;K8键按下,P1.7
MOV 30H,#0FEH ;设置音阶重音1
MOV 31H,#22H
LJMP PLAY
NOKEY:
CLR TR0 ;无键按下
LJMP START
;*************************发声子程序******************
PLAY:
SETB TR0 ;发声
MOV R2,#01B ;1/4拍
DJNZ R2,PLAY
LCALL DELAY1
LJMP LOOP1
LOOP1:
LCALL DELAY
LJMP START
;*************************延时程序******************
DELAY0:MOV 37H,#100 ;延长20MS时间等待,键盘消抖
D01:MOV 38H,#100
D02:DJNZ 38H,D02
DJNZ 37H,D01
RET
DELAY: MOV R6,#40
D1: MOV R5,#50
D2: MOV 32H,#100
D3: DJNZ 32H,D3
DJNZ R5,D2
DJNZ R6,D1
RET
DELAY1:MOV 39H,#100 ;延长时间等待,键盘消抖
D11:MOV 40H,#100
D12:DJNZ 40H,D12
DJNZ 39H,D11
RET
;*************************中断子程序******************
INT_T0: ;T0中断服务程序
MOV TH0,30H ;定时器赋初值
MOV TL0,31H
CPL BUZZ ;输出方波
RETI
END BUZZ EQU P3.7
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP INT_T0
ORG 001BH
MAIN:
MOV SP,#60H ;初始化堆栈指针
MOV 30H,#00 ;定时器初值清零
MOV 31H,#00
MOV TMOD,#11H ;设置定时器0为工作模式1
SETB ET0 ;开定时器0中断
SETB ET1
SETB EA ;开总中断
CLR TR0 ;关闭定时器0
CLR TR1
MOV P1,#0FFH ;设置P1口为输入模式
;*************************按键扫描子程序******************
START:
MOV A,#0FFH ;判断是否P1口按键是否按下
MOV P1,A
MOV A,P1
MOV R0,A
LCALL DELAY0
MOV A,P1
MOV 49H,R0
CJNE A,49H,START
;*************************功能键判断子程序******************
KEY1:
CJNE R0,#0FEH,KEY2 ;K1键按下,P1.0
MOV 30H,#0FCH ;设置音阶1,左手中指
MOV 31H,#44H
LJMP PLAY
KEY2:
SETB P2.2
CJNE R0,#0FDH,KEY3 ;K2键按下,P1.1
MOV 30H,#0FCH ;设置音阶2,左手食指
MOV 31H,#0ACH
LJMP PLAY
KEY3:
SETB P2.1
CJNE R0,#0FBH,KEY4 ;K3键按下,P1.2
MOV 30H,#0FDH ;设置音阶3,左手拇指
MOV 31H,#09H
LJMP PLAY
KEY4:
SETB P2.0
CJNE R0,#0F7H,KEY5 ;K4键按下,P1.3
MOV 30H,#0FDH ;设置音阶4,右手拇指
MOV 31H,#34H
LJMP PLAY
KEY5:
SETB P3.5
CJNE R0,#0EFH,KEY6 ;K5键按下,P1.4
MOV 30H,#0FDH ;设置音阶5,右手食指指
MOV 31H,#82H
LJMP PLAY
KEY6:
SETB P3.3
CJNE R0,#0DFH,KEY7 ;K6键按下,P1.5
MOV 30H,#0FDH ;设置音阶6,右中指
MOV 31H,#0C8H
LJMP PLAY
KEY7:
SETB P3.2
CJNE R0,#0BFH,KEY8 ;K7键按下,P1.6
MOV 30H,#0FEH ;设置音阶7
MOV 31H,#06H
LJMP PLAY
KEY8:
SETB P3.1
CJNE R0,#7FH,NOKEY ;K8键按下,P1.7
MOV 30H,#0FEH ;设置音阶重音1
MOV 31H,#22H
LJMP PLAY
NOKEY:
CLR TR0 ;无键按下
LJMP START
;*************************发声子程序******************
PLAY:
SETB TR0 ;发声
MOV R2,#01B ;1/4拍
DJNZ R2,PLAY
LCALL DELAY1
LJMP LOOP1
LOOP1:
LCALL DELAY
LJMP START
;*************************延时程序******************
DELAY0:MOV 37H,#100 ;延长20MS时间等待,键盘消抖
D01:MOV 38H,#100
D02:DJNZ 38H,D02
DJNZ 37H,D01
RET
DELAY: MOV R6,#40
D1: MOV R5,#50
D2: MOV 32H,#100
D3: DJNZ 32H,D3
DJNZ R5,D2
DJNZ R6,D1
RET
DELAY1:MOV 39H,#100 ;延长时间等待,键盘消抖
D11:MOV 40H,#100
D12:DJNZ 40H,D12
DJNZ 39H,D11
RET
;*************************中断子程序******************
INT_T0: ;T0中断服务程序
MOV TH0,30H ;定时器赋初值
MOV TL0,31H
CPL BUZZ ;输出方波
RETI
END
电子琴的工作原理是什么
要想详细了解电子琴的工作原理,除了仔细阅读说明书以外,网上也有不少的相关资料可供查阅。
仅供参考,祝您好运!
555芯片八音简易电子琴电路图,要标清元件信息。
555芯片制作八音简易电子琴电路图如下:
谁能给个AT89C51简易电子琴的源程序和原理图?、电子琴原理与维修,就介绍到这里啦!感谢大家的阅读!希望能够对大家有所帮助!