快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

金沙国际娱城app_酒文化网进入



1 、小序

数据采集系统采纳硬中断要领,经由过程对KH-9300板卡上的8254准时器和8259中断节制器编程准时触发中断并对外部脉冲计数,设计中每隔1 s采集1次数据,数据采集卡第0和1号通道采纳串行要领金沙国际娱城app并应用板卡上的内部时钟进行计时,第2、3、4、5号通道输人外部计数脉冲计数。所有通道采纳内部门控旌旗灯号。当串行的第0~1通道计数满时,就向板卡上的8259中断节制器的IN1引脚发出中断指令。经由过程8259中断节制器向谋略机内的8259A的中断引脚(这里设计为第5号中断引脚)发出中断指令。CPU相应中断哀求,履行中断法度榜样,对板卡上第2、3、4、5号通道进行数据采集,并把采集后的数据写入文件。

2、 板卡及8254准时、计数常数的设置

时钟跳线的设置:0号通道选内部时钟,0和1两通道级联,2~5号通道接外部脉冲,选外部时钟。门控跳线设置为所有通道都选内部门控;基地址设置为280H;中断号设置为INT5(中断向量号为13);内部时钟频率设置为2 MHz。

(1)准时常数的谋略 准时系数=要求准时的光阴/时钟脉冲的周期。若准时的光阴为1 s,内部时钟频率为2 MHz。则时钟脉冲的周期为1 s/2 M金沙国际娱城appHz=0.5s,准时系数为1s/0.5 s=2106=2 000 000。因为8254准时计数器6个通道为16位减计数器,每个通道计数值最大年夜为216-1=65 535《2 000 000。以是必须采纳2个通道计时,设计中将第0通道和第1通道串联。由2106=1 0002103,则准时系数:第0通道为2 000,第1通道为1 000。

(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)安装中断办事法度榜样定义中断办事法度榜样后,还需将这个函数的人口地址填人中断向量表中,以便孕育发生中断时法度榜样能转入中断办事法度榜样去履行。为防止正在改写中断向量表时,又孕育发生其余中断而金沙国际娱城app导致法度榜样纷乱,可先关闭中断,待改写完成后,再开启中断。

此中faddr是中断办事法度榜样的进口地址,其函数名代表进口地址,而inum表示中断类型号,setvect()函数设置中断向量,上述定义的install()函数将完成把中断办事法度榜样进口地址填入中断向量inum中。

(3)中断办事法度榜样的激活对付硬金沙国际娱城app件中断,在响应的中断哀求线(IRQi,i=0,1,2,…,7)孕育发生一个由低到高的中断哀求电平,这个历程必需由接口电路来实现,这个电平可用法度榜样节制实现,如发敕令outportb(端口地址,敕令)。然后法度榜样等待中断,傍边断孕育发生时,便去履行中断。

(4)规复被改动的中断向量为金沙国际娱城app在主法度榜样停止后,规复原本的中断向量以指向原中断办事法度榜样,在主法度榜样开始时,存下原中断向量的内容,用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所示。

4.2 编程留意事变

(1)不要用任何DOS功能调用,避免DOS重入。只管即便避免应用与屏幕相关、反省状态、读键盘及任何磁盘I/O子法度榜样:避免应用浮点(实数)运算。中断办事法度榜样中所调用函数只管即便是BIOS级库函数;(2)中断法度榜样履行的光阴应尽可能的短。若 ISR中耗损光阴过长,在完成一次运行前有可能被再次调用,导致系统被挂起。(3)节制变量可所以全局变量,也可经由过程寄存器变量通报给interrupt 函数;(4)若实时节制系统对中断相应速率要求较高,可采纳嵌入汇编技巧。

4.3 法度榜样调试结果

图3为调试结果。图3中每1行后4个数据为每1 s所采集的4通道数据,第1列是第几回采集,即第几秒采集,后4列是第2、3、4、5通道所采集的数据。是以采集的数据具有较高稳定性。

5、 停止语

从法度榜样调试数据可看出,采集到的数据具有很高的稳定性。该系统可方便组成继续监测系统或其他必要记录脉冲的系统。同时使用Turbo C可方便的节制其端口和硬件中断。

责任编辑:gt

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: