检测与报警的设计与开发Word文档下载推荐.docx

上传人:b****5 文档编号:19207425 上传时间:2023-01-04 格式:DOCX 页数:21 大小:159.58KB
下载 相关 举报
检测与报警的设计与开发Word文档下载推荐.docx_第1页
第1页 / 共21页
检测与报警的设计与开发Word文档下载推荐.docx_第2页
第2页 / 共21页
检测与报警的设计与开发Word文档下载推荐.docx_第3页
第3页 / 共21页
检测与报警的设计与开发Word文档下载推荐.docx_第4页
第4页 / 共21页
检测与报警的设计与开发Word文档下载推荐.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

检测与报警的设计与开发Word文档下载推荐.docx

《检测与报警的设计与开发Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《检测与报警的设计与开发Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。

检测与报警的设计与开发Word文档下载推荐.docx

而本设计中的输入电压为模拟信号,因此需要ADC0809进行模数转换,将采样电压转换为数字信号。

1.2ADC0809的功能分析

模/数转换是指通过一定的电路将模拟量转变为数字量,由于模拟量是连续的,而数字量是离散的,所以,一般在某个范围中的模拟量对应于某一数字量,这就是说,在A/D转换时,模拟量和数字量之间并不是一一对应的关系。

即从理论上,有一个转换精度的问题,转换精度反映了A/D转换器的实际输出接近理想输出的精确程度,A/D转换的精度通常是用数字量的最低有效位(LSB)来表示的,设数字量的最低度有效位于对应于模拟量△,这时,我们称△为数字量的最低有效位的当量,ADC0809采用的是逐位逼近A/D转换,逐位逼近A/D转换时,也用D/A转换器的输出电压来驱动运算放大器的反相端,不同的是用逐位式进行转换时,要用一个逐位逼近寄存器存放转换好的数字量,转换结束时,将数字量送到缓冲寄存器中,当启动信号由高电平变为低电平时,逐位逼近寄存清零,这时D/A转换器输出电压V0也为0,当启动信号变为高电平时,转换开始。

同时,逐位逼近寄存进行计数。

逐位逼近寄存器工作是从最高位开始,通过设置试探值来计数,在第一个时钟脉冲时,控制电路反最高位送到逐位逼近寄存器,使它输出为10000000,则D/A转换器输出电压V0为满量程值128/255,若V0大于Vi,则作为比较器的运算放大器的输出成为低电平,控制电路据此清除逐位逼近寄存器中的最高位;

若V0小于Vi,则比较器输出高电平,控制电路使最高位的1保留下来,如果最高位被保留,则值10000000下一个时钟脉冲使次高位D6为1,于是逐位逼近寄存器值为11000000,V0为满量程值192/255。

此后,若V0大于Vi,则比较器输出低电平,从而使次高位D6复位,如果V0小于Vi,则比较器输出高电平,从而保留高位D6为1,再下一个时钟脉冲D5置1,比较……直到D0为1,再与输入电压比较,经N次比较,寄存器中得到的值就是转换后的数据,转换以后,控制电路送出一个低电平作为结束信号,这个信号的下降沿将逐位逼近寄存器中的数字量送入缓冲寄存器,从而得到数字量输出。

1.3ADC0809的技术参数

表1ADC0809的技术参数表

①分辨率是指ADC对输入电压微小变化响应能力的量度,它是数字输出的最低位

(LSB)所对应的模拟输入电平值。

若输入电压满刻度值为VFS,转换位数为N。

分辨率为1/2NVFS当模拟电压低与此值时,ADC不予响应。

②转换时间:

是指ADC完成一次转换所需时间,既从启动信号开始到转换结束并得到稳定的数字输出量所需时间,通常us级。

2.选择芯片8255A

2.18255A的作用

本实验利用8255A将模拟量转换后的数字量传送到CPU。

此外,8255采用查询工作方式控制ADC0809工作。

2.28255A的功能分析

8255A是可编程并行接口,可以根据外界条件(I/O设备需要的信号线和它能提供的状态线)来使其构成多种接口电路。

8255A内部有3个数据端口,即A口、B口、C口。

A口有三种工作方式:

即方式0、方式1和方式2,而B口只能工作在方式0或方式1下,而C口通常作为联络信号使用。

