⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄

📁 PC计算机钢琴程序子程序: 包括以下资料 软件:提取音乐代码的软件工具(自己用VB写的) 资料:所有与按键和PC Sound有关资料 唱歌:包括歌曲有 聚萍、同一首歌、月亮代表我的心、美丽的神
💻
字号:
PC中的定时电路有三个通道,通道3用于发声,通道1用于控制系统内部的时钟。大家都十分清楚用DOS的"TIME"命令可以观察并修改系统内部的一个时钟,这个时钟之所以能连续运转主要依靠定时器的通道1。
  通道1的工作方式和通道3一样,但是系统启动时设定其发出一个频率固定为18.2Hz的信号,这个信号直接送到系统中的"中断控制器"。每一个"Hz"都产生一个硬件中断,一般称这个硬中断为"IRQ0",对应的中断号是08H。也就是说,当计算机启动后,我们的机器看上去十分平静,但实际上CPU非常忙碌。在定时器的控制下每隔55毫秒就要执行一个08H号中断,这个中断的主要工作就是连续地计数。
  在内存"0040H:006CH"处有四字节的存储空间专门用于保存计数值,CPU每执行一次08H中断,这四字节的计数值就被加1,不难算出这个计数值每增加1091后时间恰好过了1分钟,每增加65454后时间恰好过了1小时。系统内部的时钟之所以能准确走时,靠得就是08H中断和这四字节的计数值。因此我们要想精确的定时,必须依靠时钟计数值才行。


程序使用了一个新的中断--INT 1AH的0号功能取得时钟计数值。1AH中断的用法如下所示:    
   功能号:0
用 途:读取时钟计数值
参 数:AH=0
调 用:INT 1AH
返 回:CX = 计数值高16位
    DX = 计数值低16位
    AL = 0 表示未过24小时
    AL <> 0 表示已过24小时  

★每隔1000/18.2ms就要执行一个08H号中断
假设计算延迟时间为 T ms,则要执行 n 次中断
【n = T*18.2/1000】

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -