- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)