其中faddr是中断服务程序的入口地址,其函数名代表入口地址,而inum表示中断类型号,setvect()函数设置中断向量,上述定义的install()函数将完成把中断服务程序入口地址填入中断向量inum中。

(3)中断服务程序的激活对于硬件中断,在相应的中断请求线(IRQi,i=0,1,2,…,7)产生一个由低到高的中断请求电平,这个过程必需由接口电路来实现,这个电平可用程序控制实现,如发命令outportb(端口地址,命令)。然后程序等待中断,当中断产生时,便去执行中断。

(4)恢复被修改的中断向量为在主程序结束后,恢复原来的中断向量以指向原中断服务程序,在主程序开始时,存下原中断向量的内容,用getvect()实现,如j=(char*)getvect(0x1c),这样指针变量中将是0xlc中断程序的入口地址,当主程序结束时,可恢复原来的中断服务入口地址,可用setvect(0x1c,i),也可用install()函数再次安装。

4 、程序设计

4.1 程序说明

程序主要分为主程序和中断处理子程序2部分。其中主要程序是采用 I/O接口的输入输出函数进行初始化。包括设置KH-9300定时计数器8254和中断控制器8259的工作方式、初值、开中断、触发方式,对计算机的 8259开中断等。在主程序的最后把采集的通道数据写入文件。而中断处理子程序是由CPU在每次接到IRQ5中断请求信号后立即执行,主要作用是把KH- 9300卡的第2、3、4、5号通道的计数值采集到程序的变量中。主程序和中断处理子的程序流程分别如图1、图2所示。

基于KH-9300板卡采用硬中断方式实现数据采集系统的设计

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查