1、基于51单片机湿度控制系统设计摘要:生活上,适宜空气湿度有益于大家身体健康;工业上,芯片封装,设备维护和工厂装配等,全部需要在适宜湿度下进行。该课题对空气湿度进行研究,采取单片机和湿度模块组成湿度控制系统,对环境湿度进行数据采集、处理。系统经过测量目前环境绝对湿度,立即、正确地了解空气湿度改变,并将当初绝对湿度值和预设上下限值进行比较,假如不在适宜空气湿度范围内,系统会自动发出报警。本设计含有控制方便、组态简单和灵活性大等优点。 关键词:单片机;湿度传感器;ADC0832数模转换目 录序 言1第一章 系统整体设计方案21.1设计内容21.2系统框图21.3系统设计方案21.4 系统完成技术指标
2、4第二章 系统硬件设计方案52.1 控制模块设计方案52.1.1 控制芯片选择思绪52.1.2 单片机选择方案52.1.3 AT89C51芯片介绍62.2 湿度检测模块介绍及选择方案92.2.1 湿度检测模块选择思绪92.2.2 湿度传感器选择102.3 模数转换介绍112.3.1 模数转换器选择方案112.4 报警模块介绍132.4.1 蜂鸣器驱动方法13第三章硬件模块功效实现143.1 显示电路143.2复位开关电路173.3振荡电路193.4 ADC0832实现模数转换203.5 电路排版连线设计22第四章系统软件和调试224.1 C语言介绍224.2 总程序步骤图234.2.1 湿度检
3、测显示电路244.2.2 按键显示部分254.2.3 报警电路部分264.3程序设计26第五章 系统调试275.1硬件调试275.2软件调试27结束语29参考文件30致 谢31附 录32附录一:程序清单32附录二:元器件清单40附录三:硬件原理图41附录四:PCB图41附录五:实物图42序 言现在中国已经进入全方面建设小康社会阶段,不管经济还是文化全部已经发展到了一个另世人瞩目标时期。不过,我们常常会听到有些人无奈说:天有不测风云啊!我们全部在埋怨气候改变无常,而我们却无法控制。过去,面对突如其来改变,如温度、湿度改变,我们束手无策。大家试图研制一个能够估计气候系统,所以有了天气预报。不过天气
4、预报只能告诉我们部分大约信息,不能正确获知我们身边信息。于是,本课题设计一个能正确获知我们身边气候系统湿度控制系统。测试其中最难测量物理量湿度,并对其进行处理、控制13。本检测系统也可应用于环境保护、工业控制、农业生产等方面45。设计电路以单片机为关键,配以湿度检测模块、报警电路、键盘电路和LED数码管显示电路。本设计能控制我们生存空间,使大家生活更舒适。所以说,这是一个实用而且含有发展前途设计。第一章 系统整体设计方案1.1设计内容此次设计分为两个内容:硬件、软件。硬件以单片机为关键,配以湿度模块电路、键盘电路、数模转换电路、显示电路和报警电路。关键实现以下功效:1经过湿度模块电路对环境湿度
5、进行数据采集;2经过单片机对采集数据进行处理;3当环境湿度低于或高于设置湿度时开启报警。湿度检测系统是一个智能化系统,它软件关键实现功效:1单片机能够控制湿度模块对空气湿度进行采样;2把采集数据经过单片机处理,再以十进制形式显示出来;3按键和显示电路可对设置报警上下限值进行更改,并经过显示电路显示出来。1.2系统框图此次设计系统框图见图1-1。解析:单片机控制湿度模块AM1001对环境湿度进行检测并经过单片机处理用数码管显示出来,键盘电路可设置报警上下限值,当环境湿度高于上限或低于下限报警值时,开启报警电路,即蜂鸣器响。1.3系统设计方案本设计大致分为6步:1设计之前,查找资料。先对湿度概念进
6、行了解,并了解部分湿度传感器工作原理。 图1-1 硬件电路组成框图湿度,表示大气干燥程度物理量。在一定温度下在一定体积空气里含有水汽越少,则空气越干燥;水汽越多,则空气越潮湿。空气干湿程度叫做“湿度”。在此意义下,常见绝对湿度、相对湿度、比较湿度、混合比、饱和差和露点等物理量来表示;若表示在湿蒸汽中液态水分重量占蒸汽总重量百分比,则称之为蒸汽湿度。 空气湿度是指空气潮湿程度,可用相对湿度(RH)表示。相对湿度是指空气实际所含水蒸气密度和同温下饱和水蒸气密度百分比值。人体在室内感觉舒适最好相对湿度是,495l,相对湿度过低或过高,对人体全部不适甚至有害。 绝对湿度是一定体积空气中含有水蒸气质量,
7、通常其单位是克/立方米。绝对湿度最大程度是饱和状态下最高湿度。绝对湿度只有和温度一起才有意义,因为空气中能够含有湿度量随温度而改变,在不一样温度中绝对湿度也不一样,因为伴随温度改变空气体积也要发生改变。但绝对湿度越靠近最高湿度,它随温度改变就越小。 2分析系统关键性能; 3对整个电路步骤进行分析; 4硬件准备和焊接; 5用c语言进行软件编写并仿真; 6将硬件和软件进行系统仿真直至完成设计。1.4系统完成技术指标1实时显示绝对湿度,系统精度为10mg/L;2采取3位数码管进行湿度显示;3显示报警上限值为180mg/L,下限值为90mg/L;4湿度超出上下限湿度时进行报警;5数码管采取动态显示方法
8、。第二章 系统硬件设计方案2.1控制模块设计方案2.1.1控制芯片选择思绪该课题设计意义在于能够自动检测环境湿度,并依据环境湿度改变来自动实施对应除湿、加湿工作,以提醒大家在适宜湿度下进行工作、生活。现在,面向控制性领域且使用最为广泛控制芯片是单片机。单片机渗透到我们生活各个领域,几乎极难找到哪个领域没有单片机踪迹。导弹导航装置,飞机上多种仪表控制,计算机网络通讯和数据传输,工业自动化过程实时控制和数据处理等等全部离不开单片机。2.1.2单片机选择方案方案一:选择STC单片机 STC企业单片机关键是基于8051内核,是新一代增强型单片机,指令代码完全兼容传统8051,速度快812倍,带ADC,
9、4路PWM,双串口,有全球唯一ID号,加密性好,抗干扰强6。方案二:选择PIC单片机 PIC单片机是MICROCHIP企业产品,其突出特点是体积小,功耗低,精简指令集,抗干扰性好,可靠性高,有较强模拟接口,代码保密性好,大部分芯片有其兼容FLASH程序存放器芯片7。方案三:选择ATMEL单片机ATMEl企业8位单片机有AT89、AT90两个系列,AT89系列是8位Flash单片机,和8051系列单片机相兼容,静态时钟模式8。ATMEL企业把EERROM及Flash技术巧妙用于形成特殊集成电路,在系统开发过程中能够十分轻易进行程序修改,这就大大缩短了系统开发周期。同时,在系统工作过程中,能有效地
10、保留部分数据信息,即使外界电源损坏也不影响到信息保留。本设计要求能够随时改变湿度报警上下限值,ATMEL单片机EERROM及Flash技术对本设计比较实用(控制方便),所以控制芯片选择ATMEL51系列单片机。2.1.3 AT89C51芯片介绍 图2-1 AT89C51芯片实物图AT89C51提供以下功效标准:4K字节闪烁存放器,128字节随机存取数据存放器,32个I/O口,2个16位定时/计数器,1个5向量两级中止结构,1个串行通信口,片内震荡器和时钟电路。另外,AT89C51还能够进行0HZ静态逻辑操作,并支持两种软件节电模式。闲散方法停止中央处理器工作,能够许可随机存取数据存放器、定时/
11、计数器、串行通信口及中止系统继续工作。掉电方法保留随机存取数据存放器中内容,但震荡器停止工作并严禁其它全部部件工作直到下一个复位911。关键特征:和MCS-51 兼容 4K字节可编程闪烁存放器 寿命:1000写/擦循环数据保留时间:全静态工作:0Hz-24Hz三级程序存放器锁定1288位内部RAM32可编程I/O线两个16位定时器/计数器 5个中止源 可编程串行通道 低功耗闲置和掉电模式 图2-2单片机管脚图片内振荡器和时钟电路管脚说明: VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口管脚第一次写1时,被定义为高阻输入。P0
12、能够用于外部程序数据存放器,它能够被定义为数据/地址第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必需被拉高。 P1口:P1口是一个内部提供上拉电阻8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时将输出电流,这是因为内部上拉缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并所以作为输入时,P2口管脚
13、被外部拉低,将输出电流。这是因为内部上拉缘故。P2口当用于外部程序存放器或16位地址外部数据存放器进行存取时,P2口输出地址高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存放器进行读写时,P2口输出其特殊功效寄存器内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,因为外部下拉为低电平,P3口将输出电流(ILL)这是因为上拉缘故。P3口也可作为AT89C51部分特殊功效口,以下表所表示 表2-1 AT89C51
14、芯片p3口特殊功效表 P3口同时为闪烁编程和编程校验接收部分控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期高电平时间。ALE/PROG:当访问外部存放器时,地址锁存许可输出电平用于锁存地址地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变频率周期输出正脉冲信号,此频率为振荡器频率1/6。所以它可用作对外部输出脉冲或用于定时目标。然而要注意是:每当用作外部数据存放器时,将跳过一个ALE脉冲。如想严禁ALE输出可在SFR8EH地址上置0。此时, ALE只有在实施MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。假如微处理器在外
15、部实施状态ALE严禁,置位无效。:外部程序存放器选通信号。在由外部程序存放器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存放器时,这两次有效/PSEN信号将不出现。/VPP:当/EA保持低电平时,则在此期间外部程序存放器(0000H-FFFFH),不管是否有内部程序存放器。注意加密方法1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存放器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器输入及内部时钟工作电路输入。XTAL2:来自反向振荡器输出。振荡器特征:XTAL1和XTAL2分别为反向放大器输入和输出。该反向放
16、大器能够配置为片内振荡器。石晶振荡和陶瓷振荡均可采取。如采取外部时钟源驱动器件,XTAL2应不接。因为输入至内部时钟信号要经过一个二分频触发器,所以对外部时钟信号脉宽无任何要求,但必需确保脉冲高低电平要求宽度。2.2湿度检测模块介绍及选择方案2.2.1湿度检测模块选择思绪要对目前环境湿度进行检测,而且需要和单片机结合,最好便是用传感器来检测环境湿度,经过单片机进行数据处理后显示出来。传感器选择需要精度高,而且便于单片机控制。2.2.2湿度传感器选择方案一:使用SHT1x7x系列单片集成传感器SHT1x7x系列单片集成传感器是一个能够同时测量湿度、温度和露点传感器,不需外围元件直接输出经过标定了
17、相对湿度、温度及露点数字信号,能够有效处理传统温、湿度传感器不足。SHT1x7x系列单片集成传感器是利用CMOSensTM技术制造,内部集成了湿度敏感元件和温度敏感元件、放大器、一个14 bAD转换器、标定数据存放器和数字总线接口和稳压电路1213。SHT1x7x系列电源电压适用范围宽:2455 V。测量精度高:湿度精度为35,温度精度为05(在20时)。待机时电流低于3A。传感器数字输出是经过两线数字接口直接连到微处理器上去,便于进行系统设计。方案二:使用湿度传感器 HS1101/HS1100 优点:全交换性;在标准环境下不需校正;长时间饱和下快速脱湿;能够自动化焊接,包含波峰焊或水浸;高可
18、靠性和长时间稳定性;快速反应时间。 湿度传感器HS1101/HS1100缺点是选择HS1101/HS1100时,进行湿度赔偿时外围电路比较复杂,对测量正确性,会产生干扰。方案三:使用AM1001湿度模块AM1001湿度模块,即湿度传感器和电路一体化产品。模块供给电压为直流电压,湿度经过电压输出进行计算,本模块含有精度高,可靠性高,一致性好,且已带温度赔偿,确保长久稳定性好,使用方便及价格低廉等特点,尤其适合对质量、成本要求比较苛刻设计使用。 图2-3 AM1001实物图技术参数:(1)供电电压(Vin): DC 4.56V (2)消耗电流: 约2mA(MAX 3mA) (3)使用温度范围: 0
19、50 (4)使用湿度范围: 95%RH 以下(非凝露) (5)湿度检测范围: 2095%RH (6)保留温度范围: 050 (7)保留湿度范围: 80%RH 以下(非凝露) (8)湿度检测精度: 5%RH(0-50,30-80%RH) (9)电压输出范围: 0.62.85V DC模块优点:低功耗、小体积、带温度赔偿、单片机校准线性输出、可靠性高、使用方便、价格低廉。以上三种湿度传感器全部是应用于湿度测量,SHT1x7x系列单片集成传感器性能最为优越,不需要外围器件,测量精度高,是温湿度控制系统最好选择,但本设计只需要检测环境湿度,出于节省成本考虑,所以不选择方案一。湿度传感器 HS1101/H
20、S1100最大缺点是外围电路复杂,轻易对测量正确度产生影响。所以,选择方案三,相比方案一,节省成本。相比方案二,简化了外围电路设计,提升了测量正确度。2.3模数转换介绍2.3.1模数转换器选择方案现在常见AD转换器有:(1)带信号调理、1mW功耗、双通道16位AD转换器:AD7705AD7705是AD企业出品适适用于低频测量仪器AD转换器。它能将从传感器接收到很弱输入信号直接转换成串行数字信号输出,而无需外部仪表放大器。AD7705是基于微控制器(MCU)、数字信号处理器(DSP)系统理想电路,能够深入节省成本、缩小体积、减小系统复杂性。应用于微处理器(MCU)、数字信号处理(DSP)系统,手
21、持式仪器,分布式数据采集系统。(2)3V/5V CMOS信号调整AD转换器:AD7714AD7714是一个完整用于低频测量应用场所模拟前端,用于直接从传感器接收小信号并输出串行数字量。输入信号加至在模拟调制器前端专用可编程增益放大器。调制器输出经片内数字滤波器进行处理。数字滤波器第一次陷波经过片内控制寄存器来编程,此寄存器能够调整滤波截止时间和建立时间。AD7714有3个差分模拟输入(也能够是5个伪差分模拟输入)和一个差分基准输入。单电源工作(+3V或+5V)。所以,AD7714能够为含有多达5个通道系统进行全部信号调整和转换。AD7714很适合于灵敏基于微控制器或DSP系统,它串行接口可进行
22、3线操作,经过串行端口可用软件设置增益、信号极性和通道选择。AD7714含有自校准、系统和背景校准选择,也许可用户读写片内校准寄存器。CMOS结构确保了很低功耗,省电模式使待机功耗减至15W(经典值)。(3)串行AD转换器ADC0832:ADC0832 是一个8 位分辨率、双通道A/D转换芯片。因为它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎。ADC0832 为8位分辨率A/D转换芯片,其最高分辨可达256级,能够适应通常模拟量转换要求。其内部电源输入和参考电压复用,使得芯片模拟电压输入在05V之间。芯片转换时间仅为32S,含有双数据输出可作为数据校验,以降低数据误差,转换速度快且稳
23、定性能强。独立芯片使能输入,使多器件挂接和处理器控制变愈加方便。经过DI 数据输入端,能够轻易实现通道功效选择。 ADC0832 特点: 8位分辨率; 双通道A/D转换; 输入输出电平和TTL/CMOS相兼容; 5V电源供电时输入电压在05V之间; 工作频率为250KHZ,转换时间为32S; 通常功耗仅为15mW; 8P、14PDIP(双列直插)、PICC 多个封装;本课题设计采取LED数码管动态显示绝对湿度,ADC0832芯片相比于其它转换芯片体积较小,高分辨率,使多器件挂接和处理器控制变很方便。所以该课题数模转换芯片采取ADC0832芯片。2.4报警模块介绍蜂鸣器是一个一体化结构电子讯响器
24、,采取直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。报警电路要求是电路器件简单,易于控制。所以报警模块选择单片机设计中最常使用有源蜂鸣器。本设计利用单片机I/O控制三极管开关状态,进而达成控制蜂鸣器报警。2.4.蜂鸣器驱动方法单片机驱动蜂鸣器方法有两种:一个是PWM 输出口直接驱动,另一个是利用I/O 定时翻转电平产生驱动波形对蜂鸣器进行驱动。PWM 输出口直接驱动是利用PWM 输出口本身能够输出一定方波来直接驱动蜂鸣器。在单片机软件设置中有多个系统寄存器是用来设置PWM 口输出,能够设置占空比、周期等等,经过设置这些寄存
25、器产生符合蜂鸣器要求频率波形以后,只要打开PWM 输出,PWM 输出口就能输出该频率方波,这个时候利用这个波形就能够驱动蜂鸣器了。而利用I/O 定时翻转电平来产生驱动波形方法会比较麻烦一点,必需利用定时器来做定时,经过定时翻转电平产生符合蜂鸣器要求频率波形,这个波形就能够用来驱动蜂鸣器了。比如为2500Hz 蜂鸣器驱动,能够知道周期为400s,这么只需要驱动蜂鸣器I/O 口每200s 翻转一次电平就能够产生一个频率为2500Hz,占空比为1/2duty 方波,再经过三极管放大就能够驱动这个蜂鸣器了。第三章硬件模块功效实现本设计硬件模块有:控制电路、显示电路、复位开关电路、振荡电路、模数转换电路
26、等。3.1显示电路我们设计最常见显示元器件是七段式和八段式LED数码管,八段比七段多了一个小数点,其它基础相同。所谓八段就是指数码管里有八个小LED发光二极管,经过控制不一样LED亮灭来显示出不一样字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED阴极连在一起,让其接地,这么给任何一个LED另一端高电平,它便能点亮。而共阳极就是将八个LED阳极连在一起。其原理图以下。图 3-1 数码管结构原理图其中引脚图两个COM端连在一起,是公共端,共阴数码管要将其接地,共阳数码管将其接正5伏电源。一个八段数码管称为一位,多个数码管并列在一起可组成多位数码管,它们段选线(即a,b,c,d,
27、e,f,g,dp)连在一起,而各自公共端称为位选线。显示时,全部从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。数码管8段,对应一个字节8位,a对应最低位,dp对应最高位。所以假如想让数码管显示数字0,那么共阴数码管字符编码为00111111,即0x3f;共阳数码管字符编码为11000000,即0xc0。能够看出两个编码各位恰好相反,以下图。 图3-2 数码管编码显示原理图共阳极数码管0f段编码是这么:共阳极0f数码管编码0xc0,0xf9,0xa4,0xb0,/030x99,0x92,0x82,0xf8,/470x80,0x90,0x88,0x83,/8b0xc6,0xa1,0
28、x86,0x8e /cf共阴极数码管0f段编码是这么:共阴极0f数码管编码0x3f,0x06,0x5b,0x4f, /030x66,0x6d,0x7d,0x07,/470x7f,0x6f,0x77,0x7c,/8b0x39,0x5e,0x79,0x71/cf湿度检测结果利用LED数码管动态显示,原理图以下: 图3-3 显示电路模块数码管按显示方法分有静态显示和动态显示两种,静态显示特点是每个数码管段选必需接一个8位数据线来保持显示字形码。当送入一次字形码后,可显示字形可一直保持,直到送入新字形码为止。这种方法优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。动态显示
29、特点是将全部数码管段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采取动态扫描显示。所谓动态扫描显示即轮番向各位数码管送出字形码和对应位选,利用发光管余晖,和人眼视觉暂留作用,使人感觉各位数码管全部在同时显示。动态显示亮度要比静态差部分,所以在选择限流电阻时应略小于静态电路中。静态驱动也称直流驱动。静态驱动是指每个数码管每一个段码全部由一个单片机I/O埠进行驱动。静态驱动优点是编程简单,显示亮度高,缺点是占用I/O埠多,如驱动5个数码管静态显示则需要5840根I/O埠来驱动,要知道一个89C51单片机可用I/O埠才32个。故实际应用时必需增加驱动器进行驱动,增加了硬体电路复杂性。
30、动态显示驱动:数码管动态显示接口是单片机中应用最为广泛一个显示方法之一,动态驱动是将全部数码管8个显示笔划a,b,c,d,e,f,g,dp同名端连在一起,另外为每个数码管公共极COM增加位选通控制电路,位选通由各自独立I/O线控制,当单片机输出字形码时,全部数码管全部接收到相同字形码,但到底是那个数码管会显示出字形,取决于单片机对位选通COM端电路控制,所以我们只要将需要显示数码管选通控制打开,该位就显示出字形,没有选通数码管就不会亮。经过分时轮番控制各个数码管COM端,就使各个数码管轮番受控显示,这就是动态驱动。在轮番显示过程中,每位数码管点亮时间为12ms,因为人视觉暂留现象及发光二极管余
31、辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描速度足够快,给人印象就是一组稳定显示数据,不会有闪烁感,动态显示效果和静态显示是一样,能够节省大量I/O端口,而且功耗更低。本设计采取三极管来驱动数码管显示。晶体三极管有三个工作状态:1、截止状态:当基极电流很小时,不管基极电流怎样改变,集电极电流全部靠近为0,集电极电流不随基极电流而改变,也就是管子不导通;2、放大状态:当基极电流增大到一定值以后,集电极电流以后大于0,且集电极电流伴随基极电流而改变,这是放大状态;3、饱和状态:当基极电流继续增大,达成一定值以后,集电极电流以后再也大不上去了,以后即便是基极电流再增加,集电极电流也不能增大,
32、即饱和了。对于单片机端口经过晶体管驱动负载情况,不管负载是数码管还是继电器,晶体管全部只能工作在截止状态或饱和状态,即开关状态。 P0是三态双向I/O口。能够作为输入输出口使用,直接连接外部输入输出设备。也可作为系统扩展地址/数据总线口。用作输入输出口时,通常接10k左右拉高电阻。该设计经过P2口控制三极管状态开关来控制数码管显示。3.2复位开关电路计算机在开启运行时全部需要复位,使CPU和其它部件全部置为一个确定初始状态,并从这个状态开始工作。CMOS51系列单片机复位引脚RST是施密特触发输入脚,内部有一个拉低电阻(阻值为80K300K)。当振荡器起振以后,在RST引脚上输入2个机器周期以
33、上高电平,RST上输入返回低电平以后,便退出复位状态开始工作。利用RST这个特征便能够设计复位电路。CMOS51系列单片机,只要在RST端接一个电容至Vcc,便能够实现上电自动复位,在加电瞬间,电容经过内部电阻充电,在RST端出现充电正脉冲,只要正脉冲宽度足够宽,就能使单片机有效复位。RST端在加电时应保持高电平时间包含Vcc上升时间和振荡器起振时间,振荡器起振时间和频率相关,若Vcc上升时间为10ms,振荡器频率取12MHz,则复位电容经典值为1uF。图3-4上电自动复位有些应用系统需要人工复位,将一个按钮开关并联于上电自动复位电路,在系统运行时,按一下开关,就在RST端出现一段时间高电平,
34、使器件复位。本设计采取人工复位开关电路,图3-5所表示。单片机RST脚为单片机复位引脚,输入高电平使单片机复位,返回低电平则退出复位。当开关闭合,复位引脚直接接电源,即高电平,RST端出现一段时间高电平,使器件复位。开关断开时,复位脚接地(低电平),退出复位。 图3-5单片机复位开关电路3.3振荡电路时钟电路是计算机心脏,它控制着计算机工作节奏,能够经过提升时钟频率来提升CPU速度。现在51系列单片机全部采取CMOS工艺,许可最高频率是随型号而改变,最高频率达60MHz。CMOS型单片机内部有一个可控反相放大器,引脚XTAL1、XTAL2为反相放大器输入端和输出端,在XTAL1、XTAL2上外
35、接晶振(或陶瓷谐振器)和电容便组成振荡器。振荡器频率关键取决于晶振(或陶瓷谐振器)频率,但必需小于器件所许可最高频率。振荡器工作受PD(PCON.1)控制,复位以后PD=0振荡器工作,可由软件设置PD=1,使振荡器停止振荡,从而使整个单片机停止工作,以达成节电目标。本设计采取时钟电路是12M晶振,其原理图以下: 图3-6 单片机时钟振荡电路3.4 ADC0832实现模数转换因为数字电子技术快速发展,尤其是计算机在自动控制、自动检测和很多其它领域中广泛应用,用数字电路处理模拟信号情况也愈加普遍。为了能够使用数字电路处理模拟信号,必需将模拟信号转换成对应数字信号,方能送入数字系统进行处理。本系统采
36、取ADC0832模数转换芯片来进行模拟信号和数字信号转换。单片机控制系统中通常要用到AD转换,依据输出格式,常见AD转换方法可分为并行AD和串行AD。并行方法通常在转换后可直接接收,但芯片引脚比较多;串行方法所用芯片引脚少,封装小,但需要软件处理才能得到所需要数据。可是单片机I/O引脚原来就不多,使用串行器件能够节省I/O资源。在进行单片机和ADC0832连接时,因为DI和DO并不是同时使用,所以DI和DO能够共用单片机一条I/O线,再加上一条时钟线和一条片选线就能够实现单片机和ADC0832连接。下图说明了ADC0832工作时序,时钟和DI,DO输入,输出关系。图3-7 ADC0832工作时
37、序图正常情况下 和单片机接口应为4条数据线,分别是CS、CLK、DO、DI。但因为DO端和DI端在通信时并未同时有效并和单片机接口是双向,所以电路设计时能够将DO和DI 并联在一根数据线上使用。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK 和DO/DI 电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平而且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK 输入时钟脉冲,DO/DI端则使用DI端输入通道功效选择数据信号。在第1 个时钟脉冲下沉之前DI端必需是高电平,表示启始信号。在第2、3个脉冲下沉之前DI端应输入2 位数据用
38、于选择通道功效,当此2 位数据为“1”、“0”时,只对CH0 进行单通道转换。当2位数据为“1”、“1”时,只对CH1进行单通道转换。当2 位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当2 位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1 作为正输入端IN+进行输入。到第3 个脉冲下沉以后DI端输入电平就失去输入作用,以后DO/DI端则开始利用数据输出DO进行转换数据读取。从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随即每一个脉冲下沉DO端输出下一位数据。直到第11个脉冲时发出最低位数据DATA0,一个字节数据输出完成。也正
39、是以后位开始输出下一个相反字节数据,即从第11个字节下沉输出DATA0。随即输出8位数据,到第19 个脉冲时数据输出完成,也标志着一次A/D转换结束。3.5电路排版连线设计电路元器件排版和连线影响到电路美观和功效实现,本设计采取protel软件进行排版设计。制作步骤:1将生成pcb图打印; 2根据打印图纸在板子上进行刻录联络; 3将刻录连线部分用锡进行覆盖; 4用蚀铜液把多出铜腐蚀掉; 5打孔,焊接。第四章系统软件和调试4.1C语言介绍C语言是一个常见高级语言之一,C语言简练、紧凑、使用方便灵活。用C语言编程轻易实现程序模块化和结构化,程序轻易阅读、修改和移植14。Keil C51是现在最流行
40、51系列单片机C语言软件开发平台,含有程序编辑、编译、连接、目标文件格式转换、调试和模拟仿真等功效。C51是其中一个编译器,它含有ANSIC标准C全部功效,并针对51系列单片机硬件特点做了扩展。4.2总程序步骤图 图4-1 程序步骤图程序步骤图实现步骤:1接通电源以后,系统初始化;2经过单片机EERROM及Flash技术和程序结合写入湿度报警上下限值;3然后检测湿度并显示;4将检测湿度和我们设置报警上下限值进行比较,若高于上限,或低于下限,则开启报警;5判定有没有报警按键处理,若有返回到报警上下限值写入部分,若无则继续显示目前湿度1516。4.2.湿度检测显示电路 图4-2湿度检测显示程序步骤
41、图 该软件部分实现步骤为:1初始化后,湿度传感器检测出目前环境湿度。2经过单片机控制数模装换芯片,将16进制数转换成10进制。3利用程序将要显示数高低位拆分,查表,最终经过数码管显示。4.2.2按键显示部分 图4-3 按键显示电路 本设计对按键要求是:显示值和设定值之间转换,加1设定,减1设定。其具体步骤图4-3所表示:1显示湿度后,需要判定有没有按键,当检测到P1.0口为低电平时(即实物图里转换开关按下),切换到报警上下限值显示;2检测P1.1口是否为低电平,若检测到低电平(加1按键按下),则数码管显示报警值加1;3若P1.1口为高电平,检测P1.2口,若为低电平,设定值减1,若为高电平回到
42、报警值显示。4.2.3报警电路部分 图4-4 报警电路此次设计报警电路是利用目前测试湿度和写入上下限值进行比较,若高于或对于设置上下限,则单片机会驱动蜂鸣器响。4.3程序设计利用C51语言进行编程能够把程序进行模块化编写,然后在主函数里进行调用即可,这么分工明确,框架清楚,给人一目了然感觉。具体程序见附录一。第五章 系统调试5.1硬件调试1在焊接之前对各元器件好坏进行测试,用万用表进行测量。2检测电路焊接正确性,是否存在漏焊等。3用万用表电阻档测量各焊点是否存在虚焊。5.2软件调试软件采取keil c51软件进行编写程序并进行仿真运行 图5-1 程序编写截图1在软件中编辑程序。2编辑结束后对软件正确性进行仿真。 图5-2 程序仿真结果截图3直至出现以上结果即没有错误,没有警告(但并不代表能够实现功效,只是说明没有语法错误)。结束语四年大学生活,我学到很多知识。这多个月毕业设计制作也让我学到不仅仅是知识还有一个意志。我选择这个课题作为我毕业设计,确实是想临近毕业时候多学点相关知识。我们全部知道当今单片机用途十分广泛,对我们以后工作有很大帮助。在做毕业设计时候,翻越了大量相关资料,从中学到了很多知识。对传感器,单片机有了深入认识。之前对湿度概念很模糊,经过这次设计,我对湿度有了深刻认识,知道湿度对我们日常生活影响。另外,还