基于单片机STC89C52的家用湿度控制器_第1页
基于单片机STC89C52的家用湿度控制器_第2页
基于单片机STC89C52的家用湿度控制器_第3页
基于单片机STC89C52的家用湿度控制器_第4页
基于单片机STC89C52的家用湿度控制器_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1前言在夏季,许多市民晚上开着空调休息,室内环境枯燥,使用一般家用加湿器确实能起到增加湿度的作用,让人体感觉更加的舒适。但是使用一般家用加湿器应该严格的按照使用说明进行,一般家用加湿器使用一段时间,室内的湿度到达一定的值时应当关闭一般家用加湿器,防止持续加湿,导致环境湿度偏高。另外一般家用加湿器的水源要洁净,一般家用加湿器要定时清洗,防止脏东西随着蒸汽扩散到空气中,吸入人体。室内的湿度水平在百分之五十的时候是最适宜的,有些加湿器具有恒湿功能,能自动根据室内湿度水平调节湿度,其他加湿器在使用中那么没有这种功能,这个时候,消费者可以购置湿度计来自己检测环境内湿度水平,到达湿度后就关闭非工业加湿器。只要正常的使用非工业加湿器,严格按照使用说明进行使用,使用非工业加湿器是平安的。适宜的温度和湿度对居室环境起着重要的作用,它直接影响到一个人的健康状况,如果温度与湿度过高或者过低都会不利于人体的健康。

