基于单片机数据采集系统设计毕业论文 免费阅读可下载

您所在的位置:网站首页 华为云的备份数据怎么下载到手机 基于单片机数据采集系统设计毕业论文 免费阅读可下载

基于单片机数据采集系统设计毕业论文 免费阅读可下载

#基于单片机数据采集系统设计毕业论文 免费阅读可下载| 来源: 网络整理| 查看: 265

《基于单片机数据采集系统设计毕业论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。

1、前言数据采集系统是结合基于计算机的测量软硬件产品来实现灵活的、用户自定义的测量系统,它主要完成数据信息的采集、A/D转换、压缩处理,然后通过PC接口总线将处理后的数据送入计算机作进一步处理。随着计算机技术的飞快发展和普及,以数据采集系统为核心的设备也迅速在国内外得到了广泛的应用,现代工业生产和科学研究对数据采集的要求越来越高,如在工业控制中现场数据的采集,温度、压力等数据的采集,在比较重要场所安装的监控设备,还有视频会议、可视电话等场合中,都需要进行高速数据采集。现在常用的采集方式是数据采集板卡,常用的有A/D采集卡以及422、485等总线板卡,采用板卡不仅安装麻烦,价格昂贵,容易受到机箱内环境的干扰,通讯过程中极易产生

2、错误,而且由于计算机插槽数量和地址、中断资源的限制,不可能挂接很多设备,在一些电磁干扰性强的测试场所,可能无法专门对其作电磁屏蔽,从而导致采集的数据失真,针对上述问题,急需采用新的技术解决。通用串行总线(UniversalSerialBus)的出现,很好的解决了以上这些问题。它是由Compaq、Hp、Intel、Lucent(朗讯)、Microsoft、NEC和Philips七家公司联合推出的新一代标准口总线,该总线是一种连接外围设备的机外总线,最多可连接127个设备,为微机系统扩充和配置外部设备提供了方便,不仅解决了I/O插口不够的问题,而且建立了一条连接和访问外设的方法,这些方法可以有效的减少总体成本,减少硬件冲突。

3、因此,我们能够利用USB总线接口比较容易的实现低成本、高可靠性的多点数据采集系统。由于USB的种种优点,被越来越多的厂商和用户所接受,出现了USB打印机、摄像机等产品。尽管目前USB接口的应用主要集中在电脑的周边外设,但是USB产品进入工控领域将是必然的趋势,所以本课题的研究是具有一定的现实意义和经济意义的。第一章基于单片机的温度数据采集系统设计方案1.1系统设计任务与要求本次设计是基于单片机的数据采集系统设计,包括数据的采集与控制模块、数据的显示模块、数据的传输模块与数据的报警控制模块等。由于温度数据采集技术日渐成熟,且温度数据采集应用范围比较广,所以这次采集的数据是温度。温度传感器热电阻是中低温区最常用的一种温度检测

4、器。它的主要特点是测量精度高,性能稳定。其中铂热电阻的测量精确度是最高的,它不仅广泛应用于工业测温,而且被制成标准的基准仪。1.2系统总体方案的设计本次设计采用DS18B20温度传感器,因为其芯片兼容了A/D转换模块,所以在其设计上可以简化A/D转化模块,对于其它的优点将在元件介绍中详细说明。本次设计还设计有LCD液晶显示模块,使温度可以直接显示出来,被人们直接观察到。通信模块采用TTL转USB的串口通信,芯片采用接法简单、使用方便的PL2303芯片。它是一集成模块,用最简单的外部电路、最少的外部器件和最小的电路板面积实现USB2.0到UART的转换。PL2303外围电路非常简单,而与单片机连接时,只要将它的TXD和RX

5、D连到单片机的RXD和TXD就行了.1.3系统工作流程,见图1-1系统上电初始化DS18B20进行数据的采集并将数据以二进制的形式传至单片机单片机对数据进行处理数码管进行温度显示通过串口将数据传至计算机图1-1系统工作流程1.4系统硬件、软件介绍1.4.1本系统所用的硬件有:见表1-2。表1-2系统硬件清单器件名称数量AT89S52单片机1个LCD16021个DS18B201个蜂鸣器1个TTL转USB模块1个PNP1个下载线1个电容若干电阻若干导线若干1.4.2软件组成软件有:keil软件、windows操作系统和串口调试助手等软件组成。第二章数据采集系统主要元件介绍2.1AT89S52单片机介绍2.1.1AT89S52

