PC6501Word文件下载.docx

上传人:b****4 文档编号:17877982 上传时间:2022-12-11 格式:DOCX 页数:23 大小:68.74KB
下载 相关 举报
PC6501Word文件下载.docx_第1页
第1页 / 共23页
PC6501Word文件下载.docx_第2页
第2页 / 共23页
PC6501Word文件下载.docx_第3页
第3页 / 共23页
PC6501Word文件下载.docx_第4页
第4页 / 共23页
PC6501Word文件下载.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

PC6501Word文件下载.docx

《PC6501Word文件下载.docx》由会员分享,可在线阅读,更多相关《PC6501Word文件下载.docx(23页珍藏版)》请在冰豆网上搜索。

PC6501Word文件下载.docx

(不含档板)

长×

高=330mm×

122mm(13英寸×

4.8英寸)

3.工作原理:

PC-6501D光隔离脉冲计数定时接口卡主要由5个相同的光电隔离脉冲计数定时模块和数字量输入输出部分、接口控制逻辑部分组成。

每个光隔离脉冲计数定时模块由一片8253可编程计数/定时器、输入输出光电隔离电路及输入信号去抖电路组成。

3.1工作原理框图:

PC-6501D光隔离脉冲计数定时接口卡工作原理见图1。

3.2脉冲计数定时功能的使用与管理:

本接口卡采用8253可编程计数/定时器芯片完成对外部脉冲信号的各种处理。

8253芯片内部具有三个独立的16位计数器,它可用程序设置成多种工作方式,按十进制计数或二进制计数,最高计数速率可达2MHz。

8253能用于多种应用场合,例如外部事件计数器、可编程方波频率发生器、分频器、实时时钟以及程控单脉冲发生器等。

本接口卡的功能组成非常灵活,通过跨接插座的不同连接方式,可以使8253的时钟输入端CLK通过光电耦合器与被测现场信号相连,或者与卡上基准时钟相连,也可以将二至三级计数器串连使用。

对于8253的启停控制端GATE,同样可以通过跨接插座的选择,使其或者受外部信号的控制或者设置为常允许。

本接口卡为方便用户采用中断方式工作,提供了三个中断源IRQ2、IRQ3、IRQ7。

用户可根据需要将8253的OUT信号接至这三个中断源上,并编写相应的中断管理及处理程序。

使用中应注意不要将几个OUT信号

接在同一中断源上。

各片8253的OUT信号也可经过光电耦合器提供给现场的设备使用,本卡出厂时为用户提供了15路经过光隔的OUT信号。

图1工作原理框图

3.38253可编程计数/定时器应用简介:

3.3.18253芯片管脚图如图2。

图28253芯片管脚图

3.3.28253功能及框图:

8253是INTEL公司微型计算机系统中的一个部件,可以将8253作为一个具有四个输入/输出接口的器件处理,其中三个是计数器,一个是可编程序工作方式的控制寄存器。

其内部结构图如图3所示。

图38253内部结构图

3.3.38253可编程计数/定时器编程要点:

8253的全部功能是由CPU编程设定的。

CPU通过输出指令给8253装入控制字,从而设定其功能。

8253控制字格式如下:

D7D6D5D4D3D2D1D0

SC1

SC0

RL1

RL0

M2

M1

M0

BCD

各位的功能见表1~表4:

表1SC1、SC0-计数器选择

SC1SC0

选择计数器

00

选择0#

01

选择1#

10

选择2#

11

非法

表2RL1、RL0-CPU读/写操作

RL1RL0

操作类型

计数器封锁操作

读/写计数器低8位

读/写计数器高8位

先读/写低8位,后读/写高8位

表3M2、M1、M0-工作方式选择

M3M2M1

计数工作方式

000

方式0

001

方式1

010

方式2

011

方式3

100

方式4

101

方式5

表4BCD-计数方式选择

数码形式

十六位二进制计数

1

四位十进制(BCD)码计数

8253-5的三个计数器是独立的16位减法计数器。

计数器的工作方式由工作方式寄存器确定。

计数器在编程写入初始值后,在某些方式下计数到0后自动预置,计数器连续工作。

CPU访问计数器时,必须先设定工作方式控制字中的RL1、RL0位。

计数器对CLK计数输入端的输入信号进行递减计数。

选通信号GATE控制计数工作的进行,其功能如表5所示。

表5选通信号GATE的功能

低电平或进入低电平

上升边沿

高电平

方式0

禁止计数

----

允许计数

方式1

1.初始化和计数2.下一个时钟后清除输出

方式2

1.禁止计数2.使输出立即变为高电平

