当前位置:文档之家› 多路数据采集和系统控制设计

多路数据采集和系统控制设计

计算机控制技术课程设计说明书多路数据采集和控制系统设计学电气工程及其自动化专业:Array 2013年 01月中北大学计算机控制课程设计任务书2012/2013 学年第一学期学院:信息商务学院专业:电气工程及其自动化学生姓名:学号:课程设计题目:多路数据采集和控制系统设计起迄日期: 12月24日~ 01月04日课程设计地点:电气工程系软件实验室指导教师:系主任:下达任务书日期: 2012 年 12月 24 日课程设计任务书课程设计任务书内容摘要:随着计算机技术的发展,数据采集系统的应用也日益广泛。

数据采集是工业控制系统中至关重要的一个环节,在生产过程中,往往需要随时检测各个环节的温度、湿度、流量及压力等参数。

同时,还要对某个检测点的任意参数进行随机查询,将所得到的检测结果提取出来以便进行比较做出决策,调整控制方案。

此外,在科研过程中,运用数据采集系统可获得大量的动态信息,也是获取科学数据的重要手段之一。

数据采集系统用于将模拟信号转换为计算机可以识别的数字信号,该系统的目的是便于对一些物理量进行监视、控制。

即将现场采集到的数据进行处理、传输、显示、存储等操作。

换言之,其主要功能就是把模拟信号变成数字信号,并进行分析、处理、存储和显示。

数据采集系统一般由数据输入通道,数据存储与管理,数据处理,数据输出及显示这五个部分组成。

输入通道要实现对被测对象的检测,采样和信号转换等工作。

数据存储与管理要用存储器把采集到的数据存储起来,建立相应的数据库,并进行管理和调用。

数据处理就是从采集到的原始数据中,删除有关干扰噪声,无关信息和必要的信息,提取出反映被测对象特征的重要信息。

数据输出及显示就是把数据以适当的形式进行输出和显示。

本次设计课题为多路数据采集器系统,是利用ATMEL公司的AT89S51单片机和ADC0809芯片设计采集模拟电压信号,转换为数字信号,经处理后由4位数码管动态扫描显示。

关键字:ADC0809芯片数据采集 AT89S51目录1 概述 (1)1.1 设计数据采集器的意义 (1)1.2担任工作 (1)1.3 数据采集器的主要功能 (1)2系统总体方案 (2)2.1 设计任务要求 (2)2.2 系统方案设计 (2)2.3 系统框图 (2)3 硬件电路设计及描述 (2)3.1 硬件系统设计原理 (2)3.2 硬件系统各个电路的设计 (3)4 软件设计流程及描述 (8)4.1 主程序流程图 (8)4.2 A/D转换流程图 (9)5 源程序代码 (9)6 体会 (14)参考文献 (15)1 概述1.1 设计数据采集器的意义数据采集器是一种具有现场实时数据采集、处理功能的自动化设备。

具备实时采集、自动存储、即时显示、即时反馈、自动处理、自动传输功能。

为现场数据的真实性、有效性、实时性、可用性提供了保证。

数据采集器在各个领域中都有广泛的运用,以后和有可能接触到这些设备,有必要深入的分析其工作原理,电路原理。

同时设计一个简单,实用的数据采集器。

完成这个课程设计也是让我们在学习了模拟电路、数字电路、微机原理、单片机等相关课程理论知识有一个融会贯通的过程。

加深对理论知识的理解,以及学会理论知识实际应用的处理方法。

为设计一个电子系统吸取经验,为今后的电气工程综合设计和毕业设计打下坚固的基础。

同时也是为了培养我们的动手能力,我们在即将毕业的前期积累宝贵的实践经验。

为以后工作培养良好的工作态度。

以分组的形式,更是让的我们深入理解了团队合作的重要性。

1.2 担任的工作在题目分配下来以后,我们小组的人都非常积极,把课余时间都用在查阅资料上,常常是穿梭在图书馆和寝室之间,努力为该课题查找有用的资料。

课程设计正式开始以后我负责基本硬件部分的设计以及仿真电路图的设计,同时参与了部分程序的编写。

在仿真结果出来以后。

参与了电路硬件的焊接。

在整个小组一直积极的参与这次设计。

1.3 数据采集器的主要功能我们的数据采集器采用的主要元件是AT89S51和ADC0809模数转换芯片。

其主要功能是模拟采集信号,并对信号进行处理,最终显示出来采集结果。

首先我们的模拟信号采用电位器产生,供给ADC0809,ADC0809有8路数据输入,也就是8路模拟电压信号。

在AT89S51的控制下,实现按键转换要求通道的电压值。

通过AT89S51的计算输出结果,显示在4为共阳极数码管上。

