山理工数据采集与处理课件09数字信号的采集_第1页
山理工数据采集与处理课件09数字信号的采集_第2页
山理工数据采集与处理课件09数字信号的采集_第3页
山理工数据采集与处理课件09数字信号的采集_第4页
山理工数据采集与处理课件09数字信号的采集_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

9.18255A可编程外围接口芯片9.2PS-2304数字量I/O接口板简介9.3BCD码并行数字信号的采集第9章数字信号的采集

9.4车速脉冲信号的采集计数第9章数字信号的采集传送方式并行串行数字信号的采集与其传送方式有关。采集方法用8255芯片采集并行数据用RS-232口采集串行数据第9章数字信号的采集9.18255A可编程外围接口芯片1.用途和结构

用途:用于接收并行传输的数字信号、脉冲信号和开关信号。结构其引脚和内部结构如图9.1所示。9.1

8255A可编程外围接口芯片图9.18255A-5引脚和内部结构框图

端口A端口C(高)端口C(低)端口BPA7~PA0PC7~PC4PC3~PC0PB7~PB0A组控制器数据总线缓冲B组控制器D7~D0计算机外界RDWRA1A0RESETCS读/写逻辑(b)9.1

8255A可编程外围接口芯片由此图可知:8255有3个端口

端口A是一个8位数据输出/输入锁存器。端口B是一个8位数据输入/输出锁存器。

端口C是一个8位数据输出/输入缓冲器。端口C还可以分成两个4位的端口。9.1

8255A可编程外围接口芯片有2组控制器

A组:控制端口A和端口C的高4位B组:控制端口B和端口C的低4位有数据总线缓冲、读/写逻辑芯片2.工作方式

8255A芯片有三种工作方式。9.1

8255A可编程外围接口芯片方式0—基本的输入/输出方式,特点⑴任何端口都可用做输入/输出⑵输出可被锁存,输入不能锁存⑶有16种输入/输出组态方式1—选通的输入/输出方式。9.1

8255A可编程外围接口芯片特点⑴A、B组各有一个8位数据口和一

4位控制/数据口⑵8位数据口的输入/输出均可锁存⑶端口C的4位传送8位数据口控制/状态信息它与方式0的不同之处在于:借助选通或应答式联络信号,把I/O数据与指定的端口进行发送或接收。

9.1

8255A可编程外围接口芯片方式2—带联络双向总线I/O方式。注意:此方式仅用于A口。特点⑴有一个8位双向数据口和一个5位控制端口C⑵输入/输出均可锁存⑶4位控制口用于8位数据端口的控制/状态信息9.1

8255A可编程外围接口芯片需要说明:在方式1和方式2中,并未将端口C的所有位都用于传送控制状态信息,剩余的各位仍然可以通过编程设定为输入/输出用。

以上介绍的各种工作方式及组态,都可以通过对8255A的初始化来实现。9.1

8255A可编程外围接口芯片3.初始化

8255A的初始化—将一个8位控制码写入8255A的控制寄存器。

基本要求:为了能正确地写入控制字,先要了解8255A控制寄存器中各位的情况。8255A控制寄存器如图9.2所示。9.1

8255A可编程外围接口芯片D7D6D5D4D3D2D1D0置方式标志:方式选择:端口A:端口C高端:方式选择:端口B:端口C低端:图9.28255A控制寄存器00=方式0;01=方式11X=方式21=有效1—输入,0—输出1—输入,0—输出0=方式0,1=方式11—输入,0—输出1—输入;0—输出9.1

8255A可编程外围接口芯片∴8255初始化——对8255控制寄存器的各位赋值。

【例9.1】设8255A的控制寄存器的地址为63H,

初始化A、C口为输入口,B口为输出口。编写对8255A初始化的汇编程序。解:⑴确定控制码:10011001⑵8088汇编程序如下:9.1

8255A可编程外围接口芯片MOVAL,63HMOV

DI,ALMOVAL,10011001B

;置A、C口为输入口,B口为输出口OUTDI,AL

;把10011001B写入8255A控制寄存器第9章数字信号的采集9.2PS-2304数字量I/O接口板简介1.概述

