1
SDUT
数据采集与处理
9.1 8255A可编程外围接口芯片
9.2 PS-2304数字量 I/ O接口板简介
9.3 BCD码并行数字信号的采集
第 9章 数字信号的采集
9.4 车速脉冲信号的采集计数
2
SDUT
数据采集与处理
第 9章 数字信号的采集
传送方式
并行
串行
数字信号的采集与其传送方式有关。
采集方法
用 8255芯片采集并行数据
用 RS-232口采集串行数据
3
SDUT
数据采集与处理
第 9章 数字信号的采集
9.1 8255A可编程外围接口芯片
1,用途和结构
用途,用于接收并行传输的数字信号、
脉冲信号和开关信号。
结构
其引脚和内部结构如图 9.1所示 。
4
SDUT
数据采集与处理
9.1 8255A可编程外围接口芯片
8 2 5 5 A - 5
P B 2
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 P A 4
P A 5
P A 6
P A 7
R E S E T
D0
D1
D2
D3
D4
D5
D6
D7
U c c
P B 7
P B 6
P B 5
P B 4
P B 3
WR
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
P A 3
P A 2
P A 1
PA
0
RD
CS
G N D
A1
A0
P C 7
P C 6
P C 5
P C 4
P C 3
P C 2
P C 1
P C 0
P B 0
P B 1
( a )
图 9.1 8255A-5引脚和内部结构框图
端口 A
端口 C
(高 )
端口 C
(低 )
端口 B
PA7~ PA0
PC7~ PC4
PC3~ PC0
PB7~ PB0
A组
控制

数据总
线缓冲
B组
控制

