- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第三节音乐播放程序
TOC\o"1-2"\h\z\u1硬件编程2
1.1硬件开发的通用思路2
1.28253的功能与作用2
1.38253工作原理3
1.48253编程方法4
2音乐程序编写6
2.1扬声器驱动原理6
2.2音符频率确实定6
2.3定时器8253编程7
2.4并口8255A编程7
3实验步骤10
4Turboc2的安装与使用11
4.1turboc2的安装11
4.2集成环境介绍11
4.3turboc2的配置13
4.4根本编程操作14
1硬件编程
1.1硬件开发的通用思路
在学习的过程中,往往表达一个人的学习能力,并不是一个人在某一方面具体知识和技能掌握的如何,而是他是否掌握了有效的学习方法,是否能够建立起一个夯实的知识框架。
在本次实验中,通过大家学习本次实验,完成实验任务只是一个浅层次的目的,更重要的目的,也是通过实验,让大家亲身体验下硬件编程,掌握硬件编程的方法。
其实不光是在硬件开发上,对于其他的任何事物和问题,解决问题的方法也是一样的。以下我们以8253定时器的开发,来简要介绍下我们的学习思路和方法,也可作为本小节内容组织的一个缩影。
是什么?
是什么?
为什么?
怎么做?
8253的功能和作用
8253的工作原理
如何编程控制8253
图1.1
1.28253的功能与作用
8253是可编程的定时器与计数器。为外设与CPU之间或外设与外设之间配合工作时,提供有效的时间配合条件。
8253有三个独立的16位计数器。
每个计数器均可按二进制或者BCD码计数。
各个计数器有6种不同的工作方式。
1.38253工作原理
8253内部结构
图1.28253内部结构框图
8253内部有六个模块,结构框图如图1.2所示。
数据总线缓冲器:
数据总线缓冲器:
数据总线缓冲器通过引脚D0~D7与系统数据总线的D0~D7相连,来实现CPU和8253的数据传输的。数据包括8253的计数值,和工作方式命令字。传输的方式为读和写。
读写控制逻辑:
读写控制逻辑:
读写控制逻辑由CPU发出的读写控制信号和地址信号,选择读出或写入的存放器,并确定数据传输的方向:读/写。
控制字存放器:
控制字存放器:
控制字存放器接收CPU发来的控制字。控制字用于设定8253的硬件状态,如计数器的选择与工作方式等。
计数器n:
计数器n:
计数器是8253中真正的“劳动者”,8253的计数和定时功能是由计数器实际执行完成的。
8253内部有3个独立的计数器。对于每一个独立的计数器,其都有三个引脚:CLKn、GATEn、OUTn。也可以简单的将这三个引脚的关系理解为输入〔CLKn〕、输出〔OUTn〕和控制〔GATEn〕。
8253计数原理
计数器的输入为CLK时钟信号,为计数器工作提供计数的基准参考。在8253工作时,每输入一个时钟信号CLK,便使定时或计数值减1。
当计数器工作时,定时或计数值减为0时,就在OUT线上输出OUT信号,以指示定时或计数已到。
GATE门选通信号用于控制计数器工作,主要用来禁止、允许或开始计数。
1.48253编程方法
端口与存放器
图1.38253读写操作及端口地址
8253的读写操作主要是由控制逻辑模块来实现的,A0、A1地址信号用来选择计数器,而由图。1.3可以看出,更确切的说A0、A1地址信号的作用是在选择端口。端口其实就是存放器,端口地址就是存放器的地址。当我们写数据到某个端口时,总要有个存储单元来接收存储我们的数据吧,否那么数据还没被送给CPU就不见了。当我们读取某个端口,那么一定也有一个存储单元存储着我们想要的数据吧,否那么我们的数据从哪里来呢?这样应该好理解吧,所以端口其实就是存放器。
读写信号控制着数据的流向,数据是输入还是输出。
这里大家可能会有疑问了。那我在编程控制8253的时候,读写信号、地址信号是不是都要我在编程的时候直接进行设定呢?答案是否认的。其实我们在编程的时候要方便的多。硬件接口中每个端口都有特定的功能,编程时通过读写相应端口来对硬件接口进行控制和数据传输。
8253端口:
8253端口:
40H——计数器0数据口。 写该端口,可设置计数器1的初值。读同之。
41H——计数器1数据口。
42H——计数器2数据口
43H——8253控制口 写该端口,选定计数器及其工作方式等。
当我们要设置8253的工作状态时,我们要将工作方式命令字写入43H端口即可,当我们要对计数器2设置计数初值时,将计数初值写入42H端口即可。
读写操作由汇编指令IN、OUT来完成,C语言中由inportb〔〕和outportb()函数完成。因此,在我们编程时,我们只需要使用端口IO命令
文档评论(0)