电子发声实验课程设计.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

微机原理课程设计

课题:电子发声设计实验

专业:

学号:

姓名:

一、课题名称及设计组成员

课题名称

电子发声设计实验

设计人

姓名

学号

分工

程序设计及调试

线路连接及查错

报告日期

二、课题内容及要求

课题名:电子发声设计实验

1、要求:

根据实验提供的音乐频率表和时间表,编写程序控制8254,使其输出连接到扬声器上能发出相应的乐曲。要求至少要完成以下工程的一项

可播放两首不同的乐曲

根据不同的按键播放不同的音乐

可改变音乐的音调

可显示播放乐曲的名称

2、所设计的电路实现的功能:

设计中完成了实验要求中提出的要求。设计中实现了,用按键进行随时切换两首音乐〔友谊地久天长,两只老虎〕和对所播放的当前音乐进行两种不同音调〔中音和低音〕的随时切换的控制操作,其中用总开关K_7进行播放开关的总控制,开关K_0用于音乐播放的选择,开关K_1用于对当前播放音乐的音调进行选择。设计中还实现了对16×16的LED管的控制运用点阵汉字输出歌名。

三、方案、系统组成框图和工作原理说明

1、设计方案及原理:本设计中音乐播放控制为利用对8255和8254芯片的控制操作得以实现。音乐名的输出为利用总线对16×16点阵地控制来实现。

〔1〕本设计中PC发声系统以8254的计数器0为核心。系统初始化时,计数器0工作在方式3的“方波发声器”方式,同过将音乐频率转换为相应的计数初值,改变计数器0的计数初值就可以使扬声器发出不同的频率的音响。

〔2〕发生系统控制为受8255芯片控制,外界通过改变对8255芯片的PA口的不同输入来实现播放功能上的选择。

〔3〕演奏但音符,为利用一个音符对应一个频率,将与一个频率对应的计数初值写入计数器0,扬声器就发出相应的音调。计数器初值的计算公式为:

计数初值=1MHZ÷输出频率,

其中1MHZ转换为16进制为0F4240H。

〔4〕控制音符的演奏时间,是通过每一个音符规定一个“单位时间”:单位时间×N=音符的演奏时间。其中,N为调试参数,一首歌只有一个调试参数。

2、系统组成〔电路图〕:

图1.对8254与系统的连接

D0

D0

D7

...

WR

RD

CS

XD0

XD7

...

IOW#

IOR#

IOY0

K_0

K_1

8255单元

A0

A1

XA1

XA2

开关按键单元

PA0

PA1

K_2

PA2

K_3

PA3

K_4

PA4

K_5

PA5

K_6

PA6

K_7

PA7

图2.对8255单元的连接

图3.点阵汉字的接线

四、程序功能描述及程序流程

〔1〕程序功能描述:

如程序流程图所示。程序下载链接、并运行后,开始通过对外界按键扫描,来检查应进行采取的操作,根据外界不同的输入,完成不同的程序跳转,从而实现相应的播放功能。其中K0、K1为外界电子控制单元。分为0和1,即低电平和高电平。

〔2〕程序流程图:

开始

开始

键盘扫描

调用发音子程序

K0、K1为00?

Y

播放两只老虎低调

K0、K1为10?

K0、K1为01?

播放友谊地久天长低调

K0、K1为11?

播放友谊地久天长原调

播放两只老虎原调

Y

N

N

N

Y

Y

N

播放音乐菜单

键盘扫描

键盘输入值发生变化?

Y

N

播放音乐程序

是否播放完毕

Y

N

五、程序源代码及注释

1.在LED单元中显示歌曲名称

ROW1 EQU0600H ;端口定义

ROW2 EQU0640H

COL1 EQU0680H

COL2 EQU06C0H

STACK1 SEGMENTSTACK

DW256DUP(?)

STACK1 ENDS

;定义为数据段

INCLUDEHZDOTht.ASM ;数据字段为汉字点阵库,在HZDOTht.ASM

;文件中

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOVAX,DATA

MOVDS,AX

MOVDX,ROW1

MOVAL,00H

OUTDX,AL

MOVDX,ROW2

OUTDX,AL

MOVAL,0ffH

MOVDX,COL1

OUTDX,AL

MOVDX,COL2

OUTDX,AL

BG0: MOVAX,160

MOVSI,OFFSETHZDOTht

BG1: CALLDISP

ADDSI,2

DECAX

JZBG0

JMPBG1

;======显示汉字子程序======

;入口参数:SI=存放汉字起始地址

DISP: MOVCX,000FH

PUSHAX

ML0: PUSHCX

MOVBL,01H

MOVCX,0008H

ML1: MOVDX

文档评论(0)

199****8042 + 关注
实名认证
内容提供者

相信自己,相信明天

1亿VIP精品文档

相关文档