D7~ D0
计算机
外界
RD
WR
A1
A0
RESET
CS
读 /写
逻辑
(b)
5
SDUT
数据采集与处理
9.1 8255A可编程外围接口芯片
由此图可知:
8255有 3个端口
端口 A 是一个 8位数据输出/输入锁存器 。
端口 B 是一个 8位数据输入/输出锁存器。
端口 C 是一个 8位数据输出/输入缓冲器。
端口 C 还可以分成两个 4 位的端口 。
6
SDUT
数据采集与处理
9.1 8255A可编程外围接口芯片
有 2组控制器
A组,控制端口 A和端口
C的高 4位
B组,控制端口 B和端口
C的低 4位
有数据总线缓冲、读/写逻辑芯片
2,工作方式
8255A芯片有三种工作方式。
7
SDUT
数据采集与处理
9.1 8255A可编程外围接口芯片
方式 0 — 基本的输入/输出方式,
特点
⑴ 任何端口都可用做输入 /输出
⑵ 输出可被锁存,输入不能锁存
⑶ 有 16种输入/输出组态
方式 1— 选通的输入/输出方式。
8
SDUT
数据采集与处理
9.1 8255A可编程外围接口芯片
特点
⑴ A,B组各有一个 8位数据口和一
4位控制/数据口
⑵ 8位数据口的输入/输出均可锁存
⑶ 端口 C的 4 位传送 8 位数据口控制
/状态信息
它与方式 0的不同之处在于,
借助选通或应答式联络信号,把 I/ O
数据与指定的端口进行发送或接收。
9
SDUT
数据采集与处理
9.1 8255A可编程外围接口芯片
方式 2 — 带联络双向总线 I/ O方式 。
注意,此方式仅用于 A口 。
特点
⑴ 有一个 8位双向数据口和一个 5位
控制端口 C
⑵ 输入/输出均可锁存
⑶ 4位控制口用于 8位数据端口的控
制/状态信息
10
SDUT
数据采集与处理
9.1 8255A可编程外围接口芯片
需要说明,在方式 1和方式 2中, 并未将端
口 C的所有位都用于传送控制
状态信息, 剩余的各位仍然可
以通过编程设定为输入/输出
用。
以上介绍的各种工作方式及组态,都
可以通过对 8255A的初始化来实现 。
11
SDUT
数据采集与处理
9.1 8255A可编程外围接口芯片
3,初始化
8255A的初始化 — 将一个 8位控制码写
入 8255A的控制寄存
器。
基本要求,为了能正确地写入控制字,先
要了解 8255A控制寄存器中各
位的情况 。
8255A控制寄存器如图 9.2 所示 。
12
SDUT
数据采集与处理
9.1 8255A可编程外围接口芯片
D7 D6 D5 D4 D3 D2 D1 D0
置方式标志:
方式选择:
端口 A:
端口 C高端,
方式选择:
端口 B:
端口 C低端:
图 9.2 8255A控制寄存器
00=方式 0; 01=方式 1
1X=方式 2
1=有效
1— 输入, 0— 输出
1— 输入, 0— 输出
0=方式 0,1=方式 1
1— 输入, 0— 输出
1— 输入 ; 0— 输出
13
SDUT
数据采集与处理
9.1 8255A可编程外围接口芯片
∴ 8255初始化 —— 对 8255控制寄存器的
各位赋值。
【 例 9.1】 设 8255A的控制寄存器的地址为 63H,
初始化 A,C口为输入口, B口为输出
口 。 编写对 8255A初始化的汇编程序。
解,⑴ 确定控制码, 10011001
⑵ 8088汇编程序如下,
14
SDUT
数据采集与处理
9.1 8255A可编程外围接口芯片
MOV AL,63H
MOV DI,AL
MOV AL,10011001B; 置 A,C口为输入口, B口为输出口
OUT DI,AL; 把 10011001B写入 8255A控制寄存器
15
SDUT
数据采集与处理
第 9章 数字信号的采集
9.2 PS-2304数字量 I/ O接口板简介
1,概述
主要性能
为 PC/ ISA 总线型接口板,广泛用于
PC微机 。
板上有三片 8255A芯片及若干个逻辑器
件组成,通过编程自由设定输入输出。
16
SDUT
数据采集与处理
9.2 PS-2304数字量 I/ O接口板简介
2,主要技术指标
输入输出路数,
输入输出电平,
控制方式:
电源要求,
72路
TTL
程序查询或中断服务
DC+5V,耗电流 <500 mA
环境温度, -10℃ ~ 50℃
17
SDUT
数据采集与处理
9.2 PS-2304数字量 I/ O接口板简介
2,使用
地址开关的设定
PS-2304板卡上有一个地址开关 K,如
图 9.3 所示的 。
图 9.3 地址开关 K
ON
1
A5
2
A6
3
A7
4
A8
5
A9
6
A10
7
18
SDUT
数据采集与处理
9.2 PS-2304数字量 I/ O接口板简介
设定其各位,就可以确定板卡端口及
控制寄存器的地址。
由图 9.3可以知道,地址开关 K 为 6 位
有效 。
ON/ OFF 状态与计算机地址线位内
容对应关系是,
ON — An = 1 OFF — An = 0
19
SDUT
数据采集与处理
9.2 PS-2304数字量 I/ O接口板简介
地址开关位与计算机地址线位的对
应关系如下:
K1 —— A5
K2 —— A6
K3 —— A7
K4 —— A8
K5 —— A9
K6 —— A10
K 的地址范围为 0300~ 031F,共 32个
连续地址 。
20
SDUT
数据采集与处理
9.2 PS-2304数字量 I/ O接口板简介
表 9.1 PS-2304板地址分配
芯片 A口 B口 C口 控制寄存器
JC9 0300H 0301H 0302H 0303H
JC10 0304H 0305H 0306H 0307H
JC11 0308H 0309H 030AH 030BH
0318H~ 031BH 写入:开中断
031CH~ 031FH 写入:关中断
21
SDUT
数据采集与处理
9.2 PS-2304数字量 I/ O接口板简介
板上接口插座
1 2 1 2 1 2
J C
8 2 5 5 A
J C
8 2 5 5 A
J C
8 2 5 5 A
3 3 34 3 3 34
Z
3 3 34
Z
ON
1 2 3 4 5 6
K
I R Q I R Q
PC
PC
。。。。。。
.
.
.
.
.
.
.,
.,
.,
.,
.,
.,
2
Z
4
9 10 11
PC
7
5
PC
PC
0
PC
1
PC
3
Z
1
2 3
1 3.
0 7 5.,
7
图9, 4 P S - 2 3 0 4 板结构
22
SDUT
数据采集与处理
9.2 PS-2304数字量 I/ O接口板简介
1 2
3 3 34 3 3 3 4
P A 1
P A 3
P A 5
P A 7
P C 7
P C 5
P C 3
P C 1
P B 7
P B 5
P B 3
P B 1
1 2
P A 0
P A 2
P A 4
P A 6
P C 6
P C 4
G N D
5V
P C 2
P C 0
P B 0
P B 2
P B 4
P B 6
G N D
P A 0
P A 2
P A 4
P A 6
P C 6
P C 4
G N D
5V
P C 2
P C 0
P B 0
P B 2
P B 4
P B 6
G N D
P A 1
P A 3
P A 5
P A 7
P C 7
P C 5
P C 3
P C 1
P B 7
P B 5
P B 3
P B 1
Z ZZ
图9, 5 插座与8 2 5 5 A 端口的对应关系
( a ) ( b )
Z1, Z2 插座各脚
号与 8255A的三个端口
对应关系如图 9.5(a)所
示 。
Z3 插座各脚与 8255
A的三个端口的对应关
系如图 9.5(b)所示 。
23
SDUT
数据采集与处理
9.2 PS-2304数字量 I/ O接口板简介
接口板初始化
【 例 9.2】 将 8255A芯片设置成 24路输入
状态 。
解,其控制命令字为 10011011B,即十六
BASIC语句为, OUT &H303,&H9B
进制的 9BH。
24
SDUT
数据采集与处理
9.2 PS-2304数字量 I/ O接口板简介
汇编程序为:
MOV AL,303H ; 确定 JC9的控制寄存
器地址
MOV DI,AL
MOV AL,9BH
OUT DI,AL ; 把控制字 9BH写入
JC9 的控制寄存器
25
SDUT
数据采集与处理
9.2 PS-2304数字量 I/ O接口板简介
8088寄存器结构,
通用寄存器
⑴ 数据寄存器
AX
AH,
AL,
字节乘
字节乘、字节除、字节 I/O、
转移、十进制算术运算
26
SDUT
数据采集与处理
9.2 PS-2304数字量 I/ O接口板简介
BX
BH,
BL,
CX
CH,
CL,
CX,串操作、循环次数
转移
变量移位、循环控制
27
SDUT
数据采集与处理
9.2 PS-2304数字量 I/ O接口板简介
DX
DH,
DL, 字乘、字除法、间接 I/ O
⑵ 地址指针寄存器 SP—
BP—
⑶ 变址寄存器 SI—
DI—
堆栈指针寄存器
基址指针寄存器
源变址寄存器
目的变址寄存器
28
SDUT
数据采集与处理
9.2 PS-2304数字量 I/ O接口板简介
段寄存器 CS —
SS —
DS —
ES —
控制寄存器 IP —
F —
代码段寄存器
堆栈段寄存器
数据段寄存器
附加数据段寄存器
指令指针寄存器
标志寄存器
29
SDUT
数据采集与处理
第 9章 数字信号的采集
9.3 BCD码并行数字信号的采集
以 BCD码 传送并行数字信号,在工程
中是一种常见方法,例如三坐标测量机坐
标位移信号的传送 。
三坐标测量机是一种测量设备,用来
测量工件上任意点的 X,Y,Z 三个坐标值 。
30
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集






