下载

1下载券

加入VIP
  • 专属下载券
  • 上传内容扩展
  • 资料优先审核
  • 免费资料无限下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 智能家居系统

智能家居系统.doc

智能家居系统

始于情不適合
2017-09-16 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《智能家居系统doc》,可适用于IT/计算机领域

智能家居系统智能家居控制系统摘要本设计以单片机ATMELS作为各模块的控制中心,电路分为按键控制模块红外遥控模块PC通信模块光电传感温度传感红外传感模块数码显示模块时钟温度模块报警模块其中按键模块采用×矩阵式红外遥控模块由TC编码芯片对脉宽调制的串行码进行编码PC通信采用RS串口通信协议用光敏电阻实现对光电信号的转换PIR红外热释电传感器对人体释放的、特定波长的红外光进行红外传感实时时钟芯片DS,可实现年月日时分秒时间信息的显示由DSB集成温度传感器对现场环境温度进行实时检测,并在超出设定的温度界限时进行报警。关键词:智能家居红外遥控传感器AbstractInthisdesign,thecontrollerkernelofallthemodulesisbasedonMCUATSThecircuitiscomposedofthefollowingmodules:keypresscontrolmodule,infraredremotecontrolmodule,PCcommunicatemodule,photoelectricsenseorgan,thermometricsenseorganandinfraredsensormodule,numericaldisplaymodule,clockandthermometrymodule,alarmmoduleAmongthis,keypressmodulemakeuseof×matrixstructureSerialcodeofpulse’swidthmodulateiscodedbytheTCcodingchipininfraredremotecontrolmoduleMCUcommunicatewithPCmoduleadoptRSserialportcommunicationprotocolPhotoelectricityconversionisrealizedbyphotosensitiveresistancePIRinfraredsensorwillsensitivetoinfraredrayofmanreleasing,specialwavelengthRealtimeclockchipDS,canrealizethedisplayofyear,month,day,hour,minuteandsecondDSBintergratedthermometricsensorcarrythroughtherealtimeexaminedtoenvironmentaltemperaturebesides,itgiveanalarmwhentemperatureisoutoftherangeKeywords:intellectivehouseinfraredtelecontrolsensor目录方案论证与选择主控制器的选择与论证按键控制的选择与论证显示器方案选择与论证显示电路方案选择与论证温度检测方案选择与论证时钟方案选择与论证光电传感器方案选择与论证单元硬件电路设计单片机最小系统组成矩阵按键控制模块数码管显示模块红外遥控系统模块单片机与PC通信模块时钟模块测温及温度传感器模块热释电红外传感模块光电传感器单片机最小系统软件设计系统测试分析按键控制测试红外遥控测试单片机与PC通信测试光电传感功能测试红外传感功能测试温度传感功能测试模拟串口数码管显示测试时钟温度功能测试结束语参考文献附录主要元器件清单附录系统完整程序方案论证与选择主控制器的选择与论证方案一:采用CPLD作为主控制器,由于CPLD具有强大的资源使用方便灵活易于进行功能扩展特别是结合了EDA可以达到很高的效率。此方案逻辑电路复杂,且灵活性不高,不利于各种功能的扩展。方案二:基于ATS单片机来实现系统的控制,控制外围电路进行时钟显示温度测量,闹铃,红外遥控热释电红外传感光电传感,键盘控制和数码管显示,此系统控制灵活,能很好地满足本题的基本要求和扩展要求。按键控制的选择与论证方案一:矩阵式键盘,列线的一端通过上拉电阻接正V电源另一端接单片机的输入口线。各行线的一端接单片机的输出口线另一端悬空。矩阵式键盘结构性好,使用于按键较多时的情况。矩阵式键盘结构如图所示。图矩阵式键盘结构方案二:独立式键盘,每个按键的电路是独立的都有单独一根数据线输出键的通断状态。单片机一条IO口线对应一个按键。独立式键盘结构简单,易于编程,适用本实验按键较少的情况。独立式键盘结构如图所示。图独立式键盘结构显示器方案选择方案一:采用液晶显示,液晶显示具有功耗低,轻便防振,显示信息丰富的特点。但显示亮度及显示速度方面不及数码管。方案二:采用数码管显示,数码管亮度高,体积小,重量轻,成本低,可完成本实验的数字显示要求。显示电路方案选择方案一:并口IO显示数码管的段控制信号通过锁存器连接到单片机的并联输出端口数码管的位控制信号分别由各自的COM端与单片机的并联口相接。此类方法虽很常见考虑到C单片机的接口有限故不采用。方案二:模拟串口IO显示各位数码管通过电阻分别与位串入并出移位寄存器LS连接将LS的A、B端与模拟串口P相接LS的CLK与模拟串口P相接。此方法只占用一对管脚大大节省了有限的单片机IO资源。温度检测方案选择方案一:采用热电偶或热敏电阻作为感温元件,但热电偶需冷却补偿,电路设计复杂,热敏电阻虽然精度较高,但需要标准稳定电阻匹配才能使用,而且重复性可靠性都比较差。方案二:采用集成温度传感器DSB,该传感器测温系统简单,测温精度高,连接方便,占用口线少等优点,数据传输采用wire传输方式,大大提高了系统的抗干扰性。测量温度范围为C~C。且DSB温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的ERAM,后者可存放高温度和低温度触发器TH、TL和结构寄存器。更重要地是应用DSB可方便地实现智能控制空调调节室温的变化范围。时钟方案选择与论证方案一:直接采用单片机实现时钟显示,利用单片机的定时器计数器,中断进行时钟计时,此方案硬件简单但不利于实现其它功能的扩展。方案二:采用内带字节的RAM的时钟芯片DS,该芯片可以进行时分秒日月年的计数,可编程中断,还具有报警功能和掉电保护功能,并且可以方便地进行程序控制这样占用较少的单片机资源计时而很准确。光电传感器方案选择与论证方案一:采用反射式,透射式或聚焦式光电传感器但反射式光电传感器因对不同物体表面反射能力不同灵敏度有所变化透射式和聚焦式光电传感器对安装的位置要求较高。方案二:以光敏电阻作为光敏器件利用它在无光照射时呈高阻状态当有光照射时其电阻值迅速减小的特性通过电压比较器简单巧妙地实现光线强度变化前后控制输出电平的变化非常适用于对家居内灯光亮度的监测。单元硬件电路设计单片机最小系统组成单片机系统是整个硬件系统的核心,它既协调整机工作,又是数据处理器,是软硬件系统连接的桥梁。它主要包括:按键控制模块红外遥控模块PC通信模块光电传感温度传感红外传感模块数码显示模块时钟温度模块报警模块。系统方框图如图。|按键输入红外遥控数码管显示PC通信ATS光电传感蜂鸣器报警器器红外传感时钟温度图系统结构方框图矩阵键盘控制模块采用×矩阵键盘按键设置在行列的交点上行、列线分别连接到按键开关的两端。行线通过上拉电阻接V电源无按键动作时行线处于高电平当有键按下时行线电平状态将由与此行线相连的列线电平决定。列线电平为低时则行线电平为低反之亦然六个发光二极管与单片机的P口相连。用列扫描法对按键进行识别如某一按键闭合则使对应发光二极管的单片机管脚输出低电平对应,号发光二极管被点亮。由此实现了按键控制发光二极管的亮灭。按键控制发光二极管电路图分别如图图所示。图矩阵按键控制电路图控制发光二极管电路数码管显示模块以LS作为锁存驱动芯片LED数码管作为显示器件通过S构建显示模块。LS是位串入并出移位寄存器。它的引脚AB为串行输入端QAQH为串行输出端CLK为串行时钟输入端CLR为串行输出清零端。将前一个LS的QH端连接到下一个LS的QAQB端再将第一个LS的QAQB并联接到单片机的模拟串口P端所有LS的CLK端连接到一起后与模拟串口P相接CLR并联接地。则送数据时将串行口设置在工作方式只要把数据往SBUF里放系统就自动将串行数据由模拟串口P端送出移位时钟由模拟串口P送出则前后数据就会依次从上一个锁存器传到下一个锁存器。LS的输出端QAQBQH无内置的限流电阻一般不能与LED数码管直接相连需加外接欧的限流电阻。具体电路如图所示。图数码管显示模块红外遥控系统模块()红外遥控系统工作原理通用红外遥控系统由发射和接收两大部分组成应用编解码专用集成电路芯片来进行控制操作如图所示。发射部分包括键盘矩阵、编码调制、LED红外发送器接收部分包括光、电转换放大器、解调、解码电路。图红外遥控系统方框图采用T编码芯片的遥控器遥控器发射的信号由一串和的二进制代码组成T的和采用PWM方法编码即脉冲宽度调制以遥控输出波形为例码由ms低电平和ms高电平组合而成脉冲宽度为ms。码由ms低电平和ms高电平组合而成脉冲宽度为ms。在编写解码程序时通过判断脉冲宽度即可得到或。当我们按下遥控器的按键时遥控器将发出一串二进制代码即一帧数据。它分为部分分别为引导码地址码地址码数据码数据反码。遥控器发射代码时均是低位在前高位在后。引导码高电平为ms低电平为ms当接收到此码时表示一帧数据的开始。单片机可以准备接受下面的数据。地址码由位二进制组成共种。地址码重发了一次主要是加强遥控器的可靠性。如果两次地址码不相同说明本帧数据有错予以丢弃。数据码为位可编码种状态代表实际的按键。数据反码是数据码的各位求反通过比较数据码与数据反码可判断接受到的数据是否正确。如果它们不满足相反的关系则本次遥控接受有误数据应丢弃。()红外遥控器接收电路单片机遥控器接收电路采用一体化红外接收芯片SM它将红外接受二极管放大解调整形等电路集成在一起。只有个引脚将凸槽面向前分别是电源地V电源信号输出。一体化接收芯片电路如图所示。红外接收头的信号输出接单片机的P脚。当手指按下不同的遥控键时一体化接受芯片把解码后的信号输入单片机控制不同的LED发光二极管的亮与灭。图一体化红外接收电路单片机与PC通信模块()RSC标准通信协议RSC标准是美国EIA(电子工业联合会)与BELL等公司一起开发的年公布的通信协议。它适合于数据传输速率在,bs范围内的通信。这个标准对串行通信接口的有关问题如信号线功能、电器特性都作了明确规定。由于通行设备厂商都生产与RSC制式兼容的通信设备因此它作为一种标准目前已在微机通信接口中广泛采用。RSC标准对两个方面作了规定即信号电平标准和控制信号线的定义。RS,C是用正负电压来表示逻辑状态RSC将V,V规定为“”V,V规定为“”。电缆长度:在通信速率低于kbs时RSC所直接连接的最大物理距离为m(英尺)。EIARSC与TTL转换:EIARSC是用正负电压来表示逻辑状态与TTL以高低电平表示逻辑状态的规定不同。因此为了能够同计算机接口或终端的TTL器件连接必须在EIARSC与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件也可用集成电路芯片。目前较为广泛地使用集成电路转换器件。()MAX芯片简介MAX是一种双组驱动器接收器片内含有一个电容性电压发生器以便在单V电源供电时提供EIATIAE电平。每个接收器将EIATIAE电平输入转换为VTTLCMOS电平。这些接收器具有V的典型门限值及V的典型迟滞而且可以接收V的输入。每个驱动器将TTLCMOS输入电平转换为EIATIAE电平。主要特点、单V电源工作。、LinBiCMOSTM工艺技术。、两个驱动器及两个接收器。、V输入电平。、低电源电流:典型值是mA。、符合甚至优于ANSI标准EIATIAE及ITU推荐标准V。、ESD保护大于MILSTD(方法)标准的V。()单片机与PC通信模块电路本电路设计中应用MAX芯片完成TTL到EIA双向电平的转换。与RS相匹配的连接器采用DB。MAX芯片的脚TTL电平的输入引脚连接到单片机的TXD,TTL电平的输出引脚。MAX芯片的脚TTL电平的输出引脚连接到单片机的RXD,TTL电平的输入引脚。MAX的脚RS电平的输出引脚连接DB的第脚RS电平的串口输入信号。MAX的第脚RS电平的输入引脚连接到DB的第脚RS电平的串口输出信号。DB的第引脚接地。电路连接如图所示。图单片机与PC串口通信电路时钟模块MOT管脚接地或不接,选用INTEL总线时序,DS管脚在它有效时表示DS正在往总线输出数据,RW为写信号线。系统上电时复位脚要保持低电平ms以上时钟芯片才可以正常工作。当复位脚为低并且Vcc高于V时,中断允许位及中断标志位清零,通常情况下把复位和电源连接。ADAD为地址数据复用线。DS内建字节RAM,其中低十字节分别用于记录秒,秒闹,分,分闹,时,时闹,星期,日,月,年,接下来字节分别为四个控制寄存器,以及字节的通用RAM。图DS电路测温及温度传感器模块由于采用单总线器件,单片机访问Wire器件必须严格遵循单总线命令序列,主机控制DSB完成温度转换必须经过三个步骤:每一次读写之前都要对DSB进行复位复位成功后发送一条ROM指令最后发送RAM指令这样才能对DSB进行预定的操作。复位要求单片机将数据线下拉至少us,然后释放总线,产生由低电平跳向高电平的上升沿,DSB检测到上升沿后等待us,而后发出us的存在低脉冲,单片机受到此信号表示复位成功。所有的读,写时序至少需要us,且每两个独立的时序之间至少需要us的恢复时间。在写时序中,主机将在拉低总线us之内释放总线,并向单总线器件写若主机拉低总线后能保持至少us的低电平,则向单总线器件写,单总线器件仅在主机读时序时才向主机传输数据。DSB温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的ERAM,后者存放高温度和低温度触发器TH、TL和配置寄存器。暂存存储器包含了个连续字节前两个字节是测得的温度信息第一个字节的内容是温度的低八位第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝第五个字节是配置寄存器的易失性拷贝这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。如图为DSB的外部电源供电方式。图DSB外接电源电路热释电红外传感模块()被动式热释电红外探头的工作原理及特性在自然界任何高于绝对温度(度)时物体都将产生红外光谱不同温度的物体其释放的红外能量的波长是不一样的因此红外波长与温度的高低是相关的。在被动红外探测器中关键性的元件热释电红外传感器(PIR)它能将波长为一um之间的红外信号变化转变为电信号并能对自然界中的白光信号具有抑制作用因此在被动红外探测器的警戒区内当无人体移动时热释电红外感应器感应到的只是背景温度当人体进人警戒区通过菲涅尔透镜热释电红外感应器感应到的是人体温度与背景温度的差异信号因此红外探测器的红外探测的基本概念就是感应移动物体与背景物体的温度的差异。人体都有恒定的体温一般在度所以会发出特定波长微米左右的红外线被动式红外探头就是靠探测人体发射的微米左右的红外线而进行工作的。人体发射的微米左右的红外线通过菲泥尔滤光片增强后聚集到红外感应源上。红外感应源通常采用热释电元件这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡向外释放电荷后续电路经检测处理后就能产生报警信号。)这种探头是以探测人体辐射为目标的。所以热释电元件对波长为微米左右的红外辐射必须非常敏感。)为了仅仅对人体的红外辐射敏感在它的辐射照面通常覆盖有特殊的菲泥尔滤光片使环境的干扰受到明显的控制作用。)被动红外探头其传感器包含两个互相串联或并联的热释电元。而且制成的两个电极化方向正好相反环境背景辐射对两个热释元件几乎具有相同的作用使其产生释电效应相互抵消于是探测器无信号输出。)人一旦侵入探测区域内人体红外辐射通过部分镜面聚焦并被热释电元接收但是两片热释电元接收到的热量不同热释电也不同不能抵消经信号处理而报警。。被动式热释电红外探头的优缺点:优点是本身不发任何类型的辐射器件功耗很小隐蔽性好。价格低廉。缺点是:容易受各种热源、光源干扰被动红外穿透力差人体的红外辐射容易被遮挡不易被探头接收。易受射频辐射的干扰。环境温度和人体温度接近时探测和灵敏度明显下降有时造成短时失灵。()被动式热释电红外传感器电路红外报警开关采用国内外最流行的,,人体热释电传感器作信号探测器灵敏度高探测距离可达,,米以上其俯视角可达,,水平视角可达,,,。因它仅对人体释放的、特定波长的红外光最敏感因而误动作极小。在本设计中用PIR传感器和通用运放LM的人体热释电红外报警开关。当有人在其探测区域内以,(,,,,,的频率活动时它就能感生出微弱的电信号经,,,、,,,两级放大后从,,,脚输出,(,,,(,,的强信号。,、,、,,,及,,,组成双门限比较器因,,感生的信号电压可正可负故,,,脚输出的电压亦可正可负(对中心电压,,而言)。当其输出的电压达到,(,,以上时通过,,施加于,,,脚的电压高于脚的电压(,(,,)使,,,脚输出高电位而当,,,脚输出的电位低于,,时则,,,脚的电压将通过,,下降至,(,,以下其脚也输出高电位。平时无信号时由于,,,脚的电位(,(,,高于脚(,(,,)故脚无输出。当,,接收到信号时脚就一定输出高电位。脚输出的高电位经过LS与非门反向后输出低电平再通过P脚与单片机相连。只要热释电传感器有检测信号输入就会立即产生外部中断单片机之后通过蜂鸣器来响应。具体电路设计如图所示。图红外热释电传感器光电传感器()光敏电阻简介光敏电阻器通常由光敏层、玻璃基片(或树脂防潮膜)和电极等组成。光敏电阻器是利用半导体光电导效应制成的一种特殊电阻器对光线十分敏感。它在无光照射时呈高阻状态当有光照射时其电阻值迅速减小。光敏电阻器广泛应用于各种自动控制电路(如自动照明灯控制电路、自动报警电路等)、家用电器(如电视机中的亮度自动调节照相机中的自动曝光控制等)及各种测量仪器中。()光电传感器电路设计LM电压比较器分别对光线强度变化前后电压比较实现高低电平的变化。如图所示当光线较弱时脚的电压为V光敏电阻的电阻值大于K因此脚的电压小于V此时LM输出高电平。当外界光线变强时脚的电压仍为V由于光敏电阻的电阻值因外界光线增强小于K,因此脚的电压大于V此时电压比较器输出低电平激励信号输入单片机驱使蜂鸣器做出响应。图光电传感器电路单片机最小系统S是低功耗,高性能芯片。由运算器和控制器组成的微处理器,具有个单元的片内RAM,K的内部程序存储器,*条并行IO口线,个定时器计数器,具有个中断源,和一个全双工串行通道。其中XTAL和XTAL为外接晶体引线端,当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容RST为复位信号,当输入的复位信号延续个机器周期以上高电平时即为有效,用以完成单片机的复位操作。PSEN为外部程序存储器读选通信号,只有在读外部ROM时,PSEN为低电平实现对外部ROM单元的读操作。EA是访问程序存储器控制信号,当EA信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延续至外部程序存储器。ALE是地址锁存控制信号,在系统扩展时,ALE用于控制把P口输出的低位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。软件设计图和图分别为按键控制流程图和温度显示及报警流程图。开始键扫描N有无键按下Y延时去抖动N有无键按下Y逐列扫描键码计算按键释放键键键键键键LED亮LED亮LED亮LED亮LED亮LED亮图按键控制流程图测温开始复位DSB跳过ROM命令发出温度转换命令N转换完毕,复位DSBYY复位DSB发报警搜索命令跳过ROM匹配N有温度超限,Y读取温度鸣报警器显示温度图温度显示及报警流程图系统测试分析按键控制测试在矩阵键盘上当其中某一个按键被按下时通过列扫描法检测到闭合键单片机控制则使对应的LED发光二极管立即被点亮。由此巧妙地实现了按键控制的功能。按键控制子程序:#include<regh>#include<intrinsh>#include<absacch>sbitP=P^sbitP=P^sbitP=P^sbitP=P^sbitP=P^sbitP=P^main(){while()按键检测并控制灯的亮灭{P=if(P==||IRCOM==||light==)delay()if(P==||IRCOM==||light==){IRCOM=if(light==)led=elseled=~led}if(P==||IRCOM==||displaybuf==)delay()if(P==||IRCOM==||displaybuf==){IRCOM=if(displaybuf==)led=elseled=~led}if(P==||IRCOM==)delay()if(P==||IRCOM==){IRCOM=led=~led}delay()P=P=if(P==||IRCOM==)delay()if(P==||IRCOM==){IRCOM=led=~led}if(P==||IRCOM==)delay()if(P==||IRCOM==){IRCOM=led=~led}if(P==||IRCOM==)delay()if(P==||IRCOM==){IRCOM=led=~led}P=if(led==)P=elseP=if(led==)P=elseP=if(led==)P=elseP=if(led==)P=elseP=if(led==)P=elseP=if(led==)P=elseP=}}红外遥控测试站在离一体化红外遥控接收系统三米左右距离手握遥控键盘当键盘的至号中的任一键闭合时一体化接收芯片SM对脉宽调制的串行码进行解码后送入单片机单片机使对应的,号发光二极管分别点亮。红外遥控子程序:#include<regh>#include<intrinsh>voidIRSHOW()voiddelay(unsignedcharx)x*MSvoiddelay(unsignedcharms)voidbeep()sbitIRIN=P^sbitBEEP=P^sbitRELAY=P^sbitGEWEI=P^sbitSHIWEI=P^unsignedcharIRCOMunsignedcharcodetable={xC,xF,xA,xB,x,x,x,xF,x,x,x,x,xa,x,xa,xb}main(){IE=x允许总中断中断,使能INT外部中断TCON=x触发方式为脉冲负边沿触发delay()IRIN=BEEP=RELAY=for(){IRSHOW()}}endmainvoidIRIN()interruptusing{unsignedchari,j,k,N=EA=I:for(i=i<i){if(IRIN==)breakif(i==){EA=return}}delay()if(IRIN==)gotoI确认IR信号出现while(!IRIN)等IR变为高电平{delay()}for(j=j<j){for(k=k<k){while(IRIN)等IR变为低电平{delay()}while(!IRIN)等IR变为高电平{delay()}while(IRIN)计算IR高电平时长{delay()Nif(N>=){EA=return}}IRCOMj=IRCOMj>>if(N>=){IRCOMj=IRCOMj|x}N=}endfork}endforjif(IRCOM!=~IRCOM){EA=return}IRCOM=IRCOMxFIRCOM=IRCOMxFIRCOM=IRCOM>>beep()EA=}voidIRSHOW(){P=tableIRCOMGEWEI=SHIWEI=delay()P=tableIRCOMSHIWEI=GEWEI=delay()}voidbeep(){unsignedcharifor(i=i<i){delay()BEEP=!BEEP}BEEP=}voiddelay(unsignedcharx)x*MS{unsignedchariwhile(x){for(i=i<i){}}}voiddelay(unsignedcharms){unsignedchariwhile(ms){for(i=i<i){nop()nop()nop()nop()}}}单片机与PC通信测试将DB接头与PC机的RS串口相接后把PC机上的串口调试器软件上设置波特率为bps在字符串输入框中分别输入,数字点击发送后对应数字的,号发光二极管迅速发光。调试软件如下图所示。图串口调试软件光电传感功能测试当外界光线由明变暗时光敏电阻的电阻值随之发生变化对应的电压比较器输出电平也会随之而变化。此时号发光二极管发光与此同时数码管上显示号防区。红外传感功能测试当人靠近PIR红外热释电传感器时红外热释电传感器对人体释放的、特定波长的红外光感生出微弱的电信号经过电路的放大处理与单片机相连的P产生低电平并通过蜂鸣器报警同时数码管上显示号防区。温度传感功能测试当外界温度高于C低于C时号发光二极管点亮同时数码管上显示号防区当外界温度高于C时蜂鸣器报警数码管被显示号防区。模拟串口数码管显示测试为节省I接口本系统将P,P作为模拟串口以LS作为串入并出移位锁存器按照串口通信方式将显示数据送入锁存器锁存并在数码管中显示出来。数码管对时间和温度与防区进行轮流显示这样可对人对时间温度防区信息有实时的了解。模拟串口显示子程序:#include<regh>sbitsimuseriCLK=P^用P^模拟串口时钟sbitsimuseriDATA=P^用P^模拟串口数据sbitdriveCLR=P^用P^控制CLRsbita=ACC^voiddelay(unsignedintt)ms的延时子程序{unsignedinti,jfor(i=i<ti)for(j=j<j)}voidoutsimuseri(chardatabuf){charii=ACC=databufdo{simuseriCLK=simuseriDATA=asimuseriCLK=ACC=ACC>>}while(i!=)simuseriCLK=}voidPAout(charPseriout){driveCLR=并口输出清零driveCLR=开始串行移位outsimuseri(Pseriout)}main(){chariwhile(){PAout(xf)delay()}}时钟温度功能测试时钟芯片DSB可把时间信息通过中断送入数码管温度传感器DSB可对外界温度进行实时监测也送入数码管显示。结束语本系统以MCUS为核心部件,把各功能模块有机高效地组织在一起通过软件编程实现按键控制功能红外遥控功能PC通信功能光电传感温度传感红外传感功能数码显示功能时钟温度功能报警功能。其中矩阵按键控制模块可方便对各种家用电器开关的进行控制红外遥控用作单片机系统的输入解决了常规键盘线路板过大布线复杂占用过多IO口的弊端同时主人也可手握遥控器轻轻松松地对家用电器开关的进行控制。PC通信可以让主人坐在电脑旁通过PC轻松实现对单片机应用系统控制与反馈拓展了单片机的应用领域。光电传感器对房间光线强度进行监测当光线变暗时可提醒主人不再看书。红外传感器应用于家居报警当深夜有人闯入时鸣叫报警让主人提高警惕。温度传感器可控制室内空调达到智能化控制室内温度的变化范围。数码显示模块可对时钟芯片的时间信息温度芯片的实时温度以及防区号进行轮流显示使主人对时间温度防区信息一目了然。总之这套智能家居系统让主人尽情享受舒适安全人性化地家居环境体验现代电子技术发展带来的愉悦与顺畅。参考文献黄智伟编著全国大学生电子设计竞赛系统设计北京:北京航空航天大学出版社年第一版黄智伟编著全国大学生电子设计竞赛电路设计北京:北京航空航天大学出版社年第一版黄智伟编著全国大学生电子设计竞赛技能训练北京:北京航空航天大学出版社年第一版黄智伟编著全国大学生电子设计竞赛制作实训北京:北京航空航天大学出版社年第一版黄智伟主编王彦陈文光朱卫华等编著全国大学生电子设计竞赛训练教程M北京:电子工业出版社年第一版黄智伟编著射频电路设计北京:电子工业出版社年第一版高吉祥主编,吴佳步凯翟庆林编著全国大学生电子设计竞赛培训系列教程高频电子线路设计北京:电子工业出版社年第一版高吉祥主编吴佳步凯翟庆林编著全国大学生电子设计竞赛培训系列教程模拟电子线路设计北京:电子工业出版社年第一版高吉祥主编,高天万副编,陈和,朱卫华等编著模拟电子技术M北京:电子工业出版社年第一版高吉祥主编,黄智伟、陈和、胡见堂等编著高频电子线路M北京:电子工业出版社年第一版附录主要元器件清单主要元器件清单见表所示。表主要元器件清单序号名称型号封装数量备注ATSDIP单片机DSDIP时钟芯片LMDIP四运放集成芯片SMDIP红外接收芯片DSBDIP温度测量芯片MAXDIP电平转换芯片LSDIP移位寄存器LSDIP四输入与非门附录系统完整程序#include<regh>#include<intrinsh>#include<absacch>#defineucharunsignedchar#defineMCAXBYTEXFFA#defineMCBXBYTEXFFB#defineMCCXBYTEXFFC#defineMCDXBYTEXFFDsbitsimuseriCLK=P^用P^模拟串口时钟sbitsimuseriDATA=P^用P^模拟串口数据sbita=ACC^charxdata*dis=xFF寄存器首地址charcodedis={x,xf,x,xd,x,x,x,xf,x,x}~chardisp={x,x,x,x,x,x,x,x,x,x,x,x}送入数码显示的数据charstat={x,x,x,x,x,x,x,x,x,x,x,x}处理后的数据charstat={x,x,x,x,x,x}初始化时钟数据charat={,,,,,}时钟寄存器chardistest,redtestvoiddelay(unsignedcharx)voiddelay(unsignedcharms)sbitIRIN=P^sbitbuzzer=P^sbitred=P^sbitlight=P^sbitP=P^sbitP=P^sbitP=P^sbitP=P^sbitP=P^sbitP=P^sbitP=P^sbitP=P^sbitP=P^sbitP=P^sbitP=P^sbitP=P^unsignedcharbdataflagsbitled=flag^sbitled=flag^sbitled=flag^sbitled=flag^sbitled=flag^sbitled=flag^sbitring=flag^unsignedcharIRCOMunsignedchartemp,a,datmsg,wenduunsignedchardisplaybuf={,,,,,,,}unsignedcharreaddatasbitDQ=P^bitresetpulse(void){unsignedchariDQ=for(i=i>i)DQ=for(i=i>i)return(DQ)for(i=i>i)}voidwritecommandtodsb(unsignedcharcommand)向温度芯片写命令{unsignedchariunsignedcharjfor(i=i<i){if((commandx)==){DQ=for(j=j>j)DQ=}else{DQ=for(j=j>j)DQ=for(j=j>j)}command=cror(command,)}}unsignedcharreaddatafromdsb(void)从温度芯片中读取温度数据{unsignedchariunsignedcharjunsignedchartemptemp=for(i=i<i){temp=cror(temp,)DQ=nop()nop()DQ=for(j=j>j)if(DQ==){temp=temp|x}else{temp=temp|x}for(j=j>j)}return(temp)}voidtem(void){unsignedcharx,resultwhile(resetpulse())writecommandtodsb(xcc)writecommandtodsb(xbe)readdata=readdatafromdsb()readdata=readdatafromdsb()for(x=x<x){displaybufx=}readdata=readdata<<x=readdatax=x>>x=xxfreaddata=readdata|xx=result=readdatadisplaybufx=resultresult=resultxdisplaybufx=resultwhile(resetpulse())writecommandtodsb(xcc)writecommandtodsb(x)}voiddelay(unsignedcharx){unsignedchariwhile(x){for(i=i<i){}}}voiddelay(unsignedcharms){unsignedchariwhile(ms){for(i=i<i){nop()nop()nop()nop()}}}voiddelay(unsignedintt)ms的延时子程序{unsignedinti,jfor(i=i<ti)for(j=j<j)}voidkeydetect(void)按键检测并控制灯的亮灭{P=if(P==||IRCOM==||light==)delay()if(P==||IRCOM==||light==){IRCOM=if(light==)led=elseled=~led}if(P==||IRCOM==||displaybuf==)delay()if(P==||IRCOM==||displaybuf==){IRCOM=if(displaybuf==)led=elseled=~led}if(P==||IRCOM==)delay()if(P==||IRCOM==){IRCOM=led=~led}delay()P=P=if(P==||IRCOM==)delay()if(P==||IRCOM==){IRCOM=led=~led}if(P==||IRCOM==)delay()if(P==||IRCOM==){IRCOM=led=~led}if(P==||IRCOM==)delay()if(P==||IRCOM==){IRCOM=led=~led}P=if(led==)P=elseP=if(led==)P=elseP=if(led==)P=elseP=if(led==)P=elseP=if(led==)P=elseP=if(led==)P=elseP=}voidoutsimuseri(chardatabuf)模拟串口显示程序{charii=ACC=databufdo{simuseriCLK=simuseriDATA=asimuseriCLK=ACC=ACC>>}while(i!=)simuseriCLK=}voidstart(void)程序初始化{MCA=X开启振动MCB=X设置DS工作状态SCON=X}voidwrCM()写函数{chariMCB=x芯片停止工人准备初始化for(i=i<i)初始化时钟*(disati)=statiMCB=x}voidrCM()读函数{chariwhile(MCAx==x)等待时间准备更新完毕for(i=i<i)更新时间stati=*(disati)}test()数据处理函数{charistat=stat>>stat=statxfstat=stat>>stat=statxfstat=stat>>stat=statxfstat=stat>>stat=statxfstat=stat>>stat=statxfstat=stat>>stat=statxffor(i=i<i){dispi=disstati}}scan()时钟显示函数{charifor(i=i>i){outsimuseri(dispi)}delay()}main()主函数{uchariwhile(resetpulse())writecommandtodsb(xcc)writecommandtodsb(x)buzzer=a=datmsg=flag=P=P=P=P=P=P=P=P=P=P=P=P=IE=x允许总中断中断,使能INT外部中断TCON=x触发方式为脉冲负边沿触发delay()IRIN=start()wrCM()rCM()test()distest=statredtest=statscan()TMOD=xPCON=xTH=xfdTL=xfdTR=SCON=xdelay()while(){keydetect()rCM()test()if(stat==)scan()if(stat==||stat==||stat==||stat==||stat==||stat==||stat==){tem()for(i=i>=i){if(displaybuf>=)displaybuf=if(light==)displaybuf=if(red==)displaybuf=outsimuseri(disdisplaybufi)}delay()}if((displaybuf>=displaybuf>)||red==)buzzer=elsebuzzer=}}voidsconint(void)interruptusing串口中断程序{if(RI==){RI=datmsg=SBUFa=datmsg}if(TI==){TI=}if(a==)led=~ledif(a==)led=~ledif(a==)led=~ledif(a==)led=~ledif(a==)led=~ledif(a==)led=~led}voidIRIN()interrupt红外中断程序{unsignedchari,j,k,N=EA=I:for(i=i<i){if(IRIN==)breakif(i==){EA=return}}delay()if(IRIN==)gotoIwhile(!IRIN){delay()}for(j=j<j){for(k=k<k){while(IRIN){delay()}while(!IRIN){delay()}while(IRIN){delay()Nif(N>=){EA=return}}IRCOMj=IRCOMj>>if(N>=){IRCOMj=IRCOMj|x}N=}}if(IRCOM!=~IRCOM){EA=return}IRCOM=IRCOMxFIRCOM=IRCOMxFIRCOM=IRCOM>>EA=}

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/49

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利