6、单片机的特点及引脚AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。AT89S52具有以下标准功能:与MCS51兼容;8K支持在线编程(ISP)的FLASH结构程序存储器,1000次擦写寿命;工作电压为4.0V~5.5V;全静态工作:0~24MHz;3级程序安全加密保护;256*8位内部RAM;32个可编程I/O端口;3个16位定时器/

7、计数器;8个中断源;一个全双工异步串口;支持低功耗及掉电模式;支持中断从掉电模式唤醒;内置看门狗;双数据指针;工业级产品,温度范围(-40C到85C),PU为无铅环保产品。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。其PDIP图如右图所示:2.1.2AT89S52芯片的引脚介绍VCC:电源。GND:地。P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用做高

8、阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在Flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。在程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TT逻辑电平。当对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。当作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作为定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体如表1-1所示。在Flash编程

9、和校验时,P1口接收低8位地址字节。P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TT逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。当作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问表1-1P1口部分管脚的第二功能外部程序存储器或用16位地址读取外部数据存储器([email protected])时,P2口送出高8位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址([email protected])访问外部数据存储器时,P2口输出P2锁存器的内容。在Flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是

10、一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TT逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。当作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口也作为AT89S52特殊功能(第二功能)使用,如表1-2所示。在Flash编程和校验时,P3口也接收一些控制信号。表1-2P3口部分管脚的第二功能RST:复位输入。在晶振工作时,RST脚持续两个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。在DISRTO默认状态下,复位高电平有效。ALE/P

11、ROG:地址锁存控制信号(ALE)在访问外部程序存储器时,锁存低8位地址的输出脉冲。在Flash编程时,此引脚(PROG)也用做编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89S52

12、从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在Flash编程期间,EA也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。2.2DS18B20数字温度传感器介绍2.2.1DS18B20概述DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一

13、根通信线,可以挂很多这样的数字温度计,十分方便。2.2.2DS18B20产品概述(1).只要求一个端口即可实现通信。(2).在DS18B20中的每个器件上都有独一无二的序列号。(3).实际应用中不需要外部任何元器件即可实现测温。(4).测量温度范围在-55。C到+125。C之间。(5).数字温度计的分辨率用户可以从9位到12位选择。(6).内部有温度上、下限告警设置。2.2.3DS18B20引脚图及引脚功能介绍TO-92封装的DS18B20的引脚排列见图1,其引脚功能描述见表1。(底视图)图1表1DS18B20详细引脚功能描述2.2.4.DS18B20的使用方法由于DS18B20采用的是1-Wire总线协议方式,即在一根

14、数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。2.2.5DS18B20的复位时序2.2.6

15、DS18B20的读时序对于DS18B20的读时序分为读0时序和读1时序两个过程。对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。2.2.7DS18B20的写时序对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。2.3显示模块显示系统是单片机不

16、可或缺的环节,它为单片机提供了直观的观察环境。单片机显示模块应该能够做到快速简练,并且有语义明确,这对使用单片机具有很关键的作用。本实验系统涉及到两种显示方式,液晶显示和LED数码管显示,这两种显示方法在生活中被广泛的应用,学习这两种显示方法对于单片机系统的开发与设计有很大的意义。2.3.1LCD概述带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12864,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1

17、616点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。2.3.2基本特性低电源电压(VDD:+3.0--+5.5V)显示分辨率:12864点内置汉字字库,提供8192个1616点阵汉字(简繁体可选)内置128个168点阵字符2MHZ时钟频率显示方式:STN、半透、正显驱动方式:1/32DUTY,1/5BIAS视角方向:6点背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10通讯方式:串行、并口可选内置DC-DC转换电路,无需外加负压无需片选信号,简化

18、软件设计工作温度:0℃-+55℃,存储温度:-20℃-+60℃2.3.3引脚定义LCD12864模块的20个引脚定义如下:1.Vss逻辑电源地2.VDD逻辑电源正5v3.V0LCD驱动电压4.RS数据/指令选择:高电平为数据,低电平为指令5.R/W读/写选择:高电平为读数据,低电平为写数据6.E读写使能,高电平有效,下降沿锁定数据7.DB0数据输入输出引脚8.DB1数据输入输出引脚9.DB2数据输入输出引脚10.DB3数据输入输出引脚11.DB4数据输入输出引脚12.DB5数据输入输出引脚13.DB6数据输入输出引脚14.DB7数据输入输出引脚15.CS1片选择号,低电平时选择前64列16.CS2片选择号,低电平时选择后

