电子音调发生器.docx

上传人:b****2 文档编号:23022409 上传时间:2023-04-30 格式:DOCX 页数:13 大小:168.76KB
下载 相关 举报
电子音调发生器.docx_第1页
第1页 / 共13页
电子音调发生器.docx_第2页
第2页 / 共13页
电子音调发生器.docx_第3页
第3页 / 共13页
电子音调发生器.docx_第4页
第4页 / 共13页
电子音调发生器.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

电子音调发生器.docx

《电子音调发生器.docx》由会员分享,可在线阅读,更多相关《电子音调发生器.docx(13页珍藏版)》请在冰豆网上搜索。

电子音调发生器.docx

电子音调发生器

 

设计任务书

 

专业计算机应用技术

年级200班级

姓名学号

目录

1.目录………………………………1

2.实验目的…………………………2

3.实验原理及设计思路……………2

4.实验原理……………………2

5.实验程序流程图………………4

6.程序源代码……………………5

7.调试界面………………9

 

电子音调发生器

一、实验目的

掌握8253的各种使用方法,了解8253定时器的硬件连接方法及时序关系.掌握8253的各种模式的编程及其原理,用示波器观察各信号之间的时序关系

二、实验原理及设计思路

对8253进行编程,使其OUT0上输出一定的频率,将其一定频率输出到喇叭上,演奏出不同的音节。

计算机的数字键(1-7)作为电子音调的音调选择。

三、实验原理

对于音乐来讲,从DO到XI每个音阶都有固定的频率。

当8253将这些频率输出到喇叭上,即可听见音阶了。

各音节

(1)音节的产生

音节由不同频率的方波产生,音节与频率的关系如下表所示。

要产生音频方波,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。

利用计时器计时此半周期时间,每当计时到后就将输出方波的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚得到此频率的方波。

在ZKS-03实验仪上,产生方波的I/O脚选用P1.7,通过跳线选择器JP1将单片机的P1.7与蜂鸣器的驱动电路相连。

这样P1.7输出不同频率的方波,蜂鸣器便会发出不同的声音。

另外,音乐的节拍是由延时实现的,如果1拍为0.4秒,1/4拍是0.1秒。

只要设定延时时间,就可求得节拍的时间。

延时作为基本延时时间,节拍值只能是它的整数倍。

音节与频率的关系

低音节

音调

1

2

3

4

5

6

7

频率

131

147

165

175

196

220

247

X

F242

F3C1

F517

F5B6

F6D0

F7D1

F8B6

 

中音节

音调

1

2

3

4

5

6

7

频率

262

294

330

349

392

440

494

X

F921

F9E1

FA8C

FAD8

FB68

FBE9

FC5B

高音节

音调

1

2

3

4

5

6

7

频率

523

587

659

698

784

880

988

X

FC8F

FCEF

FD45

FD6C

FDB4

FDF4

FE2D

注:

频率以HZ为单位

每个音节相应的定时器初值x可按下法计算。

即:

其中,f是音调频率,晶振fosc=11.0592Mhz。

(2)定时器的使用及时间延迟

首先对定时器进行初始化

设置TMOD(工作方式)寄存器

GATA

C/T

M1

M0

GATA

C/T

M1

M0

定时器1

定时器0

GATE:

门控位

GATE=0,TR=1启动计数(软件启动);

GATE=1,TR=1且INT=1启动计数(硬件启动)。

C/T:

定时或计数方式选择位。

C/T=0,定时工作方式;C/T=1,计数工作方式。

M1M0:

工作方式选择位。

M1M0=00,方式0:

13位计数(TL0-4、TH0-7)

M1M0=01,方式1:

16位计数(TL0-7、TH0-7)

M1M0=10,方式2:

8位计数,有自动装入功能。

M1M0=11,方式3:

T0分为两个8位计数器,TL0可工作为定时或计数方式,TH0只能工作为定时方式。

设置TCON(控制)寄存器:

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

TR0/TR1:

启动计数。

为1启动计数;为0停止计数。

TF0/TF1:

计数溢出。

当加”1”计数结束时为1。