一般来说,人体在室内感觉最舒适的温度是15—18℃为宜,如果室内空气不流通或者相对湿度小于35%,且室内气温超过25℃以上时,人体就开始从外界吸收热量,你就会有热的感觉。假设气温超过35℃,这时人体的汗腺开始启动,通过微微涔汗散发积蓄体温,心跳加快,血液循环加速,就会感到头昏脑胀,全身不适和疲劳,有昏昏欲睡的感觉,而且酷热难熬。相反,当气温低于4℃以下,你会感到寒冷。当室温在8—18℃时,人体就会向外界散热,加上室内微风吹拂流通,室内相对湿度在40%—60%之间,你会感到身体舒适健康。湿度对人体的影响,在室内舒适温度范围内不太明显。但在28℃、相对湿度达90%时,你就会有气温达34℃的感觉。这是因为湿度大时,空气中的水汽含量高,蒸发量少,人体排泄的大量汗液难以蒸发,体内的热量无法畅快地散发,因此,你就会感到闷热。仅仅从相对湿度来讲,人体最适宜的空气相对湿度是40%—50%,因为在这个湿度范围内空气中的细菌寿命最短,人体皮肤会感到舒适,呼吸均匀正常。根据气象专家统计,当相对湿度达30%时,中暑的气温是38℃,当相对湿度达80%和气温在31℃,体质较弱的人有时也会引起中暑,如果冬天遇到低温高湿天气,人们就会感到阴湿寒冷。所以说,掌握室内的温度和湿度对人的健康很有必要。空调虽然可以改变居室内的温度,但不能改变湿度,所以为了使居室更加适合居住,所以有必要使用加湿器来改善居室内的湿度。2设计要求设计一个家用湿度控制器,要求能够检测家居环境湿度,将湿度保持在50%。可由用户设置湿度上下限,并根据当前湿度作出相应的动作,当湿度高于设定上限值时,驱动蜂鸣器报警和电机排风以降低环境湿度。当湿度低于设定下限值时,驱动蜂鸣器报警和加湿器对环境加湿。3总体设计方案3.1对象分析本系统主要是测量房屋内的湿度,并进行加湿或排风。这要求系统具有稳定性、可靠性以及实时性。湿度过高或过低,都会影响居住舒适度,一般情况下,室内的湿度水平在百分之五十的时候是最适宜的。根据对象我们设计出一个实现小型化,低本钱,高性能的检测—报警—处理一体化装置。本系统需要解决的问题是如何检测出湿度,并把检测的湿度变化为单片机能够识别的信号,进行处理转换显示以及报警等。3.2解决方案图3.1是系统的总体框图。湿度传感器选用SHT11电容式湿度传感器,湿度的变化可以转化为电压的变化,湿度越高,电压越高,ADC0808相连,便可以将测出的湿度电压数字化,进而便可以得到湿度值。将得到的湿度值输入单片机,再用数码管显示出相应的湿度值。控制策略采用设定报警阀值,设定值通过按键输入,报警阀值高于设定值一定范围。当湿度超过报警阀值的时候,蜂鸣器响,控制继电器闭合,使电电机通电旋转,进行排风。使湿度降低,直到由于单片机IO口驱动能力有限,无法驱动继电器,故采用了一个驱动电路来驱动继电器。当湿度低于设定值一定的范围的时候,单片机控制另一个继电器闭合,使加湿器通电工作,增加空气湿度。硬件电路设计9个局部组成:湿度传感器,A/D转换电路,STC89C52单片机系统,时钟电路,复位电路,报警电路,键盘电路,控制电路以及LED显示电路组成。其湿度传感器采用SHT11传感器。硬件电路设计框图如图3.1所示。STC89C52时钟电路传感器A/D转换电路时钟电路传感器A/D转换电路复位电路LED显示复位电路LED显示报警电路报警电路键盘电路控制电路键盘电路控制电路图3.1总体框图4硬件设计4.1单片机模块单片机介绍STC89C52是一种带8K字节FLASH存储器的低电压、高性能CMOS8位未处理器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。其特点是拥有8K字节可编程FLASH存储器,256*8位内部RAM,三个16位定时器/计数器,8个中断源,拥有低功耗的闲置和掉电模式,以及片内振荡器和时钟电路。STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方式是在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.2-12MHz之间选择,电容值在5-30pF之间选择,电容值的大小可对频率起到微调的作用。外部方式是RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相对时钟P1和P2,供单片机使用。此次设计时钟电路采用的是内部方式。CPU即中央处理器的简称,是单片机的核心部件,它完成各种运算和控制操作,CPU由运算器和控制器两局部电路组成。STC89C52的引脚功能如下:a.主电源引脚〔2根〕VCC〔Pin40〕:电源输入,接+5V电源。GND〔Pin20〕:接地线。b.外接晶振引脚〔2根〕XTAL1〔Pin19〕:片内振荡电路的输入端。XTAL2〔Pin20〕:片内振荡电路的输出端。c.控制引脚〔4根〕RST∕VPP〔Pin9〕:复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE∕PROG〔Pin30〕:地址锁存允许信号。PSEN〔Pin29〕:外部存储器读选通信号。EA∕VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平那么从内部程序存储器读指令。d.可编程输入∕输出引脚〔32根〕STC89C52单片机有4组8位的可编程I/O口,分别是P0、P1、P2、P3口,每个口有8位〔8根引脚〕,共32根。P0口〔Pin39-Pin32〕:8位双向I/O口线,名称为P0.0-P0.7。P1口〔Pin1-Pin8〕:8位双向I/O口线,名称为P1.0-P1.7。P2口〔Pin21-Pin28〕:8位双向I/O口线,名称为P2.0-P2.7。P3口〔Pin10-Pin17〕:8位双向I/O口线,名称为P3.0-P3.7。单片机处理周期包括12个振荡周期每12个振荡周期用来完成一项操作如取指令和计算指令执行时间可把时钟频率除以12取倒数然后指令执行所须的周期数因此如果你的系统时钟是11.059MHz除以12后就得到了每秒执行的指令个数为921583条指令取倒数将得到每条指令所须的时间1.085ms。STC89C52的管脚图如图4.1:图4.1STC89C52的管脚图4.1.2单片机外围电路a.电压预置复位电路复位是单片机的一个重要工作方式。在单片机工作时,上电时首先要复位,发生故障后也要复位。复位操作有两种根本形式:一种是上电复位,另一种是按键复位,即要复位时,只要按图中的KEY1键,电源VCC经电阻R1和R2分压,在RESET端产生一个高电平。在上电复位时,电路要求接通电源后,通过外部电容来充电实现单片机自动复位操作。上电瞬间RESET引脚获得高电平,随着电容充电,RESET引脚的高电平将逐渐下降。RESET引脚的高电平只要能保持足够的时间〔2个机器周期〕,单片机就可以进行复位操作。单片机复位期间不产生ALE和PSEN信号,即ALE=1和PSEN=1。这说明单片机复位期间不会有任何操作。复位后:PC值为0000H,说明复位后程序从0000H开始执行:SP值为07H,需要重新置SP值:单片机复位后,已使P0—P3口每一端线为“1〞,为这些端线用作输入口做好准备。复位电路图如下图:图4.2复位电路b.时钟振荡电路单片机控制中心的各项工作都是在时钟信号的控制下协调工作的,单片机的时钟电路可为单片机提供一个时钟信号。单片机本身就如一个复杂的同步时序电路,为保证工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。单片机内部有一个用于构成振荡器的高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。而在芯片内部,XTAL1和XTAL2之间跨接晶体管振荡器和微调电容,从而构成一个稳定的自激振荡器。单片机时钟电路可分为内部时钟电路和外部时钟电路。只要在单片机的XTAL1和XTAL2引脚外接晶体振荡器就构成了自激振荡器并在单片机内部产生时钟脉冲信号。电容C1和C2的只要功能是协调振荡器频率及帮助振荡器起振,其电容值一般在20pF-60pF,典型值为30pF,本设计中电容值为22pF。外部时钟方式是把外部已有的时钟信号引入到单片机内。此方式常用于多单片机同时工作,以便于个单片机的同步。一般要求外部信号高电平的持续时间大于20us,且为频率低于12MHz的方波。本设计采用内部时钟电路来确保整个电路的协调工作。电路图如下图:图4.3时钟电路4.2A/D转换模块4.2.1A/D转换电路 电路图如图4.4所示。在选择输入端时,是将A、B、C赋值为低电平,选择IN0作为输入端。图4.4AD转换原理图4.2.2ADC0808芯片介绍ADC0808是CMOS单片型逐次逼近式A/D转换器,带有使能控制端,与微机直接接口,片内带有锁存功能的8路模拟多路开关,可以对8路0-5V输入模拟电压信号分时进行转换,由于ADC0808设计时考虑到假设干种模/数变换技术的长处,所以该芯片非常适应于过程控制,微控制器输入通道的接口电路,智能仪器和机床控制等领域[5]。ADC0808主要特性:8路8位A/D转换器,即分辨率8位;具有锁存控制的8路模拟开关;易与各种微控制器接口;可锁存三态输出,输出与TTL兼容;转换时间:128μs;转换精度:0.2%;单个+5V电源供电;模拟输入电压范围0-+5V,无需外部零点和满度调整;低功耗,约15mW。ADC0808芯片有28条引脚,采用双列直插式封装,其引脚图如图4.5所示。图4.5ADC0808引脚图下面说明各个引脚功能:IN0-IN7〔8条〕:8路模拟量输入线,用于输入和控制被转换的模拟电压。地址输入控制〔4条〕:ALE:地址锁存允许输入线,高电平有效,当ALE为高电平时,为地址输入线,用于选择IN0-IN7上那一条模拟电压送给比拟器进行A/D转换。ADDA,ADDB,ADDC:3位地址输入线,用于选择8路模拟输入中的一路,其对应关系如表1所示:表1ADC0808通道选择表地址码对应的输入通道CBA000011110011001101010101IN0IN1IN2IN3IN4IN5IN6IN7START:START为“启动脉冲〞输入法,该线上正脉冲由CPU送来,宽度应大于100ns,上升沿清零SAR,下降沿启动ADC工作。EOC:EOC为转换结束输出线,该线上高电平表示A/D转换已结束,数字量已锁入三态输出锁存器。D1-D8:数字量输出端,D1为高位。OE:OE为输出允许端,高电平能使D1-D8引脚上输出转换后的数字量。REF+、REF-:参考电压输入量,给电阻阶梯网络供应标准电压。Vcc、GND:Vcc为主电源输入端,GND为接地端,一般REF+与Vcc连接在一起,REF与GND连接在一起.CLK:时钟输入端。4.3湿度检测模块4.3.1SHT11介绍SHT11是瑞士Scnsirion公司推出的一款数字温湿度传感器芯片。该芯片广泛应用于暖通空调、汽车、消费电子、自动控制等领域。共主要特点如下:高度集成,将温度感测、湿度感测、信号变换、A/D转换和加热器等功能集成到一个芯片上;提供二线数字串行接口SCK和DATA,接口简单,支持CRC传输校验,传输可靠性高;测量精度可编程调节,内置A/D转换器(分辨率为8~12位,可以通过对芯片内部存放器编程选择);测量精确度高,由于同时集成温湿度传感器,可以提供温度补偿的湿度测量值和高质量的露点计算功能;封装尺寸超小(7.62mm×5.08mm×2.5mm),测量和通信结束后,自动转入低功耗模式;高可靠性,采用COMSENS工艺,测量时可将感测头完全浸于水中。a.SHT11的引脚功能SHT11温湿度传感器采用SMD(LCC)外表贴片封装形式,接口非常简单,引脚名称及排列顺序如图4.6所示。各引脚的功能如下:图4.6SHT11的引脚图