2 系统总体方案2.1 设计任务要求设计一由微机控制的A/D数据采集和控制系统,该卡具有对8个通道上0~5V 的模拟电压进行采集的能力,且可用键盘选择转换通道,选择ADC0809作为A/D 转换器芯片。

并在显示器上动态显示采集的数据。

2.2 系统方案设计ADC0809 将0—5V 模拟信号转换为00—FF 数字信号并传送51单片机,然后由51 单片机进行数据存储及数据处理,最终由LED 显示器显示。

完成对模拟信号的采集。

如图所示:图2-2 系统电路图2.3 系统框图图2-3 系统框图3 硬件电路设计及描述3.1 硬件系统设计原理A/D转换器ADC0809将0~5V模拟信号转换为数字信号,并传给AT89S51单片机,然后由51单片机进行数据存储及数据处理,最终由数码管显示,从而完成对模拟信号的采集。

其硬件系统原理框图如下图所示:图3-1 硬件系统原理框图本系统中,以AT89S51单片机为运算和控制的核心,它具有4个8位并行的I/O 端P0~P3,其中由P0口控制数码管显示,P1口控制信号输入。

8路模拟量采集由A/D 转换器ADC0809完成。

3.2 硬件系统各个电路的设计 3.2.1 A/D 转换电路设计 1、A/D 转换器的选取选择A/D 转换器件主要是从速度、精度和价格上考虑。

逐次逼近型A/D 转换器在精度、速度和价格上都适中,是最常用的A/D 转换器件。

ADC0809是TI 公司生产的8位逐次逼近型模数转换器,包括一个8位的逼近型的ADC 部分,并带有8通道的模拟多路开关以及微处理机兼容的控制逻辑的CMOS 组件,可以和单片机直接接口,为模拟通道的设计提供了很大的方便。

所以本设计中选用该芯片作为A/D 转换电路的核心。

2、ADC0809主要性能 a) 逐次比较型; b) CMOS 工艺制造; c) 单一电源供电; d) 无需零点和满刻度调整;e) 具有三态锁存输出缓冲器,输出与TTL 兼容; f) 易与各种微控制器接口; g) 具有锁存控制的8路模拟开关; h) 分辨率:8位; i) 功耗:15mW ;j) 最大不可调误差小于±1LSB (最低有效位); k) 转换时间(500CLK f KHz )128us; 3、ADC0809的内部结构及其特性ADC0809是CMOS工艺,采用逐次逼近法的8位A/D转换芯片,28引脚双列直插封装,片内除8位A/D转换部分外,还有8路模拟开关、三态输出锁存器以及地址锁存译码器等。

它可以分别对8路0~5V模拟量输入信号进行转换,输出量由三态锁存缓冲,可直接连到单片机的数据总线上。

其内部逻辑结构图如下图所示:图3-2-1-3 ADC0809内部逻辑结构图4、ADC0809的引脚功能ADC0809的引脚图如下图所示:图3-2-1-4 ADC0809的引脚图3.2.2 51单片机模块1、AT89S51单片机的简介AT89S51 是一个低功耗,高性能CMOS 8位单片机,片内含8k BytesISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统供给高性价比的解决方案。

2、AT89S51引脚及功能介绍AT89S51引脚图如下图所示:图3-2-2-2 AT89S51引脚配置3、复位电路设计RES引脚是复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡周期(即两个机器周期)以上。

若使用频率为6MHz的晶振,则复位信号持续时间应超过4us,才能完成复位。

复位操作有上电自动复位和按键手动复位两种方式。

本设计采用上电复位,如图所示:图3-2-2-3 复位电路4、晶振电路设计AT89S51芯片内部有一个高增益反相放大器,用于构成振荡器。

反相放大器的输入端为XTAL1,输出端为XTAL2,两端跨接石英晶体及两个电容就可以构成稳定的自激振荡器,如图所示。

电容器C1和C2通常取30pF左右,可稳定频率并对振荡频率有微调作用。

本设计中采用6MHz的晶振构成单片机的时钟电路。

晶振频率也就是振荡电路的脉冲频率,也称振荡频率。

(振荡脉冲频率范围为0~24MHz)图3-2-2-4 晶振电路3.2.3 ADC0809与AT89S51的接口设计ADC0809与AT89S51单片机的硬件接口方式一般有3种:查询方式、中断方式和等待延时方式,本设计采用查询方式。

通道基本地址为0000H~0007H。

模拟量直接由ADC0809的IN0~IN7口输入,数字量由ADC0809的2-1(D0)~2-8(D7)输出,并直接接到AT89S51单片机的I/O口的P1口,其他引脚连接如下图所示:,图3-2-3 ADC0809与AT89S51单片机的硬件接口方式 8路数据采集由A/D转换器ADC0809完成,它具有8路模拟输入端,0~5V 的直流信号送给ADC0809后,地址线(A、B、C端)决定对哪一路模拟输入作A/D 转换。

