ImageVerifierCode 换一换
你正在下载:

Pm511PU.docx

[预览]
格式:DOCX , 页数:33 ,大小:592.47KB ,
资源ID:23344769      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23344769.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Pm511PU.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Pm511PU.docx

1、Pm511PU多功能数据采集版PM511PU1.概 述PM511PU是一块PC104总线的多功能数据采集板,适用于工业现场、实验室、嵌入式设备等多种场合,具有16路A/D转换通道、4路D/A通道、24路可编程开关量输入输出、3路计数通道,也可根据用户需要选配功能,节约工程成本。主要技术指标 模入部分:输入通道数:单端16路,双端8路输入信号范围:010V,-5V+5V,-10V+10V输入精度:12BIT增益范围:11000硬件增益AD频率:AD转换时间10uS A/D启动方式:软件启动/定时启动/外触发A/D转换结束识别:查询方式/中断方式 模出部分:输出通道数:4路独立D/A输出范围:05

2、V,-5V+5V输出精度:12BIT 开关量部分:使用器件:82C55开关通道:24路可编程TTL电平开关量输入、输出 计数部分:使用器件:82C54计数通道:3路最大计数频率:10MHz 电源功耗:+5V(10%)400mA 使用环境要求:工作温度:070或-40+80相对湿度:40%80% 存贮温度:-40+85外形尺寸:长高=91mm96mm2.工作原理PM511PU由A/D部分,D/A部分,I/O部分,计数部分等四个功能部分构成。开关量加入上拉下拉功能,使上电状态受控。2.1布局图图1 PM511PU布局图2.2 A/D部分A/D采用BB公司的ADC774芯片或AD公司的AD1674芯

3、片,实现12BIT,100KHz的数据采集,有调零调满电路和单、双极性以及单、双端选择跳线,并配有滤波电路,信号由双排插针接口J1引出。2.3 D/A部分D/A采用BB公司的DAC7625芯片, 可以实现12BIT 4通道模拟量输出,通过调整跳线JP1实现各档电压输出,信号由双排插针接口J1引出。2.4 开关量输入输出部分24路可编程开关量输入输出,由一片8255实现,信号由双排插针J3引出。2.5 脉冲计数部分 3路计数通道,由一片82C54实现,信号由双排插针J3引出。3. 操作说明3.1 跳线功能参考表表2 跳线功能对照表JP1JP2JP3JP4JP7JP8JP9D/A输出方式选择单双端

4、选择单双极性选择量程选择中断选择地址选择开关初值选择下图为跳线参考图JP1 (D/A输出方式选择) JP2(A/D单双端选择)JP3 、JP4本卡由这两个跳线组合实现A/D量程及单双极性的变化。JP7 (中断选择)本卡提供中断5,7,12,可以通过JP4来选择。JP8 (基地址选择)基地址由跳线JP7控制,地址分配如下所示:JP9 (开关量上电状态选择)开关量拉高 开关量拉低3.2 I/O地址参照表表1 端口地址与功能表端口操作地址读操作写操作基地址+0H启动A/D转换A/D通道输出/单双端选择基地址+1H状态寄存器(详细功能见表3)A/D转换方式与中断控制寄存器基地址+2H读A/D转换结果清

5、中断标志位A/D定时启动分频系数基地址+4H无输出D/A通道基地址+6H 无输出D/A数据基地址+8H82C55 PA口82C55 PA口基地址+9H82C55 PB口82C55 PB口基地址+AH82C55 PC口82C55 PC口基地址+BH82C55控制字82C55控制字基地址+CH82C54 0通道82C54 0通道基地址+DH82C54 1通道82C54 1通道基地址+EH82C54 2通道82C54 2通道基地址+FH/82C54控制字3.3调节电位器说明3.3.1 A/D相关电位器W1:单极性零点调节W2:单、双极性满度调节W3:双极性零点调节3.3.2 D/A相关电位器W4:D

6、/A输出通道一零点调节W5:D/A输出通道一满度调节W6:D/A输出通道二零点调节W7:D/A输出通道二满度调节W8:D/A输出通道三零点调节W9:D/A输出通道三满度调节W10:D/A输出通道四零点调节W11:D/A输出通道四满度调节3.4 A/D操作 A/D操作有四种方式:软件启动、定时启动和外触发启动以及外触发控制定时启动。3.4.1相关寄存器1) 控制/状态寄存器参见表3,此寄存器为一个字节,当进行读操作时可以得到当前A/D转换的状态;当进行写操作时可以控制A/D转换方式。表3 控制/状态寄存器端口地址操作命令D7D6D5D4D3D2D1D0基地址+1H字节读/写nchINT3INT2