脚5~8--未连接。

脚1和4--信号地和电源,其工作电压范围是2.4~5.5V;

脚2和脚3--二线串行数字接口,其中DATA为数据线,SCK为时钟线;b.SHT11的内部结构和工作原理

温湿度传感器SHT11将温度感测、湿度感测、信号变换、A/D转换和加热器等功能集成到一个芯片上,其内部结构如图2所示。该芯片包括一个电容性聚合体湿度敏感元件和一个用能隙材料制成的温度敏感元件。这两个敏感元件分别将湿度和温度转换成电信号,该电信号首先进入微弱信号放大器进行放大;然后进入一个14位的A/D转换器;最后经过二线串行数字接口输出数字信号。SHT11在出厂前,都会在恒湿或恒温环境中进行校准,校准系数存储在校准存放器中;在测量过程中,校准系数会自动校准来自传感器的信号。此外,SHT11内部还集成了一个加热元件,加热元件接通后可以将SHT11的温度升高5℃左右,同时功耗也会有所增加。此功能主要为了比拟加热前后的温度和湿度值,可以综合验证两个传感器元件的性能。在高湿(>95%RH)环境中,加热传感器可预防传感器结露,同时缩短响应时间,提高精度。加热后SHT11温度升高、相对湿度降低,较加热前,测量值会略有差异。4.3.2湿度检测电路湿度传感器SHT11的DATA端与ADC0808的IN0口相连,时钟线SCK与单片机P2.7口相连。通过这个电路可以直接输出与湿度相关的电压值,并与ADC0808的IN0口相连。再将输出电压转变成数字量,输入单片机。实现湿度的测量。图4.7湿度检测电路4.4LED数码管显示模块4.4.1数码管显示简介LED显示器是一种通过控制半导体发光二极管的显示方式,用来显示图像等各种信息的显示屏幕。本设计所用到的LED显示器由七个发光二极管组成,因此也称为七段LED显示器。此外,在本设计所用到的LED显示器中还有一个圆点型发光二极管〔在图中以dp表示〕,作为小数点的显示使用。通过七段发光二极管的不同组合,可以显示多种数字、字母或者其他符号。LED中的发光二极管有两种接法:a.共阳极接法:把发光二极管的阳极连在一起构成公共阳极。使用时将公共阳极连接到+5V电源上。这样假设阴极端输入低电平,那么该发光二极管就导通点亮,假设阴极端输入高电平,那么不点亮。b.共阴极接法:把发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地,这样假设二极管的阳极端输入高电平,那么该发光二极管就导通点亮,假设阳极端输入低电平,那么该发光二极管不点亮。本设计采用共阴极接法。七段发光二极管,再加上一个小数点,共计8段。采用LED显示器。LED显示器由七个发光二极管组成,本设计采用共阳极接法。显示器采用动态显示方式。原因在于:静态显示方式要求口线多,占用资源多,本钱就高,而动态显示方式,电路简单、节省口线、本钱低。LED通常有两种显示方法:动态显示和静态显示。动态显示:即逐位点亮显示器的每一位,对于显示器的每一位而言,每隔一段时间点亮一次显示器的亮度与导通电流有关,也与点亮时间和间隔时间有关。在多位LED显示时,为了简化电路、降低本钱,将所有位的段选码并联在一起,由一个8位输入端口控制,而共阴极或共阳极点分别由相应的口线控制。静态显示:是当显示器显示某一个字符时,相应的发光二极管恒定地导通或截止,并且显示器的各位同时显示。静态显示时,较小的驱动电流就能得到较高的显示亮度。LED显示器工作在静态显示方式下,共阴极点或共阳极点连接在一起接地:每位的段选〔a-dp〕与一个8位并行口相连。静态显示显示效果好,但是功耗大,但不占用端口,只需两个串口线输出,变成较为简单。而且采用静态显示需要的驱动器件多,硬件本钱相对更高。比拟以上两种方案,方案一硬件简单程序复杂,方案二硬件复杂程序简单,考虑到实惠和对自己的编程锻炼,选择方案动态显示。本次设计用到的是三位动态显示。动态显示是一位一位地轮流点亮各位数码管。在本次设计中采用的是共阳极的三位一体的LED,1、2、3分别为三个数码显示的分别为三个数码管显示的控制引脚,其原理与单个LED的显示原理完全相同。LED显示器:图4.8LED显示器4.5驱动电路模块4.5.1报警电路报警局部由陶瓷压电发声装置及外围电路组成,当检测到湿度过高时,单片机的P2.4引脚为低电平,三极管T3导通蜂鸣器发出报警声。如图4.9所示:图4.9报警电路原理图排风电路当检测到环境湿度高于设定上限值时,单片机P2.5口输出高电平,使三极管导通,继电器吸合,抽风机通电,通过排风换气使湿度降低。电路如图4.10所示。电路由驱动和开锁两级组成。由R2、Q2组成驱动电路,其中Q2可以选择普通的小功率三极管如9012都可以满足要求。由D2、RL1组成开锁。其中D2是为了消除继电器可能产生的反向高电压。继电器的选用要视情况而定,但是吸合力要足够且有一定的余量。图4.10排风电路原理图4.5.3加湿电路当检测到环境湿度低于设定下限值时,单片机便输出开门信号,送到开锁驱动电路,然后驱动继电器吸合,加湿器通电工作,使居室内空气湿度增加。电路如图4.11所示。电路由驱动和开锁两级组成。由R3、Q3组成驱动电路,其中Q3可以选择普通的小功率三极管如9012都可以满足要求。由D3、RL2组成开锁。其中D3是为了消除继电器可能产生的反向高电压。继电器的选用要视情况而定,但是吸合力要足够且有一定的余量。图4.11加湿电路原理图4.6键盘电路模块4.6.1键盘电路的分类键盘接口通常包括硬件和软件两局部。硬件是指键盘的结构及其主机的连接方式;软件是指对键盘的操作的识别与分析,即键盘管理程序。键盘一般是一组开关〔按键〕的集合。常用的按键有三种:机械触点式:利用金属的弹性使键盘复位。导电橡胶式:利用橡胶的弹性使按键复位。柔性按键:外形及面板布局等可按整机要求设计,在价格、寿命、防潮、防锈等方面显示出加强的优越性。键盘按其工作原理又可分为编码式键盘和非编码式键盘。这两类键盘的主要区别是识别键符及给出相应键码的方法。编码键盘主要是用硬件来实现对键的识别。非编码键盘主要是由软件来实现键盘的定义与识别。非编码式键盘按照与主机连接方式的不同,分为独立键盘和矩阵式键盘。〔1〕独立式键盘:独立式键盘中,每个按键占用一根I/O口线,每个按键电路相对独立。I/O口通过按键与地相连,I/O口有上拉电阻,无键按下时,引脚为高电平,有键按下时,引脚电平被拉低。I/O口内部有上拉电阻时,外部可不接上拉电阻。〔2〕矩阵式键盘:行列式键盘采用行列电路结构,当按键较多时所占用的口线相对较少,键盘规模越大,其优点越明显。所以,当按键数目大于8时,一般采用矩阵式键盘结构。本设计采用机械触点式键盘按非编码方式工作。4.6.2键盘电路的工作原理当无键按下时,单片机的P1.0、P1.1口为高电平。当有按键按下时,单片机相应口线通过按键与地相连的电路被接通,单片机接口被拉成低电平,此时其他口线的电平状态不变。所以,通过检测P1.0、P1.1口的电平状态,即可判断键盘上哪个键被按下。键盘电路工作原理图如图4.12所示:图4.12键盘电路图5软件设计5.1开发工具介绍单片的使用除了硬件,同样也要软件的使用,我们写汇编程序编程CPU可执行的机器码有两种方法,一种是手工汇编,一种是机器汇编。机器汇编通过汇编软件变为机器码,用于MSC-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断开展,从使用普通汇编语言到高级语言的不断开展,Keil是目前最流行开发MCS-51系列单片机的软件。Keilc51汇编,PLM语言和C语言的程序设计,界面友好。Keil是美国keilsoftware公司出品的52系列兼容单片机c语言开发系统。用过汇编语言后再使用C语言来开发,体会更加深刻。KeilC51软件提供丰富的库,与汇编相比,C语言在功能上,结构上,可读性,可维护性上有明显的优势,因而易学易用函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生产的汇编代码,就能体会到KeilC51DE生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解,在开发大型软件时更能表达高级语言的优势。5.2主程序源程序主程序源程序本设计的关键是对房间湿度的控制和显示。其中,当电源翻开的时候,单片机控制单元STC89C52进行复位,存放器清零,单片机使设置湿度显示器的数值为50,同时当前湿度显示器开始显示检测到的湿度。主程序的工作是循环调用键扫描函数和湿度检测函数,根据键扫描函数的值判断有无按键按下。假设无按键按下,直接调用显示函数,显示设置的湿度上、下限值。假设KEY2按下,令设置湿度上、下限值增加1,然后调用显示子函数,显示设置湿度值。假设KEY3按下,令设置湿度上、下限值减少1,然后调用显示子函数,显示设置湿度值。根据湿度检测函数检测到的湿度进行显示以及同设计湿度相比拟,根据比拟结果而采取相应的措施,当湿度超过设定上限值时候,单片机控制蜂鸣器报警,控制继电器闭合,使电电机通电旋转,进行排风。使湿度降低,当湿度低于设定下限值的时候,单片机控制蜂鸣器报警和另一个继电器闭合,使加湿器通电工作,增加空气湿度。主程序流程图如图5.1所示。调用湿度检测程序,获取湿度值,用数码管显示。调用湿度检测程序,获取湿度值,用数码管显示。开始退出蜂鸣器报警蜂鸣器报警排风扇转动〔湿度降低〕加湿器工作〔湿度增加〕湿度值是否超过上限值?湿度值是否超过下限值?YY 图5.1主程序流图5.2.2显示子程序源程序本设计采用LED显示器动态显示电压数值,所以需要两组单片机接口,一组为P1口,一组为P3口,P1口负责接收段控码。先将设定湿度上、下限值显示出来,第一个循环点亮设定湿度的第一位,第二个循环点亮设定湿度的第二位。再通过一个循环语句依次点亮当前湿度显示LED显示器的第一位,再下一个循环点亮当前湿度显示LED显示器的第二位。程序流程图如图5.2所示。段控码送P2口段控码送P2口位控码送P1口调延时子程序修改段控码初始化暂存显示的湿度值查表取段控码开始返回修改位控码二位扫描完YN图5.2显示子程序流程图5.2.3键扫子程序源程序键扫子程序负责扫描P1口,屏蔽掉高四位数据后,得到P1口的处理函数,即P1口低四位的反码,然后调键扫描,判断P1口是否为0,经显示子程序延时去抖后,为零即无键按下,不为零即有键按下,然后返回键值给主函数。键扫子程序流程图如图5.3所示。YNYNY开始有键闭合调显示子程序延时去抖有键闭合键是否释放调显示子程序保存键值结束NNY 图5.3键扫子程序流程图5.2.4湿度采样转换子程序采样转换模块是本系统中的核心模块之一,它负责完成湿的测量及模拟量转换为数字量的全过程,这也是它为什么重要的原因。系统每次转换前ADC0808的IN0-IN7送个任意数,表示开始转换,结果是一个数字量,将其转化为BCD码,。送显示程序显示,并将数值返回给主函数。湿度也可以通过此种方法观察变化,得出相应的结论。为了更精确的反映系统的湿度,本系统对四路采样信号作简单平均处理,并将处理后的数值作为居室的湿度,其流程如图5.4。图5.4湿度采样子程序流程图6设计总结这是第四次进行课程设计,有了以往几次设计的经验,明白在课程设计中分工合作非常重要,这样才不会浪费时间,也能在合作中展示个人能力。由于我个人比拟对软件感兴趣,因此,在初次讨论分组的时候选择了负责软件局部——程序的编写。我们都知道在编写程序之前,最重要的画程序流程图。流程图反响了程序的思想,结构,步骤。而画流程图必须要了解硬件设计者的想法以及设计方案。因此在开始的时后,我主要是与负责硬件局部的同学沟通,了解和分析他们的设计思路以及实现的功能。这时初步的流程图即可绘制出来。接下来就是构思详细的流程图。由于我们使用的51系列单片机,是学习中经常使用的芯片,比拟熟悉。因此结合设计好的Proteus图,将使用到的引脚摘出来,结果了解分析,清楚了本次编写程序时主要用到的单片机的I/O口,定时器/计数器等功能。此时主程序的流程图就很容易绘制出来了。本次课程设计使用了1种传感器——SHT11。第一次接触这个传感器,认真学习搜集来的资料,结合本次设计的需要,在已有的程序根底进行修改。SHT11主要是应用外部计数方式进行湿度的转换。子程序的流程图写好后就可以着手编写程序了。根据以前的编程经验,写的时候最好是模块化。其次,还要注意加注释,这样其他同学在看的时候就以明白每局部实现的功能是什么。程序写好后再通过软件仿真。我们分别先测试传感器的显示,在调试的过程中却出现很多问题,比方尽管编译是程序没有错误,但下载到单片机后却没有到达预期效果,开始排错,确定硬件正常后,就仔细检查程序。原来是在写程序的时候粗心多写了分号使得程序移植在循环处执行。通过这次课程设计,我学到了很多。因为没有要求制作实物,所以没有动手焊接和画电路图,但是却提高了在编程方面的能力,增强经验。也让我明白,即使程序写的没错误,但是在实际应用中还是会出现各种问题,这次的课程设计让我加强了我在调试时的排错能力。总之,只有把理论与实际操作结合才能做好事情。7谢辞在这次课程设计中,要特别感谢带着我们的老师,虽然这是我们第四次做课程设计,所以我们对于这次的设计题目有了些许思路,通过与老师见面,我们逐渐清晰这次课程设计的思路,你都会给我们讲的特别仔细,让我们明白接下来一步该做什么,该借阅什么样的参考书,最后是报告的格式,格式非常重要,包括以后的毕业论文。为了这次课程设计,我也充分利用图书馆的资源,增长自己的见识,为以后的毕业设计打好了根底。有了这些,我们才能这么圆满地完成这次课程设计的任务。此次设计是在郭秀丽老师的精心指导下完成的。本系统的设计成功与郭老师的帮助是密不可分的,再加上自身的努力才能圆满地完成预期的目标。郭老师对新知识,新事物都有自己独到的理解,这深深的影响了我对学习的态度,将使我终生难忘。她一丝不茍的工作态度和认真负责的敬业精神同样给了我巨大的收益和鼓舞。8参考文献[1]赵家贵.传感器电路设计手册.北京:中国计量出版社.2002[2]何希才.实用传感器接口电路实例.北京:中国电力出版社.2007[3]瞿贵荣.简易可燃气体泄漏报警器.家庭电子〔爱好者〕.2005年第5期.44[4]郭天祥.51单片机C语言教程.北京:电子工业出版社,2021[5]谭浩强等.C程序设计.〔第二版〕.北京:清华大学出版社,1999[6]胡向东.传感技术.重庆大学出版社,2006[7]钟富昭.8051单片机典型模块设计与应用.北京:人民邮电出版社,2007[8]胡辉.单片机原理及应用设计.中国水利水电出版社、2005[9]杨素行.模拟电子技术根底简明教程.高等教育出版社、2021附录一:总电路图目录TOC\o"1-3"\h\u215581前言 1143022设计要求 255213总体设计方案 3241023.1对象分析 3113403.2解决方案 390514硬件设计 4199914.1单片机模块 4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论