北京邮电大学 微机原理硬件实验报告(8)

2019-03-23 15:12

OUT DX,AL

call singmi

call singmi call singfa call singso

call singso call singfa call singmi call singre

call singdo call singdo call singre call singmi call singmi

call singre

call singre

call delay

call singmi

;只延时,呈现长音效果36

call singmi call singfa call singso

call singso call singfa call singmi call singre

call singdo call singdo call singre call singmi call singre call singdo call singdo

call delay

call singre call singre call singmi

37

call singdo

call singre call singmis call singfas call singmi call singdo

call singre call singmis call singfas call singmi call singre call singdo call singre call singsod

call singmi call singmi call singfa call singso

38

call singso call singfa call singmi call singre

call singdo call singdo call singre call singmi call singre call singdo call singdo

mov ah,0bh int 21h OR AL,AL JNZ goon

jmp ini

goon: MOV DX,0E823H MOV AL,16H OUT DX,AL

;检测键盘缓冲区 ;退出前送出一个控制字,使音乐停止播放39

MOV AH,4CH

mov ax,4c00h ;返回DOS

int 21h ret

START ENDP

CODE ENDS END START

六、思考题:

写出8253计数初值、输入频率和输出频率的关系。

答:输出频率 = 输入频率 / 8253计数初值

七、实验心得与体会:

这次实验中我们学习使用了8253定时器,8253共有3个工作通道,每个通道有5种工作方式,在程序一开始应该将控制字送入控制寄存器以确定工作的通道和方式,在这次实验里主要是驱动蜂鸣器所以选择工作方式2。通过技术初值,输入频率和输出频率的关系计算出每个音符应该给工作通道送的计数初值,将计数初值送到工作通道的地址以实现蜂鸣器响。再通过改变不同的计数初值实现音乐播放。值得一提的是,我们在初步设计时候,没有考虑到可能有低音,但是由于我们选用了贝多芬的《欢乐颂》,这一旋律中出现了低音so,于是我们利用已有的中音do的频率是高音do频率的一半推测低音so是中音so频率的一半并且尝试写进了代码中,实际运行时证实了我们这么做的正确性。还有就是长短音也有出现,只要改变延迟时间即可。还有就是我们在实现时,增加了一个“暂停”的功能,为使得逻辑上方便编写代码,将这一部分的代码分配给了每个音阶的子程序中。在暂停期间,能使得蜂鸣器不发出声音,但是数码管仍然显示当前停止时的音阶数目,在编写这部分程序时,我们仔细推敲了逻辑过程,并且在调试时反复修改,最终获得了成功。

总之本次实验是微机原理硬件实验中代码最多,调试时间最长的一次,非常遗憾的是没有能够完成扩展功能。但是我们通过基本内容的实现编程能力已经得到了提高,举一反三的

40


北京邮电大学 微机原理硬件实验报告(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:天脊小学音乐测评方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: