POP DS
IRET ;中断返回
INTSERV ENDP
START ENDP
CODE ENDS
END START
下面是用Turbo C编写的主程序以及中断服务程序的框架结构。
# include<dos.h>
…… /*引用程序中用到的其他头文件*/
…… /*定义外部变量,用于中断程序和主程序的信息交换*/
void interrupt intp() /*中断服务程序*/
{enable(); /*开中断*/
...… /*具体的中断服务*/
outportb(0x20,Ox20); /*发中断结束命令*/
{
main()
{unsigned char old—mask;
...... /*定义其他局部变量*/
disable(); /*关中断*/
old mask=inportb(0x21); /*取系统原中断屏蔽字*/
setvect(0xod,intp); /*设置中断类型号0DH的中断向量*/
outportb(0x153,0x36); /*初始化计数器0为方波发生器*/
outportb(Oxl50,32);
outportb(Oxl50,0);
OHtportb(0x153,0x76); /*初始化计数器l为方波发生器*/
outportb(Oxl51,0);
outportb(Oxl51,9);
outportb(Ox21,old_mask&Oxdf); /*允许响应0DH的中断*/
enable(); /*开中断*/
}
这里是在微机中断系统中加人用户的外部硬中断,所以在主程序中要做两项工作:一是设置中断向量,即将自编的中断服务程序的入口地址纳入中断向量表;二是开放自加中断源(当然该中断源应接到系统为用户保留的中断请求输入端)所对应的中断屏蔽。由于是硬中断,所以在中断服务程序中具体的中断服务结束之后,且在中断返回之前应发中断结束命令。
上面说明了在DOS环境下加入外部硬中断用户应做的工作。实际上,在Window环境下,用户也可加入自己的外部硬中断。所不同的是,
windows把中断源当成设备来管理,中断处理是设备管理的一部分,所以需要编写设备驱动程序。关于
Windows设备驱动程序的编写,有专著,也有一些论文,读者可参考学习。
上一页 [1] [2] [3] [4]
本文关键字:暂无联系方式元器件特点及应用,元器件介绍 - 元器件特点及应用