1.重新装入计数器2.启动计数

方式3

初始化和计数

方式4

计数未结束时初始化和计数

方式5

8253-5的三个计数器按照各工作方式寄存器中控制字的设置进行工作。

可以选择的工作方式有六种。

这六种方式是:

方式0:

计数结束时中断。

编程后自动启动,计数器减1计数,计数到终点(减至0)后输出高电平,可用于中断请求信号,GATE为低电平时停止计数,回到高电平后继续往下计数。

再次启动要重新装入计数值或重新编程。

方式1:

可编程单脉冲输出。

GATE上升沿进行初始化并开始计数。

输出低电平的宽度等于计数时间。

单脉冲输出可用GATE上升沿多次触发。

方式2:

比率发生器。

编程后重复地循环计数。

计数到终点时输出一个时钟周期宽度的低电平脉冲,自动初始化后继续计数。

用GATE的上升沿初始化,并开始计数。

GATE为低电平时停止计数。

方式3:

方波发生器。

这种方式是在编程后重复地循环计数,输出波形为方波。

如果初始计数值为偶数,每个时钟输入脉冲使计数器减2,达到计数终点时输出电平改变。

如果初始计数值为奇数,则输出高电平时第一个时钟输入脉冲使计数器减1,随后每个输入脉冲使计数器减2;

输出为低电平时第一个时钟输入脉冲使计数器减3,随后每个输入脉冲使计数器减2,到达计数终点时输出电平改变,计数器自动初始化后继续计数。

用GATE的上升沿初始化并开始计数,GATE为低电平时停止计数。

方式4:

软件启动选通脉冲输出。

编程后自动启动,计数到终点后输出一个时钟周期的低电平脉冲。

方式5:

硬件启动选通脉冲输出。

编程后,等待GATE上升沿进行初始化并开始计数,计数到终点后输出一个时钟周期的低电平脉冲,计数器开始计数后不受GATE信号电平的影响,这种选通脉冲的输出可用GATE的上升沿多次触发。

在工作方式控制字中,如果设置计数器锁存操作,则该控制字中工作方式选择位M1、M0和计数方式选择位BCD无效。

即设置锁存操作时不影响计数器的工作方式,计数器锁存操作,是在计数器计数过程中,在不影响正在进行的计数操作的条件下,把当前的计数值锁存到寄存器,供CPU读取,这时在工作方式控制字中,SC1、SC0指定要锁存的计数器,RL1、RL0=00表示锁存操作,其余4位无效,计数器按原来设定的方式工作。

4.安装及使用注意:

4.1安装:

安装本卡时,应在关电状态下,打开主机机壳,将本卡插入主机的任一空余扩展槽中,再将档板固定螺丝压紧。

连接带缆从档板空隙处引至主机后面,再与现场引线连接。

4.2本卡采用光电耦合器均不能承受过高的电压,否则容易造成过压击穿损坏,一般情况下,输入信号电平最大不要超过48V。

输出负载工作电压不要超过36V。

4.3禁止带电插拔本接口卡。

设置接口卡开关、跨接套和安装接口带缆均应在关电状态下进行。

5.使用与操作:

5.1主要与使用有关的输入输出插座,跨接插座及地址开关位置见图4:

  图4主要部件位置图

5.2输入输出插座定义见图5:

CZ1~CZ5CZ6

C0"

、G0"

、O0"

是与现场对象相连的信号。

一般情况下,Cn"

+、Gn"

+、On"

+端接信号正端,Cn"

-、Gn"

-、On"

-端接信号负端或地端。

图5输入输出插座定义图

5.3输入插座XS1的接口定义见表6:

5.4I/O基地址的选择:

I/O基地址的选择是通过开关K1进行的,开关拨至“ON”处为0,反之为1。

初始地址的选择范围一般为0100H~01FFH;

0210H~02FFH以及300H~036FH之间。

用户应根据主机硬件手册给出的可用范围以及是否插入其它功能卡来决定本卡的I/O基地址。

出厂时本卡的基地址设为0300H,并从基地址开始占用连续28个地址。

现举例说

明见图6。

A5A6A7A8A9NCA5A6A7A8A9NCA5A6A7A8A9NC

a.0100Hb.0280Hc.0300H

图6I/O基地址选择举例

表6输入插座XS1接口定义表

插座引脚号

信号定义

CZ5C2+

20

CZ5C2-

2

CZ5C1+

21

CZ5C1-

3

CZ5C0+

22

CZ5C0-

4

CZ4C2+

23

CZ4C2-

5

CZ4C1+

24

CZ4C1-

6

CZ4C0+

25

CZ4C0-

7