主要性能为PC/ISA总线型接口板,广泛用于PC微机。板上有三片8255A芯片及若干个逻辑器件组成,通过编程自由设定输入输出。9.2

PS-2304数字量I/O接口板简介2.主要技术指标输入输出路数:输入输出电平:控制方式:电源要求:72路TTL程序查询或中断服务DC+5V,耗电流<500mA环境温度:-10℃~50℃9.2

PS-2304数字量I/O接口板简介2.使用地址开关的设定

PS-2304板卡上有一个地址开关K,如图9.3所示的。图9.3地址开关KON1A52A63A74A85A96A1079.2

PS-2304数字量I/O接口板简介设定其各位,就可以确定板卡端口及控制寄存器的地址。

由图9.3可以知道,地址开关K为6位有效。

ON/OFF状态与计算机地址线位内容对应关系是:ON—An=1OFF—An=09.2

PS-2304数字量I/O接口板简介地址开关位与计算机地址线位的对应关系如下:K1——A5K2——A6K3——A7K4——A8K5——A9K6——A10

K的地址范围为0300~031F,共32个连续地址。9.2

PS-2304数字量I/O接口板简介

表9.1PS-2304板地址分配

芯片

A口

B口

C口

控制寄存器JC90300H0301H0302H

0303HJC100304H0305H0306H

0307H

JC110308H0309H030AH030BH0318H~031BH写入:开中断031CH~031FH写入:关中断9.2

PS-2304数字量I/O接口板简介板上接口插座9.2

PS-2304数字量I/O接口板简介

Z1,Z2插座各脚号与8255A的三个端口对应关系如图9.5(a)所示。

Z3插座各脚与8255A的三个端口的对应关系如图9.5(b)所示。9.2

PS-2304数字量I/O接口板简介接口板初始化【例9.2】将8255A芯片设置成24路输入状态。解:其控制命令字为

10011011B,即十六BASIC语句为:OUT

&H303,&H9B进制的9BH。9.2

PS-2304数字量I/O接口板简介汇编程序为:MOVAL,303H;确定JC9的控制寄存器地址MOVDI,ALMOVAL,9BHOUT

DI,AL;把控制字9BH写入

JC9的控制寄存器9.2

PS-2304数字量I/O接口板简介8088寄存器结构:通用寄存器⑴数据寄存器AXAH:AL:字节乘字节乘、字节除、字节I/O、转移、十进制算术运算9.2

PS-2304数字量I/O接口板简介BXBH:BL:CXCH:CL:CX:串操作、循环次数转移变量移位、循环控制9.2

PS-2304数字量I/O接口板简介DXDH:DL:字乘、字除法、间接I/O⑵地址指针寄存器

SP—BP—⑶变址寄存器

SI—DI—堆栈指针寄存器基址指针寄存器

源变址寄存器目的变址寄存器9.2

PS-2304数字量I/O接口板简介段寄存器

CS—SS—DS—ES—控制寄存器IP—F—代码段寄存器堆栈段寄存器数据段寄存器附加数据段寄存器指令指针寄存器标志寄存器第9章数字信号的采集9.3BCD码并行数字信号的采集

以BCD码传送并行数字信号,在工程中是一种常见方法,例如三坐标测量机坐标位移信号的传送。

三坐标测量机是一种测量设备,用来测量工件上任意点的X、Y、Z三个坐标值。9.3BCD码并行数字信号的采集

三坐标测量机xyzZ坐标轴y坐标轴x坐标轴9.3BCD码并行数字信号的采集

三坐标测量机测量零件电测头光栅尺9.3BCD码并行数字信号的采集

三坐标测量机测量汽车外轮廓9.3BCD码并行数字信号的采集

三坐标测量机测量曲面电测头工件支承件9.3BCD码并行数字信号的采集

三坐标测量机测量发动机气缸9.3BCD码并行数字信号的采集

三坐标测量机对测量数据的处理9.3BCD码并行数字信号的采集

为此,在三坐标测量机的每个坐标方向上安装了一根光栅尺来检测机器该方向坐标位置的变化。光栅尺输出的信号传送到与之相配套的数显仪。数显仪处理后①用数码管以6位十进制实数+1符号的形式,显示坐标值。②以BCD码并行输出坐标位移信号。9.3BCD码并行数字信号的采集