转换数据由AT89S51单片机的P0口读入。

3.2.4 输出电路设计输出电路采用数码管显示,显示方法为动态扫描显示。

显示部分的原理图如下图所示。

显示部分为4个共阳极的7段LED显示器,4个七段LED的a~dp字段的引脚分别由4个OC门同相驱动器驱动。

OC门驱动器用三极管PNP。

显示的位数由P0.0~P0.3口控制。

P2口输出位选码,三极管是反向驱动器,当P2口位控制线输出低电平时,点亮一位LED。

图3-2-4 显示部分的原理图4、软件设计流程及描述4.1 主程序流程图4.2 A/D转换流程图图4-2 A/D转换子程序流程图5 源程序代码主程序:ORG 0100HMAIN:MOV SP,#60H;给堆栈指针赋初值MOV SCON,#50H;设置串口方式1控制字MOV TMOD,#21H;设置波特率为9600MOV TH1,#0FDHMOV TL1,#0FDH;给定时器赋初值SETB TR1;启动定时器CLR P1.7;清空P1.7口SETB P1.6;置1P1.6LOOP:MOV R0,#0FFH; 在寄存器R0中写入FFMOV R4,#00H; 清空寄存器R4LOOP1:MOV A, R4;将寄存器R4的值送入累加器ASWAP A;交换A中的值ANL A, R4;将A与R4中的值相与MOV R2, A;将A的值放入寄存器R2,发送指令内容 MOV TDH,R4LCALL FAS ;调用发送子程序LCALL SJCLMOV R7,#064HXH: LCALL DISPLAYDJNZ R7,XH ;调用数码管显示子程序INC R0INC R4CJNE R4,#08H,LOOP1AJMP LOOP数码管显示子程序:DISPLAY: MOV DPTR,#DISTABMOV R3,#01HMOV R1,#TDHDPLOP: MOV A,@R1MOVC A,@A+DPTRMOV P2,R3MOV P0,ACJINE R3,#02H,DPNEXTSETB P0.7DPNEXT: MOV A,R3RL AMOV R3,AINC R1LCALL DS1MCLR P0.7CJINE R3,#10H ,DPLOPMOV P0,#00H ;一次显示结束,P0口复位 MOV P2,#00H ;P2口复位RET发送子程序:FAS:SETB P1.7MOV A, R2MOV SBUF,A;发送数据LCALL DSIMCLR P1.7CLR TR0MOV TH0,#3CHMOV TL0,#0B0HSETB TR0;启动定时器0S1:JB R1,S2CLR TI;等待接受JNB TF0,S1CLR TF0CLR TR0MOV TH0,#3CHMOV TL0,#BOH;给定时器0设初值SETB TR0S0:DJNZ CUOWU,FASMOV CUOWU ,#04HLCALL BAOJING;跳到报警程序S2:MOV A, SBUFMOV ZCI,ACLR RICLR TR0CLR TF0MOV TH0,#3CHMOV TL0,#0B0HSETB TR0S3:JB RI ,S4JNB TF0, S3CLR TF0CLR TR0MOV TH0,#3CHMOV TL0,#0B0HSETB TR0DJNZ CUOWU,FASMOV CUOWU,#04HLCALL BAOJING ;跳到报警程序S4:MOV A,SBUFMOV ZC2,ACLR RICJNE A,ZC1,S0MOV @R0,ZC1SETB P1.6AJMP FANHUI;返回程序BAOJING:CLR P1.6FANHUI:RETA/D转换程序ORG 0000HMOV R1,#20HMOV R2,#08H;设定8个通道MOV TL0,#00HMOV TH,#0B8HMOV TMOD,#01H;给计数器设定初值并初始化CLR ET0;SETB TR0;启动计数器MOV SCON,#40HMOV DPTR,#78FFH;置DPTR,使模拟通道对应的入口地址为78FFH LOOP:MOV A,R2SUBB A,R1JNZ LOOP2;跳转至LOOP2MOV R1,#00HMOV DPTR ,#78FFHLOOP1:JNB TF0,LOOP1CLR TF0MOV TL0,#00HMOV TH0,#0B8H;重新给计数器设初值LOOP2:MOVX @DPTR,A;重启A/DLOOP3:JP P1.0,LOOP3LOOP4:JNP P1.0,LOOP4;由P1.0查询ADC0809的EOC信号,确定转换完成 MOVX A,@DPTR;查询结果MOV @R1,A;保存结果INC DPH;查询下一模拟通道INC R1;同时将下一通道的值保存LJMP LOOPEND6 体会经过本次课程设计,使我深深的体会到了理论应用在实际中的存在相当多的问题。

相关主题