19、64列17.RET复位信号,低电平有效。18.VEE输出-15v电源给V0提供驱动电源19.A背光电源LED正极20.K背光电源LED负极2.3.4基本电路图与时序图基本连接电路图如下图3.61234567891011121314151617181920J4SM12864IGNDVCCRSR/WEDB0DB1DB2DB3DB4DB5DB6DB7CS1CS2RSTVEEELENACA1B2TAP3R110K图3.6串行连接时序图图3.7第一字节:作用是控制数据:其格式是:11111ABC。其中:A为数据传送方向控制:H表示数据从LCD到MCU,L表示数据从MCU到LCD;B为数据类型选择:H表示数据是显示数据。L表示数据是

20、控制指令;C固定为0第二字节:表示数据的高4位,格式是DDDD0000第三字节:表示数据的低4位,格式是0000DDDD[第三章数据采集系统硬件设计3.1数据采集与控制模块DS18B20温度传感器与单片机的接口电路设计DS18B20与单片机之间一根导线进行数据传输,不需要对数据进行转换,接线简单。DS18B20的温度分辨率为0.0625,所以对温度值可以进行准确的温度转换。DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总

21、线的上拉。当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。3.2数据

22、显示模块AT89S52单片机与液晶显示LCD1602连接3.3数据传输模块3.4报警系统设计模块6.2LED显示程序设计316.3报警系统的程序设计32#include#include#include#defineucharunsignedchar#defineuintunsignedint#defineufloatunsignedfloatsbitEN=P1^3;//1602使能引脚sbitRW=P1^4;//1602读写引脚sbitRS=P1^5;//1602数据/命令选择引脚sbitbaojing=P3^2;sbitDQ=P1^6;floattemperature;uintcountvoidDelay(intj)/

23、/1延时函数100um65000{uchari;for(;j0;j--){for(i=0;i0;i--){DQ=0;//给脉冲信号dat=1;DQ=1;//给脉冲信号if(DQ)dat|=0x80;Ddelay(4);}return(dat);}//写一个字节voidWriteOneChar(unsignedchardat){uchari=0;for(i=8;i0;i--){DQ=0;DQ=datDdelay(5);DQ=1;dat=1;}Ddelay(4);}//读取温度floatReadTemperature(){uchardisp[6];floattemperature;uchartb=0,ta=0;Init_DS

24、18B20();WriteOneChar(0xCC);//跳过读序号列号的操作WriteOneChar(0x44);//启动温度转换Init_DS18B20();WriteOneChar(0xCC);//跳过读序号列号的操作WriteOneChar(0xBE);//读取温度寄存器等(共可读9个寄存器)前两个就是温度ta=ReadOneChar();//读取温度值低位tb=ReadOneChar();//读取温度值高位{disp[0]=((tb4))/100+0;//百位disp[1]=(((tb4))%100)/10+0;//十位disp[2]=(((tb4))%100)%10+0;//个位disp[3]=.;disp[

25、4]=((ta//十分位temperature=(disp[0]-0)*100+(disp[1]-0)*10+(disp[2]-0)+(disp[4]-0)*0.1;}return(temperature);}/******************************************************/ucharBusy_check()//判断忙函数LCD1602{ucharLCD_Status;P2=0xff;RS=0;//0输入指令,1输入数据RW=1;//0写入指令或数据,1读信息EN=1;//1读取信息,1-0写指令或数据Delay(10);LCD_Status=P2;EN=0;returnLC

26、D_Status;//返回状态}voidWrite_LCD_Command(ucharcmd)//写LCD命令{while((Busy_check()//D7=1禁止操作,D7=0,允许操作RS=0;RW=0;EN=0;Delay(2);//延时P2=cmd;Delay(2);EN=1;Delay(10);EN=0;}/**********************************************************/voidWrite_LCD_Data(uchardat)//向lcd发送数据{while((Busy_check()RS=1;RW=0;EN=0;P2=dat;Delay(2);EN=1;

27、Delay(10);EN=0;}/**********************************************************/voidInitialize_LCD()//LCD初始化{Write_LCD_Command(0x38);//工作方式为:数据总线8位,显示两行,5*7点阵Delay(10);Write_LCD_Command(0x01);//清屏Delay(10);Write_LCD_Command(0x06);//字符进入模式:屏幕不动,字符后移Delay(10);Write_LCD_Command(0x0c);//显示开,关光标Delay(10);}/***************

28、*******************************************/voidDisplayListChar(ucharx,uchary,uchar*s)//显示字符串函数x从0开始表示最左边第一个{if(y==0){Write_LCD_Command(0x80+x);//表示第一行}else{Write_LCD_Command(0xC0+x);//表示第二行}while(1)//字符串结束则跳出{if(*s==



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3