中断方式数据采集及显示.docx

上传人:b****8 文档编号:8933120 上传时间:2023-02-02 格式:DOCX 页数:16 大小:196.54KB
下载 相关 举报
中断方式数据采集及显示.docx_第1页
第1页 / 共16页
中断方式数据采集及显示.docx_第2页
第2页 / 共16页
中断方式数据采集及显示.docx_第3页
第3页 / 共16页
中断方式数据采集及显示.docx_第4页
第4页 / 共16页
中断方式数据采集及显示.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

中断方式数据采集及显示.docx

《中断方式数据采集及显示.docx》由会员分享,可在线阅读,更多相关《中断方式数据采集及显示.docx(16页珍藏版)》请在冰豆网上搜索。

中断方式数据采集及显示.docx

中断方式数据采集及显示

中断方式数据采集及显示

1.课程设计的目的

本课程设计是电子信息工程专业的一个实践教学环节。

目的是为了巩固《微机原理及应用》课程学到的相关知识,通过对本课程所学知识的综合运用,使学生融会贯通课程中所学的理论知识,加深对计算机系统各个部分的工作原理及相互联系的认识,加深对接口的理解,清晰地建立计算机系统的概念,培养学生进行微机应用系统硬件和软件开发的实践工作能力。

2.设计方案论证

2.1设计思路

由于微机只能处理数字化的信息,而在实际应用中被控对象常常是连续变换的物理量,因此,微机用于测控系统时需要有能吧模拟信号转换成数字信号的接口,以便于能对被控制对象进行处理和控制。

A/D转换器就承担这样的任务,它适用于工业自动化控制,数据采集等许多领域。

2.1.1A/D转换器的选择

A/D转换就是把模拟量转换成二进制码表示的数字量,一般的A/D转换过程是通过采样,保持,量化和编码4个步骤完成的,这些步骤往往是合并运行的。

本设计用ADC0809实现A/D转换。

按查询方式采样三路A/D转换数据,用简单输入口(74LS244)查询EOC信号,每循环一次,0、1、2通道各采样一次,采样结果为:

0通道数据放入AX中,1通道数据放入BX中,2通道数据放入CX中,三个寄存器均是低8位有效。

本课程设计选择ADC0809。

ADC0809是一种CMOS单片8位A/D转换器,8路模拟量输入以及地址锁存与译码。

设有与微机数据总线相连的TTL三态输出锁存器。

ADC0809可用单一的+5V电源工作,转换时间约为100us。

用单一+5V电源时,模拟量输入量程为0~5,对应的转换值为00HH~FFH.

ADC0809的主要引脚信号说明如下:

·IN0~IN7:

8路模拟量输入端。

·ADD-A.ADD-B.ADD-C:

三位地址线,通过地址译码选通8路模拟量输入端中的一路。

·CLOCK:

外部提供给ADC0809工作的时钟信号。

·EOC:

A/D转换结束信号。

·ALE:

通道地址锁存允许信号。

·ENABLE:

输出允许信号,用来打开三态输出的数据锁存器。

·START:

A/D转换启动信号。

·REF(+).REF(-):

正的和负的的参考电压。

·8259GATE0接+5V。

·8259接系统总线CLK(B20)或接试验台上8MHZ的振荡器输出。

·ADC0809的IN0接电位器的滑动器端,电位器的另两端分别接+5V和地。

ADC0809属于采用逐次逼近法的A/D转换类型的转换器。

采用逐次逼近法的A/D转换的工作过程是:

当启动脉冲来到后,控制逻辑首先使N位(这里N=8)逐次逼近寄存器(SAR)的最高位置“1”,其余位清“0”。

然后将该值送D/A转换器。

经D/A转换后的输出电压即为满量程电压的1/2(设为Vh)。

将输入电压Vi和Vh比较,若Vi>Vh,则最高位不变;若Vi

一次比较完成后,将SAR的次高位置“1”送D/A转换,新的Vh再同Vi比较来决定该位为“1”还是为“0”......上述过程重复进行直到最低位为止。

经N次操作后,控制逻辑输出一个转换结束信号,控制缓冲寄存器接收SAR的内容,即本次A/D转换的结果。

该缓冲寄存器的输出接收数据总线。

ADC0809转换由START脉冲信号来启动,脉冲下降沿有效(转换开始).当输入通道选择地址线状态稳定后,在ALE信号的上升沿将地址线的状态锁存存到芯片的地址锁存器中。

在转换操作过程中,信号EOC保持低电平,当转换结束时变为高电平。

该信号主要用来查询A/D转换是否结束或者用来作为中断请求信号。

当ENABLE被置为高电平时,三态门打开,将数据锁存器的内容输出到数据总线上。

片内带有8路模拟开关,并有与微处理器兼容的控制逻辑。

它采用逐次逼近法进行8位转换。

因此,模数转换部分包括一个带有树状模拟开关的256R分压器和一个逐次逼近寄存器S.A.R。

8路模拟开关则可选通8路模拟输入的任何一路单端模拟信号,其内部结构框图如图1所示:

图1ADC0809内部结构框图

2.2.2中断控制器的选择

本课程设计要求多中断源请求,软件可禁止与允许每个请求。

中断优先级判别功能,响应优先级别最高的请求。

中断嵌套功能,高级别中断可中断较低级别的中断。

响应中断后,能自动转向中断处理程序,处理结束后自动返回主程序。

本次设计中断控制器选用8259

8259是专门为了对8085和8086/8088进行中断控制而设计的芯片,它是可以用程序控制的中断控制器。

单个的8259能管理8级向量优先级中断。

在不增加其他电路的情况下,最多可以级联成64级的向量优先级中断系统。

8259有多种工作方式,能用于各种系统。

各种工作方式的设定是在初始化时通过软件进行的。

在总线控制器的控制下,8259芯片可以处于编程状态和操作状态.编程状态是CPU使用IN或OUT指令对8259芯片进行初始化编程的状态

8259的基本功能:

功能就是在有多个中断源的系统中,接受外部的中断请求,并进行判断,选中当前优先级最高的中断请求,再将此请求送到cpu的INTR端;当cpu响应中断并进入中断子程序的处理过程后,中断控制器仍负责对外部中断请求的管理。

8259的内部结构如下图:

图28259的内部结构图

8259的外部引脚如下图:

图38259的外部引脚图

2.2电路说明

在掌握ADC0809的内部结构及工作原理的基础上设计中断方式A/D转换电路并在实验台上连线。

电路图如图5所示。

需要连接的线路如下:

.8259OUT0接ADC0809CLK(500KHZ)。

.ADC0809的EOC接IRQ7(B4)。

.ADC0809CS接220H~227H。

.8253CS接200H~207H。

为了用图形方式显示,程序要使用两个缓冲区,其中BUFFER1用于存放A/D采样转换的数值,BUFFER2用于存放显示的数对应的行值。

P1是BUFFER1的地址指针,用于指示要读出的数的地址。

程序采用中断方式进行采样,将采样值存入BUFFER1中,每当100个点的采样完成之后,便将采样值变成显示所对应的行值,以顺序号作为列值,按高分辨率图形方式显示出来。

每次显示都首先抹除旧的显示亮点,然后显示新的亮点。

如此循环,在屏幕上将看到一条动态显示曲线。

当任意键按下时,程序运行结束。

2.2.1A/D转换电路图

图4A/D转换电路图

ADC0809的工作过程是:

首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。

此地址经译码选通8路模拟输入之一到比较器。

START上升沿将逐次逼近寄存器复位。

下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。

直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。

当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。

A/D转换就是把模拟量转换成二进制码表示的数字量,一般的A/D转换过程是通过采样,保持,量化和编码4个步骤完成的,这些步骤往往是合并运行的。

本设计用ADC0809实现A/D转换。

按查询方式采样三路A/D转换数据,用简单输入口(74LS244)查询EOC信号,每循环一次.它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近。

A/D转换器是将模拟信号转换为数字信号,转换过程通过采样、保持、量化和编码四个步骤完成。

采样是将时间上的连续变化的模拟量转换为时间上断续(离散)的模拟量。

即将时间上连续变化的模拟量转换为一系列等间隔的脉冲,脉冲的幅度取决于输入模拟量。

在A/D转换过程中,要用数字量来表示断续变化的模拟量时,为了启动A/D转换过程,在此端加一个正脉冲,脉冲的上升沿将内部的寄存器全部清零,在其下降沿开始A/D转换过程。

在START信号上升沿之后1~8个时钟周期内,EOC信号变为低电平。

当转换结束后,转换后的数据可以读出时,EOC变为高电平。

必须将采样-保持电压归化为某个最小单位的整数倍,这个过程称为量化过程。

所取得的最小单位叫做量化单位,转换速度是指完成一次转换所需的时间,转换时间是从接到转换启动信号开始,到输出端获得稳定的数字信号所经过的时间。

A/D转换器的转换速度主要取决于转换电路的类型,不同类型A/D转换器转换速度相差很大。

转换结束后,逐位近似寄存器的数字送三态输出锁存器锁存,当输出允许信号OE有效时,由三态门输出二进制码。

2.2.2硬件电路连接

