川大计算机综合实践
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四川大学网络教育学院
内容
算法
与流
程图
程序
清单
运行
结果
调试
分析
和体
会
usingn amespacestd;
in tmai n()
{
chara;i ntb=O,c=O,d=O,e=O,f=O; coutvv"请输入一行任意字符
硬件设计
利用实验板上的8253计数/定时器和8255并行接口,定时器8253利用工作方式3产生一定频率信号,通过可编程的并行外围接口芯片8255控制频率信号的通断。
8255的A 口设置为输出,8255的A 口的低两位用来控制扬声器驱动,当输出端口的PAO位为“ 1”或为“0”时,将使控
制驱动器的与门电路接通或关闭,使8253所发出的音频信号能
到达驱动器或被阻断。这样通过控制PA0的变化,可
使扬声器接通和断开,控制扬声器是否能发出声音。此外,通过控制PA0的通断时间,就能发出不同的音长。8255的P A1位为“1”时,控制8253定时器产生驱动扬声器发声的音频信号,该位为“ 0”则不发信号。8253有三个定时器,分为0号、1号和2号
定时器,驱动扬声器的是0号定时器,该定时器工作在方式 3,
是一个频率发生器,它负责向扬声器发送指定频率的脉冲信号。当8255的PA0和PA1都为1时,8253发出指定频率的声音信号的前提下,声音信号通过与门到达驱动器驱动扬
硬件原理图如图1所示:
图2扬声器驱动电路
软件设计
系统要求实现2个功能,电子琴和音乐盒的功能。两者发声的方法一样,只是一个数据是从键盘读取的,另一个是已经保存好的数据。首先我们可以用一个子程序实现单个音调的产生,对8253输入不同的计数初值生成不同频率的波形,然后延时一段时间。电子琴程序主要是读取键盘按键,根据键值产生不同的音调即可。而乐曲的播放先将乐曲的音符编码表和节拍编码表建立好的,然后在播放时读取数据。
1. 单音调子程序SOUN;单音调子程序的调用前需要进行以下几个方面工作:;1)确定相应的音调所对应的频率,查表可以
得到,再;2)确定音长,即一个音符所持续的时间;在单音调
子程序中实现发出一个音符的声音,持续所需;图
3单音调子程序流程图;2.音乐盒程序;音乐盒的乐曲播放程序中需要有两组数据支持:一组是;有了音调与频率和时间的关系后,就可以按照乐曲的曲;在程序