- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编实验-音乐播放程序
第三节 音乐播放程序
1硬件编程 2
1.1 硬件开发的通用思路 2
1.2 8253的功能与作用 2
1.3 8253工作原理 3
1.4 8253编程方法 4
2 音乐程序编写 6
2.1 扬声器驱动原理 6
2.2 音符频率的确定 6
2.3 定时器8253编程 7
2.4 并口8255A编程 7
3 实验步骤 10
4 Turboc2的安装与使用 11
4.1 turboc2的安装 11
4.2 集成环境介绍 11
4.3 turboc2的配置 13
4.4 基本编程操作 14
1硬件编程
1.1 硬件开发的通用思路
在学习的过程中,往往体现一个人的学习能力,并不是一个人在某一方面具体知识和技能掌握的如何,而是他是否掌握了有效的学习方法,是否能够建立起一个夯实的知识框架。
在本次实验中,通过大家学习本次实验,完成实验任务只是一个浅层次的目的,更重要的目的,也是通过实验,让大家亲身体验下硬件编程,掌握硬件编程的方法。
其实不光是在硬件开发上,对于其他的任何事物和问题,解决问题的方法也是一样的。以下我们以8253定时器的开发,来简要介绍下我们的学习思路和方法,也可作为本小节内容组织的一个缩影。
图1.1
1.2 8253的功能与作用
8253是可编程的定时器与计数器。为外设与CPU之间或外设与外设之间配合工作时,提供有效的时间配合条件。
8253有三个独立的16位计数器。
每个计数器均可按二进制或者BCD码计数。
各个计数器有6种不同的工作方式。
1.3 8253工作原理
1.3.1 8253内部结构
图1.2 8253内部结构框图
8253内部有六个模块,结构框图如图1.2所示。
1.3.2 8253计数原理
计数器的输入为CLK时钟信号,为计数器工作提供计数的基准参考。在8253工作时,每输入一个时钟信号CLK,便使定时或计数值减1。
当计数器工作时,定时或计数值减为0时,就在OUT线上输出OUT信号,以指示定时或计数已到。
GATE门选通信号用于控制计数器工作,主要用来禁止、允许或开始计数。
1.4 8253编程方法
1.4.1 端口与寄存器
图1.3 8253读写操作及端口地址
8253的读写操作主要是由控制逻辑模块来实现的,A0、A1地址信号用来选择计数器,而由图。1.3可以看出,更确切的说A0、A1地址信号的作用是在选择端口。端口其实就是寄存器,端口地址就是寄存器的地址。当我们写数据到某个端口时,总要有个存储单元来接收存储我们的数据吧,否则数据还没被送给CPU就不见了。当我们读取某个端口,那么一定也有一个存储单元存储着我们想要的数据吧,否则我们的数据从哪里来呢?这样应该好理解吧,所以端口其实就是寄存器。
读写信号控制着数据的流向,数据是输入还是输出。
这里大家可能会有疑问了。那我在编程控制8253的时候,读写信号、地址信号是不是都要我在编程的时候直接进行设定呢?答案是否定的。其实我们在编程的时候要方便的多。硬件接口中每个端口都有特定的功能,编程时通过读写相应端口来对硬件接口进行控制和数据传输。
当我们要设置8253的工作状态时,我们要将工作方式命令字写入43H端口即可,当我们要对计数器2设置计数初值时,将计数初值写入42H端口即可。
读写操作由汇编指令IN、OUT来完成,C语言中由inportb()和outportb()函数完成。因此,在我们编程时,我们只需要使用端口IO命令或函数,指定要操作的端口号即可。至于硬件级别的引脚信号怎么做的都是由CPU在执行代码时,CPU发出的,那是CPU的事。
1.4.2 8253编程
任何一个硬件设备在正常使用之前都需要进行初始化。当芯片刚加电时,硬件的工作状态都是混乱的,因此,第一步总是要初始化硬件,初始化完成后,就可以控制硬件完成功能任务。
图1.4 8253工作方式命令字格式
由8253命令字可以看出,命令字主要控制着8253的计数器选择、读写格式、工作方式和计数码制。通过向8253的控制端口写入工作方式命令字,实现对8253工作状态的控制,主要用于8253的初始化。
2 音乐程序编写
2.1 扬声器驱动原理
图2.1 扬声器硬件原理图
在PC机中,8253的通道2与计算机的扬声器相连,由通道2工作于方式3产生一定频率的方波信号去驱动扬声器按一定频率发声。其中8253是否工作取决于其片选信号GATE2,输出的频率大小受控于编程时写入的计数初值。其原理如图2.1所示。8253的端口地址为40H~43H。
从图中可见,系统使用并行I/O接口8255A中PB端口的最低两位用作两个开关,来控制该发声驱动系统:PB0作为8253通道2的门控信号GATE2,控制通道2 定时计数的启停;PB1与
您可能关注的文档
最近下载
- 教学能力大赛常见答辩问题汇总2.docx VIP
- 2025年河南省焦作市解放区小升初必考题数学检测卷含解析.doc VIP
- 小学人工智能校本课程《会听的人工智能——语音识别》教学设计.pdf VIP
- EVE各族战舰介绍及装配.doc VIP
- 2024-2025学年河南省焦作市解放区小升初总复习数学精选精练含解析.doc VIP
- 报刊客户的营销方案(3篇).docx VIP
- 2025广西公需科目培训考试答案(90分)——“一区两地一园一通道”建设;人工智能时代的机遇与挑战(1).pdf VIP
- 纺织企业(印染厂)全套组织架构、部门岗位职能设计及全套企业管理制度汇编(拿来即用).docx
- 电网物资质量检测能力评价导则(试行).docx
- 贵州省教科院贵州省教育学会教学设计论文评选结果.docx VIP
文档评论(0)