微机课程设计采集系统设计与制作.docx

上传人:b****6 文档编号:14259309 上传时间:2023-06-21 格式:DOCX 页数:19 大小:317.32KB
下载 相关 举报
微机课程设计采集系统设计与制作.docx_第1页
第1页 / 共19页
微机课程设计采集系统设计与制作.docx_第2页
第2页 / 共19页
微机课程设计采集系统设计与制作.docx_第3页
第3页 / 共19页
微机课程设计采集系统设计与制作.docx_第4页
第4页 / 共19页
微机课程设计采集系统设计与制作.docx_第5页
第5页 / 共19页
微机课程设计采集系统设计与制作.docx_第6页
第6页 / 共19页
微机课程设计采集系统设计与制作.docx_第7页
第7页 / 共19页
微机课程设计采集系统设计与制作.docx_第8页
第8页 / 共19页
微机课程设计采集系统设计与制作.docx_第9页
第9页 / 共19页
微机课程设计采集系统设计与制作.docx_第10页
第10页 / 共19页
微机课程设计采集系统设计与制作.docx_第11页
第11页 / 共19页
微机课程设计采集系统设计与制作.docx_第12页
第12页 / 共19页
微机课程设计采集系统设计与制作.docx_第13页
第13页 / 共19页
微机课程设计采集系统设计与制作.docx_第14页
第14页 / 共19页
微机课程设计采集系统设计与制作.docx_第15页
第15页 / 共19页
微机课程设计采集系统设计与制作.docx_第16页
第16页 / 共19页
微机课程设计采集系统设计与制作.docx_第17页
第17页 / 共19页
微机课程设计采集系统设计与制作.docx_第18页
第18页 / 共19页
微机课程设计采集系统设计与制作.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机课程设计采集系统设计与制作.docx

《微机课程设计采集系统设计与制作.docx》由会员分享,可在线阅读,更多相关《微机课程设计采集系统设计与制作.docx(19页珍藏版)》请在冰点文库上搜索。

微机课程设计采集系统设计与制作.docx

微机课程设计采集系统设计与制作

目录

第一章:

引言1

第二章:

需求分析1

2.1实验目的与要求1

2.2软硬件运行环境1

2.3开发工具2

第三章:

分析2

3.1ADC0809的外部特性:

2

3.28255A的基本特性3

3.3接口电路显示形式3

3.4数据显示4

第四章:

设计4

4.1概要设计4

4.2详细设计5

4.2.1硬件连接5

一基本系统5

二外设功能模块6

三面包板实验区6

4.2.2软件编程6

第五章:

调试与操作说明8

第六章:

系统设计总结与体会9

第七章:

致谢10

参考文献10

附录一11

附录二12

 

课程设计报告书

--微机采集系统设计与制作

第一章:

引言

随着信息技术的发展,对信号进行高速、高精度采集及实时传输已成为信号处理的关键问题。

许多场合也需要单道和多道数据采集与显示,如:

测温、测速、测功率等。

设计高质量、低成本的智能化二次测量仪表颇具意义。

对于非高速测量场合,以8031(或89C2051)单片微机与A/D转换器件ADC0809的结合,将能出色完成任务要求。

一个八位8通道的数据采集与显示系统,只需极少的芯片,甚至是二片主要芯片,即可达到设计指标,且工作稳定可靠。

第二章:

需求分析

该课程设计为数据采集系统,数据采集是指将温度、压力、流量、位移等模拟量采集、转换成数字量后,再由计算机进行存储、处理、显示或打印的过程。

相应的系统称为数据采集系统。

数据采集系统均要将模拟量转换为数字量,常用的方法就是在系统中采用A/D转换芯片进行专门的处理,当模拟量较少或是温度、压力等缓变信号场合数据采集系统在各行个业都有广泛应用.目前,已有各种各样高速、高精度、多通道的数据采集卡问世。

而在本设计中我们采用的是通过模数转换器采入数据,然后进行数据存储、数据处理和图形显示.

2.1实验目的与要求

以PC机为控制器,采用查询方式进行8通道数据采集,采集的数据在屏幕上显示。

为此,采用ADC0809作A/D转换器。

通过微机数据采集系统的设计与制作,目的在于深入了解与掌握根据实际要求设计基本电路的方法和控制程序的设计方法。

2.2软硬件运行环境

本实验的开发平台MF软件采用系统集成技术,在Windows2000下运行。

它把实验程序的开发工具,故障诊断程序等程序集成在一个环境中,构成一个用户

程序集成开发环境IDE(IntegratedDevelopmentEnvironment)。

用户程序的编辑、编译、连接、运行和修改的全过程都在一个集成的环境中完成,大大提高了编程的效率。

这个环境目前已有多个版本,每个版本提供了内容丰富的汇编语言和C/C++语言开发软件包,并以全屏幕窗口环境的形式供用户使用。

总的来说该系统采用的资源配置为:

✧PC兼容机

✧Windows2000

✧MFID多功能微机实验平台(含PCI总线驱动板)

✧面包板或外设功能模块板

✧安装或焊接工具

2.3开发工具

实验程序的开发工具包括编辑器、编译系统、连接程序和调试程序。

1.编辑器采用全屏幕多窗口编辑器,复制,粘贴,裁减十分方便。

2.编译系统MF软件包括了C/C++语言和汇编语言两个编译系统,用户可根据自己所熟悉的语言,任选一个来编写程序,并在集成环境中进行程序的编译(汇编)、连接、运行与调试。

在本实验中,我们采用的是汇编语言来作为程序设计语言。

3.连接程序采用TLINK。

4.调试程序采用TDEBUGGER全屏幕调试程序,直观全面,使用方便。

∙以上应用程序(实验程序)开发工具,集成在集成开发环境(IDE)中,用户只需在集成开发环境全屏幕窗口中,点击主菜单的相应菜单项,即可随时启用。

第三章:

分析

要实现上述设计要求,至少需要考虑:

被控对象ADC0809的特性、接口模块8255A的基本特性、接口电路结构形式以及显示格式。

3.1ADC0809的外部特性:

ADC的外部引脚如下图,从图中可以看出,ADC0809有八个模拟量输入端(IN0-IN7),相应设置3根模拟量通道地址线(ADDA-ADDC),用以编码来选择8个模拟量输入通道。

并且还设置1根地址锁存允许信号ALE,高电平有效。

ALE变高,锁存由ADDa-ADDc编码所选中的通道号,将该通道的模拟量接入A/D转换器。

ADC0809的分辨率为8位,有8根数字量输出线(D0-D7),带有三态输出锁存器。

并设置了1根输出允许信号OE,高电平有效。

当读数据时,要使OE置高,打开三态输出锁存器,把转换的数字量送到数据线上。

ADC0809的转换启动信号是START,高电平有效。

转换结束信号EOC,转换过程中为低电平,转换完毕变为高电平,可利用EOC的上升沿申请中断,或作查询之用。

 

3.28255A的基本特性

1.8255A是可编程并行接口芯片8255A,具有两个8位(A口和B口)和两个4位(C口高/低4位)并行I/O端口的接口芯片,它为Intel系列CPU与外部设备之间提供TTL电平兼容的接口,如打印机、A/D、D/A转换器、键盘、步进电机以及需要同时两位以上信息提供传送的一切形式的并行接口。

并且它的PC口还具有按位置位/复位功能,为按位控制提供了强有力的支持。

2.8255A能适应CPU与I/O接口之间的多种数据传送方式的要求。

3.8255A芯片内部主要由控制寄存器、状态寄存器和数据寄存器组成。

3.3接口电路显示形式

本外设模块采用8855A作为接口电路,其中,PA0-PA7接数据线,其低三位与通道地址线ADDA-ADDC相连,即将通道号写入A口。

另外,转换后的数据从A口读入CPU。

PC0连接START和ALE信号,高电平有效,表示启动转换。

PC1连接输出允许信号OE。

当查询方式时,PC4连接EOC信号,转换过程中,PC4为0,当转换完毕时,PC4为1。

3.4数据显示

数据显示有两点:

一上要把采集到的用十进制表示的数据转换成ASCII码,才能送到屏幕去显示;二是显示的格式,数据在屏幕上是采用一列显示,还是满屏显示或是分区显示,本设计是采用满屏显示.

第四章:

设计

4.1概要设计

该设计外设接口采用了可编程并行接口芯片8255A和8路8位A/D转换器ADC0809,A/D数据采集模块、平台板、微机组成的数据采集系统框图如图所示。

图4.1系统框图

连线原理图见附录A.

该程序流程图如下:

4.2详细设计

4.2.1硬件连接

该微机实验平台的硬件由基本系统、外设功能模块和面包板实验区三大部分,按模块化开放式结构设计而成。

不仅具有很好的可添加性和灵活性,而且整个平台的硬件资源全部向用户开放,由用户自由支配,系统不占用。

一基本系统

基本系统包括总线驱动板和实验平台,其作用一是将系统总线从总线机内引到机外的实验平台上。

二是在实验平台上提供各种典型的接口电路,供连接外设功能模块。

Ø总线驱动板有PCI总线驱动板和ISA总线驱动板两种。

总线驱动板插在主机机箱内系统总线插槽中。

它将主机的系统总线(包括数据线、地址线和主要的控制线)进行驱动之后,用扁平电缆引到机箱外面的实验平台上,以供开发利用。

Ø实验平台板置于机箱外,它是用户进行实验和开发的舞台。

在平台板上,利用从主板引出的系统总线,开发设计了并行口、串行口、A/D、D/A转换器以及相应的端口地址,并将这些接口的信号线以插座和插槽的形式提供给用户使用。

二外设功能模块

这里所说的外设功能模块包括微机的I/O设备(打印机、键盘、显示器、MODEM)和元器件(LED、喇叭、步进电机、直流电机、继电器、ADC、DAC)以及指示灯、开关(DIP、按钮)等。

这些外设加上各自的驱动电路就构成了不同的外设功能模块,它们是微机接口的控制和连接的对象。

用户将外设功能模块(对象)挂接到平台办的接口插座和插槽上,与平台上的接口芯片相结合,可构成各种各样外设应用系统(尽管这些系统规模不大)的接口电路。

外设功能模块可以任意添加。

三面包板实验区

面包板实验区包括一块高质量面包板和平台板的接口插座、插槽,以及连接电缆与连接导线,供用户自行设计、安装、调试外设应用系统电路之用。

4.2.2软件编程

在软件编程这一块大体分两个部分,一个是完成接口电路8255A的初始化工作,二是采集到的数据显示格式。

我们已经熟悉了各个芯片的外部引脚和功能、工作的方式、电路的原理、A/D数据采集模块电路,我还需进一步了解ADC0809的时序图。

如下图:

由时序图可看出,要先给出通道地址ADD(ABC),然后进行地址锁存,使ALE置高电平,接着启动转换信号START,ADC0809本应该开始进行模/数转换了,即EOC置底电平,但EOC为底电平需要一个稳定期,故在START启动以后,应进行200ns的时间延时。

延时后把START置为0。

这时ADC0809就开始真正进行模/数转换了。

转换结束后,EOC会自动返回一个低电平。

又由于ADC0809的分辨率为8位,有8根数字量输出线(D0-D7),带有三态输出锁存器。

并设置了1根输出允许信号OE,高电平有效。

当读数据时,要使OE置高,打开三态输出锁存器,把转换的数字量送到数据线上,送给8255A。

图4.3时序图

于是,根据具体的时序图,我们来编写程序。

尤其要注意的是8255A的初始化,这一部分很容易就忘记:

A口输出,B口输入,C口高4位输入,C口底4位输入。

当把通道号送至A口,并进行地址锁存以后,还需重写8255,这时A口输入,B口输入,C口高4位输入,C口底4位输入部分。

根据上述分析以及8255A的工作方式,我可以写出它的初始化程序,如下:

8255A的初始化工作:

movdx,303h;初始化8255状态字,A口输出

moval,88h

outdx,al

movdx,300h;送通道号至A口

moval,temp

outdx,al

movdx,303h

moval,3h

outdx,al;PC1置1进行地址锁存

movdx,303h

moval,98h

outdx,al;重写8255方式字,A口输入,C口低四位输出,C口高四位输入

在数据显示这一部分,比如说我要输入一个三位数,我首先将AH寄存器清零,送100给BL寄存器,注意要先存在寄存器里,然后才可以用div指令。

然后加上30h,把它变成十进制的数值,压栈。

再调用它的端口号把这三位数的百位数字以十进制的形式显示出来,出栈。

十位数和各位数依次类推。

程序如下:

数据显示部分:

show:

movah,0

movbl,100

divbl

addal,30h

pushax

movdl,al

movah,2

int21h

popax

moval,ah

movah,0

movbl,10

divbl

pushax

movdl,al

adddl,30h

moval,ah

movah,2

int21h

popax

movdl,ah

adddl,30h

movah,2

