多路数据采集系统设计报告.docx

上传人:b****6 文档编号:7622718 上传时间:2023-01-25 格式:DOCX 页数:24 大小:204.85KB
下载 相关 举报
多路数据采集系统设计报告.docx_第1页
第1页 / 共24页
多路数据采集系统设计报告.docx_第2页
第2页 / 共24页
多路数据采集系统设计报告.docx_第3页
第3页 / 共24页
多路数据采集系统设计报告.docx_第4页
第4页 / 共24页
多路数据采集系统设计报告.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

多路数据采集系统设计报告.docx

《多路数据采集系统设计报告.docx》由会员分享,可在线阅读,更多相关《多路数据采集系统设计报告.docx(24页珍藏版)》请在冰豆网上搜索。

多路数据采集系统设计报告.docx

多路数据采集系统设计报告

第1章绪论设计目的及要求

1.1绪论

随着计算机技术的飞速发展和普及,数据采集系统也迅速地得到应用。

在生产过程中,应用这一系统可对生产现场的工艺参数进行采集,监视和记录,为提高产品质量,降低成本提供信息和手段。

在科学研究中,应用数据采集系统可获得大量的动态信息,是研究瞬间物理过程的有力工具,也是获取科学奥秘的重要手段之一。

总之,不论在哪个应用领域中,数据采集与处理越及时,工作效率就越高,取得的经济效益也越高。

本设计采用ATMEGA16单片机作为数据采集系统的控制核心,系统分为数据采集模块、A/D转换模块、系统控制模块、键盘模块、显示模块等几部分。

1.2设计目的

利用单片机为核心设计一个多路数据采集系统,要求每个通道的信号经A/D转换后以10进制数在LED显示器上显示,并能够通过键盘操作切换显示不同通道的采样值。

1.3设计要求

本课题要求利用单片机为核心设计一个八路数据采集系统,要求每个通道的信号经A/D转换后以10进制数在LED显示器上显示,并能够通过键盘操作切换显示不同通道的采样值。

本系统中包括8路模拟量输入,范围0-5V。

要求对8个通道的模拟量进行巡回采样,再将采集的数据进行工程量化转换后在LED显示器上显示,并能通过按键切换所选通道的采样数据。

 

第2章系统总体方案选择与说明

2.1硬件设计框图

典型数据采集系统配置如图2.1所示,有的已实现集成化,多个传感器的预处理电路输出接入多路模拟开关,然后经过取样/保持电路和A/D转换后进入CPU系统。

图2.2典型数据采集系统配置图

(1)传感器是经典的利用各种原理将被测物理量转化为电信号。

(2)预处理模块是将模拟信号进行调整、放大,在模拟电路方便实现的基础上对信号进行自动补偿、自动校正,抑制温漂的模块。

(3)数据采集A/D模块将模拟信号进行采样、量化,转化为数字信号.

(4)计算机可能为PC机、单片机或其他专用处理器,具有数据存储、记忆与信息处理功能,具有判断、决策处理功能。

2.2软件设计框图

图2.2软件设计框图

 

第3章数据采集系统概述、工作原理及其说明

3.1数据采集系统概述

数据采集是信息科学的一个主要组词成部分,信息技术的核心是信息获取,通信和计算机技术,常被称为3C技术,其中信息获取是基础和前提。

数据采集是获取信息的主要手段,它随着科学技术的进步而得到迅速发展。

目前各种各样的数据采集系统已得到广泛应用,新型数据采集系统仍不断涌现。

随着科学技术的发展与普及,数字设备正越来越多地取代模拟设备,在生产过程控制和科学研究等广泛领域中,计算机控制技术正发挥着越来越主要的作用,然而外部世界的大部分信息是以连续变化的物理量形式出现的,例如温度、压力、位移、速度等。

要将这些信息送入计算机进行处理,就必须先将这些连续的物理量离散化,并进行量化编码,从而变成数字量,这个过程就是数据采集。

数据采集系统是计算机与外部世界联系的桥梁。

数据采集技术是信息科学的主要组成部分,它是以传感器技术、信号检测与处理、电子学、计算机技术等方面技术为基础而形成的一个综合应用技术学科,已广泛应用于国民经济和国防建设的各个领域,并且随着科学技术的发展,尤其是计算机技术的发展与普及,数据采集技术有广阔的发展前景。

3.2工作原理及其说明

1、采用80C52单片机和ADC0809构成一个八路数据采集系统。

2、能够顺利采集各个通道的信号。

3、采集信号的动态范围:

0~5V。

4、每个通道采样速率:

100sps。

5、在面包板上完成电路,将采集的数据送入单片机70H~77H存储单元。

6、编写相应的单片机采集程序到达规定的性能:

