硬件中断设计:通道0中断周期与BIOS定时功能

需积分: 48 1 下载量 130 浏览量 更新于2024-07-12 收藏 650KB PPT 举报
"通道的中断周期-硬件中断程序设计" 在计算机硬件中,中断是一种重要的机制,用于处理系统中的突发事件。中断周期指的是中断服务子程序的执行周期,这里以通道0为例,其中断周期为55毫秒,这是因为它的计数初值为65536,对应的方波频率是1.193MHz除以65536,大约为18.2赫兹。这意味着通道0每秒会申请中断18.2次,每次中断间隔约为55毫秒。 通道0的中断服务子程序TIMER-INT是固化在BIOS中的,它具有三个主要功能: 1. 实现时间计时,包括年、月、日、时、分、秒的精确计时。 2. 在软盘I/O操作时,该子程序用来确定软盘驱动器电机何时停止转动,这是为了保证数据读写的安全性。 3. 通过发出1CH类的软中断,可以调用用户自定义的程序,增强了系统的可扩展性和交互性。 中断系统是86系列CPU的核心组成部分,它可以处理256种不同类型的中断,中断类型号从0x00到0xff。中断分为两类:不可屏蔽中断(NMI)和可屏蔽中断(INTR)。不可屏蔽中断无法通过中断允许标志IF来阻止,而可屏蔽中断则可以通过设置IF标志来开启或关闭。例如,当IF=1时,CPU会响应INTR中断请求;当IF=0时,CPU将忽略INTR中断。 外部中断通常通过CPU的NMI和INTR引脚触发,这些是硬件级别的中断请求。内部中断则包括微处理器内部产生的中断,如单步中断、除法错误中断和溢出中断,以及由软件中断指令触发的中断,如DOS中断和BIOS中断。这些软件中断为用户提供了一系列便利的功能,C语言编程中也能利用这些中断调用。 中断向量表是中断处理的关键,它位于内存的最低地址开始的1024个字节区域,每个中断类型对应4个字节,存储着对应中断服务子程序的入口地址。当CPU接收到中断请求并确认后,会依据中断类型号查找中断向量表,然后跳转到指定的中断服务子程序执行。 硬件中断程序的设计通常包括两部分: 1. 编写中断服务子程序,以中断函数的形式实现,比如`void interrupt myint(void)`。 2. 设置中断向量,即将中断服务子程序的地址放入中断向量表中。这可以通过`setvect()`函数完成,如`setvect(0x08, myint);`,这里的`num`是中断类型号,`isr`是指向中断服务函数的指针。 通过这些机制,系统能够灵活地响应各种外部和内部事件,确保了计算机系统的实时性和高效性。在实际应用中,开发者可以根据需求编写特定的中断服务子程序,以实现特定的功能扩展。