x
y
z
Z坐标轴
y坐标轴
x坐标轴
31
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集










电测头
光栅尺
32
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集













33
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集










电测头
工件
支承件
34
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集













35
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集














36
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
为此,在三坐标测量机的每个坐标方
向上安装了一根光栅尺来检测机器该方向
坐标位置的变化。
光栅尺输出的信号传送到与之相配套
的数显仪。
数显仪
处理后
① 用数码管以 6位十进制实数 +1
符号的形式,显示坐标值。
②以 BCD码并行输出坐标位移
信号。
37
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
光栅尺与数显仪 光栅尺定尺
数显仪 数码管
光栅尺动尺光栅尺
38
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
问题:
如何用 PC机和 PS -2304接口板采集 X坐
标的坐标位移值?
如何将采集到的 BCD 数字信号存入内
存和还原成十进制实数?
为了简化问题的讨论,这里只涉及无
符号坐标值的采集。
39
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
由第 2章编码一节可以知道,
在用 BCD码表示十进制数时, 1 位十
进制数用 4位二进制码表示,所以 6位十进
制数须用 24( 6× 4) 位二进制码表示。
8255A的 A,B,C端口均为 8 位,即
每个端口一次只能采集 8 位二进制码 ( 2位
十进制数 )。
40
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
对于 6 位十进制数, 须按图 9.6 所示,
A口采集十进制数的最高两位, B口采集
中间两位, C口采集最低两位。
41
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
数显仪插座与 PS -2304板连接,
图 9.6 8255A端口采集数据的分配
A口 B口 C口
1 2 3 4 5 6
42
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
D G N D
2 22 2 2 22 2 2 22 2 2 22 2 2 22 2 2 22 2
3 3 34
1 2
P A 0
P A 2
P A 4
P A 6
P C 6
P C 4
G N D
5V
P C 2
P C 0
P B 0
P B 2
P B 4
P B 6
G N D
P A 1
P A 3
P A 5
P A 7
P C 7
P C 5
P C 3
P C 1
P B 7
P B 5
P B 3
P B 1
ZZ
A口
1
23→ PA7
22→ PA6
21→ PA5
20→ PA4
2 2
2→ PA2
21→ PA1
20→ PA0
23→ PA3
B口
3
23→ PB7
22→ PB6
21→ PB5
20→ PB4
4 22→ PB221→ PB1
20→ PB0
23→ PB3 C口
5
23→ PC7
22→ PC6
21→ PC5
20→ PC4
6 2
2→ PC2
21→ PC1
20→ PC0
23→ PC3
1 2 3 4 5 6
43
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
选择 JC9 芯片的 PC0 位输入电测头发
出的采样脉冲信号。
由于 B口采集的 8位 BCD码中,高 4位
对应十进制整数,低 4位对应十进制小数,
因此需要把 8位 BCD 码分开。
如何把 8 位 BCD 码分开?
注意,在 0~ 9的范围内, 二进制码与 BCD
码是相同的 。
44
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
用 8255芯片采集 BCD码数据并在屏幕
上显示还原的十进制实数的过程如下:
把采集到的 3组 BCD码拆分成 6个 4位二
进制码 ;
分别存入内存中的 6个存储单元 ;
用 Quick BASIC语言的 PEEK语句从内
存中把数据读入到程序中的变量;
作字符串操作,将采集到的 BCD并行
数字信号还原成十进制实数。
45
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
8088汇编程序如下,
,MODEL MEDIUM
,STACK 256 ; 堆栈空间为 256;
,DATA
BCD1 DB?
BCD2 DB?
BCD3 DB?
46
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
BIN11 DB?
BIN12 DB?
BIN21 DB?
BIN22 DB?
BIN31 DB?
BIN32 DB?;
,CODE
PUBLIC PORT ; 说明成公共块; 以便 Quick BASIC程序调用
47
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
PORT PROC FAR
PUSH BP ; 保存原基址寄存器指针
MOV BP,SP ; 把堆栈指针放入基址寄存器
PUSH DS ; 保存原数据段地址
PUSH SI
PUSH DI
SUB AX,AX ; 把 0放入 AX
PUSH AX
MOV AX,_DATA ; 数据段的地址放入 DS
MOV DS,AX
48
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
MOV AX,7000H ;设置段地址为 7000H
MOV ES,AX
MOV DI,1 ;设置内存起始单元
MOV DX,302H ;设置状态口地址
WAIT1,IN AL,DX ;读入状态信息
TEST AL,01H ;检查状态信息是否为 1
JNZ WAIT1 ;若为 1,循环等待测头离;开前一个采样点
WAIT2,IN AL,DX ;从状态口读入状态信息
TEST AL,01H ;检查状态信息是否为 0
49
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
JZ WAIT2 ;若为 0,循环等待测头接触工;件的另一个采样点
CALL ACQUDATA ;调用数据采集子程序
CALL HCONVT ;调用数据拆分子程序
CALL STORE ;调用数据存储子程序
POP AX
POP DI
POP SI
POP DS ;恢复原数据段地址
POP BP ;恢复原基址寄存器指针
50
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
RET ;退出汇编程序
PORT ENDP; 采集数据
ACQUDATA PROC NEAR
PUSH DX
PUSH SI
PUSH DI
PUSH AX
PUSH CX
MOV AL,10011011B ;设置控制字
51
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
MOV DX,307H ;初始化 8255三口为输入口
OUT DX,AL
MOV DX,304H
IN AL,DX ;A口 采集第一组 BCD码
MOV DI,OFFSET BCD1
MOV [DI],AL ;存入 BCD1中保存
MOV DX,305H
IN AL,DX ;从 B口采集第二组 BCD码
MOV DI,OFFSET BCD2
MOV [DI],AL ;存入 BCD2中保存
52
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
MOV DX,306H
IN AL,DX ;从 C口采集第三组 BCD码
MOV DI,OFFSET BCD3
MOV [DI],AL ;存入 BCD3中保存
POP CX
POP AX
POP DI
POP SI
POP DX
RET
ACQUDATA ENDP
53
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集; 把一组 BCD码拆分成二个 4位二进制码
HCONVT PROC NEAR
PUSH BX
PUSH SI
PUSH DI
MOV BX,OFFSET BCD1;BCD1的地址送入 BX寄存器
MOV SI,OFFSET BIN11;BIN11的地址送入 SI寄存器
MOV DI,OFFSET BIN12;BIN12的地址送入 DI寄存器
54
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
CALL HCONVTSUB;对第一组 BCD码进行拆分
MOV BX,OFFSET BCD2;BCD2的地址送入 BX寄存器
MOV SI,OFFSET BIN21;BIN21的地址送入 SI寄存器
MOV DI,OFFSET BIN22;BIN22的地址送入 DI寄存器
CALL HCONVTSUB;对第二组 BCD码进行拆分
55
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
MOV BX,OFFSET BCD3;BCD3的地址送入 BX寄存器
MOV SI,OFFSET BIN31;BIN31的地址送入 SI寄存器
MOV DI,OFFSET BIN32;BIN32的地址送入 DI寄存器
CALL HCONVTSUB;对第三组 BCD码进行拆分
POP DI
POP SI
POP BX
56
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
RET
HCONVT ENDP; 拆分 BCD码
HCONVTSUB PROC NEAR
PUSH CX
MOV AL,[BX];将 BX寄存器中的内容传送到 AL寄存器
MOV CL,4 ;确定移位次数 ( 4次 )
SHR AL,CL ;将 AL逻辑右移 4次
MOV [SI],AL ;将 AL中的内容传送到 SI
57
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
MOV AL,[BX] ;将 BX中的内容传送到 AL
AND AL,0FH ;屏蔽高 4位
MOV [DI],AL;将 AL中低 4位的内容传送到 DI
POP CX
RET
HCONVTSUB ENDP; 把数据存入内存
STORE PROC NEAR
PUSH ES
58
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
PUSH SI
MOV SI,OFFSET BIN11
MOV AL,[SI]
MOV BYTE PTR ES, [DI],AL;把 BIN11中的内容送入内存单元 1
INC DI ;内存单元地址 +1
MOV SI,OFFSET BIN12
MOV AL,[SI]
MOV BYTE PTR ES, [DI],AL;把 BIN12中的内容送到内存单元 2
59
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
INC DI ;内存单元地址 +1
MOV SI,OFFSET BIN21
MOV AL,[SI]
MOV BYTE PTR ES, [DI],AL;把 BIN21中的内容送到内存单元 3
INC DI ;内存单元地址 +1
MOV SI,OFFSET BIN22
MOV AL,[SI]
MOV BYTE PTR ES, [DI],AL;把 BIN22中的内容送到内存单元 4
60
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
INC DI ;内存单元地址 +1
MOV SI,OFFSET BIN31
MOV AL,[SI]
MOV BYTE PTR ES, [DI],AL;把 BIN31中的内容送到内存单元 5
INC DI ;内存单元地址 +1
MOV SI,OFFSET BIN32
MOV AL,[SI]
MOV BYTE PTR ES, [DI],AL;把 BIN32中的内容送到内存单元 6
61
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
POP SI
POP ES
RET
STORE ENDP
END
以上程序在计算机内存中段地址为 7000,
起始单元为 1的连续 6个内存单元中存放采集
到的 X坐标位移值 。
62
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
对于 Y,Z坐标值,同样可参照以上
介绍的方法, 完成坐标位移值的采集、
拆分和存储等操作 。
下面的程序完成还原十进制实数的操作。
DECLARE SUB PORT ( )
CALL PORT
DEF SEG = &H7000
′设定内存段地址为 7000H
DCLZ源程序如下,
63
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
A11 = PEEK(1), A12 = PEEK(2)
′从内存单元 1,2中读数据并赋予 A11,A12
B11 = PEEK(3), B12 = PEEK(4)
′从内存单元 3,4中读数据并赋予 B11,B12
C11 = PEEK(5), C12 = PEEK(6)
′从内存单元 5,6中读数据并赋予 C11,C12
DEF SEG ′取消设定的内存段地址
A11$ = STR$(A11), A12$ = STR$(A12)
′数值型数据转换成字符型数据
B11$ = STR$(B11), B12$ = STR$(B12)
′数值型数据转换成字符型数据
64
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
C11$ = STR$(C11), C12$ = STR$(C12)
′数值型数据转换成字符型数据
X$ = A11$ + A12$ + B11$ + "."
+ B12$ + C11$ + C12$
X = VAL(X$)
′将字符串还原成十进制实数 ( X坐标位移值 )
X = INT(X * 1000 +0.5) / 1000
LOCATE 4,52, PRINT SPACE$(10)
LOCATE 4,52, PRINT X
END
65
SDUT
数据采集与处理
9.3 BCD码并行数字信号的采集
将以上汇编程序编译成一个目标文件,
并与 DCLZ 程序的目标文件连接成一个数
据采集程序 CAIZI。
运行 CAIZI程序,即可将 X坐标位移
值从 8255板卡经内存单元传送到相应的
Quick BASIC 程序中去 。
66
SDUT
数据采集与处理
第 9章 数字信号的采集
9.4 车速脉冲信号的采集计数
1,车速脉冲信号的变换
问题提出:
在对车辆的车速进行路面测试时,如
何得到车辆的直线行驶速度?
67
SDUT
数据采集与处理
9.4 车速脉冲信号的采集计数
解决方法:
一般在车辆的后部增加一个测量轮。
测量轮的旋转轴上套装一个有 60个齿的
齿盘 。
68
SDUT
数据采集与处理
9.4 车速脉冲信号的采集计数
在齿盘上
① 在侧面装反射式光电传感器
②面对圆周装磁阻式传感器
123
1 - - 拖拉机 2 - - 测试机架 3 - - 光电传感器
4 - - 齿形编码盘 5 - - 测量轮
图1 车辆工作速度测试装置
45
69
SDUT
数据采集与处理
9.4 车速脉冲信号的采集计数
1 2 3
1 - - 测量轮 2 - - 齿形编码盘
3 - - 反射式光电传感器 4 - - 安装机架
4
图2 位移测试装置
70
SDUT
数据采集与处理
9.4 车速脉冲信号的采集计数
工作原理:
当齿盘旋转一个节距时,传感器转换
输出一个近似于正弦波的信号,该信号经
滤波、放大和整形后,变成一个脉冲信号,
齿盘旋转一周,传感器转换输出 60个脉冲 。
由于测量轮是一个从动轮,即车辆前
进时带动该轮旋转。测量轮的圆周速度就
是车辆的车速,因此有如下关系:
71
SDUT
数据采集与处理
9.4 车速脉冲信号的采集计数
)19( ???? NDv ?
式中 D — 测量轮直径 ( mm)
N — 测量轮转速 ( r/ min)
由式 ( 9-1) 可知,只要测量出测量轮
的转速,就可以得到车辆的车速。
那么,如何得知测量轮转速 N 呢?
72
SDUT
数据采集与处理
9.4 车速脉冲信号的采集计数
由于测量轮每转一周输出 60个脉冲,
只需用计数器对脉冲信号在一秒钟内计
数,然后按一定关系式可算出转速。
2,脉冲信号的处理
设计数器的计数值为 C,测量轮每转
一周传感器输出的脉冲数为 P,计数时间
为 t,测量轮转速为 N( r / min),则有如
下关系式成立,
73
SDUT
数据采集与处理
9.4 车速脉冲信号的采集计数
)29(
60
???? NtPC
整理式 ( 9-2),可得到测量轮转速
的公式,
)39(60 ?
?
?
tP
CN
74
SDUT
数据采集与处理
9.4 车速脉冲信号的采集计数
用式 ( 9-3 ) 计算出测量轮的转速 N,
然后将 N代入式 ( 9-1 ),即可得到车辆的
车速 。
由此可知,关键是知道 t 秒内的脉冲
计数值 。
75
SDUT
数据采集与处理
9.4 车速脉冲信号的采集计数
3,脉冲信号的采集计数
采集计数方法
① 硬件采集计数
② 软件采集计数
脉冲信号硬件采集计数
自习。
76
SDUT
数据采集与处理
9.4 车速脉冲信号的采集计数
软件采集计数
该方法只需要很简单的接口电路,再
配以相应的程序,就能完成脉冲信号的采
集计数。
⑴ 脉冲信号采集接口
接口电路如图 9.8所示 。
77
SDUT
数据采集与处理
9.4 车速脉冲信号的采集计数
I O W
R E S E T
A L E
PC 总线



WR
CS
8 2 5 5 A
I O R RD
R E S E T
A
1
PC
0
.
.
.
D
0
D
7
.
.
.
D
0
D
7
0
A0
A
A
1
A
4 9
A~
图9, 8 软件脉冲信号采集计数接口
78
SDUT
数据采集与处理
9.4 车速脉冲信号的采集计数
⑵ 脉冲信号采集计数程序的编程
在用程序对脉冲信号计数时,仅在脉
冲上升沿到来时计数,其它时候均不计数,
如图 9.9所示。
图 9.9 用程序对脉冲信号计数
计数 A=1
A=0
79
SDUT
数据采集与处理
9.4 车速脉冲信号的采集计数
设 8255的端口地址如表 9.2所示 。
表 9.2 8255A端口地址
I/ O口 地 址
A口
B口 0305H
C口 0306H
控制寄存器 0307H
0304H
80
SDUT
数据采集与处理
9.4 车速脉冲信号的采集计数
设从 C口位对脉冲信号不断采集计数,
每隔 1秒钟显示脉冲信号的计数值,则可
编出相应的计数程序。
计数程序采用以下变量:
S —
A —
A = 1 表示 PC0位是高电平
A = 0 表示 PC0位是低电平
统计脉冲数 ( 计数 )
反映 PC0位电平的变化
81
SDUT
数据采集与处理
9.4 车速脉冲信号的采集计数
B —
B = 1 表示已计数
B = 0 表示未计数
计数条件:
当 A = 1
其他情况不计数。
计数标志变量,表示计数与否
且 B = 0 时, S = S + 1
82
SDUT
数据采集与处理
9.4 车速脉冲信号的采集计数
Quick BASIC 程序如下,
DECLARE SUB CAIZI ( )
DIM SHARED C%
CLS
S% = 0, B% = 0, C% = 0
LOCATE 8,30, PRINT TIME$
TIMER ON ′允许程序响应计时事件
ON TIMER(1) GOSUB 10
′每隔 1秒钟转子程序
83
SDUT
数据采集与处理
9.4 车速脉冲信号的采集计数
CALL CAIJI ′调用脉冲信号采集过程程序
END
10 LOCATE 8,30, PRINT TIME$
′当前的时间
LOCATE 12,30, PRINT C%
′显示脉冲信号计数值
RETURN
SUB CAIJI( )
5 A1 = INP (&H306) ′从 C口采集脉冲信号
84
SDUT
数据采集与处理
9.4 车速脉冲信号的采集计数
A = A1 AND &H1 ′判断 PC0位是否为 1
IF A = 1 THEN ′若 PC0位为 1
IF B% = 1 THEN 6
′若已计数,则跳转
S% = S% +1 ′否则, 对脉冲计数
C% = S%
B% = 1 ′置脉冲跳变标志变量 B≠0
LOCATE 10,30, PRINT S%
ENDIF
85
SDUT
数据采集与处理
9.4 车速脉冲信号的采集计数
6 IF A = 0 THEN B% = 0
′若不为 1,置脉冲跳变标志变量 B=0
GOTO 5 ′跳转
END SUB