8路输入模拟信号数值显示电路由A/D转换、数据处理及显示控制等组成。

A/D转换由集成电路0809完成。

0809具有8路模拟输入端口,地址

线(23~25脚)可决定对哪一路模拟输入作A/D转换。

第22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存;6脚为测试控制,当输入一个2微秒宽脉冲时,就开始A/D转换;7脚为A/D转换结束标志,当A/D转换数据结束时,7脚输出高电平;9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从端口输出;10脚为0809的时钟输入端,利用单片机30脚的六分频晶振信号再通过74hc193二分频得到。

单片机的P1、P3端口作4位LED数码管显示控制,P0端口作A/D转换数据读入用,P2端口用作A/D转换控制。

 

第4章各单元硬件设计及说明

4.1单片机的时钟源

4.1.1单片机时钟源

电容C1、C2和晶振(6MHz)组成8031的外部时钟源电路(如图4.1.1),将C1、C2和晶振组成的回路称为LC并联谐振回路,晶振起电感的作用,谐振频率由晶振的频率所决定,8031单片机的晶振可以选1.2MHz~12MHz。

电容C1、C2的取值一般在20Pf~100pF之间(在60pF~70pF时,频率比较稳定)。

 

图4.1.1单片机时钟源

采用80C52单片机作为数据处理及显示芯片,80C52的芯片管脚图如下:

图3.180C52单片机引脚图

各管脚说明:

VCC(40):

供电电源GND(20):

接地

P0(32~39)口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1(1~8)口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2(21~28)口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3(10~17)口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口作为AT89C51的一些特殊功能口,管脚备选功能

  

表4.180C52单片机P3口引脚功能

端口引脚

第二功能

P3.0

RXD(串行输入口)

P3.1

TXD(串行输出口)

P3.2

(外部中断0)

P3.3

(外部中断1)

P3.4

T0(定时器0)

P3.5

T1(定时器1)

P3.6

(外部数据存储器写选通)

P3.7

(外部数据存储器都选通)

RST(9):

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

 PSEN(29):

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

EA/VPP(31):

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

  XTAL1(18):

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2(19):

来自反向振荡器的输出。

电容C1、C2和晶振(6MHz)组成8031的外部时钟源电路,将C1、C2和晶振组成的回路称为LC并联谐振回路,晶振起电感的作用,谐振频率由晶振的频率所决定,8031单片机的晶振可以选1.2MHz~12MHz。

电容C1、C2的取值一般在20Pf~100pF之间(在60pF~70pF时,频率比较稳定)。

 

4.2ADC0809(模数转换芯片)

本系统采用ADC0809来转换模拟信号,其管脚图如下:

ADC0908引脚功能说明:

图4.2ADC0809引脚图

ADC0809引脚功能说明

IN0~IN7(1~5,26~28):

8路模拟量输入端。

  2-1~2-8(8.14.15.17.18.19.20.21):

8位数字量输出端。

  ADDA、ADDB、ADDC(23~25):

3位地址输入线,用于选通8路模拟输入中的一路

  ALE(22):

地址锁存允许信号,输入,高电平有效。

  START(6):

A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。

  EOC(7):

A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。

  OE(9):

数据输出允许信号,输入,高电平有效。

当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。

  CLK(10):

时钟脉冲输入端。

要求时钟频率不高于640KHZ。

  REF(+)、REF(-)(12.16):

基准电压。

  Vcc(11):

电源,单一+5V。

GND(13):

地。

4.3程序存储器和数据存储器电路设计

EPROM2716是8031单片机的程序存储器,用于存放指令,常数及表格。

其地址范围为0000H~07FFH。

片选端

接地,表示2716总是处于选通状态。

开机后,由8031的

PSEN控制

端(低电平有效),自动执行从0000H开始的程序。

如果从EPROM中取常数或查表,则需要执行MOVCA,@A+DPTR指令。

RAM6116是8031单片机的数据存储器,用于存放采集的数据及数据的计算与处理结果等。

它的地址范围也是0000H~07FFH,但不会与EPROM2716的地址发生冲突。

因为它的片选端

是通过8031的地址线控制的。

当地址线P26=0时,RAM6116才选通。

8031

执行MOVX@DPTR,A指令可以产生

信号,将累加器A的内容送片外数据存储器。

执行MOVXA,@DPTR指令可以产生

信号,将片外数据存储器由DPTR指定的地址单元中的内容送至累加器A。

DPTR表示16位的地址计数器的内容,它可以通过执行MOV

DPTA,#addrl6指令被赋值。

 

第5章软件设计与说明

5.1设计条件

本系统8路模拟量输入,范围0-5V。

要求对8个通道的模拟量进行巡回采样,再将采集的数据进行工程量转换后在LED显示器上显示,并能通过按键切换所选通道的采样数据。