光栅尺与数显仪光栅尺定尺数显仪数码管光栅尺动尺光栅尺9.3BCD码并行数字信号的采集

问题:如何用PC机和PS-2304接口板采集X坐标的坐标位移值?如何将采集到的BCD数字信号存入内存和还原成十进制实数?为了简化问题的讨论,这里只涉及无符号坐标值的采集。9.3BCD码并行数字信号的采集

由第2章编码一节可以知道:

在用BCD码表示十进制数时,1

位十进制数用4位二进制码表示,所以6位十进制数须用24(6×4)位二进制码表示。8255A的A、B、C端口均为8

位,即每个端口一次只能采集8位二进制码(2位十进制数)。9.3BCD码并行数字信号的采集

对于6

位十进制数,须按图9.6所示,A口采集十进制数的最高两位、B口采集中间两位、C口采集最低两位。9.3BCD码并行数字信号的采集

数显仪插座与PS-2304板连接:图9.68255A端口采集数据的分配A口B口C口1234569.3BCD码并行数字信号的采集

A口123→PA722→PA621→PA520→PA4222→PA221→PA120→PA023→PA3B口323→PB722→PB621→PB520→PB4422→PB221→PB120→PB023→PB3C口523→PC722→PC621→PC520→PC4622→PC221→PC120→PC023→PC31234569.3BCD码并行数字信号的采集

选择

JC9芯片的

PC0位输入电测头发出的采样脉冲信号。

由于B口采集的8位BCD码中,高4位对应十进制整数,低4位对应十进制小数,因此需要把8位

BCD码分开。如何把8位BCD码分开?注意:在0~9的范围内,二进制码与BCD码是相同的。9.3BCD码并行数字信号的采集

用8255芯片采集BCD码数据并在屏幕上显示还原的十进制实数的过程如下:把采集到的3组BCD码拆分成6个4位二进制码;分别存入内存中的6个存储单元;用QuickBASIC语言的PEEK语句从内存中把数据读入到程序中的变量;作字符串操作,将采集到的BCD并行数字信号还原成十进制实数。9.3BCD码并行数字信号的采集

8088汇编程序如下:.MODELMEDIUM.STACK256

;堆栈空间为256;.DATABCD1 DB

?BCD2 DB?BCD3 DB

?9.3BCD码并行数字信号的采集

BIN11DB?BIN12DB?BIN21DB

?BIN22DB ?BIN31DB ?BIN32DB ?;.CODE

PUBLIC PORT;说明成公共块;以便QuickBASIC程序调用9.3BCD码并行数字信号的采集

PORT PROC FARPUSH BP ;保存原基址寄存器指针

MOV BP,SP ;把堆栈指针放入基址寄存器

PUSH DS ;保存原数据段地址

PUSHSI

PUSH DISUB AX,AX ;把0放入AXPUSH AXMOV AX,_DATA;数据段的地址放入DSMOV DS,AX9.3BCD码并行数字信号的采集

MOV AX,7000H;设置段地址为7000HMOV ES,AXMOV DI,1 ;设置内存起始单元

MOV DX,302H;设置状态口地址WAIT1:INAL,DX ;读入状态信息

TEST AL,01H;检查状态信息是否为1

JNZ WAIT1

;若为1,循环等待测头离

;开前一个采样点WAIT2:INAL,DX ;从状态口读入状态信息

TEST AL,01H;检查状态信息是否为09.3BCD码并行数字信号的采集

JZ WAIT2

;若为0,循环等待测头接触工

;件的另一个采样点

CALLACQUDATA;调用数据采集子程序

CALLHCONVT

;调用数据拆分子程序

CALLSTORE

;调用数据存储子程序

POPAX POPDI POPSI

POPDS

;恢复原数据段地址

POPBP ;恢复原基址寄存器指针9.3BCD码并行数字信号的采集

RET

;退出汇编程序PORT ENDP;采集数据ACQUDATA PROC NEARPUSH DX PUSH SI PUSH DI

PUSH AXPUSHCX