本实验将控制字设为90H,初始化8255,使得A口为二进制逻辑开关输入,B口、C口为输出。

在三种工作方式中,本设计只使用了方式0,即方式0是基本的输入/输出方式,在这种方式下,三个端口都可以由程序规定为输入/出方式,但是不能既作为输入又作为输出,也没有提供固定的联络信号。

C口分为两个4位---高4位和低4位,可以分别设置为输入或输出方式。

在此设计中PC6,PC7作为控制端分别接发光二极管和扬声器。

2.38255A的技术参数

8255A的引脚信号

1)与外设相连的

PA7~PA0:

A口数据信号线。

PB7~PB0:

B口数据信号线。

PC7~PC0:

C口数据信号线。

2)与CPU相连的

RESET:

复位信号。

当此信号来时,所有寄存器都被清除。

同时三个数据端口被自动置为输入端口。

D7~D0:

它们是8255A的数据线和系统总线相连。

CS:

片选信号。

在系统中,一般根据全部接口芯片来分配若于低位地址(比如A5、A4、A3)组成各种芯片选择码,当这几位地址组成某一个低电平,于8255A被选中。

只有当有效时,读信号写才对8255进行读写。

RD:

读信号。

当此信号有效时,CPU可从8255A中读取数据。

WR:

写信号。

当此信号有效时,CPU可向8255A中写入数据。

A1、A0:

端口选择信号。

8255A内部有3个数据端口和1个控制端口,共4个端口。

规定:

A1、A0为00时,选中A端口;

A1、A0为01时,选中B端口;

A1、A0为10时,选中C端口;

A1、A0为11时,选中控制口。

表28255A的基本参数表

参数名称

符号

测试条件

规范值

最大

最小

输入低电平电压

VIL

0.8v

-0.5v

输入高电平电压

VIH

Vcc

2.0v

<

数据总线>

VOL

IOL=2.5mA

0.45v

——

外部端口>

IOL=1.7mA

VOH

IOH=-400μA

2.4v

IOH=-200μA

达林顿驱动电流

IDAR

REXT=750

VEXT=1.5v

-0.4mA

1.0mA

电源电流

ICC

120mA

输入负载电流

IIL

I=VCC~0v

+10mA

-10mA

输出浮动电流

IOFL

VOUT=VCco~0v

2.48255A的方式控制字

8255A的控制字有两种:

一种是方式选择控制字,另一种是C口按位置位/复位控制字

①方式选择控制字

图18255A的方式控制字表

②C口按位置位/复位控制字

图28255A的置位/控制字表

3.七段LED显示器

3.1LED在本设计中的作用

LED为发光二极管(Light-EmittingDiode),在本设计中采用7段数字发光二级管,做为终端显示,主要是作为显示采样电压值以及界限值。

3.2LED功能分析

物理构造:

LED发光二级管,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。

工作原理:

当在发光二极管PN结上加正向电压时,PN结势垒降低,载流子的扩散运动大于漂移运动,致使P区的空穴注入到N区,N区的电子注入到P区,这样相互注入的空穴与电子相遇后会产生复合,复合时产生的能量大部分以光的形式出现。

数字成像:

将七个发光管进行组合,排列成数字图形8,再根据需要控制七个管的亮与灭,便可显示某一数码或字符。

7段代码的个位(bit0-bit7)用作a-g和DP的输入。

LED数码管及其框图如下:

图3LED数码管及其框图

字型码表示图如下:

表3LED字型码表示图1

dp

g

f

e

d

c

b

a

显示数码

数值

1

3fh

O6H

2

5Bh

3

47H

4

66H

5

6dH

6

7dH

7

07H

8

7fH

9

6fh

说明:

表中个值对应7段LED若相应值为1则LED中该段亮,否则不亮,通过各段真值表的值可以控制显示数字。

此外,由于本设计中的数值显示中存在小数位,因此还应将字型码中的DP位置1。

表4LED字型码表示图2

0.

0BFH

1.

86H

2.

0DBH

3.

0CFH

4.

0E6H

5.

0EDH

6.

0FDH

7.

87H

8.

0FFH

9.

0EFH

3.3LED的技术参数

表5LED技术参数

PCW

If