5.2编程思想和流程图

编程思想:

根据硬件电路图,我们应用汇编语言进行编程。

首先在P2.4和P2.3引脚提供正脉冲,启动A/D转换,因转换需要一定的时间,所以需延时等待;然后读取数据,利用软件编程,将二进制数转换为十进制数,送到数码管显示;从左到右轮流点亮显示器各位,对于显示器的每一位来说,每隔一段时间点亮一次,利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁,利用单片机的P1口提供显示段码,P3口的低四位提供位码,数码管的第一位显示通道数,后三位显示0~255的采集数据。

流程图如下所示:

 

Y

N

Y

N

 

5.1主程序流程图

 

5.2.1主程序流程图

 

5.2.2模数转换流程图

5.3模块程序设计

1、初始化程序

系统上电时,将70H~77H内存单元清0,P2口置1.

CLEARMEMIO:

CLRA

MOVP2,A;P2口置0

MOVR0,#70H;内存循环清零(70H~7BH)

MOVR2,#0CH

LOOPMEM:

MOV@R0,A

INCR0

DJNZR2,LOOPMEM

MOVA,#OFFH

MOVP0,A;P0,P1,P3端口置1

MOVP1,A

MOVP3,A

RET;子程序返回

2、主程序

在刚上电时,因70H~77H内存单元的数据为0,则每一通道的数码管显示值都是000.当进行一次测量后,将显示出每一通道的AD转换值。

每个通道的数据显示时间在1S左右。

主程序在调用显示程序和测试程序之间循环,其流程图如5.1.1。

汇编程序:

START:

LCALLCLEARMEMIO;初始化

MAIN:

LCALLDISPLAY;显示数据一次

LCALLTEST;测量一次

AJMPMAIN;返回MAIN循环

NOP;PC值出错处理

NOP;空操作

NOP;空操作

LJMPSTART;重新复位启动

DISPLAY:

MOVR3,#08H;8路信号循环显示控制

MOVR0,#70H;显示数据初值(70H~77H)

MOV7BH,#00H;显示通道路数(0~7)

DISLOOP1:

MOVA,@R0;显示数据转为3位十进制BCD

MOVB,#100;7AH、79H、78H显示单元内

DIVAB;显示数据除100

MOV7AH,A;商入7AH

MOVA,#10;A放入数10

XCHA,B;余数与数10交换

DIVAB;余数除10

MOV79H,A;商入79H

MOV78H,B;余数入78H

MOVR2,#0FFH;每路显示时间控制4ms*255

DISLOOP2:

LCALLDISP;调4位LED显示程序

DJNZR2,DISPLOOP2;每路显示是时间控制

INCR0;显示下一路

INC7BH;通道显示数值加1

DJNZR3,DISLOOP1;8路显示未完转DISLOOP1再循环

RET;8路显示完子程序结束

 

LED共阳显示子程序,显示内容78H~7BH,数据在P1输出,列扫描在P3.0~P3.3口

DISP:

MOVR1,#78H;赋显示数据单元首地址

MOVR5,#0FEH;扫描字

PLAY:

MOVP1,#0FFH;关显示

MOVA,R5;取扫描字

ANLP3,A;开显示

MOVA,@R1;取显示数据

MOVDPTR,#TAB;取段码表首地址

MOVCA,@A+DPTR;查显示数据对应段码

MOVP1,A;段码放入P1口

LCALLDL1MS;显示1ms

INCR1;指向下一地址

MOVA,P3;取P3口扫描字

JNBACC.3,ENDOUT;4位显示完转ENDOUT

RLA;扫描字循环左移

MOVR5,A;扫描字放入R5暂存

MOVP3,#0FFH;显示暂停

ALMPPLAY;转PLAY循环

ENDOUT:

MOVP3,#0FFH;显示数据,端口置1

MOVP1,#0FFH

RET;子程序返回

LED数码显示管用共阳段码表,分别对应0~9,最后一个是“熄灭符”

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,

 

1ms延时子程序,LED显示用

DL1MS:

MOVR6,#14H

DL1:

MOVR7,#19H

DL2:

DJNZR7,DL2

DJNZR6,DL1

RET

3、显示子程序

采用动态扫描法实现4位数码管的数值显示。

测量所得的AD转换数据放70H~77H内存单元中。

测量数据在显示时需经过转换成十进制BCD码放在78H~7BH中,其中7BH存放通道表指数。

寄存器R3用作8路循环控制,R0用作显示数据地址指针。

4、模数转换测量子程序

模数转换测量子程序是用来控制对0809八路模拟输入电压的AD转换,并对应的数值移入70H~77H内存单元,其流程图如5.1.2。

TEST:

CLRA;清累加器A

MOVP2,A;清P2口

MOVR0,#70H;转换值存放首地址