7、INT1IEADEADCSAD读写,1:自动切换通道0:定时或者外触发时固定通道读1:定时中断标志位写1:使能定时产生中断读1:AD转换结束中断标志位写1:使能AD转换结束产生中断读 1:外触发信号中断标志位写 1:使能外触发信号产生中断读写, 3:外触发信号控制定时启动有效(6)2:外触发信号单次启动AD转换有效(4)1:定时启动AD有效(2) 0:软件启动AD有效(0)只读,1:表示正在转换0:表示转换结束注意:当定时启动有效时,外触发启动无效。2) AD通道选择/启动AD寄存器(基地址0)参见表4,此寄存器为一个字节,当进行写操作时选择通道;当进行读操作时启动A/D转换。表4 A/D通道

8、选择寄存器端口地址命令D7D6D5D4D3D2D1D0功能基地址+0H字节写/0 015000单端选通道基地址+0H字节写/100701双端选通道基地址+0H字节读/启动A/D转换*此寄存器D4位选择单双端输入。3)AD结果/分频系数/中断状态寄存器(基地址2)参见表5、表6,当对此寄存器进行读操作时以字方式,低12位有效,返回A/D转换结果,同时清中断标志位,使下一次中断可以产生。当对此寄存器进行写操作时以字节方式,低5位有效,设定定时启动A/D转换时的分频系数。表5 A/D结果寄存器端口地址命令D7D6D5D4D3D2D1D0基地址+2H字读BIT7BIT6BIT5BIT4BIT3BIT2

9、BIT1BIT0基地址+3H/BIT11BIT10BIT9BIT8由此寄存器返回的码值与实际电压值有如下对应关系:0V10V: 实际值=(码值/409510)V;-5V+5V: 实际值=(码值/409510-5)V;-10V+10V:实际值=(码值/409520-10)V; 3.4.2软件启动A/D软件启动A/D流程如图2。 3.4.3定时启动A/D转换本卡为A/D转换提供一个频率为200KHz的时钟,用户可以对其进行分频,用以定时启动AD转换。分频系数与定时启动频率有如下关系: 定时启动频率200KHz(分频系数1)分频系数范围是1-31定时启动A/D流程如图3:3.4.4外触发启动A/D转

10、换注意外触发信号必须为TTL电平,否则可能损坏板卡。外触发信号的高低电平时间均要大于100nS。外触发启动A/D流程如图3:3.4.5 关于单端、双端 单端采样时,采样信号使用同一个地,双端采样时,高八路通道作为低八路通道的负端,采样信号可不共地,分别接到相应通道地正端和负端,因此双端通道数是单端通道数的一倍。3.4.6 关于中断 本卡提供两个中断源,AD转换结束中断和外触发中断,这两个中断不可以同时使用,当外触发中断有效时,AD转换结束后不再申请中断。外触发中断信号的高低电平时间均要大于100ns。3.5 D/A操作3.5.1相关寄存器1) D/A通道选择寄存器参见表7,此寄存器为一个字节,

11、只能进行写操作以选择通道表7 D/A通道选择寄存器端口地址命令D7D6D5D4D3D2D1D0功能基地址+4H字节写/00选中通道1基地址+4H字节写/01选中通道2基地址+4H字节写/10选中通道3基地址+4H字节写/11选中通道42) D/A输出寄存器参见表5,此寄存器为一个字,只能进行写操作。码值与实际电压值关系请参考A/D结果寄存器部分。表8 D/A输出寄存器端口地址命令D7D6D5D4D3D2D1D0基地址+6H字读BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0基地址+6H/BIT11BIT10BIT9BIT8其中BIT0为D/A输出的低位,BIT11为D/A输出的

12、高位。因此D/A输出的码值范围为04095单极性时码值与实际电压关系遵照下面公式:实际值=码值40955(V)双极性时码值与实际电压关系遵照下面公式:实际值=码值409510 -5(V)3.5.2操作步骤 先选择输出通道,然后输出电压。注意输出电压操作为字操作。3.6开关量操作82C55内部寄存器映射到本卡上对应空间如表9所示。表9 82C55映射寄存器地 址D7D6D5D4D3D2D1D0说明基地址+8HD7D6D5 D4D3D2D1D082C55 PA口基地址+9HD7D6D5D4D3D2D1D082C55 PB口基地址+AHD7D6D5D4D3D2D1D082C55 PC口基地址+BHD