CZ3C2+

26

CZ3C2-

8

CZ3C1+

27

CZ3C1-

9

CZ3C0+

28

CZ3C0-

10

CZ2C2+

29

CZ2C2-

11

CZ2C1+

30

CZ2C1-

12

CZ2C0+

31

CZ2C0-

13

CZ1C2+

32

CZ1C2-

14

CZ1C1+

33

CZ1C1-

15

CZ1C0+

34

CZ1C0-

16

NC

35

17

36

18

37

19

5.5跨接插座的用法:

5.5.1跨接插座KA的用法:

在每个单元模块中都有一个跨接插座KA,其作用是为8253的CLK选择不同的脉冲信号源,以组成不同的工作模式。

跨接插座KA的定义

见图7:

C0’O0C1’O1C2’

ΦC0ΦC1ΦC2

C0、C1、C2、O0、O1、O2表示本组8253的CLK0、CLK1、CLK2、OUT0、OUT1、OUT2信号,C0’、C1’、C2’是经光电耦合器隔离并整形后的现场信号。

Φ为接口板上的1MHz内部时钟。

图7KA的定义

a.CLK0有两种选择,见图8:

C0'

O0C1'

O1C2'

ΦC0ΦC1ΦC2ΦC0ΦC1ΦC2

C0=ΦC0=C0'

图8CLK0的选择

b.CLK1有三种选择,见图9:

C1=ΦC1=O0(串级)C1=C1'

图9CLK1的三种选择

C.CLK2有三种选择,见图10:

C2=ΦC2=O1(串级)C2=C2'

图10CLK2的三种选择

5.5.2跨接插座KB的用法:

每一单元模块中都有一个跨接插座KB,其作用是决定8253芯片的GATE信号是否接受外部控制,其定义见图11:

012

0表示GATE0,1表示GATE1,2表示GATE2

图11

当用户不希望用外部信号控制GATE端时,只需用短路套将相应位置短接即可。