MOVR7,#08H;转换8次控制

LCALLTESRART;启动测试

WAIT:

JBP3.7,MOVD;等A/D转换结束信号后转MOVD:

AJMPWAIT;P3.7为0,等待

TESTART:

SETBP2.3;锁存测试通道地址

NOP;延时2微秒

NOP

CLRP2.3;测试通道地址锁存完毕

SETBP2.4;启动测试,发开始脉冲

NOP;延时2微秒

NOP

CLRP2.4;发启动脉冲完毕

NOP;延时4微秒

NOP

NOP

NOP;子程序调用结束

RET

取A/D转换数据至70H~77H内存单元

MOVD:

SETBP2.5;0809输出允许

MOVA,P0;将A/D转换值入A

MOV@R0,A;放入内存单元

CLRP2.5;关闭0809输出

INCR0;内存地址加1

MOVA,P2;通道地址移入A

INCA;通道地址加1

MOVP2,A;通道地址送0809

CLRC;清进位标志

CJNEA,#08H,TESTCON;通道地址不等于8转TESTCON在测试

JCTESTCON;通道地址小于8转TESTCON在测试

CLRA;大于或等于8,A/D转换结束,恢复端口

MOVP2,A;P2口置0

MOVA,#0FFH

MOVP0,A;P0口置1

MOVP1,A;P1口置1

MOVP3,A;P3口置1

RET;取A/D转换数据结束

TESTCON:

LCALLTESTART;再发测试启动脉冲

LJMPWAIT;跳至WAIT,等待A/D转换结束信号

END;程序结束

第6章调试步骤及使用说明

由于程序比较多,整体调试不容易发现和改正错误,故采取子程序调试的方法,但要明确子程序的具体功能。

例如:

调试显示子程序时,只将显示子程序进行汇编,确认无误后单步执行,观察CPU窗口和DATA窗口以及CODE窗口相应单元的变化是否跟预期的一样。

如果有问题找出问题所在。

采取各个击破的方法调试好各个子程序。

确定各子程序无误后,再调试完整的程序,要注意各子程序之间的衔接以及和主程序之间的调用和返回。

运行后,观察有无键盘显示功能。

若运行结果不正确,首先应根据程序运行的实际现象分析判断哪些因素可引起相关故障,再通过调试方法逐一认证和排除。

通过反复调试,发现并排除软件与硬件存在的各类问题,以满足系统设计的预期目的。

 

第7章设计总结

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。

因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。

回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。

这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在同学们的探讨下在蔡老师的辛勤指导下,终于游逆而解。

同时,在蔡老师那里我学得到很多实用的知识,在次我表示感谢!

同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!

 

参考文献

1.《单片机应用系统设计》何立民编北航出版社

2.《单片机原理及应用》王迎旭主编机械工程出版社

3.《51系列单片机设计实例》楼然苗等编北航出版社

4.《51单片机应用系统开发典型实例》戴家等编中国电力出版社

5.《单片微型计算机原理及接口技术》陈光东等编华中科技大学出版社

6.《单片机实用系统设计技术》房小翠编国防工业出版社

 

附录

A、系统电路原理图:

系统电路原理图

B、程序

70~77H存放采样值,78H~7BH存放显示数据,一次个位,十位百位,通道标志。

主程序和中断程序入口

ORG0000H;程序执行开始地址

LJMPSTART;跳至START执行

ORG0003H;外中断0中断入口地址

RETI;中断返回(不开中断)

ORG000BH;定时器T0中断入口地址

RETI;中断返回(不开中断)

ORG0013H;外中断1中断入口地址

RETI;中断返回(不开中断)

ORG001BH;定时器T1中断入口地址

RETI;中断返回(不开中断)

ORG0023H;串行口中断入口地址

RETI;中断返回(不开中断)

ORG002BH;定时器T2中断入口地址

RETI;中断返回(不开中断)

初始化程序中的各变量

CLEARMEMIO:

CLRA

MOVP2,A;P2口置0

MOVR0,#70H;内存循环清零(70H~7BH)

MOVR2,#0CH

LOOPMEM:

MOV@R0,A

INCR0

DJNZR2,LOOPMEM

MOVA,#OFFH

MOVP0,A;P0,P1,P3端口置1

MOVP1,A

MOVP3,A

RET;子程序返回

 

主程序

START:

LCALLCLEARMEMIO;初始化

MAIN:

LCALLDISPLAY;显示数据一次

LCALLTEST;测量一次

AJMPMAIN;返回MAIN循环

NOP;PC值出错处理

NOP;空操作

NOP;空操作

LJMPSTART;重新复位启动

 

DISPLAY:

MOVR3,#08H;8路信号循环显示控制

MOVR0,#70H;显示数

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

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

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

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