东北大学汇编语言第17章 定时和音响程序设计.ppt

东北大学汇编语言第17章 定时和音响程序设计.ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十七章 定时及音响程序设计 17.1 概述 17.2 8253/8254可编程定时/计数器 17.3 时钟程序设计 17.4 音响程序设计 CSEG SEGMENT ORG 100H ASSUME CS:CSEG,DS:NOTHING BEGIN: JMP MAIN COUNT DB 18 CHAR DB ‘0’ INT1C PROC DEC COUNT JNZ EXIT MOV COUNT,18 PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,03H MOV BH,0 INT 10H PUSH DX MOV AH,02H MOV DX,004FH INT 10H MOV AL,CHAR MOV AH,0AH MOV CX,1 INT 10H POP DX MOV AH,02H INT 10H INC CHAR CMP CHAR,’9’ JBE OK MOV CHAR,’0’ OK: POP DX POP CX POP BX POP AX EXIT: IRET INT1C ENDP MAIN: MOV DX,OFFSET INT1C MOV AX,251CH INT 21H CSEG ENDS END BEGIN 17.3 时钟程序设计 17.3.1 使用8253/8254时钟 2. 随机数的产生 生成随机数的一个最方便的办法就是利用时钟。前面已经提过每秒钟产生18.2次的时钟中断,对中断次数计数(时间计数),该计数值是一个32位的数据,保存在内存的4个字节中,可以通过INT 1AH的0号功能读出。读出之后,CX存放的是其高16位,DX是其低16位。这个计数值是持续变化的,特别是其低16位可以被认为是伪随机数。由于计数值总是增加而不是随机改变,所以不能提供一个真正的随机数。但是,因为计数值以每秒18.2次的速绿政见,它的随机程度足够满足大部分应用了。 17.3 时钟程序设计 17.3.1 使用8253/8254时钟 例17.2 编写一个产生0~99范围内随机数的子程序。 时间计数值的低16位基本上可以作为一个16位的随机数使用。要产生0~99范围内的随机数,可将该计数值除以100,取其余数即可。做除法时还应考虑产生溢出的问题。为了保证不产生溢出,可将16位数据的高2位清0,然后再做除法就安全了。 子程序说明文件如下: (1)子程序名:RAND99; (2)子程序功能:产生0~99范围内的随机数; (3)入口条件:无; (4)出口条件:AL为产生的随机数; (5)影响的寄存器:AH,AL,F。 RAND99 PROC PUSH CX PUSH DX XOR AH,AH INT 1AH MOV AX,DX AND AX,3FFFH MOV DL,100 DIV DL MOV AL,AH POP DX POP CX RET RAND99 ENDP * 17.1 概述 CPU通过接口电路产生时间符合要求的信号的过程,称为定时。该接口电路称为定时器。 CPU通过接口电路对外部事件的数量进行统计的过程称为计数。实现计数的接口电路称为计数器。 在微型机里,把定时器和计数器做成一片大规模集成电路,称为定时器/计数器。 17.1 概述 输入脉冲 输出(分频) 声音的产生: 对输出方波整形 变成正弦波,经放大处理接到扬声器上,产生不同声音的波形。 若选择标准输入脉冲,例1KHz,则当输入1000个标准输入脉冲,需要1s,则当计数值为1000时,输出端每隔1s输出一个脉冲,实现了定时。 17.1 概述 实现定时/计数有三种不同的方法: (1)软件定时:执行一个具有固定延迟时间的循环程序。 优点:不需外加硬件,灵活,定时较准确。 缺点:在定时过程中CPU不能做任何其它工作。 总结:适用于定时时间短的场合。 (2)硬件定时:采用中规模TTL或CMOS芯片外家阻容件来实现的。不同的时间间隔主要是通过配接不同的阻容值达到的。 优点:不占用CPU时间。 缺点:变换定时较难。 总结:适用于定时时间间隔固定的场合。 (3)可编程的定时:综合了上述两种方法的优点,采用固定的硬件,通过编程(写控制字)实现不同的要求。既不占用CPU的时间,又有灵活性。 17.2 8253/8254可编程定时/计数器 17.2.1 8253/8254

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档