智能窗帘系统设计.doc_第1页
智能窗帘系统设计.doc_第2页
智能窗帘系统设计.doc_第3页
智能窗帘系统设计.doc_第4页
智能窗帘系统设计.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

河 南 工 业 职 业 技 术 学 院henan polytechnic institute毕业设计(论文)题 目 智能窗帘系统控制 班 级 机 电 1001 姓 名 荆 品 品 指导教师 韩 全 立 摘 要 随着科技的发展,智能家居已逐渐进入人们的生活中。市场对于红外遥控控制系统的需求也越来越大。高精度、多功能、低功耗,是现代科技的主导方向。因此,单片机在电子产品的应用已经越来越广泛,在很多电子产品中都用到了红外控制。本设计介绍给予at89c51单片机控制的智能窗帘系统,它采用了红外遥控技术,实现室内任何地方,只要轻按遥控器,窗帘就会随心所欲的打开或关闭。为了使窗帘更加智能化,在设计中还加入光控和自动定时控制,可以根据光强或用户定时,开启或关闭窗帘,让该设计更加人性化。关键字:智能窗帘、光控、单片机目录第一章 绪论11.1 窗帘红外遥控设计目的11.2智能窗帘概述及发展1第二章 设计思路22.1主要任务22.2 工作原理22.3实现功能2第三章 设计方案33.1红外遥控的基本原理33.2 系统总体结构规划3第四章 硬件设计54.1 89c51单片机及相关电路54.2晶振电路54.3复位电路64.4时钟电路74.5电源电路84.6 步进电机控制系统电路94.7 键盘/显示接口电路104.8 传感器124.9 放大滤波电路14410 a/d转换15第五章 系统软件设计175.1 主程序软件设计175.2 光控电机程序设计185.3 lcd1602显示程序设计185.4 ds1302程序设计195.5 键盘程序设计215.6光照采集程序设计215.7 ds18b20程序设计22总结与展望23参考文献24致谢254第一章 绪论 随着国民经济的发展和科学技术水平的提高,特别是计算机技术,通信技术、网络技术、控制技术的迅猛发展与提高,促使家庭实现了生活现代化,居住环境舒适化。这些高科技已经影响到人们生活的方方面面,改变了人们的生活习惯,提高了人们的生活质量,智能家居在这种形势下应运而生1.1 窗帘红外遥控设计目的随着科学的发展,社会的进步,信息化得加快,人民生活水平的提高,工作压力也越来越大,人人都希望回到家或是在办公室都有一个舒适的环境。能得到很好的休息,这就使得自动化技术快速发展。为了进一步满足人们高水准生活的需要,窗帘由手动控制向红外线遥控、向智能化发展。红外线遥控是目前应用最广泛的一种通信和遥控手段。而且红外线遥控器具有体积小、功耗低、功能强、成本低等特点。单片机以它的体积小、质量轻、耗电省、可靠性高、价格低等特点。在电子产品中的应用已经越来越广泛,在很多电子产品也用到了红外控制。随着窗帘红外控制系统应用范围日益广泛和多样,各种适用于不同场合的窗帘控制器应运而生。它不但取代原有的无线遥控窗帘控制器,而且工作可靠。1.2智能窗帘概述及发展在现代生活中,窗帘再不仅仅只起到遮挡光线的简单的作用。它在整体家居中的装饰作用越来越突出。据调查发现,居民因迁入新居而购买窗帘布艺产品平均每单花费在4000元以上,且不乏一次花费在2万元以上者。因此,以迁入新居或装修后进行家用纺织品消费为特征的消费需求增长,成为家用纺织品消费的主流,明显地表现为刚性需求的增长。另外,随着人们对居住环境的要求不断地提高,智能化的家居产品在人们的生活中将会逐渐被认识和采纳,智能窗帘也正以其强大的人性化功能、惊人的发展速度以及巨大的市场前景崭露头角。然而,纵观目前国内智能窗帘市场,一方面,它的价格只有少数的人能承受的起,离普通大众相去甚远,而这过高的价格制约了它的发展。另一方面,智能窗帘的智能化程度还不高,有的甚至只有遥控功能也称作是智能窗帘,因此智能窗帘市场良莠不齐。针对这种现象,本设计通过创新,给窗帘增加了定时控制和光感控制,让窗帘显得更加智能化。在成本方面,采用一些价格相对便宜的器件,来实现这个复杂的系统。因此本设计具有很强的现实意义。第二章 设计思路2.1主要任务课题设计的主要任务就是实现红外信号的发射和接收。保证发射出的信号要有足够的强度,在传播过程中要能有防止其他无线电信号的干扰能力。同时接收机要能够在足够远的距离上接收到准确的控制信号,起到控制电路工作的作用。利用光敏电阻根据光线的强弱自动调节窗帘的开关.2.2 工作原理和用电磁波用作无线电遥控的信号传播媒介一样,在红外遥控电路中用红外线作为红外线遥控的信号传播媒介。借助于红外线具有直线传播的特性,利用专用的红外传感器具有灵敏度高,响应快和光谱范围窄的性能,制成灵敏度高,抗干扰性能良好的红外遥控装置。利用单片机控制的红外遥控电路,它是利用单片机的异步通讯口,用红外发射口和红外接收来实现发射和接收点信号功能.2.3实现功能1. 手动控制 该功能使电动窗帘具有手动正传、手动反转 和手动停止的功能。用户可以通过遥控器对窗帘的开合进行控制,避免了手动拉动窗帘的麻烦。 2. 半自动手动控制 半自动手动控制是在需要关闭或打开窗帘的时候,只需要人工按一下“正转”或“反转”按键后,窗帘到位自动停止。3.光控调节功能 当用户无暇顾及窗帘的开合程度时可以打开光控调节功能,窗帘的关闭和开启通过环境亮度自动完成窗帘的开启或关闭操作控制,“天黑关闭,天亮打开”单片机会自动获取信息调节室内光照强度,使室内一直处于舒适的光照环境。具有智能管理,不产生误动作。4.定时控制功能 根据设置输入的开启或关闭时间,来控制窗帘的关闭和打开。 窗帘的正转、反转和停止功能可由单片机输出电平来控制步进电机的运转以实现。环境亮度的控制通过光敏电阻和运放组成的电路来控制单片机输出电平继而控制电机的正转和反转。时间自动控制可以由定时器来控制 第三章 设计方案3.1红外遥控的基本原理 由于一般的遥控电路,其控制距离都不超过10米。这不仅是由于发射机的发射功率一般都小的原因,而更重要的是因为红外线具有可见光的散射特性,在经过一段距离后它的发射面积增大,使控制信号的能量分散,单位面积上的能量强度减弱,因而失去控制功能。如果在增大发射机发射功率的同时,又将发射光或接收光聚焦,则控制距离可大大增加。本次设计的要求是控制距离为40-50米,所以,一般的遥控电路不能满足要求。所以就要求我们能设计出能适用于中远距离遥控的电路制开关的目的。 单通道遥控开关电路的红外线发射控制电路是利用脉冲发生器产生的高频脉冲方波驱动红外发光管,使其发射出一系列等幅的红外方波脉冲。方波的占空比用1:1或1比几。其目的是在一定的电源电压下,达到尽可能高的脉冲峰值,提高发射机的效率,以增大控制距离,而且节省电源。例如:一个峰值电流为3a的脉冲,占空比为1:3,它的平均消耗电流只有1a。这对于使用干电池作电源的发射机是很有实用价值的。 在接收机方面,由光电二极管或光电三极管将接收到的红外脉冲信号转换成微弱的脉冲电信号,由电压放大级将这个微弱的信号加以放大,使其能够可靠地出发双稳态电路的翻转,有的电路还加以限幅放大,以削去干扰尖脉冲。最后将双稳态电路输出的控制信号进行功率放大并驱动继电器。3.2 系统总体结构规划电动窗帘控制器的总体结构框图如图3.2所示。 传感器信号调理电路a/d转换器at89c51单片机显示部件键盘步进电机图3.2 电动窗帘控制器结构框图由光电传感器来探测外界的光强,从传感器出来的信号经过信号调理电路的放大,滤波调理后输入到a/d转换器,a/d转换器件完成一个转换过程需要一定时间,如果在这段时间内信号的幅度发生变化,转换结果将会受到影响,所以期间要用到采样保持电路。转换后的信号由单片机控制器,来实现电机的运行与停止。显示部件用来显示电动窗帘控制器的各种状态信息。键盘是主要的输入设备,控制单片机的各种参量。第四章 硬件设计4.1 89c51单片机及相关电路89c51是美国atmel公司的低电压一种带4k字节闪烁可编程可擦除只读存储器(fperomfalsh programmable and erasable read only memory)的低电压,高性能cmos8位微处理器,俗称单片机。它,89c2051是一种带2k字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的89c51是一种高效微控制器,89c2051是它的一种精简版本。89c51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。4.2晶振电路电路中的晶振即石英晶体震荡器。由于石英晶体震荡器具有非常好的频率稳定性和抗外界干扰的能力,所以,石英晶体震荡器是用来产生基准频率的。通过基准频率来控制电路中的频率的准确性。同时,它还可以产生振荡电流,向单片机发出时钟信号。图4.2是单片机的晶振电路。电路中的电容c1和c2的典型值通常选择为30pf左右,该电容的大小会影响振荡电路频率的高低、振荡器的稳定性和起振的快速性。晶体振荡频率的范围通常在1.212mhz。晶体的频率越高,系统的时钟频率越快,单片机的运行速度越快。但反过来,运行速度对于存储器的速度要求就越高,对印刷电路板的工艺要求也就越高,即要求线间的寄生电容要小。晶体和电容应该尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证振荡器稳定、可靠地工作。89c51常选择振荡频率12mhz的石英晶体。图4.2 单片机晶振电路图4.3复位电路复位是单片机的初始化操作,只需要给89c51的复位引脚rst加上大于2个机器周期(即24个时钟振荡周期)的高电平就可以使89c51复位。复位时,单片机初始化为0000h,从0000h单元开始执行程序。除了进入系统的正常初始化之外,当程序运行错误(如程序跑飞)或操作错误使系统处于锁死状态时,也需要复位键使rst脚为高电平,使89c51摆脱“跑飞”或“死锁”状态而重新启动。图4.3是复位电路图。图4.3 复位电路图4.4时钟电路本设计需要窗帘在给定的时间自动开和关,所以需要用到定时器,而为了保证单片机与外界时钟一致,要用到一个实时时钟电路。这里使用ds12887实时时钟芯片来完成这项功能。ds12887是dallas公司生产的实时日历时钟芯片,其主要功能包括非易失性时日历时钟、报警器、百年历、可编程中断、方波发生器和114字节的非易失静态ram。使用ds12887时应注意以下几点:vcc正常情况下为5v,当vcc降至4.25v时,所有的输入被忽略,输出为高阻状态,vcc降至3v时,外部电源被关断,内部锂电池为实时时钟和ram供电,在断电情况下,时钟继续运行,其中的数据可保存十年以上不会丢失。ds12887有两种工作时序,即motorola和intel时序,由mot引脚的电平指定,当mot引脚为高电平时选择motorola时序,当mot引脚为低电平时选择intel时序,图中选为intel时序,这时芯片的ds引脚接系统的读信号/rd,r/w引脚接系统的写信号/wr。as引脚用于分离数据地址总线ad7-ad0上的地址和数据信息,连接到mcu的ale引脚。reset引脚的信号对日历时钟和ram没有影响,但它影响ds12887的命令和状态寄存器的内容,在图中直接将reset连至vcc,这样可以保证ds12887在进入或退出电源失效状态时,其工作状态不受reset引脚的影响。ds12887有一个可编程输出方波引脚sqw,从该引脚可以输出频率为2hz-256hz的方波,在系统中正是利用此引脚输出周期为125ms的方波,作为mcu外部中断/int0的中断源实现周期性中断,每当中断发生时,mcu读一二次输入口,检查电表是否转过一圈,在整点时还要采一次三相电流和电压。除此之外,ds12887内部还有128字节的ram的单元,其中前10个字节用于存放日历时钟信息,字节0为秒,字节2为分,字节4为时,字节6为星期,字节7为日,字节8为月,字节9为年,字节0ah-0dh用作控制和状态寄存器,剩下的114字节为用户ram,所有的这128字节都是掉电非易失性的。图4.4 时钟电路图ds12887时钟芯片和at89c5l单片微机的接口电路如图4.4所示。模式选择脚mot接地, ds12887时钟芯片的as端口和89c51单片机的aie端直接相联;而ds、rw 读写控制线与单片机的rd/wr控制线制线相连;ds12887的高位地址由89c51单片机的p27端口来片选,则ds12887的高8位地址定为7fh,而其低8位则由芯片内部各单元的地址来决定(00h-3fh);ds12887的中断输出端iqr和89c51的外部中断int0端相联,给单片机提供中断信号;ds12887的sqw端与89c5i的to端相连。4.5电源电路单片机工作需要使用5v电压,因此需要给单片机设计电源电路。图4.5是单片机的电源电路。它采用lm7805三端集成稳压器,可输出+5v的直流电压供电。图4.5 电源电路图4.6 步进电机控制系统电路步进电机为一种数字伺服执行元件,具有结构简单、运行可靠、控制方便、控制性能好等优点,广泛应用在数控机床、机器人、自动化仪表等领域。为了实现步进电机的简易运动控制,一般以单片机作为控制系统的微处理器,通过步进电机专用驱动芯片实现步进电机的速度和位置定位控制。单片机在本次试验中对步进电机的控制从而达到对转角和位移的控制的方法。本次设计采用两个型号为130hz308-450的三相反应式步进电机对旋转角度和位移进行控制,该步进电机力矩大、耐负载冲击、精度高。其步距角为1.2,即=1.2,即本次设计的测控系统对回转台转角的控制精度可以达到1.2。步进电机的驱动电路是根据控制信号工作的。而本次测控系统是以单片机位控制中心的,下面将介绍步进电机控制系统。步进电机控制系统主要由脉冲分配器,功率驱动电路,步进电机几部分构成的。步进电机控制系统的方框图如图4.6.1所示: 脉冲控制器 功率驱动电路 步进电机负载脉冲信号图4.6.1步进电机控制系统方框图 图4.6.2 步进电机控制系统电路图单片机输出步进脉冲后,再由脉冲分配电路按事先确定的顺序控制各相的通断。本设计由软件完成脉冲分配工作,不仅使线路简化,成本下降,而且可根据应用系统的需要,灵活地改变步进电机的控制方案。软件控制脉冲将在软件设计部分说明。步进电机功率驱动电路工作在较大脉冲电流状态,采用光电耦合器将单片机与步机电机隔离可以避免单片机与步进电机功率回路的共地干扰,防止强功率的干扰信号反串进主控系统。此外,万一驱动电路发生故障,也不致让功放中较高的电压串入单片机而使其损坏。步进电机的驱动电路有很多种,但最为常见的就是用单电压驱动,双电压驱动,斩波驱动,细分驱动等。但电压驱动是步进电机控制中最为简单的一种驱动电路,它在本质上是一个单间的反相器。它最大的特点是结构简单,工作效率低。而且它的外接电阻要消耗相当一部分能量,这样会影响电路的稳定性。双电压驱动电路是采用两种电源电压,缺点在于在高低电压连接处电流出现谷点,这样必然引起力矩在谷点处下降,不易于电机的正常运行。对于斩波驱动则可以克服这种缺点,并且还可以提高步进电机的效率。从提高效率的角度来看这是一个很好的驱动电路,它可以用较高的电源电压,同时无需外接电阻来限定额定电流和减少时间常数。但由于其波形顶部呈现锯齿形波动,所以产生较大的电磁噪声。细分驱动是用脉冲电压来供电的,对于一个电压脉冲,转子就可以转动一步。本设计采用的是恒频脉宽调制细分驱动电路,电路图如4.6.3所示。图4.6.3 恒频脉宽调制细分驱动电路4.7 键盘/显示接口电路 液晶模块的简介1602液晶也叫1602字符型液晶。它是一种专门用来显示字母、数字、符号等的点阵型液晶模块,它有若干个57或者511等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔,每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以它不能显示图形。 液晶显示部分与单片机的接口用at89c51单片机的p2口作为数据线,用p1.5、p1.6、p1.7分别作为lcd的en、rw、rs。其中en是下降沿触发的片选信号,rw是读写信号,rs是寄存器选择信号。lcd1602与单片机的接口电路如图4.7.1所示。图4.7.1 lcd1602与单片机的接口电路键盘电路键盘在由单片机控制的窗帘自动控制系统中的主要作用是通过按键向单片机输入指令,其中主要包括设定时间,控制窗帘的开关功能。键盘接口电路如图4.7.2所示,在窗帘控制系统设计中的键盘采用的是4个独立键盘,这4个按键分别为:s1键是电机正转键,主要是用来设定自动窗帘打开;s2键是电机反转键,主要是用来设定自动窗帘闭合;s3、s4键的作用主要是用于设定时间。s3键是设定窗帘打开的时间,设定一个时间值,当时间与设定值相同时,单片机控制电机正转,窗帘自动打开;s4键是设定窗帘闭合的时间,设定一个时间值,当时间与设定值相同时,单片机控制电机反转,窗帘自动闭合。图4.7.2键盘接口电路4.8 传感器 光电传感器电动窗帘要根据光照的情况而自动开关窗帘,因而需要使用到光电传感器。这里使用光敏电阻。光敏电阻是用光电导体制成的光电器件,又称光导管,他是基于半导体光电效应工作的。光敏电阻没有极性,纯粹是一个电阻器件,使用时可以加直流电压,也可以加交流电压。当无光照时,光敏电阻值(暗电阻)很大,电路中电流很小。当光敏电阻受到一定波长范围的光照时,它的阻值急剧减少,因此电路中电流迅速增加。光敏电阻具有很高的灵敏度,很好的光谱特性,光谱响应从紫外区一直到红外区。而且体积小、重量轻、性能稳定。因此在自动化技术中得到广泛的应用。光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。通常,光敏电阻器都制成薄片结构,以便吸收更多的光能。当它受到光的照射时,半导体片(光敏层)内就激发出电子空穴对,参与导电,使电路中电流增强。根据光敏电阻的光谱特性,可分为三种光敏电阻器:紫外光敏电阻器:对紫外线较灵敏,包括硫化镉、硒化镉光敏电阻器等,用于探测紫外线。红外光敏电阻器:主要有硫化铅、碲化铅、硒化铅。锑化铟等光敏电阻器,广泛用于导弹制导、天文探测、非接触测量、人体病变探测、红外光谱,红外通信等国防、科学研究和工农业生产中。可见光光敏电阻器:包括硒、硫化镉、硒化镉、碲化镉、砷化镓、硅、锗、硫化锌光敏电阻器等。主要用于各种光电控制系统,如光电自动开关门户,航标灯、路灯和其他照明系统的自动亮灭,自动给水和自动停水装置,机械上的自动保护装置和“位置检测器”,极薄零件的厚度检测器,照相机自动曝光装置,光电计数器,烟雾报警器,光电跟踪系统等方面。这里选用3系列的gl3526。应用光控原理工作,天亮窗帘自动打开,天黑窗帘自动关闭。由运放组成比较电路,同向输入端有两个电阻分压得到一个电压值,作为基准电压进行比较,而反相输入端用一个光敏电阻对外部环境的光线进行采集,利用光敏电阻暗时电阻大,亮时电阻小的特点,来确定反向输入端的电压值。再两者进行比较,比较后的信号再送入单片机89c2051的p0口,从而通过单片机来控制电机的正反转。来实现天亮窗帘自动打开,天黑窗帘自动关闭这一自动控制功能。温度传感器ds18b20概述dallas最新单线数字温度传感器ds18b20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。dallas半导体公司的数字化温度传感器ds18b20是世界上第一片支持“一线总线”接口的温度传感器。温度测量范围为-55+125摄氏度,可编程为9位12位转换精度,测温分辨率可达0.062摄氏度,分辨率设定参数存储在eeprom中,掉电后依然保存。被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个ds18b20可以并联到3根或2根线上,cpu只需一根端口线就能与诸多ds18b20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因此用它来组成一个测温系统,具有线路简单,十分方便。ds18b2测温原理:低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预值减到0时,温度寄存器的值将加1,计数器1的预值将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。ds18b20功能特点:(1)采用单总线技术,与单片机通信只需要一根i/o线,在一根线上可以挂接多个ds18b20;(2)每只ds18b20具有一个独有的,不可修改的64位序列号,根据序列号访问地址的器件;(3)低压供电,电源范围从35v,可以本地供电,也可以直接从数据线上窃取电源(寄生电源方式);(4)测温范围为-55+125,在-10+85范围内误差为0.5;(5)可编辑数据为912位,转换12位温度的时间为750ms。 ds18b20温度传感器与单片机的接口电路ds18b20可以采用两种方式供电,一种是寄生电源供电方式。另一种是采用电源供电方式,此时ds18b20的1脚接地,2脚作为信号线,3脚接电源。如图4.8所示单片机端口接单线总线。当ds18b20处于写存储器操作和温度a/d转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时vdd端接地。由于单线制只有一根线,因此发送接口必须是三态的。 图4.8 ds18b20与单片机的接口电路4.9 放大滤波电路在许多需要用a/d转换和数字采集的单片机系统中,多数情况下,传感器输出的模拟信号都很微弱,必须通过一个模拟放大器对其进行一定倍数的放大,才能满足a/d转换器对输入信号电平的要求,在此情况下,就必须选择一种符合要求的放大器。仪表仪器放大器的选型很多,我们这里介绍一种用途非常广泛的仪表放大器。来自传感器的信号通常都伴随着很大的共模电压(包括干扰电压)。一般采用差动输入集成运算放大器来抑制它,但是必须要求外接电阻完全平衡对称,运算放大器才具有理想特性。否则,放大器将有共模误差输出,其大小既与外接电阻对称精度有关,又与运算放大器本身的共模抑制能力有关。一般运算放大器共模抑制比可达80db,而采用由几个集成运算放大器组成的测量放大电路,共模抑制比可达100120db。滤波器是具有频率选择作用的电路或运算处理系统,具有滤除噪声和分离各种不同信号的功能。传感器过来的信号经常带有各种各样的干扰,因此要采用滤波电路来去除干扰。综合考虑,采用低通滤波器。本设计采用将放大滤波功能结合的电路,电路图如图4.9所示。图4.9放大滤波电路410 a/d转换a/d转换的作用是进行模数转换,把接收到的模拟信号转换成数字信号输出。在选择a/d转换时,先要确定a/d转换的位数,该设计运用的是8位a/d转换器adc0809,a/d转换误的位数确定与整个测量控制系统所需测量控制的范围和精度有关,系统精度涉及的环节很多,包括传感器的变换精度,信号预处理电路精度a/d转换器以及输出电路等。本次设计使用8位a/d转换器adc0809。关于adc0809的介绍:adc0809是cmos 单片型逐次逼近式ad 转换器,它由8 路模拟开关、地址锁存与译码器、比较器、8位开关树型da 转换器、逐次逼近,寄存器、三态输出锁存器等其它一些电路组成。因此,adc0809 可处理8路模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作.adc0809与at89c51单片机的连接如图4.10所示。图4.10 adc0809与单片机的接口电路a/d 转换后得到的是数字量的模拟量,这些数据应传送给单片机进行处理。数据串的关键是如何确定a/d 转换完成。因为只有确定数据转换完成后,才进行传送。为此可采用以下三种方式: 1)定时传送方式:对于一种a时子程序。a/d转换启动后,就调动这个子程序,延迟时间一到,转换肯定已经完成了。接着,就可以进行数据传送,对于a/d转换来说,转换时间作为一项技术指标是已知的和固定的。例如adc0809转换时间为128us,相当于6mhz的at89c51单片机共60 个机器周期。2)查询方式a/d 转换芯片表明有转换完成的状态信号,例如adc0809 的e端,因此可以通过查询方式用软件测试eoc的状态,即可知道转换是否完成,若完成,则进行数据传送。3)中断方式中断方式adc0809与89c51的中断方式接口电路只需将0809的eoc端经过一非门连接到89c51的intl 端即可。采用中断方式可大大节省cpu的时间,当转换结束时,eoc发出一个脉冲向单片机提出中断请求,单片机响应中断请求,由外部中断1 的中断服务程序读ad 结果,并启动0809的下一次转换,外部中断1 采用边沿触发方式。延时130us,读取正确的a/d转换结果。 第五章 系统软件设计5.1 主程序软件设计主程序的流程图如图5.1所示。图5.1 主程序流程图主程序构成无限循环,主要完成单片机初始化,关中断,菜单显示内容初始化,按键扫描,电机运行,计时等功能。启动主程序,先关中断并且设置堆栈,接着初始化寄存器,初始化显示内容;然后执行按键查询,执行相应的操作。如果是设定键,则设定时间,开始计时;到时间后电机开始相应的工作,工作完成后停机。如果是电机控制键,则也执行相应的工作。如果都不是,返回显示。检测室内是否开灯,如果开灯,返回显示,如果无开灯,判断当前光照是否大于800lx,如果大于800lx,电机正转,窗帘打开。在窗帘打开的前提下,判断光照是否小于400lx,如果小于400lx,电机反转,窗帘闭合,如果大于400lx,电机停止,返回显示,重新进行判断。5.2 光控电机程序设计光控电机程序设计流程图如图5.2所示。图5.2光控电机程序设计流程图光控电机程序的设计是本设计的关键部分,根据光照强度的变化,单片机控制电机的正反转,实现窗帘的开闭。当执行到该子程序入口时,首先进行初始化,判断当前光强是否大于800lx,若果条件不成立,返回重新初始化,如果符合条件,电机正转,窗帘打开。如果传送器触到安装在轨道上的形成开关,电机停止转动,如果没触到,电机继续正转,直到触到形成开关电机才停止。在窗帘打开的前提下,光电传感器检测到当前的光强小于400lx时,电机反转,窗帘闭合。如果传送器触到安装在轨道上的形成开关,电机停止转动,如果没触到,电机继续反转,直到触到形成开关电机才停止。5.3 lcd1602显示程序设计当lcd1602的寄存器选择信号rs为1时,选择数据寄存器;当lcd1602的读写选择线rw为0时,进行写操作;当lcd1602的使能信号en置高电平后再过两个时钟周期至低电平,产生一个下降沿信号,往lcd写入显示数据,lcd执行命令,判断执行是否完毕,如果没有执行完毕,返回到选择指令寄存器。如果执行命令完毕,显示数据,子程序返回。写数据到lcd子程序流程图如图5.3所示。图5.3 写数据到lcd子程序流程图5.4 ds1302程序设计ds1302是spi总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。要想与ds1302通信,首先了解ds1302的控制字。ds1302的控制字如图5.4.1所示。图5.4.1ds1302的控制字控制字总是从低位开始输出,在控制字指令输入后的下一个sclk时钟的上升沿时,数据被写入ds1302。同样,在紧跟8位的控制字指令后的下一个sclk脉冲的下降沿,读出ds1302的数据,读出的数据也是从最低位到最高位。数据读写时序如图5.4.2、5.4.3所示。图5.4.2 单字节读图5.4.3 单字节写在进行任何数据传输时,rst必须被置高电平,每个sclk为上升沿时数据被输入,下降沿时数据被输出。先把rst置低,禁止数据传输,sclk置低,清零时钟总线,rst再置高,允许数据传输。传送完成后,rst置低,禁止字节的传送。子程序流程图如图5.4.4所示。图5.4.4 ds1302程序流程图首先进行初始化,当sclk产生一个上升沿时,写ds1302地址,向该地址写入数据,然后判断数据是否写完,如果数据没写完,返回等待sclk产生下一个上升沿。如果数据写完,等待sclk产生一个下降沿,当产生下降沿时,将数据读出,判断数据是否读完,如果数据没读完,返回等待sclk产生下一个下降沿。 如果数据读完,数据处理,程序返回。5.5 键盘程序设计按键的触点在闭合和断开时均会产生抖动,这时触点的逻辑电平是不稳定的,如不妥善处理,将会引起按键命令的错误执行或者重复执行。现在用软件延时的方法来避开抖动阶段。在判断是否有键闭合后都延时5ms,按下键后再延时10ms就可以避免键盘的抖动。然后键码分析,执行相应的模块,显示后返回。图5.5 键盘程序流程图5.6光照采集程序设计光电传感器采用的是光电池,其输出的是线性电压,线性度良好。光照采集程序设计流程图如图5.6所示。图5.6 光照采集程序设计流程图5.7 ds18b20程序设计ds18b20程序流程图如图5.7所示。图5.7 ds18b20程序流程图首先进行初始化,写ds18b20地址,向该地址写入数据,然后判断数据是否写完,如果数据没写完,返回重新初始化。如果数据写完,将数据读出,判断数据是否读完,如果数据没读完,返回重新初始化返回重新初始化。 如果数据读完,单片机对数据进行处理,显示数据,程序返回 总结与展望经过两个月的资料查找和设计,我已完成了毕业设计的任务。本文设计了电动窗帘控制器的智能项目,系统的介绍了电动窗帘控制器的硬件电路设计到软件设计的以系列步骤。本设计采用步进电机作为执行元件,以光敏电阻作为传感元件的传感器作为检测元件,89c51单片机作为控制芯片,辅助键盘和显示,实现了电动窗帘控制器的多项智能项目。纵观整个设计系统,单片机使用了

温馨提示

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

评论

0/150

提交评论