(出厂时为短接状态。

5.5.3中断选择插座K2的定义见图12:

U5U4U3U2U1

012012012012012

○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○

 

IRQ72372372372372372

图12K2的定义图

由定义可知,U1~U5的15个OUT端直接连到K2的相应位置上,用跨接套跨接后,可以向主机申请中断。

本卡为用户提供了三个中断信号供选择使用。

连接时应注意不要将多个OUT连在一个中断信号上。

5.6本接口卡各控制端口地址及功能见表7:

表7各端口地址及功能表

端口操作地址

操作命令

功能

基地址+0H

基地址+1H

基地址+2H

基地址+3H

U1

读/写计数器0通道数据

读/写计数器1通道数据

读/写计数器2通道数据

写入控制寄存器控制字

基地址+4H

基地址+5H

基地址+6H

基地址+7H

同上

U2

基地址+8H

基地址+9H

基地址+AH

基地址+BH

U3

基地址+CH

基地址+DH

基地址+EH

基地址+FH

U4

基地址+10H

基地址+11H

基地址+12H

基地址+13H

U5

基地址+14H

基地址+15H

基地址+16H

基地址+17H

读辅助的8路DI

基地址+18H

基地址+19H

基地址+1AH

基地址+1BH

写辅助的8路DO

5.7输入输出端口的使用与配置:

a.本接口卡允许输入高电平分为以下各档:

输入高电平

相应电阻R*的匹配阻值

3V~6V

470Ω(出厂状态)

6V~12V

2.4KΩ

12V~24V

4.7KΩ

24V~48V

10KΩ

由于光电耦合器指标分散性大,以上输入电压范围仅供参考,信号源电源应对每一路输入提供约10mA电流,可用外加电压除以匹配电阻简单估算。

输入口的电路使输入信号电压经反相器后读入计算机。

b.本接口卡输出口为达林顿晶体管输出,集电极开路形式,如图13:

光电耦合器输出部分

图13

光耦合器的输出允许耗散功率为150mW,饱合压降约为0.6V左右,耐压(VCE0)约为36V。

输出口的外接线路应注意外加电压不要过高,负载电流不应过大,可根据以上参数估算。

6.驱动程序简介∶

PC-6000系列演示程序及驱动程序是为PC-6000系列多功能工控采集板配制的工作在中西文Windows95/98/NT环境下的一组驱动程序以及使用该驱动程序组建的一个演示程序,可以方便地使用户在中西文Windows环境下检测硬件的工作状态以及帮助软件开发人员在常用的C\C++,VisualBasic,Delphi,BorlandC++Builder,BorlandPascalforwindows等开发环境中使用PC-6000系列工控采集板进行数据采集和过程控制等工作.驱动程序是一个标准动态链接库(DLL文件)。

它的输出函数可以被其它应用程序在运行时直接调用。

用户的应用程序可以用任何一种可以使用DLL链接库的编程工具来编写。

每种板卡依据其自身功能的不同具有不同的输出函数和参数定义。

驱动程序输出函数定义∶

所列函数的说明格式为VC++6.0环境下PC6000.Dll库函数的原函数格式,无论使用哪一种开发工具,务必请注意数据格式的匹配及函数的返回类型,本说明中所使用的数据类型定义如下:

short~16位带符号数

unsignedchar-8位无符号数

long-32位带符号数

unsignedlong-32位无符号数

计数定时部分:

*函数:

voidAPIENTRYCT6501Start(shortnAdd,shortnChip,shortnClock,longnPreLoad,shortnMode)

功能:

初始化PC6501,设置8253计数器指定芯片及其指定通道的工作模式及寄存器预装值。

参数:

nAdd基地址

nChip指定8253芯片:

0-4

nClock指定定时计数通道:

0-2

nPreLoad16位寄存器预装入值(0-65535)

nMode选择8253工作方式:

0-5分别代表方式0-5

返回:

无返回值

说明:

此函数将寄存器预装值装入寄存器中,此时计数器是否开始计数,还取决于Gate端的状态。

voidAPIENTRYCT6501Lock(shortnAdd,shortnChip,shortnClock,shortnMode)

锁存8253计数器。

nChip8253芯片:

nClock通道号:

nMode选择8253工作方式:

返回:

无返回值。

说明:

此函数在调用CT6501Read函数之前调用。

unsignedlongAPIENTRYCT6501Read(shortnAdd,shortnChip,shortnClock)

功能:

此函数读取指定计数器的寄存器值。

返回寄存器的当前值。

此函数不影响计数器的继续计数工作。

数字量输入输出部分:

unsignedcharAPIENTRYDI6501Bit(shortnAdd,shortnBit)

功能:

采集某一位数字量输入信号的状态。

参数:

nBit通道号:

0-7

unsignedcharAPIENTRYDI6501All(shortnAdd)

采集全部通道(8路)数字量输入信号的状态。

返回:

返回值为8个输入信号的状态。

voidAPIENTRYDO6501Bit(shortnAdd,shortnBit,unsignedcharnState)

进行某一个通道的数字量数据输出操作。

0-7

nState1表示将输出高电平,0表示将输出低电平。

voidAPIENTRYDO6501All(shortnAdd,unsignedcharnGroup)

同时进行所有8个通道的数字量数据输出操作。

nGroup8个通道的输出状态,nGroup的D0代表Bit0,D3代表Bit3。

如有需要使用Windows系列及LabVIEW驱动程序的用户可向本公司索取,请注明所使用的操作系统和开发软件。

程序举例:

7.编程举例:

7.1设初始地址为300H,单极性输入,对通道1采样。

7.1.1BASIC语言:

5Base=&

H300

10OUT(Base),0;

送通道代码

20OUT(Base+1),0;

启动A/D

30IFINP(Base+2)>

=128THEN30;

查询转换结束否?

40H=INP(Base+2);

转换结束,读高4位结果

50L=INP(Base+3);

读低8位结果

60V=(H×

256+L)×

10000/4096;

将结果转换为十进制数

70PRINTV,"

mV"

显示结果,用mV表示

80END

注1:

如为双极性输入,并设A/D转换输出为双极性偏移码,则需将60句改为:

256+L)×

10000/4096-5000

注2:

如为多通道巡检,为保证转换精度,运放应有足够的建立时间,故在10~20句之间应插入适当的延时,此延时间隔可由实验得出。

7.1.2对通道1连续采样100次,程序启动和查询。

C语言程序:

#include"

stdio.h"

dos.h"

conio.h"

main()

{

intch;

/*定义通道变量*/

floatvalue[100]/*定义数组变量*/

intdl,dh,i,j,base;

/*定义过程变量*/

clrscr();

/*清屏*/

base=0x300;

/*设板基地址=300H*/

printf("

Inputchannlenumber:

"

);

/*输入通道号*/

scanf("

%d"

&

ch);

outportb(base,ch);

/*送通道代码*/

for(j=0;

j<

100;

j++){/*设采样次数*/

for(i=0;

i<

i++);

/*延时,常数由机型决定*/

outportb(base+1,0);

/*启动A/D,所送数值

无关*/

do{/*查询A/D转换状态*/

;

}while(inportb(base+2)>

=128);

dh=inportb(base+2);

/*读高4位结

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 家庭教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1