MOV AL,10011011B;设置控制字9.3BCD码并行数字信号的采集

MOVDX,307H

;初始化8255三口为输入口

OUTDX,AL

MOVDX,304H

IN AL,DX

;A口采集第一组BCD码

MOVDI,OFFSETBCD1

MOV[DI],AL

;存入BCD1中保存

MOVDX,305H

INAL,DX

;从B口采集第二组BCD码

MOVDI,OFFSETBCD2MOV[DI],AL ;存入BCD2中保存9.3BCD码并行数字信号的采集

MOVDX,306HIN AL,DX

;从C口采集第三组BCD码

MOVDI,OFFSETBCD3 MOV[DI],AL

;存入BCD3中保存

POPCX POPAX

POPDIPOPSI

POPDX RETACQUDATA ENDP9.3BCD码并行数字信号的采集

;把一组BCD码拆分成二个4位二进制码HCONVT PROCNEAR PUSH BX PUSH SI PUSH DI

MOVBX,OFFSETBCD1

;BCD1的地址送入BX寄存器

MOVSI,OFFSETBIN11

;BIN11的地址送入SI寄存器

MOVDI,OFFSETBIN12

;BIN12的地址送入DI寄存器9.3BCD码并行数字信号的采集

CALLHCONVTSUB

;对第一组BCD码进行拆分

MOVBX,OFFSETBCD2

;BCD2的地址送入BX寄存器

MOVSI,OFFSETBIN21

;BIN21的地址送入SI寄存器

MOVDI,OFFSETBIN22

;BIN22的地址送入DI寄存器

CALLHCONVTSUB

;对第二组BCD码进行拆分9.3BCD码并行数字信号的采集

MOVBX,OFFSETBCD3

;BCD3的地址送入BX寄存器

MOVSI,OFFSETBIN31

;BIN31的地址送入SI寄存器

MOVDI,OFFSETBIN32

;BIN32的地址送入DI寄存器

CALLHCONVTSUB

;对第三组BCD码进行拆分

POPDI

POPSI

POPBX9.3BCD码并行数字信号的采集

RETHCONVT ENDP;拆分BCD码HCONVTSUB PROCNEARPUSHCXMOVAL,[BX]

;将BX寄存器中的内容传送到AL寄存器

MOVCL,4

;确定移位次数(4次)

SHRAL,CL

;将AL逻辑右移4次

MOV[SI],AL

;将AL中的内容传送到SI9.3BCD码并行数字信号的采集

MOVAL,[BX] ;将BX中的内容传送到AL

ANDAL,0FH

;屏蔽高4位

MOV[DI],AL

;将AL中低4位的内容传送到DI

POPCX RET HCONVTSUB ENDP;把数据存入内存STORE PROCNEAR PUSH ES9.3BCD码并行数字信号的采集

PUSHSI MOVSI,OFFSETBIN11 MOVAL,[SI] MOVBYTEPTRES:[DI],AL

;把BIN11中的内容送入内存单元1

INC DI

;内存单元地址+1

MOVSI,OFFSETBIN12 MOVAL,[SI] MOVBYTEPTRES:[DI],AL

;把BIN12中的内容送到内存单元29.3BCD码并行数字信号的采集

INC

DI

;内存单元地址+1

MOVSI,OFFSETBIN21 MOVAL,[SI] MOVBYTEPTRES:[DI],AL

;把BIN21中的内容送到内存单元3

INC

DI;内存单元地址+1

MOV

SI,OFFSETBIN22 MOV

AL,[SI]MOV

BYTEPTRES:[DI],AL

;把BIN22中的内容送到内存单元49.3BCD码并行数字信号的采集

INC DI

;内存单元地址+1

MOV

SI,OFFSETBIN31

MOV

AL,[SI] MOV

BYTEPTRES:[DI],AL

;把BIN31中的内容送到内存单元5

INC DI

;内存单元地址+1

MOV

SI,OFFSETBIN32 MOV

AL,[SI] MOV

BYTEPTRES:[DI],AL

;把BIN32中的内容送到内存单元69.3BCD码并行数字信号的采集