13、7D6D5D4D3D2D1D082C55 控制字82C55有3种工作方式: 方式0基本输入输出方式 方式1选通输入输出方式 方式2双向传送方式这3种工作方式由控制字决定。其中以方式0最常用,当工作在方式0下时,控制字的D7=1,D6=0,D5=0,D2=0,由D4、D3、D1、D0四位决定A口、B口、C口的输入输出方式,表10标明了82C55工作在方式0下时控制字的D4、D3、D1、D0与三个端口输入输出方式的对应关系。表10 82C55方式0端口定义D4D3D1D0A口C口(高四位)B口C口(低四位)0000输出输出输出输出0001输出输出输出输入0010输出输出输入输出0011输出输出输入

14、输入0100输出输入输出输出0101输出输入输出输入0110输出输入输入输出0111输出输入输入输入1000输入输出输出输出1001输入输出输出输入1010输入输出输入输出1011输入输出输入输入1100输入输入输出输出1101输入输入输出输入1110输入输入输入输出1111输入输入输入输入详细操作请参照82C55使用手册。3.7计数器部分计数器由一片82C54完成,可以完成对最高频率为10M的脉冲进行计数,82C54内部寄存器映射到本卡上对应空间如表11所示。表11 82C54映射寄存器地 址D7D6D5D4D3D2D1D0说明基地址+CHD7D6D5D4D3D2D1D0计数器0基地址+DH

15、D7D6D5D4D3D2D1D0计数器1基地址+EHD7D6D5D4D3D2D1D0计数器2基地址+FHSC1SC0RL1RL0M2M1M0BCD控制字 82C54的全部功能是由CPU编程设定的。CPU通过输出指令给82C54装入控制字,从而设定其功能。各位的功能见表12表15: 表12 SC1、SC0计数器选择SC1 SC0选 择 计 数 器0 0选择0#0 1选择1#1 0选择2#1 1非 法表13 RL1、RL0CPU读写操作RL1 RL0操 作 类 型0 0计数器封锁操作0 1读写计数器低8位1 0读写计数器高8位1 1先读写低8位,后读写高8位表14 M2、M1、M0工作方式选择M3

16、 M2 M1计 数 工 作 方 式0 0 0方 式 00 0 1方 式 10 1 0方 式 20 1 1方 式 31 0 0方 式 41 0 1方 式 5表15 BCD计数方式选择BCD数 码 形 式0十六位二进制计数1四位十进制 ( BCD ) 码计数82C54的三个计数器是独立的16位减法计数器。计数器的工作方式由工作方式寄存器确定。计数器在编程写入初始值后,在某些方式下计数到0后自动预置,计数器连续工作。CPU访问计数器时,必须先设定工作方式控制字中的RL1、RL0位。计数器对CLK计数输入端的输入信号进行递减计数。选通信号GATE控制计数工作的进行,其功能如表16所示。表16 选通信号

17、 GATE 的功能低电平或进入低电平上 升 边 沿高 电 平方式0禁止计数-允许计数方式1-1. 初始化和计数2. 下一个时钟后清除输出-方式21. 禁止计数2. 使输出立即变为高电平1. 重新装入计数器2. 启动计数允许计数方式31. 禁止计数2. 使输出立即变为高电平初始化和计数允许计数方式4禁止计数计数未结束时初始化和计数允许计数方式5-初始化和计数-82C54 的三个计数器按照各工作方式寄存器中控制字的设置进行工作。可以选择的工作方式有六种。这六种方式是:方式0:计数结束时中断。编程后自动启动,计数器减1计数,计数到终点(减至0 )后输出高电平,可用于中断请求信号,GATE 为低电平时

18、停止计数,回到高电平后继续往下计数。再次启动要重新装入计数值或重新编程。方式1:可编程单脉冲输出。GATE上升沿进行初始化并开始计数。输出低电平的宽度等于计数时间。单脉冲输出可用GATE上升沿多次触发。方式2:比率发生器。编程后重复地循环计数。计数到终点时输出一个时钟周期宽度的低电平脉冲,自动初始化后继续计数。用GATE的上升沿初始化,并开始计数。GATE为低电平时停止计数。方式3:方波发生器。这种方式是在编程后重复地循环计数,输出波形为方波。如果初始计数值为偶数,每个时钟输入脉冲使计数器减2,达到计数终点时输出电平改变。如果初始计数值为奇数,则输出高电平时第一个时钟输入脉冲使计数器减1,随后