根据以上各功能部件的选择,按照各自的硬件连接要求及相互之间在本次课程设计中的关系,做出本次课程设计的硬件连接图如图5:

图5数据采集与控制系统原理电路图

说明:

ADC0809的8路模拟输入分别由W1,W2,W3和DAC0832产生按图13中接法,IN0由W1提供,INl和IN2由W2提供,IN3和IN4由W3提供,IN5,IN6,IN7由DAC0832提供。

同时,DAC0832的输出又作为调节IN0的控制信号。

ADC0809的转换结束信号EOC接系统中断控制器8259A的中断请求输入(例如IR3)。

因此,当转换结束时,自动向CPU申请中断,CPU响应中断,将转换数据读到累加器,然后存人存储单元。

启动ADC0809转换时,首先要向对应通道(由C,B,A端编码决定)发出写操作信号。

这包括三个意思:

发出C、B、A编码和CS信号,它们共同决定选中的通道;使ALE信号为高电乎,锁存C、B、A编码(通道地址低3位);使ALE信号为高电乎,启动转换。

这与写操作的内容是无关的。

按图13中接法,只要对这个地址发出写动作就可以了。

DAC0832的输入是由软件产生的。

也就是说,ADC0809对DAC0832进行采集的信号大小是人为设置的。

中断服务流程图如图6:

图6中断服务流程图

3.设计结果与分析

3.1编程提示

1.ADC0809的分辨率为8位,可有8个(N0~N7)模拟输入,模拟电压范围为0~5V,在CLK为500KHZ时,转换速度为128us,它的START端为A/D转换启动信号。

ALE端为通道选择的地址所存信号,实验电路中将START和ALE相连,输出指令产生的IOW信号与地址译码信号CS信号经或非门产生一个正脉冲,该脉冲一方面锁存A2A1A0的地址使8路模拟开关的某一路接通,同时起到启动A/D转换的作用,故启动A/D转换只须如下2条指令:

MOVDX,PORTADC;ADC0809的端口地址

OUTDX,AL;发CS及IOW信号

在本系统中,ADC0809的端口地址为220H;AL中具体为什么内容并不重要,这是一个虚拟写动作。

2.在中断方式下,当A/D转换结束后就会自动产生EOC信号,此信号接IRQ2,从而引起一次硬中断。

在中断处理程序中,使用如下指令即可读取A/D转换的结果。

MOVDX,PROTADC

INAL,DX

输入指令产生的IOR信号与CS信号或非门接至OE端,OE端是高电平有效。

输入指令执行期间输出三态缓冲器开门,数据进入数据总线。

在本系统中,ADC0809的端口地址为220H。

3.2程序源代码

PAGE60,78

CRLFMACRO;回车换行宏定义

MOVDL,0DH

MOVAH,02H

INT21H

MOVDL,0AH

MOVAH,02H

NT21H

ENDM

DATASEGMENT

INRDB?

RESULTDB?

