




免费预览已结束,剩余25页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
引言 监控系统起始于20世纪50年代,1956年美国首先研究了用在军事上的监控系统,目标是测试中不依靠相关的测试文件。可以满足众多传统方法不能完成的数据采集和测试任务,因而得到了初步的认可。大约在60年代后期,国外就有成套的监控采集设备产品进入市场,此阶段的监控设备和系统多属于专用的系统。20世纪70年代中后期,随着微型机的发展,诞生了采集器、仪表同计算机溶为一体的数据采集监控系统。由于这种监控系统的性能优良,超过了传统的自动检测仪表和专用监控系统,因此获得了惊人的发展。20世纪80年代后期,监控系统发生了极大的变化,工业计算机。单片机和大规模集成电路的组合,用软件管理,使系统的成本降低,体积减小,功能成倍增加,数据处理能力大大加强。20世纪90年代至今,在国际上技术先进的国家,监控技术已经在军事、航空电子设备及宇航技术、工业等领域被广泛应用。监控技术已经成为一种专门的技术,在工业领域得到了广泛的应用。由于串行总线技术的方向发展,可靠性不断提高。监控系统的物理层通信由于采用rs485、双绞线、电力载波、无线和光纤,所以其技术得到了不断发展和完善。其在工业现场数据采集和控制等众多领域得到了广泛的应用。由于目前局域网技术的发展,一个工厂管理层局域网,车间层的局域网和底层的设备网已经可以有效地连接在一起,可以有效地把多台数据采集设备联在一起,以实现生产环节的在线实时数据采集与监控。随着互联网技术和it技术的发展,推出了工业控制领域的开放的tcp/ip以太网modbus tcp/ip,该技术采用it行业广泛应用的技术tcp/ip,底层协议采用开放的modbus,将工业数据采集与控制网络和it网络融合为一体,使用户彻底摆脱了各种行业的工业数据采集与控制网络的束缚和限制,进入了工业控制领域的新境界。基于tcp/ip协议,可以把数据采集与工控方案变得 “透明”使生产过程的数据采集与工厂的各种控制设备和计算机设备间实现透明传输数据。同时使用户真正可以享受最新it技术带来的各种好处,使企业的生产系统、erp系统、mes系统透明实现了无缝的连接,也为制造业用户未来的电子商务应用提供了生产控制系统的基础。随着国外微电子技术、计数机技术、测控技术和数字通信技术的发展,目前国外数据监控技术已经较初期有了很大的发展。从近来国外公司展示的新产品可以看出,主要的发展可以概括为功能多样,体积减小和使用方便等三个方面。上世纪80年代末到90年代初,我国一些仪器厂已研制出了多种监控采集器,其中单通道的有sp201、sc247型,双通道的有eg3300、ye938型,超小型的有911、902和901型。具有采集静态信号的有smc-9012型,所配套的软件包基本上包括了设备维修管理和基本频谱分析两大部分,能够适应机器设备的一般状况监测和故障诊断,基本已经达到了国外数据采集器的初期水平。1 系统设计1.1 任务要求本课题主要实现多种电量的采集,采集的数据经过rs232接口传输给后台监控系统;并可接收后台的命令等,执行相应的操作。以单片机为核心实现前端数据采集,状态输入包括模拟量输入,后台监控系统基于pc机实现。要求:前端数据采集和控制执行单元。监测的数据:模拟量输入,电压范围: 0v5v,分辨率:大于等于8位;开发上位机软件,实时监控。1.2 系统的总体设计 本系统以单片机at89s52为核心,外接 a/d转换器 ad7862和 max232电平转换电路,完成对一路模拟信号的a/d转换、模拟量采集和与上位机(pc)的数据通讯,由上位机对数据进行显示或处理。单片机at89s52内含 8kb程序存储器flash r0m,不必外部扩展 ;支持在线编程(isp),既可免除芯片的插拔,又可在现场对程序修改或升级;带有全双工串行通讯口,经 max232电平转换后可实现与上位机之间较远距离的数据通讯。电路的总体设计框图如图1.1所示。主控制器单片机at89s52 txd rxda/d转换模块通信模块max232pc采样rs232接口前台采集系统 后台监控系统图1.1 简易监控系统的总体设计图其中,后台监控系统发出指令,选择工作模式,由单片机控制,进行数据采集,采集相应的模拟量,数据再分别经过a/d转换模块进行处理,处理之后上传至主控制器单片机,与此同时,将数据上传至后台监控系统级即上位机上显示。系统中,后台监控系统只要完成人机交互的工作,单片机负责对其发出的指令进行翻译、执行,这就减小了主控制单片机的工作量,也利于系统的扩展(必要的时候,可以增加芯片),加强了对整个系统的控制力。除此之外,也更好的达到人机交互的目的。1.3 方案论证1.3.1微控制器的方案选择常见的最小单片机系统芯片有:8031、8051、at89c51/52、at89s51/52等。而现在用at89c51/52和at89s52的系统设计的颇多。方案一:选用at89c52。at89c52有40个引脚,32个外部双向输入/输出(i/o)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,at89c52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和flash存储器结合在一起,特别是可反复擦写的 flash存储器可有效地降低开发成本。方案二:选用at89s52。at89s52具有如下特点:40个引脚,8k bytes flash片内程序存储器,256 bytes的随机存取数据存储器(ram),32个外部双向输入/输出(i/o)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(wdt)电路,片内时钟振荡器。综上所述,趋于at89s52和at89c51/52的价格几乎相同,而at89c51已经停产,在市场不易买到,at89s52却是在市场流行的型号,很容易买到。而且at89s52是at89c51/52的增强型,功能更为强大。因此,在最小单片机系统芯片的选择上,选择的是at89s52更为贴切。1.3.2a/d转换器的方案选择 方案一:采用tlc0831,tlc0831是ti公司推出的8位模数转换芯片,该芯片工作电压为5v,采用逐次逼近式转换结构,具有串行控制功能。250khz的频率下,转换时间约为32s。价格便宜,但是由于是串行输入,在传输过程中速度将比并行的慢,继而不考虑。方案二:采用ad574,ad574是美国ad公司生产的12位高速逐次逼近型模数变换器,片内自备时钟基准源,变换时间快(25s),数字量输出具有三态缓冲器,有着广泛的应用场合,供电电源为1 5 v,逻辑电源为+5 v。供电电源不时5v在电路设计时还要外界15v电源,比较繁琐,所以不选择。方案三:mc14433,mc14433是采用coms工艺且具有零漂补偿的3(1/2)单片双积分式a/d转化器,电路需外加两个电路和两个电阻就能实现a/d转换功能。其主要技术指标为:转换速率(310)hz,转换精度1lb,模拟电压范围0v+-1.999v或0v+-1.999mv,输入阻抗大于1000m欧姆。测量电压过低,不选择。方案四:采用adc0809,adc0809是8路8位逐次比较式a/d转换器,它能分时地对8路模拟信号进行a/d转换,结果为8路二进制数据。外部时钟频率clock决定了a/d转换器的转换速率,当时钟信号为640khz时,转换一次所需的时间约需要100s时间。方案五:ad7862有4个模拟输人端 ,分成 2个通道(a和 b)进行测量。其内部集成了两个同时工作的 12位 ad转换器,两个同步跟踪保持放大器分别与一个 2选 1电路连接,因此可以实现 a、b两组通道(v 。、va2和 v 、v )中任何一组的2路模拟输入同时采样。从而在两个模拟输入上保持了信号的相关相位信息,对高噪声环境中的输入噪声抑制起到非常重要的作用。综上所述,在考虑价格、转换精度、转换时间的基础上,选择adc7862作为a/d转换器。1.3.3通信接口部分的方案选择方案一:采用rs-232-c通信接口。rs232接口电平比较高,传输速率一般为9.6 kbps(波特率),通信距离一般在20m以内。本设计的门禁系统传输的数据只有几个字节,rs232完全足以满足传输的速度,而且其应用很成熟,成本很低。方案二:采用usb通信接口。usb即通用串行总线主要应用在pc领域的接口技术,usb版本经历了多年的发展,到现在已经发展为2.0版本。usb具有传输速度快,使用方便,支持热插拔,连接灵活,独立供电等优点。但是通信距离一般比较近,不满足系统对距离的要求。综上所述,选择rs-232-c作为通信接口部分。2 系统硬件设计硬件是一个系统的框架,在设计时必须对电路的整体功能和作用具有深入的了解之后,才能设计出符合实际,功能严谨的电路图。如之前所述,本系统硬件包含主控制器、a/d转换模块、通信模块。本章着重介绍了各个模块的工作原理,实施过程,和在电路设计之中遇到的问题以及解决方法。根据之前优选的方案,设计at89s52作为系统的主控制芯片,ad7862作为a/d转换器, max232则作为电平转换器,实现与上位机的通信。2.1 单片机最小系统在介绍了简易监控系统等部分的芯片选择和介绍后,就进行具体的硬件设计分析。设计的核心就是单片机的设计,首先要搭建单片机的最小系统,包括复位电路,时钟电路等。2.1.1复位电路常用的复位电路有上电复位和按钮电平复位,接法如图2.1复位电路所示。(a) 上电复位电路 (b) 按键复位电路图2.1 复位电路图(a)为上电复位电路,它是利用电容充电来实现的。在接电瞬间,rst端的电位与vcc相同,随着充电电流的减少,rst的电位逐渐下降。只要保证rst为高电平的时间大于2个机器周期,便能正常复位。图(b)为按键复位电路。该电路除具有上电复位功能外,若要复位,只需按图(b)中的ret键,此时电源vcc经电阻r1、r2分压,在rst端产生一个复位高电平。本系统采用的是按键复位电路。如图2.2按键复位电路所示。图2.2 按键复位电路2.1.2时钟电路52单片机的时钟有两种方式,一种是片内时钟振荡方式,但需在18和19脚外接石英晶体和振荡电容,振荡电容的值一般取10p-30p。另外一种是外部时钟方式,即将xtal1接地,外部时钟信号从xtal2脚输入。时钟xtal1脚,片内振荡电路的输入端;时钟xtal2脚,片内振荡电路的输出端。在需要始终稳定的情况下使用内部振荡产生时钟,本系统采用片内时钟振荡方式。如图2.3片内时钟振荡方式电路所示。为了得到没有误差的波特率,则采用11.0592mhz的晶振。 图2.3 内时钟振荡方式电路2.2 单片机最小系统电路at89s52是一种低功耗、高性能cmos8位微控制器,具有8k在系统可编程flash 存储器,俗称单片机。该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的at89s52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图2.4 at89s52外部封装图2.2.1at89s52主要特性(1)与mcs-51单片机产品兼容 (2)8k字节在系统可编程flash存储器 (3)1000次擦写周期 (4)全静态操作:0hz33hz (5)三级加密程序存储器 (6)32个可编程i/o口线 (7)三个16位定时器/计数器 (8)八个中断源 (9)全双工uart串行通道 (10)低功耗空闲和掉电模式 (11)掉电后中断可唤醒 (12)看门狗定时器 (13)双数据指针 (14)掉电标识符 2.2.2片内并行i/o端口(1)p0 口:p0口是一个8位漏极开路的双向i/o口。作为输出口,每位能驱动8个ttl逻辑电平。对p0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,p0口也被作为低8位地址/数据复用。在这种模式下,p0具有内部上拉电阻.在flash编程时,p0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 (2)p1口:p1口是一个具有内部上拉电阻8位双向i/o 口,p1 输出缓冲器能驱动4个ttl 逻辑电平。对p1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。此外,p1.0和p1.2分别作定时器/计数器2的外部计数输入(p1.0/t2)和时器/计数器2 的触发输入(p1.1/t2ex),在flash编程和校验时,p1口接收低8位地址字节。引脚号第二功能: p1.0 t2(定时器/计数器t2的外部计数输入),时钟输出 p1.1 t2ex(定时器/计数器t2的捕捉/重载触发信号和方向控制) p1.5 mosi(在系统编程用) p1.6 miso(在系统编程用) p1.7 sck(在系统编程用) (3)p2 口:p2 口是一个具有内部上拉电阻的8 位双向i/o 口,p2 输出缓冲器能驱动4个ttl逻辑电平。对p2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行movx dptr)时,p2口送出高八位地址。在这种应用中,p2 口使用很强的内部上拉发送1。在使用8位地址(如movx ri)访问外部数据存储器时,p2口输出p2锁存器的内容。在flash编程和校验时,p2口也接收高8位地址字节和一些控制信号。 (4)p3 口:p3口是一个具有内部上拉电阻8位双向i/o 口,p2 输出缓冲器能驱动4个ttl 逻辑电平。对p3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。p3口亦作为at89s52特殊功能(第二功能)使用。在flash编程和校验时,p3口也接收一些控制信号。 端口引脚第二功能:p3.0 rxd(串行输入口)p3.1 txd(串行输出口)p3.2 into(外中断0)p3.3 int1(外中断1)p3.4 to(定时/计数器0)p3.5 t1(定时/计数器1)p3.6 wr(外部数据存储器写选通)p3.7 rd(外部数据存储器读选通)此外,p3口还接收一些用于flash闪存编程和程序校验的控制信号。rst复位输入。当振荡器工作时,rst引脚出现两个机器周期以上高电平将是单片机复位。ale/prog当访问外部程序存储器或数据存储器时,ale(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ale仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ale脉冲。对flash存储器编程期间,该引脚还用于输入编程脉冲(prog)。如有必要,可通过对特殊功能寄存器(sfr)区中的8eh单元的d0位置位,可禁止ale操作。该位置位后,只有一条movx和movc指令才能将ale激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ale禁止位无效。psen程序储存允许(psen)输出是外部程序存储器的读选通信号,当at89c52由外部程序存储器取指令(或数据)时,每个机器周期两次psen有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次psen信号。ea/vpp外部访问允许,欲使cpu仅访问外部程序存储器(地址为0000h-ffffh),ea端必须保持低电平(接地)。需注意的是:如果加密位lb1被编程,复位时内部会锁存ea端状态。如ea端为高电平(接vcc端),cpu则执行内部程序存储器的指令。flash存储器编程时,该引脚加上+12v的编程允许电源vpp,当然这必须是该器件是使用12v编程电压vpp。图2.5为单片机的处理单元电路。单片机的串口发送管脚txd和接收管脚rxd经过 232芯片的电平转换通过9针插孔与 pc机的i/o口直接相连就可以了。单片机采用了最小系统,考虑到程序中的时序控制,在xtal1和xtal2脚接了11.0592mhz的晶振,这样可以减小波特率的误差。整个单片机的工作电压为5v,单片机控制模块是整个设计中最重要的模块,它支持和完成了整个系统的工作。图2.5 at89s52单片机最小系统2.3 a/d转换部分在数据采集及转换系统中,要从信号源中采集模拟信号,转换成数字形式,以便输入给上位机,这就要用到a/d转换器。这需要考虑其运转速度、精度、价格。基于本次毕业设计要求监控的电压范围:0v+24v 或 0v+5v,分辨率:大于或者等于8位,参考了一些芯片,决定选用ad7862作为转换器。2.3.1ad7862芯片的主要特点及引脚ad7862是ad公司推出的12位ad转换芯片 ,具有以下主要特点:(1) 4通道模拟输入,2路同时转换(内置2个可同时工作的12位集成ad转换器) ;(2)4s转换时间 ,250ksps采样速率;(3)可选择模拟量输入范围:10v(ad7862 - 10) ,5v(ad7862 - 3) ,02.5v(ad7862 - 2);(4)高速12位并行总线输出;(5)内部提供+2.5v参考电压或者由外部提供参考电压;(6)单一电源+5vad7862 的引脚封装如图2.6所示。 图2.6 ad7862引脚图ad7862内部集成两个可以同时工作的12位ad转换器 ,两个同步跟踪/保持放大器分别与一个 2选1电路连接,因此可以实现ab两组通道(va1、va2与vb1、vb2)中任何一组的2路模拟输入同时采样。模数转换器可以在4s内完成转换。图2.7为ad7862高速采样读取典型工作时序图2.7 ad7862高速采样读取典型工作时序单片机是电路的核心,完成对ad7862工作模式、时序的控制和一路数据的读取,以及送数据到pc机所有的功能。ad7862负责对输入的一路信号进行模数转化,通过内部的数据锁存器将转换后的数字信号保存好,等待单片机读取。ad7862和单片机的连接如图2.8所示 。图2.8 ad7862模数转换部分2.4 通信接口部分的设计2.4.1max232芯片介绍单片机和pc通信时需要进行电平转换,常用的是max232, max232a内部结构如图2.9所示具有双充电泵电压变化器。把+5v变换成+-10v,作为充电器的电源,具有两路发送器及两路接收器,使用方便。 图2.9 max232内部结构图2.4.2关于rs232总线rs232是异步串行通讯中应用广的标准接口。rs232的最初制定是为了促进使用公共电话网络进行数据通讯。rs232标准适用于dce和dte之间的串行二进制通讯。最高数据速率为19.2kb/s。如果不增加其他设备,rs232标准的电缆长度最大为15m。rs232使用的是负逻辑、要求高、低两信号有较大幅度,其负载为37k时,驱动器的电平:逻辑0:+15+15v;逻辑1:-5-15v;接收器的输入检测电平为:逻辑0:+3v;逻辑1: -3 v。系统采用 max232进行电平转换。max232与单片机的连接如图2.10所示图2.10 max232与同单片机的连接图rs232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在 +5v到 +15v之间,负电平在-5v到-l5v之间,当无数据传输时,线上为ttl电平,从开始传送数据到结束,线上电平从ttl电平到 rs232电平再返回ttl电平。单片机与 pc机通过串口进行通信,对于硬件来说,只需把单片机的串口发送管脚txd和接收管脚rxd经过 232芯片的电平转换通过9针插孔与 pc机的i/o口直接相连就可以了。单片机串口为ttl电平,pc机串口为232电平,故需要电平转换电路。2.5 电路板的制作每次实训,基本都设计到电路板的制作,由于我们电子信息工程专业修过protel这门课程,所以对于电路板的制作是比较简单的。本次电路板的制作,也许是毕业之前最后的一次,所以我对这次非常珍惜,也正是因为本次毕设,才使我在踏入社会工作之前,更加深入了对电路板的制作过程。2.5.1原理图设计使用protel进行电路板设计的第一步便是设计原理图,原理图决定了整个电路的基本功能,也是接下来生成网络表和设计印刷电路板的基础。(1)在protel 99的初始界面下新建一个设计库,该数据库用来管理项目。 (2)进入设计库文件中的文件夹document。(3)在document 文件夹中新建原理图文件和印制板文件。(4)打开原理图文件。(5)添加原理图文件库。(6)放置电路所需的各种元件,图件,网络标号等元器件。(7)对原图元件进行布局,布线,构成一个完整的原理图。 (8)编辑和调整。然后进行输出存档。(9)打印或建立报表。2.5.2pcb设计用pcb系统设计pcb板分以下几个步骤:(1)有关参数的设置。这一步主要设定自动布参数、自动布线参数、板面参数等。(2)pcb板尺寸设计。在禁止布线层上,沿设计的pcb边画边框线,即指定自动布局的范围。这一步为自动布局打基础。同时,在上层板面(即元器件面)沿禁止布线层的边框图线放置铜线,这是pcb板最后成型所必须的。(3)布局。就是根据原理图上元器件之间的连接关系,并考虑电磁兼容性以及元器件的安装空间和散热等,总是将元器件放置在pcb电路板上适当的位置。布局的好坏直接影响pcb板的电气性能和布局的功能,是pcb板设计过程中最费时、最繁琐的。在本次设计中,采用的是手工布局,首先载入sch生成的网络表,通过手工移动元器件pcb板上的排列位置实现布局。移动元器件最好打开网络连接显示,这样能观察到相邻元器件连线的疏密。(4)布线。布线就是在元器件引脚之间放置覆铜连线的过程,这一过程可以通过手工完成,也可以自动进行。在设计应用中把自动布线和手动布线相结合起来应用,在设计好布线参数,定义布线规则的基础上在加以手动调整。根据板子的形状,为最少干扰,最好在板子的上下层进行覆铜。注意:在覆铜时的选项中不要忘记选择的网络为gnd(地)。布好pcb图,检查无误后,将pcb图打印到转印纸上,然后熨到电路板上,腐蚀,打孔。熨板前,把铜板用砂纸去掉表面被氧化的部分。腐蚀时,用三氯化铁加适量的开水配成三氯化铁溶液进行腐蚀,这样腐蚀会比较快,腐蚀完后用水把电路板清洗,接着便开始打孔,打完孔后,将其放在一边晾干。同时,测量部分器件是否有损坏,等电路板晾干后,就要把器件按pcb图来安装好。然后就可以开始焊接了。焊接时要防止虚焊和未连接上,所以在焊好后,再用万用表测量元件和线路是否连接好。检测完毕后,硬件电路板装配便完成了。3 系统软件设计软件是整个系统的核心。在保证硬件的设计正确性之后,软件的设计和调试就变成一个尤为关键的步骤。软件应该采用分模块的设计调试方法,各个模块逐一调试,这样 做的好处是不会相互干扰,以及条确保条理清晰。系统总体设计流程如下图3.1所示 经rs232传至pc机并显示noyes开始初始化flag=1启动ad发送数据至单片机图3.1 系统总体设计流程图3.1 系统编程语言和编程工具在这次对软件程序的编程时,我采用的是keil 作为编程语言软件平台,采用的单片机的c语言,它符合ansi标准。设计的软件需要硬件配合以达到水温的检测、对时间、水温的设定、定时、显示、计算、报警、控制输出等功能。c51是使用在单片机上的c编程语言。与标准 c语言相同,它也是一种结构化程序设计语言,支持当前程序设计中广泛采用的由顶向下结构化程序设计技术,可以容易地实现程序结构模块化,用c51编写系统程序,会大大缩短开发周期,且明显地增加软件的可读性,使程序易于维护和扩展,并且具有很强的移植性。因此,使用c51进行单片机程序设计是单片机开发与应用的必然趋势。目前,8051上的c语言的代码长度,己经做到了汇编水平的1.21.5倍。对于4k字节以上的程序,c语言的优势更能得到发挥。而在开发速度、软件质量、结构严谨等方面c语言的完美绝非汇编语言编程所可比拟的。使用单片机c语言有以下优越性:(1) 不同函数的数据实行覆盖,有效利用片上有限的ram空间;(2) 具有坚固性:c语言对数据进行了许多专业性的处理,避免了运行中间数据被破坏;(3) 提供了复杂的数据类型(结构、枚举、指针等),极大地增强了程序处理能力和灵活性;(4) 提供 auto, static, const等存储类型和专门针对 8051单片机的data, idata, pdata, xdata, code等存储类型,自动为变量合理地分配地址;(5) 提供small, compact, large等编译模式,以适应片上存储器的大;(6) 中断服务程序的现场保护和恢复,中断向量表的填写都由编译器代;(7) 头文件中定义宏、说明复杂数据类型和函数原型,利于程序的移植和支持单片机的系列化产品的开发;(8) 可方便地接受多种实用程序的服务,如片上资源的初始化有专门的实用程序自动生成。 由此可见,采用c语言来解决单片机系统的程序设计问题要比采用汇编语言编程容易得多和有效得多。3.2 下位机模块程序前面提到,模拟量的采集和处理是整个系统中很重要的一个部分,本系统选择ad7862的va1通道进行模数转换。采集信号由函数信号发生器提供,当模数转换结束后,数据存放在输出锁存器中。然后将读取的数据结果通过 12 位数据总线一次读出 。12位数据总线接至单片机的po口和p1口。首先,选择模拟输入通道。ad7862通过多路选择控制信号a0可以对输入拟通道进行选择。当 a0=0 时,ad7862将对a组两路信号va1、va2同时进行模数转换;当a0=1 时,对b组两路信号vb1、vb2同时转换。结合cs和rd信号,ad7862可以有不同的输入和读取模式。对于本系统,只选择a组信号中的va1通道进行模数转换,db0-db7为低8位数字量输出端,db8-db11为高4位数字量输出端。其次,ad模数转换。多路选择信号a0控制模拟信号的输入,数字信号的读取操作由cs和rd控制。当片选信号cs有效时,rd为低电平时可以从12位数据总线一次读取转换的数据结果。在convst下降沿脉冲下,跟踪/保持器保持输入信号,并且开始信号进行模数转换,这时,busy脚电平抬高表示正在进行转换。在经历 4s以后,转换完成,busy脚电平变低,数据存放在输出锁存器中。图3.2为ad转换流程图选择va1通道模数转换将输出数据送至单片机开始初始化送pc机显示并储存图3.2 ad转换流程图3.3 上位机模块程序上位机程序采用visual c+设计,利用ni控件,极大地方便了上位机的串口编程。控制界面是以波形的方式来显示:还可以对采集回来的数据通过处理再加以显示。具体显示数据的方法要根据采集量的性质以及采集系统的目的来决定。3.3.1上位机编程语言和编程工具上位机是指:人可以直接发出操控命令的计算机,一般是pc,屏幕上显示各种信号变化(液压,水位,温度等)。下位机是直接控制设备获取设备状况的的计算机,一般是plc/单片机之类的。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机不时读取设备状态数据(一般模拟量),转化成数字信号反馈给上位机。简言之如此,真实情况千差万别不离其宗。上下位机都需要编程,都有专门的开发系统。 visual c+是一个功能强大的可视化软件开发工具。自1993年microsoft公司推出visual c+1.0后,随着其新版本的不断问世,visual c+已成为专业程序员进行软件开发的首选工具。 虽然微软公司推出了visual c+.net(visual c+7.0),但它的应用的很大的局限性,只适用于windows 2000,windows xp和windows nt4.0。所以实际中,更多的是以visual c+6.0为平台。 visual c+6.0不仅是一个c+编译器,而且是一个基于windows操作系统的可视化集成开发环境。visual c+6.0由许多组件组成,包括编辑器、调试器以及程序向导appwizard、类向导class wizard等开发工具。 这些组件通过一个名为developer studio的组件集成为和谐的开发环境。3.3.2上位机软件设计过程从理论上来讲,mfc也不是专用于visual c+,borland c+,c+builder和symantec c+同样可以处理mfc。同时,用visual c+编写代码也并不意味着一定要用mfc,只要愿意,用visual c+来编写sdk程序,或者使用stl,atl,一样没有限制。不过,visual c+本来就是为mfc打造的,visual c+中的许多特征和语言扩展也是为mfc而设计的,所以用visual c+而不用mfc就等于抛弃了visual c+中很大的一部分功能。但是,visual c+也不等于mfc。首先,打开vc,点击new,再点击,之后ok以后进入如下界面:图3.3 mfc appwizard-step 1点击finish即可,进入编程并添加文件如下:图3.4 监控系统classes点击运行即可。对于电子信息工程专业的我们,对于上位机没接触过,但通过段时间的学习,我清楚了上位机只是一个操作步骤,一些程序的编写只是固定模式,而要真正掌握上位机,则需要更加深入的了解和学习。4 调试过程4.1 硬件调试硬件调试对于整个硬件电路来说是非常重要的,通过对硬件电路的调试过程,才能检查出电路是否存在各类问题。调试步骤如下:(1) 首先,在未接通电源的情况下,将组装好电路仔细检查,如管脚是否都已焊接完毕,是否存在断线等情况。(2) 在接电源时,得特别注意正负极是否接反。检查完毕后接通电源。电源接通后,观察电路板是否出现异常现象,如元器件发烫,发出声响等。然后,测量下各个芯片的电压是否在误差范围之内,电压正确才能确保电路的正常工作。(3) 对电路板的各个模块进行调试。按照各个性能的指标来判断电路的各个模块是否运作正常。首先,测试单片机与pc连接是否正常,串口通信是整个系统的眼睛,只有在通信成功的情况下,才能检测其他功能是否能正确工作。检验是否可与pc正常通讯,使用串口调试助手进行调试。接好串口线后,打开计算机,启动串口调试助手;若在同一计算机上,则将先启动的串口号设置为com2,再次启动串口调试助手(等于在同一计算机上启动两个程序),并将串口号设置为com1,实际设置时,串口号要根据自己在计算机配置设定相应的串口号。通信双方的串口参数要一致。下面,在单片机中烧入程序一段测试程序,具体功能是使串口不停地输出 “12345678abcdefg”连接好电路,上电之后,串口调试助手显示:12345678abcdefg证明通信成功!其次,测试a/d转化模块结果是否正常,a/d转化是一个比较重要的模块,本系统中设置要求a/d转换0v+5v电压,测试电压即可。经测试,电压为4.97-4.99之间,误差范围在要求之内。(4)对整体电路进行观察,检测电路性能参数及数据是否符合设计要求,如下位机的输入数据在上位机中显示的波形是否对应等。4.2 软件调试利用keil 8.02完成程序编写操作后可进入建立目标文件。通常先点编译当前文件“translate current file”,再建立目标文件“build target”;或直接点重建目标文件“rebuild all target files”。即可生成我们需要的后缀名为hex的十六进制文件。编译或汇编的结果上面提示“0个错误、2个报警”。如果在编译、连接中出现错误,则可按照提示进行检查。这个. hex文件就是我们要下载到单片机中的程序文件。软件调试应该采用分模块的调试方法,各个模块逐一调试,这样不会相互干扰,检测错误也相对简单。在对程序的调试时,使用keil对程序进行调试,由于keil有一个功能是显示串口输出的内容,所以在这里比较方便。首先生成工程,选择合适的单片机,将程序写入软件,在运行无误之后,点击调试进入调试模式。对于单片机c语言的调试,如果出现语法错误,c语言软件会提示出来。头文件在c语言程序中是非常重要的,因此,对于软件调试首先得检测头文件是否正确。然后检查程序的初始化。再进行分模块检测。首先检测主函数是否正确,一开始,将中断允许位写错了,应该先让cpu关闭所有中断,等数据转换发送完后再让cpu允许所有中断。再对ad7862的读写,发送等进行调试,在调试时,应该注意高低位数据存放的i/o是否与硬件对应。然后根据软件的步骤来检查。再检测上位机的程序是否正确,通过这一系列的检测,然后确定是否能达到设计要求。5 运行结果及误差分析输入波形由函数信号发生器提供,上位机在pc上显示,整个系统连接如图5.1图5.1 整个系统连接图(1)在输入端,通过示波器输入5v的方波,在上位机上显示的波形如图5.2。图5.2 上位机方波显示(2)在输入端,通过示波器输入5v的正弦波,在上位机上显示的波形如图5.3。图5.3 上位机正弦波显示(3)在输入端,通过示波器输入5v的三角波,在上位机上显示的波形如图5.4。图5.4 上位机三角波显示 经测试,波形在振幅为4v,频率为4hz,显示波形最佳。振幅越小,频率越小,上位机显示的波形越失真。6 结论本毕业设计课题是简易监控系统设计,主要研究的是一个类似于示波器的课题,以单片机芯片为核心的系统。该系统具有对波形的实时检测和控制功能。同时这个系统可以代替实验室里所用的示波器,成本低,具有一定的研究意义。为了完成毕设课题,首先广泛在查阅监控系统理论和方法的基础上,详细分析毕设总体要求和技术指标,确定了系统总体方案,深入研究和选择了各种芯片和器件,决定制作一个示波器的整体项目,对函数信号发生器的波形实行实时检测,完成了监控系统的硬件电路的设计、制作和调试,其次在软件程序设计上,深入研究了单片机c语言程序设计和使用,通过使用keil c51进行编译调试,并对其使用过程中的经验进行了总结。另外,对监控系统的数据精确性也做了深入的调查研究,确定选用更加精确的ad7862作为主要的ad转换芯片,从而提高系统的精度和稳定性,最后,对毕设课题的实验结果、系统误差和抗干扰措施进行了分析。这次毕业设计历时至少三个多月的时间,从一开始的确定课题,到后来的资料查找、理论学习,再有就是近来的调试和测试过程,这一切都使我的理论知识和动手能力有了进一步提高。通过本次毕设,对整个大学的课程有了更深刻的认识,这不仅需要学习智能仪器的知识,还要用到微机控制原理以及单片机编程原理,充分的体现了课程的承前启后的作用,并且无论自己的理论知识有多么地扎实,在实际操作中还是存在一定的困难,画好原理图是最重要的一步,如果原理图错了就不能做出理想的结果。由于芯片比较简单,主要在调试的过程中出现了一点问题,采集到的数据非常不稳定,上位机的波形不够稳定,让我们更加深刻的体会到在毕设的每一个过程中一定要细心,不能有半点马虎,要多观察,一点小小的失误都有可能使得实训不成功,要有认真的态度。这次实训也让我们明白了要独立完成,勤学多问,只有通过个人的努力,独立完成整个毕设,才能加深对理论知识的学习及掌握。理论知识是为实践做指导的只有学好了理论才能熟练的运用到实践当中,而在实践中遇到的困难又能帮助我们加深理论知识的学习让我们明白自己的不足,从而更加的努力学习。通过本次毕业设计,我从中获益匪浅。从最开始的选题到查找资料,从对题目的研究设定到pcb电路板的制作,从电路板的调试到失败后再一次全部重新开始。这一个充满挑战伴随挫折,充满热情伴随打击的过程中,我感触颇深,它已不仅是一个对我四年学习知识情况和我的应用动手能力的检验,而且还是对我的钻研精神,面对困难的心态,做事的毅力和耐心的考验。我在这个过程中深刻的感受到了做毕业设计的意义所在。谢 辞首先,我要真诚地感谢我的指导老师朱爱军老师,老师的虚心指导和关怀帮助我完成了此次毕业设计,老师渊博的知识、对待科学的严谨以及平易近人的态度给我留下了深刻的印象,使我受益非浅,受用终生。起初,我基础一般,并对这个课题没有什么大体的认识,是老师的细心讲解给我提供了很大的帮助,使我找到了努力的方向。当遇到问题的时候,老师给了我许多的鼓励,让我能最终坚持下去。到后来的调试、试验,老师也给我提出了很多宝贵建议和意见,让我少走了很多弯路。再次感谢老师,使我能顺利完成此次毕业设计。同时,还要感谢全体电子工程系的老师,四年来,是你们使我有了很大的进步,是你们使我由衷地热爱起了我所学习的专业。回想起一门门专业课,点点滴滴,是知识的积累,直到最后让我有能力完成这次的毕业设计。在此,我向
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重症医学科护理质量管理
- 胆汁淤积性黄疸的临床护理
- 大班幼儿报警安全教育教案
- 生产运营管理:产品与服务设计
- 小儿结节性脂膜炎的临床护理
- 爆炸的急救护理
- 护理安全用药指导
- 秋冬季常见传染病预防幼儿园
- 小儿尼曼-皮克病的临床护理
- 新生儿待产护理
- 2.1 充分发挥市场在资源配置中的决定性作用 课件-高中政治统编版必修二经济与社会
- 2024年河南郑州航空港投资集团招聘真题
- 2024年宝应县公安局招聘警务辅助人员真题
- 2025至2030中国数据标注行业创新现状及投融资风险研究报告
- 中汽研X华为 2024年自动驾驶安全模型研究-2025-04-自动驾驶
- 社会规则核心是分配:-上层按权分配-中层按资分配-下层按劳分配
- 2024-2025学年高中生物每日一题光合作用与细胞呼吸过程综合含解析新人教版必修1
- 清真培训考试题及答案
- 2025年北京市西城区高三一模物理试卷(含答案)
- 2025-2030全球及中国COB发光二极管行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 群众文化知识试题及答案
评论
0/150
提交评论