int21h

程序原代码见附录B.

第五章:

调试与操作说明

该设计在软件方面的调试,先需要在编译环境中编译、连接通过。

然后连接硬件线路,连接之前先检测元器件,能够对硬件单独检测的,最好先单独检测硬件电路。

最后是软硬件联合起来调试。

实验中常见问题如:

Æ电源未连接好。

检查一下实验平台是否通电,检查接到面包板电源的引线是否插牢。

Æ可以先察看ADC0809的18号引脚即CLOCK信号是否为500KHZ。

这一点,可以通过示波器观察,来算出频率,这点比较麻烦,还可以利用平台所提供的A/D数据采样板,找到对应的检测点,将两路信号都加到示波器上,观察波形,如若相似,则说明该模块的接线无误。

然后,察看12号引脚所接的参考正电压是否为+5.000伏。

Æ实验过程中应注意各连线引脚是否与面包板接触良好。

第六章:

系统设计总结与体会

为期一个星期的课程设计结束了,有感触,但更多的是收获!

就我们组的A/D数据采集系统来说,它设计到一些外设接口的基本性能和工作原理,例如:

8255A芯片和ADC0809芯片,此外,还包括电路的搭建,软件的编程等等。

整个课程设计下来,我由最初的蒙蒙懂懂到了解在到掌握他们,可以说是一路艰辛!

当我从老师那里领到面包板和一些元器件的时候,我都犹豫了“这些东西怎么连在一起?

根据什么原理来连接?

”而且,在软件编程方面,要求用汇编语言编写,但是我自身的语言又不过关,总之,心里满是犹豫。

然而,幸运的是,被分到张绪辉老师一组,在整个课程设计中,张老师都给了我们很好的意见和最耐心的指导,在老师的鼓励和帮助下,我们的设计才得以顺利地完成。

不管是哪个团队,我想合理的分工应该是很重要的。

作为组长,这是责无旁贷的,硬件部分我将电路板的搭建分给王虎军同学,袁启迪同学负责用软件Protel画出整个电路的原理图,而方力同学则是做辅助工作。

在软件部分,主要由我和鄢静同学负责,虽然分工明确,但是在实验过程中遇到难题时,我们也会在一起讨论,尽自己最大努力弄清楚问题的原因所在。

就我自己而言,软件编程方面,首先要有一个整体的思路,程序第一步做什么,接下来做什么,在头脑里应该有一个大体的轮廓,但是具体到写程序的时候,还要知道硬件的连接情况,这又需要了解所使用接口的特性和方式以及工作原理,因此,我认为硬件和软件是分不开的,在编程的同时要了解外设接口的基本情况,如果你不是很有把握,“书是最好的老师”这就需要参考大量相关资料,力求弄明白。

我想这也是课程设计的目的之一吧!

而最令我难忘的是写程序过程当中遇到的挫折,A/D数据采集系统就是大体思想就是将采集到的对象经过ADC0809转换器之后在在计算机上显示出来,这就存在一个显示格式的问题,我的想法是用十进制的格式显示,于是我将二进制的数据转换成了十六进制,然后在将十六进制转换为十进制,但是由于思路出现偏差,程序设计思想过与复杂,以至于实验一直得不到进展,我有好几次都想放弃,是张老师,他一直鼓励我坚持下来,还帮我来分析,提出建议!

在此,我要尤其感谢张老师的指导!

大学生不仅学的是理论知识,更重要的是将理论和实践联系起来,理论知识等步入工作岗位之后或许会忘记得很快,但是当我们将理论应用与实践,在学习理论知识的同时提高自己的实际动手能力,在实践中巩固自己的理论,不是很明智的选择?

这次课程设计,我收获很多,它提高了我的分析问题和解决问题的能力,例如,在硬件部分,当系统出现问题的时候,不是全部将面包板上的线取下后再次连接,而是就电路中出现的情况进行分析,找出错误的原因,从而,发现问题并解决问题。

在软件方面,如果调试不能通过,要分段检查程序,从格式到用法,以防因为粗心大意而引起的错误,这些都是可能的。

检查直至最后调试通过!

此外,这种课程设计培养了我们自主的学习习惯,为了做实验,你得熟悉仪器,去查阅资料等等。

再者,也是最重要的一点就是态度,古语云:

态度决定一切。

严谨的工作态度和持之以恒的精神是成功的关键,这一点,我在这次实验中从很多老师身上也看到了。