本实验采用定时器T0,工作在方式1(16位计数),无自动装入功能。

其节拍的延时为:

曲调值

DELAY

调4/4

125ms

调3/4

187ms

调2/4

250ms

 

四、实验程序流程图:

1、音调发声部分:

 

无输入K4&K5&K6=1

有输入且K4&K5&K6=0

 

否是

五、实验程序源代码:

;************************

DATASEGMENT

msgDB0DH,0AH,'[1234567]'

DB0DH,0AH,'[qwertyu]'

DB0DH,0AH,'_________________'

DB0DH,0AH,'9:

EXIT'

DB0DH,0AH,'_________________','$'

;********音调******后面用到-1判断音乐播是否放完

sound_0DW-1

sound_11DW441,-1

sound_12DW495,-1

sound_13DW556,-1

sound_14DW589,-1

sound_15DW661,-1

sound_16DW742,-1

sound_17DW833,-1

sound_1DW882,-1

sound_2DW990,-1

sound_3DW1112,-1

sound_4DW1178,-1

sound_5DW1322,-1

sound_6DW1484,-1

sound_7DW1655,-1

timeDW25

DATAENDS

;************************

STACKSEGMENT

Db200DUP('STACK')

STACKENDS

;***********************

CODESEGMENT

ASSUMEDS:

DATA,SS:

STACK,CS:

CODE

START:

MOVAX,DATA

MOVDS,AX

MOVaH,0

MOVAL,00

INT10H

;*****定义一个宏*****

SHOWMACROb

LEADX,b

MOVAH,9

INT21H

ENDM

;********一个声音宏********

onesoundmacrosoundis,jumpis,letteris

CMPAL,letteris

JNZjumpis

LEASI,soundis

LEABP,DS:

time

CALLMUSIC

JMPinput

ENDM

showmsg

INPUT:

MOVAH,01H

INT21H

CMPAL,'9'

jnzgo

movah,4ch

int21h

go:

onesoundsound_11,a0,'q'

a0:

onesoundsound_12,b0,'w'

b0:

onesoundsound_13,c0,'e'

c0:

onesoundsound_14,d0,'r'

d0:

onesoundsound_15,e0,'t'

e0:

onesoundsound_16,f0,'y'

f0:

onesoundsound_17,g0,'u'

g0:

onesoundsound_1,h0,'1'

h0:

onesoundsound_2,i0,'2'

i0:

onesoundsound_3,j0,'3'

j0:

onesoundsound_4,k0,'4'

k0:

onesoundsound_5,l0,'5'

l0:

onesoundsound_6,m0,'6'

m0:

onesoundsound_7,n0,'7'

n0:

onesoundsound_0,o0,al

o0:

jmpinput

;********************发声

GENSOUNDPROCNEAR

;-------------

PUSHAX

PUSHBX

PUSHCX

PUSHDX

PUSHDI

;--------------

MOVAL,0B6H

OUT43H,AL

MOVDX,12H

MOVAX,348ch

DIVDI

OUT42H,AL

MOVAL,AH

OUT42H,AL

INAL,61H

MOVAH,AL

ORAL,3

OUT61H,AL

WAIT1:

MOVCX,3314

callwaitf

DELAY1:

DECBX

JNZWAIT1

MOVAL,AH

OUT61H,AL

;----------------

POPDI

POPDX

POPCX

POPBX

POPAX

;-------------------

RET

GENSOUNDENDP

;**************************

waitfprocnear

pushax

waitf1:

inal,61h

andal,10h

cmpal,ah

jewaitf1

movah,al

loopwaitf1

popax

ret

waitfendp

;************************

MUSICPROCNEAR

PUSHDS

SUBAX,AX

PUSHAX

FREG:

MOVDI,[SI]

CMPDI,-1;音乐是否放完?

JEEND_MUS

MOVBX,DS:

[BP]

CALLGENSOUND

ADDSI,2

ADDBP,2

JMPFREG

END_MUS:

RET

MUSICENDP

CODEENDS

;**********************

ENDSTART

六、调试界面

 

 

实验电路图大体如下:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 中医中药

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1