Vr

Ir

^P

对应型号

散射颜色

BJ235-2

70

25

≥1.5

≤2.5

200

SEL-10

红色

BJ1441529

100

40

≥0.5

565

绿色

BJ1341529

585

蓝色

4.发光二极管

4.1发光二极管在本设计中的作用

当采集电压值大于界限值时,本设计利用二极管进行发光报警。

.2发光二极管功能分析

4.3发光二极管技术参数

发光二极管的压降一般为1.5~2.0V,其工作电流一般取10~20mA为宜。

5.蜂鸣器

5.1蜂鸣器在本设计中的作用:

在本设计中,蜂鸣器用于电压值越界时声音报警。

5.2蜂鸣器的功能分析:

扬声器是将电能转化成声能,并将声能辐射到空气中去的一种电声转换器件。

5.3蜂鸣器的技术参数:

它一般包括灵敏度、频率响应、额定功率、额定阻抗、指向性、失真、音质听感评价等。

本实验电压范围为0-5V。

6.二进制逻辑开关

6.1二进制逻辑开关在本设计中的作用

二进制逻辑开关在本设计中作为输入端口。

用户可以通过二进制逻辑开关自行设计电压的界限值。

输入0时,开关闭合,输入1时,开关断开。

6.2二进制逻辑开关功能分析

如图9所示,开关未合时,与5V电压相连,输入1,当合上之后,开关就将A口接地,也就输入为0,4位开关可以置0~15的数。

图4逻辑开关结构图

6.3逻辑开关及其编码

开关高电平:

+5V、低电平:

0V

表6逻辑开关编码

BCD编码

显示数字

0000

1000

0001

1001

0010

1010

A

0011

1011

B

0100

1100

C

0101

1101

D

0110

1110

E

0111

1111

F

7.硬件总逻辑图及其说明

图6硬件总逻辑图

18086的A1,A2,A3分别与ADC0809的ADDA,ADDB,ADDC相连,以确定8路模拟量输入通过(IN0—IN7)中的哪一路通道进行A/D转换,此次设计中设定ADC0809的IN0与模拟电路进行相连,以实现对此模拟电路进行检测。

28255A的PA口同开关电路S1~S8相连,即从PA口读入界限值。

38255A的PB口同G5区GP42相连,即是连接LED显示器的段选。

48255A的PC0~PC3连接LED显示器的位选PC6、PC7分别接LCD、扬声器,当转换结束,可根据比较结果,通过8255控制PC6、PC7,从而控制报警系统。

58255A的片选端CS接地址译码器。

68086的WR(非),RD(非)和RESET与8255A的相对应的WR(非),RD(非)和RESET相连,通过控制信号CS(非),A1,A0以及RD(非),WR(非)来实现对数据口(PA,PC)和控制寄存器进行读写操作。

三、控制程序设计

1.控制程序设计思路说明:

本设计中,由于采样的电压值为模拟信号,必须通过ADC0809芯片转换成数字信号,并将其保存在AH寄存器中。

然后通过逻辑开关自行设定一界限值存入到AL中。

比较两寄存器中值的大小,并通过8255控制报警系统,实现越界报警。

首先初始化8255,令A口为输入口,B、C口为输出口。

C口清零,防止刚开始实验就报警。

启动ADC0809直至转换过程全部结束,把转换后的值存入到AH中,以用之后的比较。

通过8255对七段LED显示器位选、段选,将转换值以十进制形式输出。

作为输入端口的A口连接二进制逻辑开关。

用户可以通过操作开关实现手动输入界限值。

界限值将用来与采样电压值进行比较,并通过LED以十进制形式显示。

当采样电压值大于或等于界限值,系统将产生声光报警。

反之,则只是在LED显示,不产生报警。

在报警设计方面,本设计通过二极管实现光学报警,通过PC扬声器实现声音报警。

由于二极管、扬声器都是低电平有效。

当采样电压值大于或等于界限值,则将PC6、PC7置为0,系统产生报警。

随后,通过延时子程序控制报警时间。

超过一定时间,系统将解除报警

2.控制程序流程图:

3.控制程序:

.MODELTINY

PCIBAR3EQU1CH;

8位I/O空间基地址(它就是实验仪的基地址,也为DMA&

32BITRAM板卡上的8237提供基地址)

