《基于单片机的数据采集系统的硬件设计和软件设计(23页).docx》由会员分享,可在线阅读,更多相关《基于单片机的数据采集系统的硬件设计和软件设计(23页).docx(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于单片机的数据采集系统的硬件设计和软件设计-第 24 页摘要随着信息技术的飞速发展,实时数据采集和处理的不可缺少的。这是给设计工作提出了两个要求:首先要求简单的智能接口,并具有较高的数据传输速度;其次,因为数据通常比较大,要求的实时数据计算器能快速做出反应,及时进行分析和处理。本文介绍了基于单片机的数据采集系统的硬件设计和软件设计,系统硬件部分的重心在于单片机。数据采集采用了单片机STC12LE5A32S2来实现,软件部分则借助KEIL C51来实现。 关键词:单片机 数据采集 KEIL C51AbstractWith the rapid development of informatio
2、n technology, real-time data acquisition and processing of the indispensable. This is put forward two requirements to the design work: first requires simple intelligent interface, and has high speed of data transmission; second, because the data is usually large requirements of real-time data accord
3、ing to the calculator can quickly respond timely analysis and processing.This paper introduces the hardware design and software design of the MCU data acquisition system based on, the center of gravity of the hardware part of the system lies in the monolithic integrated circuit. Data collected by th
4、e SCM STC12LE5A32S2 to achieve, part of the software with KEIL C51 to realize.Keywords: Microcontrollers,Data acquisition ,KEIL C51 目录第1章 引言.1.1课题研究的背景及意义.1.2国内外研究现状及发展趋势.第2章 系统总体设计方案.2.1系统总体设计方案.2.1.1系统设计要求.2.1.2系统总体方案和主要任务.2.2主要部件的选型.2.2.1 STC12LE5A32S2芯片.2.2.2 DHT11数字温湿度传感器.2.3软件开发平台介绍. 2.3.1 KEI
5、L C51开发软件.2.3.2 MSComm 控件.第3章 系统硬件设计.3.1数据采集系统总体结构.3.2数据采集系统硬件电路.3.2.1单片机最小系统设计.3.2.2传感器电路.3.3硬件保护与抗干扰措施.第4章 系统软件设计.4.1系统软件开发语言.4.2数据采集系统软件总体设计方案.4.3数据釆集系统软件模块化设计.4.3.1主程序.4.3.2数据采集子程序.4.3.3看门狗子程序.第5章 系统调试.5.1数据采集系统测试.5.2进一步研究与完善建议.结论.致谢.参考文献.第1章 引言1.1 课题研究的背景及意义 随着计算机技术的飞速发展和普及,数据采集系统也迅速地得到应用。在生产过程
6、中,应用这一系统可对生产现场的工艺参数进行采集,监视和记录,为提高产品质量,降低成本提供信息和手段。在科学研究中,应用数据采集系统可获得大量的动态信息,是研究瞬间物理过程的有力工具,也是获取科学奥秘的重要手段之一。总之,不论在哪个应用领域中,数据采集与处理越及时,工作效率就越高,取得的经济效益也越高。电子计算机的发展对通信起了巨大的推动作用.计算机和通信紧密结合可以构成灵活多样的通信控制系统也可以构成强有力的信息处理系统,这样对社会的发展产生深刻的影响.数据通信是电子计算机广泛应用的必然产物.计算机与它的终端之间需要数据通信,计算机与计算机之间更需要数据通信.此处在遥测,遥感,雷达,自动控制等
7、系统中都要用到计算机,因而都需要数据通信.数据采集系统,从严格的意义上来说,应该是用计算机控制的多路数据自动检测或巡回检测,并且能够对数据实行存储、处理、分析计算以及检测的数据中提取可用的信息,供显示、记录、打印或描绘的系统。数据采集系统一般由数据输入系统,数据存储与管理,数据处理,数据输出及显示这四个部分组成。输入通道要实现对被测对象的检测,采样和信号转换工作。数据存储与管理要用存储器把采集到的数据存储起来,建立相应的数据库,并进行管理和调用。数据处理就是从采集到的原始数据中,删除有关干扰噪声,无关信息和必要的信息,提取出反映被测对象特征的重要信息。另外,就是对数据进行统计分析,以便于检索;
8、或者把数据恢复成原来的物理量形式,以可输出的形态在输出设备上输出,例如打印,显示,绘图等。数据输出及显示就是把数据以适当的形式进行输出和显示。1.2 国内外研究现状及发展趋势早在五十年代末期,就出现了一种集中式的半自动数据采集系统1-4,其主要的功能是对测量结果进行统计、处理和间接测量的计算等等。到了六十年代末和七十年代初,随着检测技术和计算机的进一步结合,出现了所谓第一代计算机检测系统,即采用计算机的数据采集系统、数据自动分析系统和综合自动检测系统。这些系统的检测过程主要通过模拟/数字(A/D )转换器,把检测仪表与计算机连接在一起,组成以小型机为基础的数据采集系统。其特点是检测过程可以对数
9、据进行处理并将结果贮存、显示、打印或生成报表。到了七十年代中期,又产生了第二代计算机自动检测系统。由于通用标准接口总线(如IEEE-488, RS-232C5等)的出现,解决了仪器仪表相互之间和仪器仪表同计算机之间的连接问题,这样就形成了以计算机为核心,有多台可程控的仪表按积木方式组合成成套装置。这种检测系统占领了仪器仪表市场,而且还在不断的完善和发展。微型计算机6,7的诞生,使测试技术发生了深刻的变革,目前正在发展的以微处理器为基础的智能仪表和检测系统是属于第三代计算机自动检测系统。这种智能化检测系统的突出特点是把微处理器和仪表结合在一起并构成一个整体,其特点是许多仪表中的硬件功能可以由软件
10、代替,这样不仅使系统大大简化,降低成本、减小体积和重量及提高系统的可靠性,而且由于软件编程工作具有很大的灵活性,因此可以使系统的功能大大增强。通过微型计算机可以对电压、电流、压力、温度等物理量进行直接采样和计算,经过计算处理后,能立即得出试验设备的各种参数和性能,从而大大减轻了劳动强度,使劳动生产率得到成倍增长,测试数据和计算结果能自动打印,克服和消除了人为因素造成的误差,最终使系统的可靠性和测试精度及测试效率大大提高。而且这种智能化仪表一般都具有与计算机相连接的标准接口,作为一台智能控制仪表单元接入系统,从而可以组成功能更强、规模更大的自动检测系统,通过软件编程将各种数据处理技术应用于检测系
11、统中,使系统精确度提高。除此之外,还可以采用程控人机对话功能、故障诊断功能、记录显示功能、量程切换功能和结果判断功能,使检测系统的自动化水平及智能化程度大大提高。现代工业控制、自动检测技术及信号处理中数据是指现场采集来的电压、电流、压力、流量、液位、温度和角度等信号,此外还包括一些开关量信号。在微型计算机应用于智能化仪器仪表、信号处理和工业自动化等过程中,都存在着模拟量的测量与控制问题,即将温度、压力、流量、位移及角度等模拟量转变为数字信号,再收集到微型机上进一步予以显示、处理、记录和传输,这个过程即称“数据采集”8,9,相应的系统即为微机数据采集系统。本课题正是针对市场的需求,通过充分运用单
12、片机内部资源,对多种参数测量、显示和传输等进行了研究,设计了数据采集系统,并在实际产品中得到了实现。第2章 系统总体设计方案2.1系统总体设计方案2.1.1系统设计要求系统设计包括软件设计和硬件设计两大方面,二者之间互有影响,一般原则是简化设计(采用功能较强的芯片以简化电路,增强可靠性);冗余设计(考虑以后的扩展及修改):以软件代替硬件(在速度允许的条件下,能用软件的尽量不用硬件),如软件低通滤波代替硬件低通滤波,软件中断代替硬件中断等等。硬件设计一般包括单片机接口电路的设计和单片机作用对象的设计,在硬件电路的基础上,高质量的软件可使仪器的性能大为提高,其中包含如:中断控制 、定时、码制转换、
13、自动量程转换以及数据的采集、处理、输出等程序。在设计时,软硬件的配比问题应予重视,较多的使用硬件来完成一些功能,可以提高工作速度,减少软件工作量;较多的使用软件来完成一些功能,则可降低硬件成本,简化电路,但增加了编程的工作量,因此在综合设计时,应根据所研制的周期及市场状况进行合理划分。2.1.2系统总体方案和主要任务2.1.2.1. 系统总体方案本文采用单片机为核心,设计出一款数据采集系统,此系统应具有普遍的适用性。对此提出如下总体设计方案:采用LM1117完成电平与电平之间的转化,以单片机为核心,结合STC芯片搭建数据采集和存储系统。软件编程采用C语言:模块化编程、效率高、结构逻辑清楚、可读
14、性好、移植性好。2.1.2.2.主要任务本论文在完成过程中主要包含以下几项任务:(1)釆集与数据传输方案的设计:查阅文献,确定数据釆集系统方案、数据传输方案。(2)系统硬件电路设计:根据确定的方案,通过查阅文献,分析已有类似系统存在问题的基础上,确定本设计中硬件电路应具有数据实时采集功能。此次设计选择以位高性能单片机为主控制器,设计外围需要电路原理图,制作电路板,其中主要包括电流、电压采样电路,数据存储电路,串口输出电路,电源电路以及各种抗干扰保护电路(3)系统软件编程:此系统主要釆用C语言编程,结合存储芯片的功能,防止数据的掉电丢失,实现得接参数采集、存储和数据串口输送。(4)系统整体调试:
15、通过实验检测系统各项功能是否达到要求,对系统的完善提出建议。2.2主要部件的选型2.2.1 STC12LE5A32S2芯片STC12LE5A32S2芯片是由宏晶科技推出的一种功耗小、超强抗干扰、高性能位微处理器,一方面继承了经典的内核结构,指令代码完全兼容传统的单片机,时钟机器周期和时钟机器周期可以随便选择,另一方面在原有的内核上做了很多的改进,使得芯片具有传统单片机不具备的功能。单芯片拥有灵巧的位和在系统可编程使得为众多嵌入式控制应用系统提供高灵活、有效的解决方案。2.2.1.1 STC12LE5A32S2主要特性如下(1)增强型8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统
16、8051;(2)工作电压:STC12C5A60S2系列工作电压:5.5V-3.3V(5V单片机)STC12LE5A60S2系列工作电压:3.6V-2.2V(3V单片机);(3)工作频率范围:0 - 35MHz,相当于普通8051的 0420MHz;(4)用户应用程序空间8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K字节;(5)片上集成1280字节RAM;(6)通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O口),可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏,每个I/O口驱动能力均
17、可达到20mA,但整个芯片最大不要超过55Ma;(7) ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器 可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片;(8)有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM);(9)看门狗;(10)内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地);(11)外部掉电检测电路:在P4.6口有一个低压门槛比较器,5V单片机为1.32V,误差为+/-5%,3.3V单片机为1.30V,误差为+/-3%;(12)时钟源:外部高精度晶体/时钟,内部R/C振荡器(
18、温漂为+/-5%到+/-10%以内) 1用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟,常温下内部R/C振荡器频率为:5.0V单片机为:11MHz15.5MHz,3.3V单片机为:8MHz12MHz,精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准;(13)共4个16位定时器 两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器 做串行通讯的波特率发生器 再加上2路PCA模块可再实现2个16位定时器;(14) 2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时
19、钟;(15)外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块, Power Down模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4, T1/P3.5, RxD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2 ), CCP1/P1.4 (也可通过寄存器设置到P4.3);(16) PWM(2路)/PCA(可编程计数器阵列,2路):也可用来当2路D/A使用也可用来再实现2个定时器也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持);(17)A/D转换, 10位精度ADC,共8路,转换速度可达250K/
20、S(每秒钟25万次)(18)通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口;(19)STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3);(20)工作温度范围:-40 - +85(工业级) / 0 - 75(商业级)(21)封装:LQFP-442.2.1.2 STC12LE5A32S2单片机的工作模式(1)掉电模式:功耗小于0.1A,唤醒过程是通过外部中断来执行的,离开中断程序后,继续执行原程序(2)空闲模式:功耗2mA(3)
21、正常工作模式:功耗在4mA-7mA之间2.2.1.3 STC12LE5A32S2单片机引脚说明图2.1 STC12LE5A32S2引脚图VCC(38引脚):接电源。GND(16引脚):电源负极,接地。XTAL1(15引脚):振荡器反相放大器和内部时钟发生电路的输入端。XTAL2(14引脚):振荡器反相放大器的输入端。P0端口(P0.0P0.7,3730引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。此时,P0口内部上拉电阻有效。在
22、FlashROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要求外接一个上拉电阻。P1口双向8位I/O口P1端口(P1.0P1.7,4044引脚,13引脚):P1口是一个带有内部上拉电阻的8位双向I/O口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX)。P2端口(P2.0P2.
23、7,1825引脚):P2口是一个带内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在访问外部程序存储器和16位地址的外部数据存储器(如执行“MOVXDPTR”指令)时,P2送出高8位地址。在访问8位地址的外部数据存储器(如执行“MOVXR1”指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。P3端口(P3.0P3.7,713引脚):P3是一个
24、带内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。P3.0(5引脚):串口1数据接收端。P3.1(7引脚):串口1数据发送端。RST(4引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机的复位初始化操作。看门狗计时完成后,RST引脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。P4口 双
25、向8位I/O口2.2.2 DHT11数字温湿度传感器相对湿度和温度测量全部校准,数字输出 卓越的长期稳定性 无需额外部件超长的信号传输距离 超低能耗4 引脚安装完全互换2.2.2.1 产品概述DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式存在OTP内存中,传感器
26、内部在检测型号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗。产品为4针单排引脚封装,连接方便。DHT11实物如图2.2所示图2.2 DHT11 传感器实物图2.2.2.2 接口说明2.2.2.2.1引脚介绍:Pin1:(VDD),电源引脚,供电电压为3-5.5VPin2:(DATA),串行数据,单总线。Pin3:(NC),空脚,悬浮即可。Pin4(VDD),接地端,接电源负极。2.2.2.2.2 串行接口(单线双向)DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格
27、式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:一次完整的数据传输为40bit,高位先出。数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据 +8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接
28、收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。通讯过程如图2.3所示图2.3 DHT11通讯过程总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高。通讯初始化要求如图2.3所示。图2.3总线为低电平,说明DHT11发送响应信号,DHT11发送响应信
29、号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。数字0信号表示方法如图2.4所示图2.4 数字0信号表示方法数字1信号表示方法.如图2.5所示图2.5数字1信号表示方法2.3软件开发平台介绍2.3.1 KEIL C51开发软件KeilC51软件是德国公司KEIL Software开发的单片机语言编译器,它符合ANSI标准,生成的代码执行非常快,占
30、用空间小,执行的速度与汇编语言程序相当。目前KEIL公司已经推出V7.0以上版本的CX51编译器,提供了全新的单片机C语言开发环境,同时继续保留了汇编语言简单、高效的特点。同时,KEIL Software公司已经把CX51程序编译器集成到uVision2开发环境中,它包括项目(project)管理器、CX51程序编译器、AX51宏编译器、BL51/LX51连接定位器、RTX51实时操作系统、Simulator软件模拟器以及Monitor51硬件目标调试器,所有这些功能都可以在uVision2开发环境快速高效的独立进行。同时使uVision2在单片机软件开发中具有如下优点。(1) uVision
31、2提供强大的项目管理功能,可以方便实现程序的模块化设计。在它内部还集成了源级浏览器(Browser)用户利用符号信息可以简单、快速的浏览源文件。(2) uVision2内部有一个元件数据库(device database)含有不同型号单片机的片上资源信息,通过它可以方便设置程序编译器CX51、AX51宏编译器、BL51/LX51连接定位器和调试器的本来选项,最大限度满足用户使用某种单片机的要求。(3) uVision2具有源程序编辑功能,允许用户在程序调试中设置运行断点,便于快速检查和修改错误。它具有的文件查找功能可以使用户找到单一文件或项目文件。(4) uVision2支持程序模拟和试验板调
32、试两种工作方式。以上是uVision2开发环境和KEIL软件的一些特点介绍,在使用KEIL C51进行程序开发时,我们一般要遵循以下步骤。(1)在开发环境中创建新的工程(project),并为此工程选择合适的MCU。(2)使用uVision2中的程序编辑器编写程序代码文件,同时将文件添加到工程中去。一个工程可以包含多个程序源文件,除此之外还可以包含库文件或文本文件。(3)利用uVision2中的各个选项,设置CX51程序编译器、AX51宏编译器、BL51/LX51连接定位器及调试器的功能。(4)通过uVision2中的构造(Build)功能对程序源文件进行编译连接,生成可执行的HEX文件,如果
33、在此过程中出现错误警告信息,则需返回第二步中进行修改。(5)利用uVision2对生成的目标代码进行调试仿真,成功后将HEX文件下载到单片机中。2.3.2 MSComm 控件MSComm控件全称为Microsoft Communication Control,它是微软公司推出的简化Windows下串行通信编程的ActiveX控件,利用它应用程序可以通过串行接口收发数据。MSComm控件提供两种通信完成方式:一种是事件驱动方式,使用控件OnComm事件捕捉处理通信事件,同时还可以检测和处理通信过程中存在的错误信息;另一种是查询方式,查询方式的实质是事件驱动方式,通过检查CommEVENT属性的值
34、来判断事件和错误,这种方式比前一种更为简便、快捷.MSComm控件实际上是通过调用API函数来实现通信功能的,而API函数是通过Comm.drv解释并传送给设备驱动程序的,对于VB使用者只需知道MSComm控件的属性和事件的用法就可以实现串口通信。以下列出的是MSComm控件的基本属性和设置方法。1) CommPort属性设置或返回端口号码,它的值一般在1-99之间,缺省时取。CommPort属性语法为:object.Commport=value2) Settings属性设置并返回各种参数。属性语法为:object.Settings=value2) Portopen属性打开或关闭串行口。语法为
35、:MSComm.PortOpen=TURE/FALSE3) Input属性对接受缓冲区中的信息进行返回和删除操作,在设计时此项为无效,在程序运行时为只读。Input属性语法为:object.Input5) Output属性该属性的作用与Input属性相反。Output属性语法为:object.Output=value6)DTREnable属性确认在通信过程中是否让Data Terminal Ready线始终有效,Data Terminal Ready是微机给调制解调器的信号,指示微机等待接受发送。DTREnable属性语法为: object.DTREnable=value 第三章 系统硬件设计
36、本文基于STC12LE5A32S2单片机进行数据采集系统设计,要求系统能实时采集、存储和传输,而合理的硬件结构是产品性能的重要保证。整个系统由单片机最小系统、三端稳压电源、参数采集电路、数据存储电路和串口输出电路等几部分组成。3.1数据采集系统总体结构本系统以数据采集和传输为主要任务,以单片机为核心控制器,系统的整体结构如图3.1所示。电源电路数据存储电路STC12LE5A32S2串口输出电路复位电路图3.1 系统整体结构3.2数据采集系统硬件电路3.2.1单片机最小系统单片机工作的最小系统如图3.2.1所示,主要包括:一是STC12LE5A32S2单片机、供电电源,二是晶振电路、复位电路和接
37、口,单片机供电电源为直流3.3V. 图3.2.1 单片机最小系统3.2.1.1晶振电路在单片机系统中,一般在XTAL1和XTAL2引脚之间接一个11.0592M的晶振和两个30pF的电容,这样就构成了片内震荡方式,片内震荡是因为在51内核单片机里面有一个高增益反相放大器,外接一个晶振后,它们构成自激振荡器并生成震荡脉冲。其结构如图3.2.1.1所不。在选用晶振时,一般选择石英晶振,大小在1.212MHZ之间,电容的大小只要在小于47pF就可以,电容的大小能起到频率微调作用。晶振的取值也可以是24M,晶振的取值越高,单片机的执行速度越快。在进行电路设计的时候,晶振的大小越靠近单片机越好。图3.2
38、.1.1 晶振电路3.2.1.2 复位电路单片机系统中,一般都有一个复位电路,这样可以在单片机执行代码出错时由用户自己复位,对于51内核的单片机而言是高电平复位有效。在普通的单片机系统中,一个电阻、一个电容、一个手动按键构成单片机的复位系统,其电路图如图3.2.1.2所示,利用复位电容自动充电的作用完成上电自动复位,而手动复位的原理是利用单片机复位端通过电阻与连接实现的。 图3.2.1.2 复位电路3.2.1.3电源电路单片机工作电压为直流3.3V,因此需要将交流220V转换成直流3.3V。首先利用ac-dc模块将交流220V转换成直流5V,然后利用LM117芯片将5V转换成3.3V,如图3.
39、2.1.3所示,对单片机进行供电.图3.2.1.3 单片机电源电路3.2.1.4 I/O口在单片机最小系统中,一般将单片机的资源做成一种可扩展的接口,利用这些接口资源,单片机才可以与一些外部器件或设备连接,例如:A/D、液晶显示、LED等。除此之外,也可以使用这些接口资源扩展数据存储器或程序存储器等片外存储器件。3.2.2 传感器电路DHT11传感器和AT89C52单片机连接十分简单,只用加上5K的上拉电阻即可。利用AT89C52单片机的P2.0口与DHT11传感器数据口P2相连用来发收串行数据。同时传感器的电源端口P1和P4分别接单片机的VDD和GND端。传感器的第三脚悬浮放置。DHT11传
40、感器原件的电路原理图如图3.2.2所示:图3.2.2 DHT11原理图3.3电路板设计抗干扰3.3.1. 电路板布局、布线合理在进行PCB板设计时,电路板的尺寸要选择合适,优先考虑高频元器件的摆放位置,进行元器件布局时尽量按照信号传输的方向,对于互相之间电位差较大的器件,摆放的位置要相对离得较远,对于电源布局时要尽量靠近电路板外侧,需要时还要增加散热器件。双层板在布线时要尽量避免出现长直平行线,上下两层沿着不同方向布线最好,在布置电源显示,在情况允许的条件下尽量增加电源线的宽度。3.3.2. 接地和敷铜在处理电路板接地问题时,数字部分和模拟部分先进行单独接地,分开布线,通过环形线路最后汇聚到一
41、点。对电路板敷铜时,正反两面均需敷铜,在敷铜效果不好的位置通过布置过孔可以有效提升敷铜效果,对于一些可能受干扰影响较大的区域可以分开敷铜,以上这些措施都可以有效减小干扰的影响。3.増加去顆电容、闲置引脚不悬空通常在电路设计中,为了更好的防止电路受到外部环境的干扰,一般在电路所使用原件的电源接入端和接地端之间串联一个的0.1uF陶瓷电容,但此电容要尽量布置在电气原件旁边,这样可以防止电源波动对整个系统的影响。同时,在电路设计中没有使用到的元器件管脚也容易受到电磁干扰,所以在PCB设计时,可以给这些闲置的管脚串联合适的电阻并接地,这样可以防止这些管脚受到电磁干扰。第四章 系统软件设计4.1系统软件
42、开发语言在单片机软件开发中常常采用的计算机语言有汇编语言和C语言,使用汇编语言进行软件开发时可以完全利用单片机的所有硬件特性并能直接操控硬件。它的优点体现在编写的程序在执行过程中具有高效性,而且可以精确控制计算机硬件,但它不能进行结构化程序设计,编写出的程序可移植性和可读性差,同时调试过程也比较复杂。C语言作为一种高级计算机语言,使用它进行程序设计时语法简单、操作方便灵活,而且还可进行结构化程序设计,可以生成紧凑代码,目标代码生成效率仅比汇编语言低10%-20%。另外语言程序与汇编语言程序相比具有更强的可读性、可移植性,而且操作简单方便。因此,本课题软件开发釆用C语言编程,程序编译和目标代码生
43、成的工具为德国公司KEIL Software的KEIL C51软件。4.2数据采集系统软件总体设计方案为了使系统程序结构清楚,编写调试方便,在软件开发过程中釆用模块化程序设计方法。数据采集系统的软件程序主要包含以下几个模块:主程序、系统初始化程序、参数采集子程序、参数存储子程序以及串口通信子程序等。其中,系统初始化主要包括STC12LE5A32S2单片机各引脚分配设置、全局变量声明及初始化、各个子程序模块参数声明及初始化等,而主程序是所有系统软件的核心,主要完成对各个子程序的调用,控制整个数据采集系统正常运行。此系统主程序流程图如图所示。此次设计的系统主程序的执行过程如下:首先是,采集系统上电
44、复位,系统进行初始化,初始化完成后进行键盘扫描,然后再进行延时一段时间,供传感器采集数据,延时完成后就进行数据的采集并传输到单片机,温湿度检测结束。主程序流程图如图4.2所示图4.2 系统主程序流程图4.3数据采集系统软件模块化设计根据传感器的通信协议,首先由单片机通过I/O口产生要求的激发信号,然后将数据线的控制权交给传感器,接着单片机通过while语句不间断的检查I/O口的高低电平,从而达到对时序的正确把握,解析出准确的传输数据。DHT11传感器模块的软件流程图如图4.3所示图4.3 DHT传感器模块程序流程图传感器模块负责温湿度数据源的采集,首先数据口连接端P3.5输出为低电平,延时18ms之后P3.2输出高电平,延时40ms之后,读P3.5引脚是否为低电平,如果不是低电平就继续读,如果是低电平就执行判断从机80高电平是否结束,如果没有结束就继续判断,如果结束就进行单片机数据接收,将接收到的数据按十进制数位存入指定的数组中,数据采集结束并保持数据采集持续进行。