简易电子琴设计说明书

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简易电子琴设计说明书一﹑设计题目:

设计一简易电子琴,要求:

①能够发出1、2、3、4、5、6、7、ⅰ等八个音符,此八音符电子琴

可通过按健输入来控制音响。

②演奏时可以选择手动演奏还是自动演奏已存入的乐曲。

使用元件:AT80c51、LM324、扬声器、按键等。

二、设计目的:

㈠掌握电子电路的一般设计方法和设计流程,并且能够对电子电路、电子元器件、印制电路板等方面的知识有进一步的认识。

㈡学习使用protel软件绘制电路原理图及印刷板图。

㈢掌握应用EWB对所设计的电路进行仿真,通过仿真结果验证设计的正确性。

三、设计内容及步骤:

为使所设计的简易电子琴实现预期功能——此八音符电子琴可通过按健输入来控制音响的目的,要建需立音阶与8051输出频率的对应表,如下表:

简易电子琴硬件系统图:

流程图:

原理:

(一)音乐产生原理及硬件设计

由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用

单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。

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

采用查表程序进行查表时,可以为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据:

T A B L E D W64580,64684,64777,64820,64898,64968,65030

源程序:

方案一:产生按键音符

O R G0000H

L J M P M A I N

O R G000B H

L J M P B R E A K

M A I N:M O V T M O D,#01H;设置定时器0的工作方式

S E T B E A

S E T B E T0;设置定时器0中断

S E T B T R0;启动定时器0

W A I T1:L C A L L K E Y;调用K E Y子程序,判断有键按下否?第几个键?

C L R E A;屏蔽中断

C J N E R3,#00H,W A I T1;如果R3=0,表示有键按下

M O V A,22H;将22H里存放的按键号送给A

R L A;因为查表里都是字,所以得乘2查得数据

M O V D P T R,#T A B L E;指向表头

M O V C A,@A+D P T R;查表

M O V T H0,A;将数据高位送T H0

M O V21H,A;将高位备份

M O V A,22H;将22H里存放的按键号送给A

R L A;因为查表里都是字,所以得乘2查得数据

I N C A;取低位数据

M O V C A,@A+D P T R

M O V T L0,A

M O V20H,A

W A I T2:L C A L L K E Y

S E T B E A

C J N E R3,#00H,W A I T1

J M P W A I T2

K E Y:M O V R3,#00H;K E Y子程序,判断有键按下否?

第几个键?

M O V R1,#0F F H

M O V R0,#00H

M O VA,R1

M O V P2,A

M O VA,P2

C L R C

C P L C;利用标志位C Y来判断是哪个键按下

M O V R2,#08H

WAI T3:R L C A;移位判断

J N C S TO R E

I N C R0

D J N Z R2,WAI T3

S TO R E:M O V22H,R0;将按键号存22H,R3=0有键按下

M O V R3,#00H

R E T

B R E AK:P U S H A

C C;中断产生方波,从P1.0口输出

P U S HP S W

M O V T L0,20H

M O V T H0,21H

C P LP1.0

P OP P S W

P OPAC C

R E T I

TAB L E:D W65030,64968,64898,64820,64777,64684,64580;7,6,5,4,3,2,1 E N D

方案二:产生按键音符

O R G0000H

S J M P S TA RT

O R G000B H

AJ M P I N T_0

O R G0030H

S TART:M O V P1,#00H

S E T B E A

S E T B E T0;计数器0

M O V T M O D,#02H

M O V T H1,#09C H

M O V T L1,#09C H;定时器初植

C L RT R0;定时器不允许

S C AN:;键盘扫描

M O VA,P2;判断键盘按下,跳到S C AN_1,若未按,继续扫描

C J N E A,#0F F H,S C AN_1

N O P

S J M P S C AN

S C AN_1:AC A L L D E L AY;是不是真的要按下?如果是,则跳转S U_K E Y查询是哪个按下?

M O VA,P2

C J N E A,#0F F H,S U_K E Y

N O P

相关文档
最新文档