BUFFDB600DUP(?

XORGDW100

DATAENDS

STACKSEGMENTSTACK'STACK'

DB50DUP(?

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK,ES:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVDI,OFFSETBUFF;

MOVAL,0AH

MOVAH,35H

INT21H;取IRQ2中断服务程序入口地址ES:

BX

PUSHES;保护ES,BX,DS

PUSHBX

PUSHDS

MOVAX,SEGADINT;填写中断向量表(N=0AH)

MOVDS,AX

MOVDX,OFFSETADINT

MOVAL,0AH

MOVAH,25H

INT21H

POPDS;恢复DS

INAL,21H

MOVBP,AX;保护中断屏蔽寄存器内容于BP中

ANDAL,11111011B

OUT21H,AL;允许IRQ2中断

MOVCX,300H

MOVDX,203H;8253初始化,0通道方式3

MOVAL,36H

OUTDX,AL

MOVDX,200H

MOVAL,10H;初值得0010H

OUTDX,AL

MOVAL,00H

OUTDX,AL

CCC:

STI

MOVDX,220H

OUTDX,AL;启动一次A/D转换

HLT

CLI;关中断

MOVAX,SI;取A/D转换结果

PUSHDS

MOVBX,6000H;写入6000H:

0~2FFH区域

MOVDS,BX

MOVBX,CX

DECBX

MOV[BX],AL

ANDAL,0F0H;高位十六进制转ASCII码

PUSHCX

MOVCL,04H

SHRALCL

POPCX

ADDAL,30H

CMPAL,39H

JBEAS1

ADDAL,07H

AS1:

MOVDL,AL;显示高位

MOVAH,02H

INT21H

MOV[DI],AL;

INCDI

MOVAL,[BX]

ANDAL,0FH

ADDAL,30H

CMPAL,39H

JBEAS2

ADDAL,07H

AS2:

MOVDL,AL;显示低位

MOVAH,02H

INT21H

MOV[DI],AL

INCDI

MOVDL,20H;显示两个空格

MOVAH,02H

INT21H

INT21H

POPDS

LOOPCCC

POPDX;恢复IRQ2中断向量

POPDS

MOVAL,0AH

MOVAH,25H

INT21H

MOVAX,BP;恢复中断屏蔽寄存器内容

OUT21H,AL

WAIT_IN:

MOVAH,1;程序暂停,等待键入

INT21H

MOVSI,OFFSETBUFF

CALLCRTSET

LL:

MOVAH,0CH;写像素

MOVBH,0

MOVCL,10

MOVCX,XORG;初始列值

INCXORG

MOVDH,0

MOVDL,[SI]

INCSI

INT10H

CMPXORG,400

JLELL

EXIT:

;MOVAX,2

;INT10H;恢复80*25文本显示方式

MOVAX,4C00H;结束

INT21H

ADINTPROCNEAR;中断服务程序

PUSHAX;保护AX

PUSHDX;保护DX

MOVDX,220H;读A/D转换结果

INAL,DX

MOVSI,AX;送SI

MOVAL,20H

OUT20H,AL;发中断结束命令

POPDX

POPAX;恢复

IRET

ADINTENDP

CRTSETPROC;屏幕设置子程序

MOVAX,12H

INT10H

MOVAH,0BH

MOVBX,9

INT10H

RET

CRTSETENDP

CODEENDS

ENDSTART

3.3主程序流程图

主程序流程图如下图

开始

用35HDOS功能调用取类型

0AH的中断矢量,并入栈保存

用25HDOS功能调用将A/D中断服务程序入口地址写入中断矢量表中0AH类型中断的位置

A/D转换结果送内存6000H段

等待硬件中断

关中断

8259初始化:

0通道,3方式,初始值为0010H

开中断

300—>CX

启动0809执行本次A/D转换

取中断屏蔽寄存器的内容存入BP中

开放0AH号中断

显示转换结果及两个空格

CX-1=0?

用25HDOS功能调用恢复原中断矢量

恢复中断屏蔽器寄存器内容

结束

入口

保存使用的寄存器的内容

从0809的端口读取A/D转换数据

发中断结束命令

中断返回

N

Y

a)主程序

b)中断服务程序

图7主程序流程图

4.设计体会

《微机原理及应用》作为电子信息类本科生教学的主要基础课之一,课程紧密结合电子信息类的专业特点,围绕微型计算机原理和应用主题,以Intel80x86CPU为主线,系统介绍微型计算机的基本知识,基本组成,体系结构和工作模式,从而使学生能较清楚地了解微机的结构与工作流程,建立起系统的概念。

这次微机原理课程设计历时一个星期,在整整一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。

因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。

其次,以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。

通过本次课程设计,我进一步温习和巩固了课本的理论知识,增强了理论联系实际的能力。

同时也增强了我通过检索资料来获取相关专业信息以及利用检索到的信息来解决面临问题的能力。

本次设计使我深刻认识到自己软件编程方面的知识薄弱,同时也使我体会到软件编程在实际硬件电路连接中的重要作用,软件编程的使用是硬件开销大大减少,同时也使设计更加的简洁易于控制。

在今后的学习我要加强软件编程方面知识的积累和运用。

这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在同学们的帮助下并且查阅了很多相关的资料才得以解决。

生活就是这样,汗水预示着结果也见证着收获。

劳动是人类生存生活永恒不变的话题。

通过课程设计,我才真正领略到“艰苦奋斗”这一词的真正含义。

我认为,在课程设计中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。

更重要的是,在课程设计上,我学会了很多学习的方法。

这次课程设计说对我来说是受益匪浅,挫折是一份财富,经历是一份拥有,必将成为我人生旅途上一个非常美好的回忆!

在这里对给过我帮助的所有同学和指导老师再次表示忠心的感谢!

5.参考文献

[1]徐泳龙,倪骁骅.单片机原理与应用[M].北京:

机械工业出版社,2004.

[2]丁元杰.单片微机原理及应用[M].北京:

机械工业出版社,2002.

[3]周明德.微型计算机系统原理及应用[M].北京:

清华大学出版社,2006.

[4]冯博琴,吴宁,陈文革等.微型计算机硬件技术基础[M].北京:

高等教育出版社,2003

[5]范立南,谢子殿.单片机原理及应用教程[M].北京:

北京大学出版社,2006

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

当前位置:首页 > 医药卫生 > 中医中药

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

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