智能插座(单片机或STM32)设计_第1页
智能插座(单片机或STM32)设计_第2页
智能插座(单片机或STM32)设计_第3页
智能插座(单片机或STM32)设计_第4页
智能插座(单片机或STM32)设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

III绪论智能插座研究的背景及意义 之前每家每户的日常日常生活都少不了煤跟油,照明灯具必须油灯,煮饭用煤,给那时候的生活环境导致了很严重的环境污染。在如今新能源时代,伴随着电磁能被取代的发展趋势,绝大多数然料和煤碳也被电力工程取代了。推动国家生态文明建设措施,大力支持新能源企业,加速新能源开发技术产品研发,勤奋推动环境友好型社会经济发展。伴随着电力工程取代的发展趋势、全方位、普及化,中国乃至全球即将迎来一个新的电力工程交易风潮。伴随着物联网成熟的和普及化,从最开始的试验室基础理论发展至今,智能家居系统、新型智慧城市等新词汇发生在大家的社会发展日常生活,许许多多的较高能智能家电也进入我们的家庭。这种机器设备给我们的生活带来了很大的便捷,不但增添了日常生活高效率,也会带来我们的生活品质。但从古至今,就是否有买卖也就不会杀,有交易就浪费大道理。在物联网的趋势下,始终保持相互依存,机器设备真的不能置身事外。真正意义上的难题不是这些电子产品一直处在待机状态,反而是处在休眠时也能接受指令动态的情况。在这过程中会损耗很多热量,其实就是电磁能损失,这比它在连接网络状况下必须耗费的用电量大得多。现阶段接入互联网的电子产品大约是600亿台,时时刻刻浪费用电量极大,这确实是一个务必认真完成问题。与此同时,在智能化水平偏低的落后地区,因为大家的房子走线广泛衰老,日常日常生活广泛使用大功率用电器,造成负载下插座超重运作标准极端,大、小安全用电安全事故高发。本设计方案选用STC89C51单片机设计做为主控制器,在常规插座上增强了好多个控制模块,也可以根据我们自己的规定接入和断掉插座。智能化插头指通过设计方案单片机设计的外围电路和控制模块,操纵继电器触点的导通,能够实现下列作用。对处在待机状态的耗电量机器的电流量开展取样,与阀值进行对比,假如低于阀值,则全自动关闭电源,使耗电量机器设备进到无电力工程情况,完成零休眠;针对带控制器的电器设备,智能化插头的红外感应控制模块能够接受来源于电气设备控制器的频率信号,完成配电设备的全自动插电;组装过流保护器。假如负荷因机械故障而发烫,插座就会自动断电。假如机器设备恢复过来,插座将恢复过来供电系统。显示灯标示智能化插头是否已经插电。因而根据智能化插头的这种思维设计方案,从三个方面论述其含意。对个人而言,这样可以大大的节省大家日常的用电量,改进我们的生活,使我们的生活比较方便舒服,最主要的是避免安全用电事件的发生,确保生命安全,增加电子产品的使用寿命。对企业而言,负荷侧智能化系统能够减少负荷起伏对供电系统冲击,充分保证供电系统运作的稳定,对推动国家电力网泛在电力物联网项目起着至关重要的作用。对国家而言,能够节能减排,推动经济和生态长期的可持续发展观。智能插座研究的现状及发展趋势现阶段,在“智能插头”商品行业,大部分都是小又杂的知名品牌,智能插头著名大品牌并不多。店家以在一般插座上提升一系列额外功能,利用智能化基础理论开展蹭热点,立即被称作“智能插头”。一些企业对技术标准了解较浅,商品技术实力低,急切完成利益最大化,造成商品质量问题高发,插座销售市场错乱,造成顾客不安全感,危害整个行业智能插头等方面的持续发展。总体来说,大部分插座能够实现的功能比较单一和单边,无法满足大家将来生活中的需要。以单片机设计为中心的智能插头的诞生,给智能插头领域带来了一个新的转折。基于单片机的智能插头能通过程序流程使插座依照客户的想法工作中,在推进全自动插电关闭电源的前提下设定其功能。为人们的日常生活增添了非常大的便捷,非常符合这个社会节能减排活动的主题。目前市面上主要有两种智能插头,一种是功能组合型智能插头,另一种是操纵电源总开关的智能插头。在其中,控制电源导通的智能插头销售量远远超过组成插座。市场上的小米米家智能插头、小牛GN-Y201J智能插头、华为公司全透明玄SHEP-OSa0-CT智能插头等几种热销的智能插头。这种插座、小编家里的智能插头,可以用与WiFi控制模块相对应的手机软件APP,在局域网络内靠手机控制电器的电源总开关,生活便捷,也能够降低用电量风险。小牛GN-Y201J智能插头利用WiFi开展远程操作,与此同时增强了用电量统计分析和储存功能。根据峰谷和基本智能,能随时把握电费状况,记忆力客户日常见电习惯性,完成自动运行工作任务循环系统等功能。华为公司智能选了SHEP-OSa0-CT智能插头,将华为的HiLink技术性引进插座。这是一种类似WiFi的数据信号传输技术,完成了机器的远程操作。设定计时器,循环系统倒数计时,控制开关电器产品,使生活比较方便,防止长期耗电量,绿色环保。现阶段,智能全自动插座分为两种控制方式。第一个是脚踏式智能插头,只能依靠转动仪表盘来设置时间的记时。二是基于单片机的智能插头。利用各种各样可编智能处理芯片和外围电路功能控制模块,由单片机控制电磁阀,根据继电器触点的关闭操纵插座的导通,降低机器的休眠耗损。因其高性价比、高灵敏度、功能损耗低、生命期长,单片机设计广泛用于智能插头。将来单片机设计的探索将向着超微型化、超低功耗、超高集成度跟高抗干扰性方向发展。因而,未来智能插头的种类将在微型化、功耗低等个性化功能层面有所改善。本文研究的主要内容及思路本设计方案根据STC89C51单片机控制电磁阀,做到操纵插座开关目地。电流量采样电源电路对待机状态下电器设备的电流量开展采样,将采样值发给单片机设计与阈值进行对比,低于阈值时关闭电源。还可以通过红外线接受电源电路接收设备控制器的红外线数据信号,在二次插电的前提下远程控制插座。在相关作用中加了过压保护控制模块。负荷电力工程超过阈值时,插座自动退出,电力工程恢复过来时,插座恢复过来供电系统。最终,LED指示灯标示开关电源插座开/关。假如指示灯闪烁,也表示插座处在导通状态。灯熄灭后,插座正在进入关掉情况。硬件部分设计总体工作原理本设计方案主要是由红外遥控系统及采样系统构成。外场电路以STC89C51单片机为基础控制板,选用C语言自然环境编程实现各电路控制作用。在红外遥控电路控制模块中,单片机根据VS1838B红外接收器接受遥控器数据信号,单片机依据接收的遥控器码查看单片机储存器,控制继电器此外,选用DL-CT08CL2电流电压互感器所组成的电流取样电路,根据电流电压互感器将收集过的大电流转换成小电流,送单片机进行对比。低于初始值时,控制继电器关闭电源。下面,在电源插座端口号上组装过载保护器。电器设备处在异常工作状态,发烧时,过载保护器关闭电源。最终,LED灯表明现阶段的姿势情况,电源插座打开后照亮,关掉时灭掉。系统结构图如下图2-1所显示:图2-1系统工作框图单片机最小系统单片机是单片机的简称,是组成微型机的构件,如CPU、RAM、ROM、EPROM、并行处理和串行通信I/O通信接口、定时器/卡集成化在一个集成电路芯片上,形成一个微型机系统软件。主控制器的挑选使用了STC89C51单片机。具备40根轴销,交换性强,加工工艺制作精良,运作靠谱。模块化8k运行内存足够达到大家正常要求,该单片机功能损耗小,可以接受,不容易断电或遗失数据信息,性能十分平稳。STC89C51单片机还有很多别的特性。比如,读写速度快,不用额外储存器拓展,根据定时器或电子计数器精准操纵外界电源电路,配备五个中断源、晶振电路等很多基本功能。STC89C51单片机的最小系统如下图2-2所显示。图2-2STC89C51单片机最小系统图稳压电源模块单片机必须要在直流电电压下工作,而外场电磁阀是一种特殊能耗元器件,假如电压不足,单片机电磁阀就不能正常工作,所以在电源插座上集成化稳压电源电路控制模块。稳压电路由阻值和二极管组成,其首端与变电器联接。在变电器原初级线圈中,电压与电流比例相当于匝数比,能将一定程度的电压和电流转换成小一点电压或电流。滤波装置后,噪音被滤出,随后电子整流器工作,交流电流设为直流电源。只有通过该处理过的电压,单片机才可以靠谱正常的工作。大家定制的稳压电路选用LM7805和LM78122个三端稳压器,他们一同工作导出12V和5V2个电压值,可调稳压电源电路原理图如下图2-4所显示。LM7805三端稳压器与晶体三极管类似,引脚图如下图2-3所显示。从左往右分别为键入端、接地端、输出端。其内部结构集成电路芯片能防止过电流和超温,与其它电子元件组成使用中的稳定性和可靠性出色。图2-3LM7805引脚图图2-4稳压电源的原理图继电器模块继电器是电源电路中常用的电子元器件。按照其组成原理,电磁感应继电器、磁感应继电器、整流器继电器和数据继电器。继电器简单的说,其实就是电源开关,是通电的动作电源开关。在要用少量电断开髙压或高电压旁通的情形下比较常见。继电器的意思解释不但维护机器设备的安全性,还维护自身安全的保护设备。a型电磁感应继电器在电力运用里被高频率地选择。其内部构造比较简单,主要是由电磁线圈和同步电机构成。电磁感应继电器的框架图如下图2-5所显示。其内部结构工作中原理不复杂,其实就是电流的磁效应原理在工程实践中的运用。对电磁线圈插电后,根据电流的磁效应在电磁线圈附近磁场中造成磁场力,磁场力应用于同步电机,对同步电机增加更改原先状态的力。由于通过这些力可以更改物体运动状态。电磁场所产生的抗拉力作用于接触点上,根据扭簧的弹簧力将线圈拉返回原处,自锁电路和常闭点恢复正常原先的断掉或合闭状态,能通过控制回路用环电流量操纵弱电安装。本设计方案选用市面上一般HF46F/5-HS1电磁感应继电器,其工作中原理已详解。继电器的导通并不是由单片机完全控制,反而是间接控制。起正中间桥功效的元器件被称作晶体管。运用晶体管的开和关,单片机能够间接控制继电器,控制电源。在这里必须介绍一下在电子电路中广泛应用的半导体材料元器件——晶体管。其中还有饱和状态地区、扩张地区、截至地区。PN结有发射极结和集电结结二种。继电器控制回路中,晶体管的发射极联接有电源正极,集电结联接有继电器的一端,基极联接有单片机的P2.7端口号。单片机P2.7端口号导出为低电平时,晶体管处在截至状态,继电器接触点断掉不姿势;单片机P2.7端口号导出为小功率时,晶体管平常处在通断状态,这时继电器通电工作中。继电器工作原理图如下图2-6所显示。图2-5电磁继电器结构图图2-6继电器工作原理图系统软件设计软件总体设计思路我国220V交流电为工频50Hz,因此每个用电器的电压都为220V正弦波,不能用于区分用电器类别。而电器电流则是一个不规则波,可用于区别用电器种类[7]。本产品通过AD转换,将硬件放大器送入的电流信号转换为数字量,采80个点进行存储和FFT(快速离散傅里叶变换)运算,之后的波形是无数多个不同频率正弦波的叠加,而离散傅里叶变换之后的值是不同频率正弦波所对应的不同的值。选取频率为50Hz的正弦波对应的FFT之后的数值作为判断依据进行存储,该数值由实部(Re)和虚部(Im)组成。在刚开始的学习过程中,先给排插上的每个插座编号,然后将用电器单独分开学习,分别记录每个用电器5个不同周期内的Re和Im值,并取平均值存储到两个不同的数组中。在当前用电器学习完成后,把之前记录过的每个用电器的Re值和Im值进行组合,并把所有可能的组成情况打表放到一个数组里。检测时,把当前的Re值和表中的数据做差值,找出绝对值最小的一个。Im值同样如此。当两个差值匹配到表中同一种组成情况时,则可作出判定。针对有些电器功率缓慢上升的情况,在学习和检测时加入稳定性判断,有一个等待过程。只有当用电器的Re值和Im值在5个周期内相差小于0.1时,才会判断为稳定且进行记录。采用这种算法及判断方法计算量大,单片机判定加上延时等待时间长,但利用了用电器的电参量特性,可以精准识别多个用电器的组合,准确度高。主要用到的傅里叶变换公式为:(1)(2)(1)(2)NWnk=e−jknN式中:x(n)为采样得到的电流值;X(k)为最后得到的结果,包含Re值和Im值系统软件设计流程完成单片机设计相对应的功能程序都在C语言条件下编写的。因为用c语言编写的单片机设计程序非常容易移殖以及未来补充。随后用手机软件keil编写了程序,使各模块协同工作,完成了tcp协议的智能化系统。的软件开发一部分包含红外发射程序、继电器操纵程序、电流采样程序三部分。在其中,继电器程序仅有放前2个程序执行了正确命令之后才能运作,在继电器进行正确动作以前,各模块的动作情况不容易互相影响。全面的主程序步骤如下图3-1所显示。图3-1系统的主程序流程图继电器控制程序 继电器并不是直接和单片机联接,而是用的中间晶体管与单片机的I/O接口联接。继电器接触点的粘附与晶体管的导通息息相关。从单片机端口号输出上拉电阻1,晶体管接受电平信号接入,继电器自锁电路合闭。这时,插座上面有非常大的电流量流动性。单片机I/O端口号输出为低电平,晶体管反方向关闭,继电器接触点和pop-off插座不带电。继电器主要有两种姿势情况。第一个是红外线控制器接受到运行数据信号后,读取单片机,随后其P2.7端口号输出高一,继电器关掉插座打开设备。反过来,接受到开关电源断掉数据信号时,单片机的引脚输出为低电平0,继电器关掉插座,关掉机器设备。次之,可设置时间与电流量阀值,设备关掉时里边的电流量会缩小。时长做到设置的时长值,而且电流量霍尔传感器取样的电流低于阀值时,单片机输出相对应的数据信号,根据引脚输出低电平0,关掉继电器,关闭电源,完成零休眠。继电器管理程序见附则2。红外接收程序由于内置在MCU里的T0计数器由看门狗1门控制。假如GATE设为1,则计数器t遭受终断0控制影响。终断情况从0变成1时,即情况产生变化,计数器逐渐记数。依据该协议书原理,运用SPWM调制技术能够实现多单脉冲的精确测量。依据nec协议书原理,根据参照相关信息,将遥控器到电源插座遥控模块遥控代码计为一次传输信号,测算后不断107.5ms。在遥控器上按一次键,一共6个同样的代码要被发送至红外线学习模块。己经制定了30个运行代码。连续遥控器状况下持续接收到这个数据信号的情形下,遥控器和插排的配对取得成功,微处理器实行了解代码系数的作用,控制系统实行适度的姿势。单片机设计接收过的运行代码没有达到设定值时,自动选择到操纵作用,在储存器中检索代码值,当接收过的遥控代码与数据信息代码一致时,还可以运行命令控制开关的导通若该全过程不一致,则分辨未接收到命令,电源插座无响应,继电器触点回转台没变化。红外感应管理程序见附则2,操作程序如下图3-2所显示。图3-2红外接收程序流程图采样电路程序对所采用的电压互感器变换电路的感应电动势开展采样,将采样的电流值储存在measI1中,由单片机载入。采样电路的建立流程非常简单,关键应用if语句。单片机将采样值与存储器中内置的阈值进行对比。当采样值低于阈值时,单片机P2.7端口号输出低电频,继电器跳闸关闭电源;反过来,当采样电流值超过阈值时,单片机接线端子输出为上拉电阻,开关电源维持充电状态。采样的程序流程表如下图3-3所显示。采样电路的流程请见附录2。图3-3采样程序流程图仿真与调试仿真设计系统软件原理图选用AltiumDesigner软件编写,程序流程选用C语言编写,用keil编译程序,最终用protues模拟仿真。因为以前对这种软件不太掌握,因此新手入门很困难,但一切都获得了收益。我通过网络与教材的流程学习培训,最后展开了这个模式的仿真模拟。这节关键详细介绍protues软件的主要APP运用。他在单片机设计发展过程中起到重要作用。不但可以开展电路图设计和电路模拟,也可以进行PCB走线。在PCB生产制造前能够快速认证电源的可行性分析,不但节省了成本费,同时大大缩短了51单片机的开发进度。大家使用protues的ISIS设计了电路原理图,并仿真模拟了电源电路。依据原理图,我们应该的Proteus元器件如表4-1所示,系统软件原理图如附录1所示。表4-1Proteus元件元件符号(Proteus)参数普通电容CAP30pF电解电容CAP-ELEC10uF晶体CRYSTAL12MHz电阻RES10K、300单片机STC89C51-按键BUTTON-LEDLED-RED导通电压2.2V,10mA用Proteus软件进行原理图的设计和模拟仿真流程如下所示。双击鼠标以开启Proteus并建立最新项目。启动界面如图4-1所示。挑选菜单栏文档,点击子菜单储存设计,将新项目重新命名为Ctrl.dsn,并建立新文件夹Ctrl以储存之前的dsn文件。在组件资料库中寻找设计仿真模拟所需的组件。转换到组件网页页面后,开启“PickDevices”提示框,应用关键词搜索对应的组件,再通过标志组件元器件将所需的组件导入到主界面中。如图4-2所示。组件合理布局设计。根据单片机设计、红外信号电源电路、采样电路、继电器控制电源电路,一般按从左往右、由小到大排列顺序电子器件。图4-1Proteus新建空白界面图4-2元件列表库界面仿真调试依据基本原理制作了模拟电路图后,模拟图见附表三。随后,就可以开始载入十六进制格式文件程序。点击“逐渐”按键,手机软件将逐渐模拟全过程。单片机的pin端传出电平信号,导出上拉电阻,显示灯会变红;假如是低级别,深蓝色显示灯会标示。中止模拟,能从调节新项目栏内见到。这时,能够清晰地浏览MCU内部的存储器和储存一部分。终止模拟。如果你希望从头开始模拟,千万不要再次建立十六进制文档。随时可以逐渐模拟。有关的模拟程序流程如下图4-3所示。红外感应受日光灯管被IN4148的针角替代。接收到相对应信号频率数据信号后,插进灯闪烁一次,单片机导出鲜红色上拉电阻,继电器触点合闭。模拟红外感应接收电路,接收过的推送数据信号是38KHz的调制信号。红外线接收电路的模拟结论图如下图4-4所示。图中黄色一部分表明红外线发光二极管的电流量。模拟仿真结论分析表明,控制器控制模块能正常应用。针对采样电路,将采样电流与阀值进行对比后,放进单片机。采样时长做到设置时间后,单片机导出深蓝色低电频,电磁阀断掉接触点断掉。最开始应用单电源,结果发现采样值不超出预期。之后,模拟获得了改善,用了双电源开关。原反向放大仪在原有电路结构基础上增强了线性电阻,是常见的差分放大器,失衡电流危害大幅度降低。模拟结论如下图4-5所示。电流表能够表明正确值,采样电路工作中。PCB图见附录二。图4-3关联仿真程序界面图图4-4红外接收电路仿真结果图图4-5采样电路仿真结果图总结与展望总结伴随着半导体产业成熟的和电力电子学的迅猛发展越来越多电子设备发生在我们生活中这使得我们的日常生活效率和质量不断提升。单片机因为体型小、功能强,广泛用于家用电器中,其作用显而易见。本毕业论文设计智能电源插头不但可以断开远程控制红外线遥控器的开关电源,也可以在机器设备长期等待时全自动关闭电源,完成零休眠功能,不但大大的节省了我们水电费,并且为世界环保节能绿色环保的申明做出贡献。插座可智能的通常是运用单片机以及外围电路,编写程序完成对应的功能。红外感应信号接收器接收信号,取样控制模块对交流电路开展取样。载入后单片机传出命令,继电器开关插座。过流保护器是机械零部件,未向单片机相接。立即应用于插座,完成插座的过压保护。最终,电磁阀联接LED二极管,表明插座的开关状态。在以往一般插座的前提下,增强了一系列人性化功能,既完成了插座的智能化系统,又保持着传统简约,合适经济实力一般的家庭用的。插座的关键所在部分为电源电路和电源的设计,那也是此次设计的难题。硬件电路图由AltiumDesigner获得,软件一部分通过对比流程图,最先电脑上运作微软公司的VisualStudio软件,随后用c语言编写程序。随后用keil软件编译程序。最终,引进编译程序好程序,在protues软件中进行电路设计和调节,完成了智能化电源插头在设计之时规定控制功能。展望该设计方案很好地完成了所提出的全部作用,却也暴露出自学能力的缺陷。之前只高度重视书籍的集中学习,非常少实践活动试验。最重要的是,连基本的工程软件都无法使用。结论,我花了大量时间学习培训应用AltiumDesigner、MicrosoftVisualStudio、keil和protues,进而耽搁了文章的编写。与此同时,此次定制的插座也有一些不够。最先,这一插座能够远程控制,但由于红外感应限制,数据信号只有平行线传送。换句话说,一个家庭的一切屋子也不能电源开关插座。次之,这一插座确实可以工作中,那如果姿势过快,会让电磁阀造成伤害。加上定时器模块后,该模块能够统计大家每日的用电量习惯性,让电磁阀根据定时器工作中。最终,此插座仅仅根据灯表明插座开/关,会严重影响眼睛视力不太好的人精确明确插座是不是工作中。假如能在电路板上加上蜂鸣器回应模块,就可以用蜂鸣器的报警系统分辨插座的开关状态。之上考虑到不够,没太多繁杂的念头,插座会很智能化好用。谢辞大学四年的学生生涯即将结束,我也将撇去四年前的稚嫩走出这座象牙塔。尽管这个这是一个特殊的时期,但事实就是我毕业了,我依然对这个社会,对这个国家满怀憧憬。回顾这四年,有过颓废抱怨的时刻,也有过埋头苦读的光景;有过幸福狂欢的日子,也有过低落孤独的时候。有一群热心的老师,有一群可爱的同学;大学四年的情感,不可能简单地用几句话就能够表达清楚,我来过,我珍惜。我将带着我所学的知识,一颗不断进取的心,在我擅长的领域为推动社会的发展、国家的繁荣贡献出一份自己的力量。本次毕业设计完成的时间跨度很大,其中不仅使用了书本上所学的知识,还做了大量的调查,后期还学习了相关重要软件的运用,真的收获很多。若没有导师和同学的帮助,就凭我一人有限的知识储备是很难完成的这次毕业设计的。非常感谢我的论文导师,给了我足够的耐心与时间,在我遇到困难时不厌其烦地指导我,及时提供了很大地帮助,让我顺利完成了设计。在此谨向我的导师表达衷心的感谢和崇高的敬意!参考文献[1]何清华.用户侧智慧能源管理系统的研究与应用[D].湖南大学,2021.[2]汪泽家.基于物联网技术的设备管理系统的设计与实现[D].电子科技大学,2020.[3]郏琨琪.智能用电网络的数据驱动架构及其关键技术研究[D].上海交通大学,2020.[4]曹腾达.基于Web的设备远程在线监控系统设计[D].南京理工大学,2020.[5]纪言.智能化实验设备管理系统研制[D].南京邮电大学,2019.[6]徐依凌.面向物联网智能插座的网络安全分析与防御技术研究[D].东南大学,2019.[7]蔡丹丹.面向远程监控与电气安全的智能插座关键技术[D].华南理工大学,2019.[8]张震.基于无中心网络智能建筑监控平台开发[D].山东建筑大学,2018.[9]罗京.基于智能电价的家庭能量管理技术及实验系统[D].东南大学,2018.[10]韩江平.基于WiFi的智能插座的研制[D].云南大学,2018.[11]徐安安.基于无线智能家居控制系统的设计与实现[D].安徽大学,2018.[12]陈涛.基于智能插座系统的人员用电评价及移动端应用设计[D].安徽建筑大学,2018.[13]余子文.面向智能电网需求响应管理的实验平台开发与最优负荷调度[D].浙江大学,2018.[14]马炎军.具备用电在线管理功能的智能插座系统[D].南京邮电大学,2017.[15]胡锋.基于WiFi的智能插座的设计和实现[D].宁波大学,2017.[16]张广金.一种面向用电设备管理的智能插座系统设计与实现[D].安徽建筑大学,2017.[17]李广田.基于STM32的家电智能监控系统的设计与研究[D].西安建筑科技大学,2017.[18]郭萍.基于无线局域网的智能插座设计与实现[D].广东工业大学,2017.[19]商喆.智能家居的远程控制空气净化系统[D].大连理工大学,2017.[20]吕骁.基于iOS平台的智能用电助理系统研究[D].华北电力大学(北京),2017.附录一系统原理图附录二PCB图附录三仿真图附录四源程序继电器控制程序#include<reg52.h>#include<intrins.h>#defineuintunsignedintsbita=P1^4;//a继电器控制端sbitb=P2^3;//b继电器控制端sbitc=P2^5;//c继电器控制端sbitd=P2^7;//d继电器控制端uintt;voidInit_t0(void)//定时器初始化{TMOD=0x01; //定时器0工作于方式1,16位定时器TH0=0x4C;TL0=0x00; //定时时间50msET0=1; //允许定时器0中断TR0=1; //定时器0启动}voidtime0_server_(void)interrupt1//定时器0中断函数{TH0=0x4C;TL0=0x00; //定时时间50mst++; //t每50ms加1}voidmain() //主函数{Init_t0();a=0; //初始化,所有继电器释放b=0;//c=0;//d=0;//t=0; //计时器从0开始计时EA=1; //开启总中断while(1)//循环{ switch(t) //以t为参数的分支程序,t每50ms加1{case0: //如果t=0(最初2秒),继电器a吸合,其他释放a=1;b=c=d=0;break;case40: //如果t=40(第二个2秒),继电器b吸合,其他释放b=1;a=c=d=0;break;case80: //如果t=80(第三个2秒),继电器c吸合,其他释放c=1;a=b=d=0;break;case120: //如果t=120(第四个2秒),继电器d吸合,其他释放d=1;a=b=c=0; break;case160: //如果t=160(第四个2秒结束),t=0,重复最初2秒情况t=0;break;default: //如果t与上述数字都不想等,啥也不做,免得干扰继电器状态break;}}}红外接收程序voidhongwai_dis(){//unsignedchartab[3];if(irok)//如果接收好了进行红外处理{Ircordpro();irok=0;if(irpro_ok)//如果处理好后进行工作处理,如按对应的按键后显示对应的数字等{beep=0;//delay_1ms(50);beep=1;switch(IRcord[2]){case0x40:key_can=1;break;//得到按键值case0x44:key_can=2;break;//得到按键值case0x15:key_can=3;break;//得到按键值case0x07:key_can=4;break;//得到按键值case0x43:key_can=5;menu_1=0;write_guanbiao(1,2,0);//关闭光标init_1602_dis_csf();//初始化液晶显示break;//得到按键值}//tab[0]=IRcord[2]/100+'0';//tab[1]=IRcord[2]/10%10+'0';//tab[2]=IRcord[2]%10+'0';//write_string(2,12,tab);irpro_ok=0;//处理完成标志}}voidint0()interrupt0{staticunsignedchari;//接收红外信号处理staticbitstartflag;//是否开始处理标志位if(startflag){if(irtime<63&&irtime>=33)//引导码TC9012的头码,9ms+4.5msi=0;irdata[i]=irtime;//存储每个电平的持续时间,用于以后判断是0还是1irtime=0;i++;if(i==33){irok=1;i=0;}}else{irtime=0;startflag=1;}}voidIrcordpro(void)//红外码值处理函数{unsignedchari,j,k;unsignedcharcord,value;k=1;for(i=0;i<4;i++)//处理4个字节{for(j=1;j<=8;j++)//处理1个字节8位{cord=irdata[k];if(cord>7)//大于某值为1,这个和晶振有绝对关系,这里使用12M计算,此值可以有一定误差value|=0x80;if(j<8){value>>=1;}k++;}IRcord[i]=value;//四个字节每个字节依次放在数组里value=0;}irpro_ok=1;//处理完毕标志位置1 电流采样程序#include<avr/io.h>#include<avr/delay.h>#include<avr/signal.h>#include<avr/interrupt.h>/*宏INTERRUPT的用法与SIGNAL类似,区别在于SIGNAL执行时全局中断触发位被清除、其他中断被禁止INTERRUPT执行时全局中断触发位被置位、其他中断可嵌套执另外avr-libc提供两个API函数用于置位和清零全局中断触发位,它们是经常用到的。分别是:voidsei(void)和voidcli(void)由interrupt.h定义*///管脚定义#definein_Single0//PA0(ADC0)#definein_Diff_P3//PA3(ADC3)#definein_Diff_N2//PA2(ADC2)//常量定义//单端通道,不放大#defineAD_SE_ADC00x00//ADC0#defineAD_SE_ADC10x01//ADC1#defineAD_SE_ADC20x02//ADC2#defineAD_SE_ADC30x03//ADC3#defineAD_SE_ADC40x04//ADC4#defineAD_SE_ADC50x05//ADC5#defineAD_SE_ADC60x06//ADC6#defineAD_SE_ADC70x07//ADC7//差分通道ADC0作负端,10/200倍放大#defineAD_Diff0_0_10x0x08//ADC0+ADC0-,10倍放大,校准用#defineAD_Diff1_0_10x0x09//ADC1+ADC0-,10倍放大#defineAD_Diff0_0_200x0x0A//ADC0+ADC0-,200倍放大,校准用#defineAD_Diff1_0_200x0x0B//ADC1+ADC0-,200倍放大//差分通道ADC2作负端,10/200倍放大#defineAD_Diff2_2_10x0x0C//ADC2+ADC2-,10倍放大,校准用#defineAD_Diff3_2_10x0x0D//ADC3+ADC2-,10倍放大#defineAD_Diff2_2_200x0x0E//ADC2+ADC2-,200倍放大,校准用#defineAD_Diff3_2_200x0x0F//ADC3+ADC2-,200倍放大//差分通道ADC1作负端,不放大#defineAD_Diff0_1_1x0x10//ADC0+ADC1-#defineAD_Diff1_1_1x0x11//ADC1+ADC1-,校准用#defineAD_Diff2_1_1x0x12//ADC2+ADC1-#defineAD_Diff3_1_1x0x13//ADC3+ADC1-#defineAD_Diff4_1_1x0x14//ADC4+ADC1-#defineAD_Diff5_1_1x0x15//ADC5+ADC1-#defineAD_Diff6_1_1x0x16//ADC6+ADC1-#defineAD_Diff7_1_1x0x17//ADC7+ADC1-//差分通道ADC2作负端,不放大#defineAD_Diff0_2_1x0x18//ADC0+ADC2-#defineAD_Diff1_2_1x0x19//ADC1+ADC2-#defineAD_Diff2_2_1x0x1A//ADC2+ADC2-,校准用#defineAD_Diff3_2_1x0x1B//ADC3+ADC2-#defineAD_Diff4_2_1x0x1C//ADC4+ADC2-#defineAD_Diff5_2_1x0x1D//ADC5+ADC2-//单端通道,不放大#defineAD_SE_VBG0x1E//VBG内部能隙1.22V电压基准,校准用#defineAD_SE_GND0x1F//接地校准用//注://差分通道,如果使用1x或10x增益,可得到8位分辨率。如果使用200x增益,可得到7位分辨率。//在PDIP封装下的差分输入通道器件未经测试。只保证器件在TQFP与MLF封装下正常工作。#defineVref2556//mV实测的Vref引脚电压@5.0V供电//#defineVref2550//mV实测的Vref引脚电压@3.3V供电//全局变量unsignedintADC_SingleEnded;//单端输入的ADC值intADC_Diff;//差分输入的ADC值volatileunsignedintADC_INT_SE;//中断模式用的单端输入ADC值,会在中断服务程序中被修改,//须加volatile限定volatileunsignedcharADC_OK;//ADC状态,会在中断服务程序中被修改,须加volatile限定unsignedintLED_Volt;//变换后的电压mVintLED_Curr;//变换后的电流100uA//仿真时在watch窗口,监控这些全局变量。unsignedintread_adc(unsignedcharadc_input)//查询方式读取ADC单端通道{ADMUX=(0xc0|adc_input);//adc_input:单端通道0x00~0x07,0x1E,0x1F//0xc0:选择内部2.56V参考电压ADCSRA|=(1<<ADSC);//启动AD转换loop_until_bit_is_set(ADCSRA,ADIF);//方法1等待AD转换结束//while((ADCSRA&(1<<ADIF))==0);//写法2这种写法优化不好//loop_until_bit_is_clear(ADCSRA,ADSC);//方法2检测ADSC=0也行ADCSRA|=(1<<ADIF);//写1清除标志位returnADC;//ADC=ADCH:ADCL}intread_adc_diff(unsignedcharadc_input)//查询方式读取ADC差分通道{unsignedintADC_FIX;ADMUX=(0xc0|adc_input);//adc_input:差分通道0x08~0x1D_delay_ms(1);//等待差分增益稳定>125uS

温馨提示

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

评论

0/150

提交评论