因此,我很感谢这次课程设计!

第七章:

致谢

在此报告即将完成之时,我要在这里特别的感谢一下在我的接口课程设计过程中帮助和关心过我的老师和同学。

在课程设计的整个过程中,张绪辉、龚义建两位老师给了我很多的建议和帮助。

特别是张老师,他更是直接指导了我的课程设计,使我的课程设计能够在规定的时间内完成。

尤其在软件编程方面,张老师深厚的语言功底给我感触很深,自身的汇编语言没有过关,张老师却给我从最简单的指令说起,程序的步骤,流程,电路的搭建,他都给我们做了非常耐心的指导,我学到了很多东西,不仅是学术知识,还有工作方式、治学态度等。

还有要感谢在本次课程设计中我的组员,从实验开始到完成,他们都互相合作,互相帮助,当我有疑团时,有的还暂时放下自己的工作帮助我.正因为有这种良好的集体合作精神与互帮互助的风格,我的课程设计才得以顺利的完成.

最后,再一次向所有关心过我、帮助过我的老师和同学送上最深的谢意和最真挚的祝福!

参考文献

1.刘乐善等,微型计算机接口技术及应用,武汉,华中理工大学出版社,2000

2.MFID-2微型计算机实验平台技术说明书

3.韩海,汇编语言程序与设计,西安电子科技大学出版社

4.陈西文等,I/O接口程序设计入门与应用,机械工业出版社,2000

5.《PROTEL99SE电路设计实用教程》主编:

余家春

附录一

图A实验原理图

图B实验PCB图

附录二

;*------------------------------------------------------*/

;*AskAD.asm(查询方式A/D转换器接口实验)*/

;*查询方式A/D转换数据采集程序SourceFile*/

;*Copyright(c)2006byAndy*/

;*ModifyDate2006.9.9*/

;*------------------------------------------------------*/

ssegsegmentparastack'stack'

dw200dup(?

ssegends

dsegsegmentparapublic'data'

messagedb'IfyouwanttoquitA/Dconvert,pleasepress''ESC'''

db0dh,0ah,'$'

input_messagedb'inputnumberofA/Dchannel'

db0dh,0ah,'$'

error_messagedb'inputincorrectA/Dchannel!

',0dh,0ah

db'pleaseinputnumberofA/Dchannelagain:

'

db'$'

tempdb(?

dsegends

csegsegmentparapublic'code'

assumess:

sseg,cs:

cseg,ds:

dseg

a_dpoprocfar

start:

movax,sseg

movss,ax

movax,dseg

movds,ax

movah,9;显示提示信息

movdx,segmessage

movds,dx

movdx,offsetmessage

int21h

movah,9;提示输入通道号

movdx,seginput_message

movds,dx

movdx,offsetinput_message

int21h

input:

movah,8;检查输入通道号是否有错

int21h

cmpal,'0'

jberror

cmpal,'7'

jaerror

subal,30h

movtemp,al;若无错,则保存通道号

jmpbegin

error:

movah,9;显示出错信息

movdx,segerror_message

movds,dx

movdx,offseterror_message

int21h

jmpinput

begin:

movdx,303h;初始化8255状态字,A口输出

moval,88h

outdx,al

movdx,300h;送通道号至A口

moval,temp

outdx,al

movdx,303h

moval,3h

outdx,al;PC1置1进行地址锁存

movdx,303h

moval,98h

outdx,al;重写8255方式字,A口输入,C口低四位输出,C口高四位输入

lop:

movdx,303h;使PC0置高发启动信号

moval,1h

outdx,al

movcx,0f00h;delay

lop1:

looplop1

movdx,303h

moval,0h

outdx,al

lopsub:

movdx,302

inal,dx

andal,10h

jzlopsub

movdx,303h

moval,5h

outdx,al

movdx,300h

inal,dx

pushax

show:

movah,0

movbl,100

divbl

addal,30h

pushax

movdl,al

movah,2

int21h

popax

moval,ah

movah,0

movbl,10

divbl

pushax

movdl,al

adddl,30h

moval,ah

movah,2

int21h

popax

movdl,ah

adddl,30h

movah,2

int21h

movah,0bh;检测是否有ESC键按下

int21h

incal

jnzlop;若无键按下,则继续采集

quit:

movax,4c00h;程序退出

int21h

adpoendp

csegends

endstart

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2