微型计算机课程设计论文—通用微机发声程序的汇编设计
本文讲述了在微型计算机中利用可编程时间间隔定时器的通用发声程序设计,重点讲述了程序的发声原理,节拍的产生,按节拍改变的动画程序原理,并以设计一个简单的乐曲评分程序为引子,分析程序设计的细节。
关键字:微机 8253 通用发声程序 动画技术 直接写屏
1. 可编程时间间隔定时器8253
在通用个人计算机中,有一个可编程时间间隔定时器8253,它能够根据程序提供的计数值和工作方式,产生各种形状和各种频率的计数/定时脉冲,提供给系统各个部件使用。本设计是利用计算机控制发声的原理,编写演奏乐曲的程序。
在8253/54定时器内部有3个独立工作的计数器:计数器0,计数器1和计数器2,每个计数器都分配有一个断口地址,分别为40H,41H和42H.8253/54内部还有一个公用的控制寄存器,端地址为43H.端口地址输入到8253/54的CS,AL,A0端,分别对3个计数器和控制器寻址.
对8353/54编程时,先要设定控制字,以选择计数器,确定工作方式和计数值的格式.每计数器由三个引脚与外部联系,见教材第320页图9-1.CLK为时钟输入端,GATE为门控信号输入端,OUT为计数/定时信号输入端.每个计数器中包含一个16位计数寄存器,这个计数器时以倒计数的方式计数的,也就是说,从计数初值逐次减1,直到减为0为止.
8253/54的三个计数器是分别编程的,在对任一个计数器编程时,必须首先讲控制字节写入控制寄存器.控制字的作用是告诉8253/54选择哪个计数器工作,要求输出什么样的脉冲波形.另外,对8253/54的初始化工作还包括,向选定的计数器输入一个计数初值,因为这个计数值可以是8为的,也可以是16为的,而8253/5的数据总线是8位的,所以要用两条输出指令来写入初值.下面给出8253/54初始化程序段的一个例子,将计数器2设定为方式3,(关于计数器的工作方式参阅教材第325—330页)计数初值为65536.
MOV AL,10110110B ;选择计数器2,按方式3工作,计数值是二进制格式
OUT 43H,AL ; j将控制字送入控制寄存器
MOV AL,0 ;计数初值为0
OUT 42H,AL ;将计数初值的低字节送入计数器2
OUT 42H,AL ;将计数初值的高字节送入计数器2
在IBM PC中8253/54的三个时钟端CLK0,CLK1和CLK2的输入频率都是1.1931817MHZ. PC机上的大多数I/O都是由主板上的8255(或8255A)可编程序外围接口芯片(PPI)管理的.关于8255A的结构和工作原理及应用举例参阅教材第340—373页.教材第364页的”PC/XT机中的扬声器接口电路”一节介绍了扬声器的驱动原理,并给出了通用发声程序.本设计正是基于这个原理,通过编程,控制加到扬声器上的信号的频率,奏出乐曲的.
2.发声程序的设计
下面是能产生频率为f的通用发声程序:
MOV AL, 10110110B ;8253控制字:通道2,先写低字节,后写高字节
;方式3,二进制计数
OUT 43H, AL ;写入控制字
MOV DX, 0012H ;被除数高位
MOV AX, 35DEH ;被除数低位
DIV ID ;求计数初值n,结果在AX中
OUT 42H, AL ;送出低8位
MOV AL, AH
OUT 42H,AL ;送出高8位
IN AL, 61H ;读入8255A端口B的内容
MOV AH, AL ;保护B口的原状态
OR AL, 03H ;使B口后两位置1,其余位保留
OUT 61H,AL ;接通扬声器,使它发声
资源简介:微型计算机课程设计论文—通用微机发声程序的汇编设计 本文讲述了在微型计算机中利用可编程时间间隔定时器的通用发声程序设计,重点讲述了程序的发声原理,节拍的产生,按节拍改变的动画程序原理,并以设计一个简单的乐曲评分程序为引子,分析程序设计的细节...
上传时间: 2013-10-16
上传用户:sunjet
资源简介:传感器与检测技术 PPT版
上传时间: 2013-06-01
上传用户:eeworm
资源简介:图书管理系统 毕业设计论文 完整版 绝对完整的毕业设计论文
上传时间: 2017-01-12
上传用户:cylnpy
资源简介:石头剪刀布模式的java课程设计,也可用于大学毕业生的java设计开发参考.
上传时间: 2014-01-19
上传用户:来茴
资源简介:vc做的毕业设计论文 我要vb做的啊,希望给下
上传时间: 2015-10-18
上传用户:qwe1234
资源简介:利用matlab编写的遗传算法实现控制系统的计算机程序的优化设计
上传时间: 2013-12-24
上传用户:youth25
资源简介:培养学生利用所学的计算机硬件基础知识(MCS-51)进行简单的软硬件设计的能力,使学生掌握程单片机开发的一般过程和方法。
上传时间: 2016-07-16
上传用户:lxm
资源简介:社区服务系统毕业论文 适合社区服务系统的毕业设计论文
上传时间: 2016-10-27
上传用户:sdq_123
资源简介:本文档对通用权限管理系统的总体设计、接口设计、界面总体设计、数据结构设计、系统出错处理设计以及系统安全数据进行了说明
上传时间: 2013-12-29
上传用户:gxf2016
资源简介:此论文为酒店管理系统的软件设计书,内含摘要,需求分析等
上传时间: 2017-01-31
上传用户:从此走出阴霾
资源简介:光纤通信方面的硕士论文,讲述激光器和接收器的IC设计。
上传时间: 2013-12-28
上传用户:sjyy1001
资源简介:高校毕业设计论文选题管理系统v1高校毕业设计论文选题管理系统v1
上传时间: 2013-12-18
上传用户:zq70996813
资源简介:熟练掌握MFC程序的界面设计:菜单、工具栏、对话框等 熟悉资源的创建与维护:包括鼠标资源、快捷键、图标、菜单、工具栏等
上传时间: 2013-06-07
上传用户:xhz1993
资源简介:计算器的程序的小设计。 实现了,象windows系统相似的 计算器程序。
上传时间: 2015-04-15
上传用户:koulian
资源简介:这是个很好的教学管理系统可以用作毕业设计之用可以为你的毕业设计轻松度过难关
上传时间: 2014-01-20
上传用户:13681659100
资源简介:解压后,在影片剪辑下填写代码.影片的时针/分针/秒针分别命名.就可以用了,如何设计 如何应用 根据自己喜欢的风格设计.
上传时间: 2013-12-24
上传用户:qunquan
资源简介:学习设计一个复杂嵌入式应用程序的方法,编写一个综合的嵌入式应用程序,包括操作系统的任务调用,液晶屏的绘图函数的调用等
上传时间: 2013-12-09
上传用户:stvnash
资源简介:利用c++实现遗传算法的求出程序的优化设计
上传时间: 2013-12-14
上传用户:qunquan
资源简介:本文详细的讨论了基于嵌入式操作系统uClinux的网络监控系统的软、硬件 设计。主要包括系统硬件平台的设计、嵌入式操作系统的设计、移植和驱动程序 的开发以及应用程序的开发与调试
上传时间: 2013-12-21
上传用户:qq21508895
资源简介:这是一个八路抢答器的汇编设计,含有完整的设计思路,流程图,设计步骤
上传时间: 2016-05-03
上传用户:希酱大魔王
资源简介:面向对象设计uml实践教程和大量的uml设计实例
上传时间: 2016-06-01
上传用户:凌云御清风
资源简介:包含了java的入门教程和swing程序的相关设计
上传时间: 2013-12-18
上传用户:362279997
资源简介:哈希表设计 针对麽个个体种的任命设计一个哈希表 使得平均查找长度不超过R,完成相应的建表和查找程序
上传时间: 2013-12-22
上传用户:asasasas
资源简介:电脑绣花走针自动生成的算法设计和实现,是我做的毕业设计
上传时间: 2013-12-20
上传用户:qwe1234
资源简介:本文章介绍了一种AD值的线性化方法。可以应用于单片机系统的设计开发当中。在系统的硬件设计方法上,使用温度补偿的方法,使得AD转换值可实现线性化,从而可以减少了单片机软件开发当中进行非线性数据的线性化处理。
上传时间: 2013-12-31
上传用户:fxf126@126.com
资源简介:电梯的设计·用来控制6层的电梯设计原来·VHDL语言
上传时间: 2016-11-19
上传用户:tuilp1a
资源简介:delphi控件可以很好实现应用程序的界面设计,在运行可以自动改变颜色不需要用户自己设置
上传时间: 2014-01-20
上传用户:梧桐
资源简介:基于windows通用打印驱动程序的虚拟打印机。
上传时间: 2016-12-31
上传用户:yyyyyyyyyy
资源简介:XML+ASP 强大的自动生成静态产品目录网页实例,可完全代替数据库+服务端程序的网站设计模式.优点在于: 1.它只需在自己的配置有IIS或其它ASP执行软件的电脑上执行一次便自动生成大量(上传的示例会生成两千多页)静态html网页,你只需将这些静态网页...
上传时间: 2014-01-22
上传用户:Avoid98
资源简介:通信工程系统设计GMSK与FSK基于MATLAB的滤波设计
上传时间: 2017-03-19
上传用户:笨小孩