Vendor_IDEQU10EBH;

厂商ID号

Device_IDEQU8376;

设备ID号

.STACK100

.DATA

IO_Bit8_BaseAddressDW?

msg0DB'

BIOS不支持访问PCI$'

msg1DB'

找不到StarPCI9052板卡$'

msg2DB'

读8位I/O空间基地址时出错$'

COM_ADDDW00F3H;

控制口偏移量

PA_ADDDW00F0H;

PA口偏移量

PB_ADDDW00F1H;

PB口偏移量

PC_ADDDW00F2H;

PC口偏移量

PD_ADDDW00E0H;

AD口偏移量

TAB_BDB0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH;

(0.0-9.0)

TAB_ADB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;

代码段(0-9)

.CODE

START:

MOVAX,@DATA

MOVDS,AX

NOP

CALLInitPCI

CALLModifyAddress;

根据PCI提供的基地址,将偏移地址转化为实地址

;

;

movdx,COM_ADD

moval,90h;

初始化8255,PA作为输入端,PB,PC输出,

outdx,al;

方式选择控制字送8255A控制端口

BEGIN:

moval,0FFh;

报警是低电平有效,一开全部致高电平

movdx,PC_ADD;

C口清零,防止刚开始实验就报警

outdx,al

STEP1:

MOVAL,00H;

ADC0809的控制字

movdx,PD_ADD;

启动ADC0809开始转换

movcx,200h

LAY1:

inal,dx;

等待0809转换完毕

loopLAY1

movdx,PA_ADD;

读开关界限值

movcl,al;

逻辑开关界限值存入cl

从0809中采集电压

电压采集到al

movCH,al;

电压值存入CH

movbp,0FFH;

控制报警时间的

callDISP

jmpSTEP1

DISPPROCNEAR

MOVAL,CL;

取开关输入的值

shral,4;

逻辑右移四位,高位补零;

提取出高四位,即对应十进制的个位

movbx,offsetTAB_B;

将TABX的偏移量存入BX

xlat

movdx,PB_ADD;

从8255A的B口读取数字量,段选

显示十进制界限值的个位值

movdx,PC_ADD;

PC口位选

MOVBL,0AH;

0A=10

MOVBH,33H;

33H=51d.(利用255/51=5将十六进制转化为十进制)

cl界限值

ANDAL,0FH;

将开关输入值的高四位置零,提取低四位,即小数部分的值

MULBH

DIVBL;

以上两步实现将十进制小数部分转化为十六进制(商存在AL,余数在AH中)

PUSHAX;

AL,AH入栈,供下次使用

MOVAL,CL

逻辑右移,高位补零

mulBH;

个位数转化为十六进制数

MOVBL,AL

POPAX

ADDAL,BL;

AL为小数部分十六进制数,BL为整数部分十六进制数

MOVAH,CH;

将0809转化值放到AH中

cmpAh,Al;

与界限值相比较

JNBDIS_A1;

AH大于等于AL

MOVAL,11111101B

JMPDIS_B1

DIS_A1:

moval,00111101B;

七段LED的位选,实现同时报警显示

DIS_B1:

只显示不报警

movah,0FFh

JMPSTEP2

DISP_2:

shral,4

显示

STEP2:

decah;

闪光灯延时子程序(为了让之前的那位显示若干时间)

cmpah,0h

jneSTEP2

ANDAL,0FH;

高四位清零,保留低四位

movbx,offsetTAB_A

xlat

movdx,PB_ADD

outdx,al

movdx,PC_ADD

MOVAL,11111110B;

最后一位显示,控制位选

STEP3:

闪光灯延时子程序

jneSTEP3

MOVBL,33H

moval,CH;

将0809采集的电压值放到AL中

DIVBL;

转化为十进制

PUSHAX

MOVAL,AL

MOVAL,11011111B

显示电压值的整数位

STEP4:

jneSTEP4

MOVBL,0AH

MOVBH,33H

movDL,Ah;

将余数放到DL中

XORAX,AX

MOVAL,DL

MULBL

DIVBH

MOVDL,AL;

保留处理后的整数

MOV

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

当前位置:首页 > 高等教育 > 教育学

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

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