(2)计数通道的初始化 计数通道常数设置为最大值:FFFFH。最大计数频率为65 535 Hz/s。

(3)计数累计脉冲量计算 计数累计脉冲量=FFFFH-计数器本次读数。

3 、用Turbo C编写中断服务程序的方法

C语言中断服务程序可由3部分实现。即编写中断服务程序、安装中断服务程序、激活中断服务程序。

(1)编写中断服务程序由于产生中断时,必须保留被中断程序中断时的一些现场数据,即保存断点,这些值都在寄存器中,以便恢复中断时使这些值复原。以继续执行原来被中断的程序。 Turbo C为此提供一种新的函数类型:inter-rupt,它将保存由该类型函数所指寄存器的值,而在退出该函数时,再复原这些寄存器的值,因而用户的中断服务程序必须定义成该类型的函数,如中断服务程序名为myp,则可将这个函数说明为:

Void interrupt myp(unsigned bp,unsigned di,unsigned si,unsigned ds,unsigned es,unsigned dx,unsigned cx,unsignedbx,unsigned ax,unsiged ip,unsigned cs,unsigned flags)

小模式下程序只有1段,在中断服务程序中用户可像用无符号整数变量一样使用这些寄存器。若中断服务程序中不使用上述寄存器,则可不写这些寄存器参数,而写为:

对于硬件中断,则在中断服务程序结束前要将中断结束命令字送至系统的中断控制寄存器,其端口地址为0x20,中断结束命令字也为0x20,即outportb(0x20,0x20)。

在中断服务程序中,若不允许别的优先级较高的中断打断它,则要禁止中断,可用函数disable()来关闭中断。若允许中断,则可用开中断函数enable()来开启中断。

(2)安装中断服务程序定义中断服务程序后,还需将这个函数的人口地址填人中断向量表中,以便产生中断时程序能转入中断服务程序去执行。为防止正在改写中断向量表时,又产生别的中断而导致程序混乱,可先关闭中断,待改写完成后,再开启中断。