19、每个输入脉冲使计数器减2;输出为低电平时第一个时钟输入脉冲使计数器减3,随后每个输入脉冲使计数器减2,到达计数终点时输出电平改变,计数器自动初始化后继续计数。用GATE的上升沿初始化并开始计数,GATE为低电平时停止计数。方式4:软件启动选通脉冲输出。编程后自动启动,计数到终点后输出一个时钟周期的低电平脉冲。用GATE的上升沿初始化并开始计数,GATE为低电平时停止计数。 方式5:硬件启动选通脉冲输出。编程后,等待 GATE 上升沿进行初始化并开始计数,计数到终点后输出一个时钟周期的低电平脉冲,计数器开始计数后不受 GATE 信号电平的影响,这种选通脉冲的输出可用GATE的上升沿多次触发。在工

20、作方式控制字中,如果设置计数器锁存操作,则该控制字中工作方式选择位M1、M0 和计数方式选择位BCD无效。即设置锁存操作时不影响计数器的工作方式,计数器锁存操作,是在计数器计数过程中,在不影响正在进行的计数操作的条件下,把当前的计数值锁存到寄存器,供CPU读取,这时在工作方式控制字中,SC1、SC0 指定要锁存的计数器,RL1、RL000表示锁存操作,其余4位无效,计数器按原来设定的方式工作。当本卡 AD 转换选择定时器定时触发启动工作方式时,一般将 82C54的工作方式设置为方式2( 即比率发生器), 3.8上电状态A/D选通的通道为0通道,D/A选通的通道为0通道,D/A4个通道输出为最小

21、值,单极性为0V,双极性为5V。24路开关量全部为输入。3.9跳线出厂设置地址为100H,A/D输入方式为010V,D/A输出方式为05V,中断没有接。4.接口定义4.1模拟量输入输出接口(J1)定义参见表20表20 模拟量接口定义表插座引脚号信号定义插座引脚号信号定义1A/D1(A/D1+)2A/D9(A/D1-)3A/D2(A/D2+)4A/D10(A/D2-)5A/D3(A/D3+)6A/D11(A/D3-)7A/D4(A/D4+)8A/D12(A/D4-)9A/D5(A/D5+)10A/D13(A/D5-)11A/D6(A/D6+)12A/D14(A/D6-)13A/D7(A/D7+)

22、14A/D15(A/D7-)15A/D8(A/D8+)16A/D16(A/D8-)17GND18GND19D/A420D/A321D/A222D/A123GND24GND25GND26GND4.2开关量及计数输入接口(J3)定义参见表21表21 开入接口定义表插座引脚号信号定义插座引脚号信号定义1GND2GND3GND4EIN5PB06PB17PB28PB39PB410PB511PB612PB713PC014PC115PC216PC317PC418PC519PC620PC721PA022PA123PA224PA325PA426PA527PA628PA729GND30GND31OUT032GAT

23、E033CLK034OUT135GATE136OCLK137OUT238GATE239CLK240OCLK 注: ClK0为8253计数通道0输入端 OUT0为8253计数通道0输出端 GATE0为8253计数通道0门控端 以此类推。EIN为外触发信号输入端OCLK为内部时钟信号输出端5. 编程举例5.1 C语言A/D采集示例#include stdio.h#include dos.h#include conio.hvoid main() int ch; /* 定义通道变量 */ float value10000; /* 定义数组变量 */ int d,i,j,base; /* 定义过程变量

24、*/ int max,min; clrscr(); /* 清屏 */ base=0x100; outportb(base+1,0); printf(nInput channle number:);/* 输入通道号 */ scanf(%d,&ch);outportb(base,ch);for(j=0;j1000;j+);/*延时等待通道切换完成*/ for(j=0;j100;j+) /* 设采样次数 */ inportb(base); /* 启动AD */ while(inportb(base+1)&1); /* 查询AD转换状态 */ d=inport(base+2)&0xfff; /* 读取

25、转换结果,字操作 */ valuej=d/4096.0*10; /* 将结果转换为电压值 */ for(j=0;j100;j+) /* 显示 */ printf(%10.3f,valuej); printf(npress any key to return.); while(!kbhit();下面的的程序使用频率为20KHz的时钟定时启动,对0通道采集200次。#include #include #include int base=0x100; /* 基地址为0x100 */void main() int j=0; unsigned short d; float v200; /* 保存转换后的电压值 */ clrscr(); outportb(base,0); /* 选择0通道 */ outportb(base+1,0x2); /* 选择定时启动AD方式 */ o

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

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