POP SI POP ES RETSTORE ENDPEND 以上程序在计算机内存中段地址为7000,起始单元为1的连续6个内存单元中存放采集到的X坐标位移值。9.3BCD码并行数字信号的采集

对于Y、Z坐标值,同样可参照以上介绍的方法,完成坐标位移值的采集、拆分和存储等操作。下面的程序完成还原十进制实数的操作。DECLARESUBPORT()CALLPORTDEFSEG=&H7000

′设定内存段地址为7000HDCLZ源程序如下:9.3BCD码并行数字信号的采集

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

DEFSEG

′取消设定的内存段地址

A11$=STR$(A11):A12$=STR$(A12)

′数值型数据转换成字符型数据

B11$=STR$(B11):B12$=STR$(B12)

′数值型数据转换成字符型数据9.3BCD码并行数字信号的采集

C11$=STR$(C11):C12$=STR$(C12)

′数值型数据转换成字符型数据

X$=A11$+A12$+B11$+"."+B12$+C11$+C12$

X=VAL(X$)

′将字符串还原成十进制实数(X坐标位移值)

X=INT(X*1000+0.5)/1000LOCATE4,52:PRINTSPACE$(10)LOCATE4,52:PRINTXEND9.3BCD码并行数字信号的采集

将以上汇编程序编译成一个目标文件,并与DCLZ程序的目标文件连接成一个数据采集程序CAIZI。运行CAIZI程序,即可将X坐标位移值从8255板卡经内存单元传送到相应的QuickBASIC程序中去。第9章数字信号的采集9.4车速脉冲信号的采集计数1.车速脉冲信号的变换

问题提出:在对车辆的车速进行路面测试时,如何得到车辆的直线行驶速度?9.4

车速脉冲信号的采集计数解决方法:一般在车辆的后部增加一个测量轮。测量轮的旋转轴上套装一个有60个齿的齿盘。9.4

车速脉冲信号的采集计数在齿盘上①在侧面装反射式光电传感器②面对圆周装磁阻式传感器9.4

车速脉冲信号的采集计数9.4

车速脉冲信号的采集计数工作原理:当齿盘旋转一个节距时,传感器转换输出一个近似于正弦波的信号,该信号经滤波、放大和整形后,变成一个脉冲信号,齿盘旋转一周,传感器转换输出60个脉冲。由于测量轮是一个从动轮,即车辆前进时带动该轮旋转。测量轮的圆周速度就是车辆的车速,因此有如下关系:9.4

车速脉冲信号的采集计数式中

D—测量轮直径(mm)

N—测量轮转速(r/min)

由式(9-1)可知,只要测量出测量轮的转速,就可以得到车辆的车速。

那么,如何得知测量轮转速

N呢?

9.4

车速脉冲信号的采集计数

由于测量轮每转一周输出60个脉冲,只需用计数器对脉冲信号在一秒钟内计数,然后按一定关系式可算出转速。2.脉冲信号的处理

设计数器的计数值为C,测量轮每转一周传感器输出的脉冲数为P,计数时间为t,测量轮转速为N(r/min),则有如下关系式成立:9.4

车速脉冲信号的采集计数整理式(9-2),可得到测量轮转速的公式:9.4

车速脉冲信号的采集计数用式(9-3)计算出测量轮的转速N,然后将N代入式(9-1),即可得到车辆的车速。由此可知,关键是知道

t秒内的脉冲计数值。9.4

车速脉冲信号的采集计数3.脉冲信号的采集计数采集计数方法①硬件采集计数②软件采集计数脉冲信号硬件采集计数自习。9.4

车速脉冲信号的采集计数软件采集计数该方法只需要很简单的接口电路,再配以相应的程序,就能完成脉冲信号的采集计数。⑴脉冲信号采集接口接口电路如图9.8所示。9.4

车速脉冲信号的采集计数9.4

车速脉冲信号的采集计数⑵脉冲信号采集计数程序的编程在用程序对脉冲信号计数时,仅在脉冲上升沿到来时计数,其它时候均不计数,如图9.9所示。图9.9用程序对脉冲信号计数计数A=1A=09.4

车速脉冲信号的采集计数设8255的端口地址如表9.2所示。表9.28255A端口地址

I/O口地址A口B口0305H

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论