基于单片机的电子琴制作课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的电子琴制作课程设计
一、设计指标
a)设计一个(4×4)的键盘,并将16个键设计成16个音;
b)可弹奏想要表达的音乐;
c)该电子琴包含1首示例音乐,接通电源可播放示例音乐。
二、设计所用实验仪器和设备:单片机芯片、晶体振荡器一个、电容电阻若干
独立开关十六个。
三、设计原理
乐音实际上是有固定周期的信号。我用AT89C51的一个定时器(如T1)控制,在P3.4脚上输出方波周期信号,产生乐音。根据不同的按键,调节T1的溢出时间,可输出不同频率的乐音,这样就做出了一台微型电子琴。其中根据行列式非编码键盘工作原理设计一个(4*4)的键盘,当按键按下经过软件的扫描电路进行扫描扫到对应的按键根据对应的负值将频率所对应的负值放进对应寄存器警醒单片机p3.4引脚的频率控制输出,从而使不同按键按下中断得到不同频率的音乐。
每个乐音的音高(频率)是固定的,表1列出了一个8度以及其上下共16个音的音名、频率及定时器T1初值对照(设晶体频率为6MHz)。
四、输出音节与单片机定时器输出频率关系表格如下:
2硬件电路设计
微型电子琴的电原理图见图1,其中键盘可使用小按键,排成钢琴键盘状(键多时可分为几排),图中还增加了一只按键指示灯(D1)。
图1
3软件设计
软件由初始化程序、主程序、定时器1中断服务程序、键盘扫描程序和延时程序组成。
(1)初始化程序如下:
TMR1L EQU 30H
TMR1H EQU 31H
ORG 0000H
SJMP MAIN
ORG 001BH
AJMP TMR1
ORG 0040H
MAIN: MOV TMOD,#10H ;T1方式1,软件CONTROL
BEGIN:
MOV TCON,#00H ;关闭T1
MOV IE,#88H ;开T1中断
MOV IP,#08H ;T1优先
CLR P3.1 ;关扬声器
CLR P3.2 ;点亮灯
ACALL DELAY ;延时
主程序框图
主程序
MAIN PROGRAM
START:ACALL DELAY ;延时
ACALL KEYSCA ;调用键盘扫描子程序
CJNE R4,#00H,PLAYKEY ;判断有无按键按下
CLR TR1 ;没有键按下关闭T1
SETB P3.2 ;无键按下熄灭指示灯
SJMPSTART ;跳回开始位置
PLAYKEY:CJNE R4,#20H,K0;有键按下由键值给TIMER1L和TIMER1H赋值MOV TMR1L,#06H ;低音7初值
MOV TMR1H,#0FEH
AJMP SOUND
SOUND: SETB TR1 ;开启T1
CLR P3.2 ;点亮指示灯
AJMP START ;跳回开始
K0: CJNE R4,#30H,K1
MOV TMR1L,#22H ;中音1初值
MOV TMR1H,#0FEH
AJMP SOUND
K1: CJNE R4,#50H,K2
MOV TMR1L,#3DH ;中音1初值
MOV TMR1H,#0FEH
AJMP SOUND
K2: CJNE R4,#90H,K3
MOV TMR1L,#56H ;中音2初值
MOV TMR1H,#0FEH
AJMP SOUND
K3: CJNE R4,#21H,K4
MOV TMR1L,#6EH ;中音2初值 MOV TMR1H,#0FEH
AJMP SOUND
K4: CJNE R4,#31H,K5
MOV TMR1L,#85H ;中音3初值 MOV TMR1H,#0FEH
AJMP SOUND
K5: CJNE R4,#51H,K6
MOV TMR1L,#9AH ;中音1初值 MOV TMR1H,#0FEH
AJMP SOUND
K6: CJNE R4,#91H,K7
MOV TMR1L,#0AEH ;中音4初值 MOV TMR1H,#0FEH
AJMP SOUND
K7: CJNE R4,#23H,K8
MOV TMR1L,#0C1H ;中音5初值 MOV TMR1H,#0FEH
AJMP SOUND
K8: CJNE R4,#33H,K9
MOV TMR1L,#0D3H ;中音#5初值 MOV TMR1H,#0FEH
AJMP SOUND
K9: CJNE R4,#53H,K10
MOV TMR1L,#0E4H ;中音6初值 MOV TMR1H,#0FEH
AJMP SOUND
K10: CJNE R4,#93H,K11
MOV TMR1L,#0F4H ;中音#6初值 MOV TMR1H,#0FEH
AJMP SOUND
K11: CJNE R4,#27H,K12
MOV TMR1L,#03H ;中音7初值 MOV TMR1H,#0FEH
AJMP SOUND
K12: CJNE R4,#37H,K13
MOV TMR1L,#11H ;高音1初值 MOV TMR1H,#0FFH
AJMP SOUND
K13: CJNE R4,#57H,K114
MOV TMR1L,#1FH ;高音2初值 MOV TMR1H,#0FFH
AJMP SOUND
K14: CJNE R4,#97H,K15
MOV TMR1L,#02BH ;高音2初值 MOV TMR1H,#0FFH
AJMP SOUND
K15: NOP
(3)定时器中断服务程序框图
定时器中断服务程序:
;TIMER1 INTERRUPTION SERVICE
TMR1:MOV TL1,TMR1L ;将初值给T1
MOV TH1,TMR1H
CPL P3.4
RETI
(4) 键盘扫描程序框图