智能家居

标题: 智能家居控制系统 开发 教程 下载 66P [打印本页]

作者: 邢远    时间: 2013-9-30 12:11
标题: 智能家居控制系统 开发 教程 下载 66P
(, 下载次数: 2385)


(, 下载次数: 2247)


(, 下载次数: 2242)


(, 下载次数: 2234)


目    录
引言................................................. 3
1  绪 论.............................................. 4
1.1课题背景.............................................................. 4
1.2智能家居控制系统的概述................................................ 5
1.3 课题研究的目的及意义.................................................. 6
1.4 系统设计主要任务...................................................... 6
2  方案设计........................................... 7
2.1 系统总体设计与分析.................................................... 7
2.1.1单片机控制部分...................................................... 7
2.1.2系统工作流程部分.................................................... 8
2.2远程控制设计与分析.................................................... 8
2.2.1控制系统设计分析.................................................... 8
2.2.2 控制要求............................................................ 9
2.2.3单元功能模块........................................................ 9
2.3传感器信号采集设计与分析.............................................. 9
2.3.1 防火灾发生传感器.................................................... 9
2.3.2可燃气体泄漏传感器................................................. 10
2.3.3防盗传感器......................................................... 10
2.3.4 信号采集设计与分析................................................. 10
2.4 GSM模块的接口与设计................................................. 10
2.4.1 TC35模块组成...................................................... 10
2.4.2 TC35模块通信电路.................................................. 10
2.4.3 TC35模块与MCU连接方式............................................ 10
2.5 红外学习遥控设计..................................................... 11
2.5.1 红外学习遥控的设想................................................. 11
2.5.2 红外学习遥控的实现................................................. 11
3  硬件电路设计....................................... 12
3.1相关芯片及模块简介................................................... 12
3.1.1 MCU SM8952AC25P简介............................................... 12
3.1.2 双音多频收发器MT8870简介.......................................... 12
3.1.3 ISD2500系列单片语音录放简介....................................... 13
3.1.4 固态继电器(SSR)简介................................................ 13
3.2远程控制电路设计..................................................... 13
3.2.1振铃检测电路....................................................... 13
3.2.3 双音频解码电路..................................................... 15
3.2.4 语言提示电路....................................................... 16
3.3电源电路设计......................................................... 17
3.3.1 5V开关电源稳压器电路.............................................. 17
3.3.2 其他电源稳压器电路................................................. 17
3.4TC35短消息模块电路设计.............................................. 17
3.4.1 TC35短消息模块接口电路............................................ 17
3.4.2 TC35短消息模块控制设计............................................ 18
3.5红外学习遥控电路设计................................................. 19
3.5.1 红外学习遥控接收电路设计........................................... 19
3.5.2 红外学习遥控发送电路设计........................................... 19
4  软件部分.......................................... 19
4.1 下位机编程........................................................... 19
4.1.1 主控单片机系统软件设计............................................. 19
4.1.2远程控制程序设计................................................... 21
4.1.3短信息发送程序设计................................................. 22
4.1.4红外学习遥控程序设计............................................... 23
4.2 上位机(PC机)编程.................................................. 24
4.2.1 用户界面的设计..................................................... 24
4.2.2 串行通信的实现..................................................... 24
4.2.3控件MSComm使用方法................................................ 25
5  系统制作及调试..................................... 26
5.1使用的仪器仪表及工具................................................. 27
5.2硬件制作与调试....................................................... 27
5.2.1系统PCB板的设计................................................... 27
5.2.2系统硬件调试....................................................... 27
5.3软件及联机调试....................................................... 28
5.3.1主控程序调试....................................................... 28
5.3.2短消息发送调试..................................................... 28
6  结论............................................. 29
谢  辞.............................................. 30
附录1............................................... 32
附录2............................................... 54
附录3............................................... 62


引言

21世纪是信息化的世纪,各种电信和互联网新技术推动了人类文明的巨大进步。本文介绍的数字化家居控制系统可以使得人们可以通过手机或电话在任何时候、任意地点对家中的任意电器(空调、热水器、电饭煲、灯光、音响、DVD录像机)进行远程控制;也可以在下班途中,预先将家中的空调打开、让热水器提前烧好热水、电饭煲煮好香喷喷的米饭……;而这一切的实现都仅仅是打一个简单的电话。此外,该系统还可使家庭具有多途径报警、远程监控等多种功能,如果不幸出现某种险情,您和110可以在第一时间获得通知以便进一步采取行动。舒适、时尚的家居生活是社会进步的标志,智能家居控制系统能够在不改变家中任何家电的情况下,对家里的电器、灯光、电源、家庭环境进行方便地控制,使人们尽享高科技带来的简便而时尚的现代生活。
实现智能化离不开运算和控制单元,本系统采用MCU(SM8952AC25P)作为主控器件,单片机应用系统由硬件和软件组成。硬件由单片机扩展的存储器、输入/出设备以及各种实现单片机系统控制要求的接口电路和有关的外围电路芯片或部件组成;软件由单片机应用系统实现其特定控制功能的各种工作程序和管理程序组成。在单片机应用系统开发的过程中,应不断调整软、硬件,协调地进行软、硬件设计,以提高工作效率,当系统硬件和软件紧密配合、协调一致,就可以组成高性能的单片机应用系统。本课题完成了单片机应用系统其开发过程的系统的总体设计、硬件设计、软件设计和系统调试,根据开发的实际需要,相互协调、交叉,有机的进行。本设计的MCU与各个芯片和模块的接口、各项标准都严格遵循国家有关标准,为以后的产品化提供了良好的基础。
本系统的电话远程控制是基于电话交换网络的国际双音频通信标准DTMF通信方式,程控交换信令作为系统控制命令,采用MT8870双音频编解码电路实现,单片机通过MT8870识别来自电话程控交换机的网络的控制信号,用户只需拨通家中的电话可以根据系统的语音提示进行按键选择以实现用户身份的识别、远程控制和安防操作;各种传感器的检测是利用数据采集系统将多路被测量值转换成数字量,再经过单片机进行数据处理,实现实时测控;短消息发送部分采用基于SIEMENS TC35 GSM模块TC35 modem 和TI公司的电平转换芯片MAX3238等器件构成的移动终端的硬件电路可以完成短消息收发等功能。
在设计本系统时,面对各种检测对象和大量控制单元,需要利用各种接口标准和MCU进行连接,再经过MCU进行数据处理,实现实时测控。而此时采用单片机来实现智能家居控制系统不仅具有采集控制方便、简单、灵活等优点,而且可以大幅度提高采各模块和芯片的协调性,从而大大提高系统的可利用性。此次系统设计统正是把MT8870、TC35 modem与SM8952AC25P单片机有机的结合起来,顺利的完成了本设计的要求。并且实现了学习型远程红外遥控功能,为控制红外家电和设备提供了良好的基础。本系统也可应用于工农业中,实现对无人值守岗位的远程监控等。
1    绪 论
1.1 课题背景
21世纪是信息时代,各种电信新技术推动了人类文明的进步。自从1876年,Alexander Graham Bell(贝尔)发明电话以来,世界各国的电话网络发展非常迅速,近十年来,中国的固定电话业务呈现出举世瞩目的快速增长。1997年8月局用电话交换机总容量突破1亿门,网络规模跃居世界第二位,2006年初固定电话用户总数达到35539.2万户,移动电话用户达到40407.2万户,现代电话网络是由程控交换机进行交换传输,移动通信也从模拟时代走向了高度数字化时代,它们的性能已经有了很大的进展,而且可靠性非常高。
正是因为通信技术、计算机技术、网络技术、控制技术的迅猛发展与提高,促使了家庭实现了生活现代化,居住环境舒适化、安全化。这些高科技已经影响到人们生活的方方面面,改变了人们生活习惯,提高了人们生活质量,家居智能化也正是在这种形势下应运而生的。智能家居控制系统的主要功能包括通信、设备自动控制、安全防范三个方面。
随着新技术和自动化的发展,传感器的使用数量越来越大,功能也越来越强,各种传感器都已经标准化、模块化这给智能家居控制系统的设计提供极大方便。
电话远程控制作为一较新的课题与常规的遥控方式相比,显示出一定的优越性,不需进行专门的布线,不占用无线电频率资源,避免了电磁污染。同时,由于电话线路各地联网,可以充分利用现有的电话网,因此遥控距离可跨省市,甚至跨越国家。另外电话属双工通信手段。因此,这可以大大体现出利用电话进行遥控的更大优越性。操作者可以通过各种提示音即时了解受控对象的有关信息,从而进行进一步的操作。电话遥控部分课题目前已有涉足者,但是只是还只限于实验室阶段,因而距离实际应用,尤其是对于日常生活尚有一定的差距,并不能完全体现出电话遥控方式的双工通信特点。本设计正是针对这一点进行了较大改进,采取单片机智能控制,利用不同的提示音达到对于不同操作的提示及对受控方状态的信息反馈,从而使操作者能够及时了解受控方信息,使产品达到交互式与智能化。而且本设计的调试都是在线调试,已经在电信、铁通的交换机实验并且能够成功的使用移动电话进行操作。

短信息服务(ShortMessage Service,SMS)是GSM(Global System for Mobile Comm unication)系统中提供的一种GSM终端(手机)之间,通过服务中心(service center)进行文本信息收发的应用服务,其中服务中心完成信息的存储和转发功能。短信息服务作为GSM网络的一种基本业务,已得到越来越多的系统运营商和系统开发商的重视,基于这种业务的各种应用也蓬勃发展起来。由于GSM网络在全国范围内实现了联网和漫游,具有网络能力强的特点,用户无需另外组网,在极大提高网络覆盖范围的同时为客户节省了昂贵的建网费用和维护费用。同时,他对用户的数量也没有限制,克服了传统的专网通信系统投资成本大、维护费用高、且网络监控的覆盖范围和用户数量有限的缺陷。比传统的集群系统在无线网络覆盖上具有无法比拟的优势,加上GSM的SMS本身具备的数据传送功能,都使得这些应用得到迅速的普及。利用GSM短信息系统进行无线通信还具有双向数据传输功能,性能稳定,为远程数据传送和监控设备的通信提供了一个强大的支持平台。在此以GSM网络作为数据无线传输网络,它可以应用在银行、储蓄点机房监控、电信机房动力环境监控、通信行业远端无人值守站机房监控和远程维护(如移动通信基站、微波站、光纤中继站等)及其他无人值守点(如仓库、办公楼等)监控及城市公用事业实时监控维护系统像煤气调压站、自来水、污水管网和热力系统、电力系统城市中电网等情况中。在此本系统采用了Siemens公司新一代无线通信GSM模块TC35是,它设计小巧、功耗很低很大程度上方便了智能家居控制系统的设计。



http://bbs.mywll.com/thread-68862-1-1.html




作者: 矛盾人    时间: 2013-9-30 12:16
hen hao ,wo zhuang  l
作者: fuhainan    时间: 2013-9-30 12:17
我是伸手党
作者: iotsource    时间: 2013-9-30 12:19
这个东东应该不错
作者: 邢远    时间: 2013-9-30 12:36
  1. /*****************************************************************************
  2. *    智能家居控制系统程序
  3. *    单片机采用AT89S52,晶振频率为:12.00MHz。
  4. /******************************************************************************/  
  5. #include <AT89X55.H>
  6. bit r_flag;
  7. enum  eepromtype  {M2401,M2402,M2404,M2408,M2416,M2432,M2464,M24128,M24256};
  8. extern bit   RW24XX(unsigned char *DataBuff,unsigned char ByteQuantity,unsigned int Address,
  9.                      unsigned char ControlByte,enum eepromtype EepromType);
  10. sbit key   = P2^0;
  11. bit key_flag;
  12. sbit dog   = P0^7;
  13. sbit LED   = P0^0;
  14. sbit TELA   = P3^6;
  15. sbit TEL  = P3^7;
  16. sbit RING  = P3^2;
  17. sbit switching =P0^4;
  18. unsigned char mode;
  19. bit passwordflag;
  20. unsigned char password[6];
  21. unsigned char passwordtest[6];
  22. void dlms(unsigned int x);
  23. void reset(void);
  24. void open(void);
  25. //****************************************************************  //
  26. //               INT1中断服务程序                                               //
  27. //****************************************************************  //
  28. unsigned char ring_fluctuation;
  29. unsigned char ring_count;
  30. bit ring_flag;
  31. void service_int0() interrupt 0 using 1
  32. {
  33. if(ring_fluctuation<10)
  34.    {
  35.     ring_fluctuation++;     
  36.     }
  37. }
  38. //****************************************************************  //
  39. //                      t1 定时中断                                           //
  40. //****************************************************************  //   
  41. unsigned char ring_dlsm;
  42. unsigned char ring_time;
  43. unsigned int ring_reset_time;
  44. unsigned char dlms_time;
  45. void timer1 (void) interrupt 3 using 0
  46. {
  47.   TH1=0x3c;
  48.   TL1=0xb0;
  49.   dlms_time++;
  50.   if(ring_fluctuation>5)
  51.     {
  52.          EX0=0;//INT1_OFF;
  53.          ring_dlsm++;
  54.          if(ring_dlsm==20)//等待一秒
  55.            {
  56.             ring_dlsm=0;
  57.             EX0=1;//INT1_ON;
  58.         ring_fluctuation=0;
  59.                 ring_count++;//震铃次数
  60.                  if(ring_flag)//有效振铃
  61.                    {
  62.                     if(ring_count==6)
  63.                           {
  64.                            ring_count=7;
  65.                mode=1;
  66.                            }
  67.                     }
  68.                  else//无效振铃
  69.                    {
  70.                     if(ring_count>2)
  71.                           {
  72.                            ring_reset_time=800;
  73.                            }
  74.                     }
  75.             }
  76.      }
  77.    
  78.    if((ring_count==2)|(ring_count==1))
  79.      {
  80.           ring_time++;
  81.           if(ring_time==200)
  82.             {
  83.                  ring_flag=1;
  84.                  }
  85.           }
  86.    if((ring_count>0)&(ring_count<6))
  87.      {
  88.       LED=INT0;
  89.           }
  90.         else if(passwordflag)
  91.       {
  92.           LED=~LED;
  93.            }
  94.    
  95.    if(ring_count>0)
  96.      {
  97.           ring_reset_time++;
  98.           if(ring_reset_time==1100)//55s
  99.             {
  100.          reset();
  101.                  LED=0;
  102.                   dlms(100);
  103.                  LED=1;
  104.                   dlms(100);
  105.                  LED=0;
  106.                   dlms(100);
  107.                  LED=1;
  108.                   dlms(100);
  109.                  LED=0;
  110.                   dlms(100);
  111.                  LED=1;
  112.                   dlms(100);
  113.                  LED=0;
  114.                   dlms(100);
  115.                  LED=1;
  116.                   dlms(100);
  117.                  LED=0;
  118.                   dlms(100);
  119.                  LED=1;
  120.                   dlms(100);
  121.                  LED=0;
  122.                   dlms(100);
  123.                  LED=switching;
  124.                  }
  125.           }
  126. }
  127. //****************************************************************  //
  128. //               INT1中断服务程序                                               //
  129. //****************************************************************  //
  130. unsigned char DTMF;
  131. void service_int1() interrupt 2 using 1
  132. {
  133. EX1=0;
  134. DTMF=P1;
  135. DTMF=DTMF>>4;       
  136. }
  137. void main(void)
  138. {
  139.   TMOD=0x11;
  140.   TH1=0x3c;
  141.   TL1=0xb0;
  142.   TR1=1;
  143.   ET1=1;
  144.   IT0=1;
  145.   EX0=1;
  146.   IT1=0;
  147.   EX1=1;
  148.   
  149.   
  150.   reset();
  151.   EA=0;       
  152.   r_flag=RW24XX(password,6,0x0000,0xa1,M2402);//R
  153.          
  154.   if(P2_0==0)
  155.     dlms(20);
  156.         if(P2_0==0)
  157.       {
  158.        ring_flag=1;
  159.            mode=1;
  160.        passwordflag=1;
  161.            ring_count=7;
  162.            ring_fluctuation=6;
  163.            }
  164.   EA=1;
  165.   while(1)
  166.       {
  167.            open();
  168.            dog=~dog;
  169.        switch(mode)
  170.                {
  171.             case 0:;
  172.                       
  173.                        break;
  174.             case 1:
  175.                                TEL=1;
  176.                                LED=0;//
  177.                                dlms_time=0;
  178.                                    ring_reset_time=0;
  179.                        while(dlms_time<40)
  180.                            {
  181.                         dlms(1);
  182.                             TELA=~TELA;                    
  183.                             }
  184.                                    ring_reset_time=0;
  185.                                     LED=1;//
  186.                                         TELA=0;
  187.                                         mode++;
  188.                     DTMF=255;
  189.                     EX1=1;
  190.                     LED=switching;
  191.                        break;
  192.             case 2://password
  193.                    if(DTMF!=255)
  194.                                      {
  195.                                           passwordtest[0]=DTMF;
  196.                                           if(INT1==1)
  197.                                             {
  198.                                                  dlms_time=0;
  199.                                                  while(dlms_time<2);
  200.                                                  if(INT1==1)
  201.                                                    {
  202.                                                     DTMF=255;
  203.                                                     mode++;
  204.                                             dlms_time=0;
  205.                                                     while(dlms_time<10)
  206.                                     {
  207.                                  dlms(2);
  208.                                      TELA=~TELA;                    
  209.                                      }
  210.                                                         EX1=1;
  211.                                           TELA=0;
  212.                                                     }
  213.                                                  }
  214.                                           }
  215.                        break;
  216.             case 3://password
  217.                    if(DTMF!=255)
  218.                                      {
  219.                                           passwordtest[1]=DTMF;
  220.                                           if(INT1==1)
  221.                                             {
  222.                                                  dlms_time=0;
  223.                                                  while(dlms_time<2);
  224.                                                  if(INT1==1)
  225.                                                    {
  226.                                                     DTMF=255;
  227.                                                     mode++;
  228.                                             dlms_time=0;
  229.                                                     while(dlms_time<10)
  230.                                     {
  231.                                  dlms(2);
  232.                                      TELA=~TELA;                    
  233.                                      }
  234.                                                         EX1=1;
  235.                                                         TELA=0;
  236.                                                     }
  237.                                                  }
  238.                                           }
  239.                        break;
  240.             case 4://password
  241.                    if(DTMF!=255)
  242.                                      {
  243.                                           passwordtest[2]=DTMF;
  244.                                           if(INT1==1)
  245.                                             {
  246.                                                  dlms_time=0;
  247.                                                  while(dlms_time<2);
  248.                                                  if(INT1==1)
  249.                                                    {
  250.                                                     DTMF=255;
  251.                                                     mode++;
  252.                                             dlms_time=0;
  253.                                                     while(dlms_time<10)
  254.                                     {
  255.                                  dlms(2);
  256.                                      TELA=~TELA;                    
  257.                                      }
  258.                                                         EX1=1;
  259.                                                         TELA=0;
  260.                                                     }
  261.                                                  }
  262.                                           }
  263.                        break;
  264.             case 5://password
  265.                    if(DTMF!=255)
  266.                                      {
  267.                                           passwordtest[3]=DTMF;
  268.                                           if(INT1==1)
  269.                                             {
  270.                                                  dlms_time=0;
  271.                                                  while(dlms_time<2);
  272.                                                  if(INT1==1)
  273.                                                    {
  274.                                                     DTMF=255;
  275.                                                     mode++;
  276.                                             dlms_time=0;
  277.                                                     while(dlms_time<10)
  278.                                     {
  279.                                  dlms(2);
  280.                                      TELA=~TELA;                    
  281.                                      }
  282.                                                         EX1=1;
  283.                                                         TELA=0;
  284.                                                     }
  285.                                                  }
  286.                                           }
  287.                        break;
  288.             case 6://password
  289.                    if(DTMF!=255)
  290.                                      {
  291.                                           passwordtest[4]=DTMF;
  292.                                           if(INT1==1)
  293.                                             {
  294.                                                  dlms_time=0;
  295.                                                  while(dlms_time<2);
  296.                                                  if(INT1==1)
  297.                                                    {
  298.                                                     DTMF=255;
  299.                                                     mode++;
  300.                                             dlms_time=0;
  301.                                                     while(dlms_time<10)
  302.                                     {
  303.                                  dlms(2);
  304.                                      TELA=~TELA;                    
  305.                                      }
  306.                                                         EX1=1;
  307.                                                         TELA=0;
  308.                                                     }
  309.                                                  }
  310.                                           }
  311.                        break;
  312.             case 7://password
  313.                    if(DTMF!=255)
  314.                                      {
  315.                                           passwordtest[5]=DTMF;
  316.                                           if(INT1==1)
  317.                                             {
  318.                                                  dlms_time=0;
  319.                                                  while(dlms_time>2);
  320.                                                  if(INT1==1)
  321.                                                    {
  322.                                                     DTMF=255;
  323.                                                     mode++;
  324.                                                         //EX1=1;
  325.                                                     }
  326.                                                  }
  327.                                           }
  328.                        break;
  329.             case 8:
  330.                                if(passwordflag==0)
  331.                                      {
  332.                                   if((passwordtest[0]==password[0])&(passwordtest[1]==password[1])&(passwordtest[2]==password[2])&(passwordtest[3]==password[3])&(passwordtest[4]==password[4])&(passwordtest[5]==password[5]))
  333.                                         {
  334.                          mode++;
  335.                                              dlms_time=0;
  336.                                              }
  337.                                       else
  338.                                         {
  339.                          reset();
  340.                                              }                                          
  341.                                           }
  342.                                         else
  343.                                           {
  344.                                            dlms_time=0;
  345.                                               while(dlms_time<10)
  346.                                 {
  347.                              dlms(2);
  348.                                  TELA=~TELA;                    
  349.                                  }
  350.                                                          TELA=0;
  351.                                    password[0]=passwordtest[0];
  352.                                    password[1]=passwordtest[1];
  353.                                    password[2]=passwordtest[2];
  354.                                    password[3]=passwordtest[3];
  355.                                    password[4]=passwordtest[4];
  356.                                    password[5]=passwordtest[5];
  357.                                        EA=0;
  358.                        r_flag=RW24XX(password,6,0x0000,0xa0,M2402);//W
  359.                                        EA=1;
  360.                                        reset();
  361.                                            }
  362.                        break;
  363.             case 9:
  364.                        while(dlms_time<20)
  365.                            {
  366.                         dlms(1);
  367.                             TELA=~TELA;                    
  368.                             }
  369.                        while(dlms_time<25)
  370.                            {
  371.             
  372.                             }
  373.                        while(dlms_time<45)
  374.                            {
  375.                         dlms(1);
  376.                             TELA=~TELA;                    
  377.                             }
  378.                                         TELA=0;
  379.                                         EX1=1;
  380.                                         mode++;
  381.                        break;
  382.             case 10:
  383.                         switch(DTMF)
  384.                                                      {
  385.                                                           case 1:
  386.                                                                if(ring_reset_time<1050)
  387.                                                                      {
  388.                                                                   dlms_time=0;
  389.                                                                       switching=0;
  390.                                                                       LED=0;
  391.                                           while(dlms_time<10)
  392.                                             {
  393.             
  394.                                              }
  395.                                           while(dlms_time<20)
  396.                                             {
  397.                                          dlms(2);
  398.                                              TELA=~TELA;                    
  399.                                              }
  400.                                           while(dlms_time<30)
  401.                                             {
  402.             
  403.                                              }
  404.                                           while(dlms_time<40)
  405.                                             {
  406.                                          dlms(2);
  407.                                              TELA=~TELA;                    
  408.                                              }
  409.                                                           TELA=0;
  410.                                                                       DTMF=255;
  411.                                                                       EX1=1;
  412.                                                                           }
  413.                                                                break;
  414.                                                           case 2:
  415.                                                                if(ring_reset_time<1050)
  416.                                                                      {
  417.                                                                   dlms_time=0;
  418.                                                                   switching=1;
  419.                                                                       LED=1;
  420.                                           while(dlms_time<10)
  421.                                             {
  422.             
  423.                                              }
  424.                                           while(dlms_time<20)
  425.                                             {
  426.                                          dlms(4);
  427.                                              TELA=~TELA;                    
  428.                                              }
  429.                                           while(dlms_time<30)
  430.                                             {
  431.             
  432.                                              }
  433.                                           while(dlms_time<40)
  434.                                             {
  435.                                          dlms(4);
  436.                                              TELA=~TELA;                    
  437.                                              }
  438.                                                           TELA=0;
  439.                                                                       DTMF=255;
  440.                                                                       EX1=1;
  441.                                                                           }
  442.                                                                break;
  443.                                                           case 12:
  444.                                                                reset();
  445.                                                                break;
  446.                                                           }
  447.                                      
  448.                        break;
  449. //--------------------------------------------------------------------//
  450.                     default:;
  451. //--------------------------------------------------------------------//         
  452.                          }
  453.            }
  454. }
  455. void reset(void)
  456. {
  457.                    TEL=0;
  458.                  TELA=0;
  459.          ring_fluctuation=0;
  460.          ring_count=0;
  461.          ring_flag=0;       
  462.          ring_dlsm=0;
  463.          ring_time=0;
  464.          dlms_time=0;
  465.          ring_reset_time=0;
  466.                  key_flag=0;
  467.                  mode=0;
  468.                  EX1=1;
  469.                  DTMF=255;
  470.                  LED=switching;
  471.                  passwordflag=0;
  472.                  passwordtest[0]=255;
  473.                  passwordtest[1]=255;
  474.                  passwordtest[2]=255;
  475.                  passwordtest[3]=255;
  476.                  passwordtest[4]=255;
  477.                  passwordtest[5]=255;
  478.   }
  479. void open(void)
  480. {
  481. if((key==0)&(key_flag==0)&(passwordflag==0))
  482.    {
  483.         dlms_time=0;
  484.     while(dlms_time<2);
  485.         if(key==0)
  486.           {
  487.            reset();
  488.            key_flag=1;
  489.            switching=~switching;
  490.            LED=switching;
  491.            dlms_time=0;
  492.            }
  493.     }
  494. if((key==1)&(dlms_time>10))
  495.    {
  496.             key_flag=0;
  497.     }
  498. }
  499. void dlms(unsigned int x)
  500. {  
  501.         unsigned int i;
  502.         while (x-->0)
  503.         {   
  504.             dog=~dog;
  505.                 for (i=0;i<163;i++)
  506.                     {;}                       
  507.         }
  508. }
  509. //24cxx
  510. //----------------------------------------------START----------------------------------------------//
  511. //enum  eepromtype  {M2401,M2402,M2404,M2408,M2416,M2432,M2464,M24128,M24256};
  512. //extern bit   RW24XX(unsigned char *DataBuff,unsigned char ByteQuantity,unsigned int Address,
  513. //                     unsigned char ControlByte,enum eepromtype EepromType);
  514. //  flag=RW24XX(&x,1,0x0000,0xa0,M24256);//W  24C256
  515. //  flag=RW24XX(&x,1,0x0000,0xa1,M24256);//R  24C256
  516. #include <AT89X55.H>
  517. //#pragma  ot(6,SIZE)
  518. #include <intrins.h>
  519. #define  ERRORCOUNT 10
  520. sbit     SDA=P2^7;//对应硬件
  521. sbit     SCL=P2^6;//对应硬件
  522. enum  eepromtype  {M2401,M2402,M2404,M2408,M2416,M2432,M2464,M24128,M24256};
  523. enum  eepromtype EepromType;
  524. /***********************************************************************************/
  525. //DataBuff为读写数据输入/输出缓冲区的首址
  526. //ByteQuantity 为要读写数据的字节数量
  527. //Address 为EEPROM的片内地址
  528. //ControlByte 为EEPROM的控制字节,具体形式为(1)(0)(1)(0)(A2)(A1)(A0)(R/W),其中R/W=1,
  529. //表示读操作,R/W=0为写操作,A2,A1,A0为EEPROM的页选或片选地址;
  530. //EepromType为枚举变量,需为M2401至M24256中的一种,分别对应24C01至24C256;
  531. //函数返回值为一个位变量,若返回1表示此次操作失效,0表示操作成功;
  532. //ERRORCOUNT为允许最大次数,若出现ERRORCOUNT次操作失效后,则函数中止操作,并返回1
  533. /***********************************************************************************/
  534. extern bit   RW24XX(unsigned char *DataBuff,unsigned char ByteQuantity,unsigned int Address,
  535.                      unsigned char ControlByte,enum eepromtype EepromType)
  536. {
  537. void Delay(unsigned char DelayCount);
  538. void IICStart(void);
  539. void IICStop(void);
  540. bit  IICRecAck(void);
  541. void IICNoAck(void);
  542. void IICAck(void);
  543. unsigned char IICReceiveByte(void);
  544. void IICSendByte(unsigned char sendbyte);
  545. unsigned char data j,i=ERRORCOUNT;
  546. bit      errorflag=1;
  547. while(i--)
  548.    {
  549.    IICStart();
  550.    IICSendByte(ControlByte&0xfe);
  551.    if(IICRecAck())
  552.        continue;
  553.    if(EepromType>M2416)
  554.       {
  555.       IICSendByte((unsigned char)(Address>>8));
  556.       if(IICRecAck())
  557.          continue;
  558.       }
  559.    IICSendByte((unsigned char)Address);
  560.    if(IICRecAck())
  561.        continue;
  562.    if(!(ControlByte&0x01))
  563.       {
  564.       j=ByteQuantity;
  565.       errorflag=0;                      //********clr errorflag
  566.       while(j--)
  567.         {
  568.         IICSendByte(*DataBuff++);
  569.         if(!IICRecAck())
  570.            continue;
  571.         errorflag=1;
  572.         break;
  573.         }
  574.       if(errorflag==1)
  575.         continue;
  576.       break;
  577.       }
  578.    else
  579.      {
  580.      IICStart();
  581.      IICSendByte(ControlByte);
  582.      if(IICRecAck())
  583.        continue;
  584.      while(--ByteQuantity)
  585.        {
  586.        *DataBuff++=IICReceiveByte();
  587.        IICAck();
  588.        }
  589.      *DataBuff=IICReceiveByte();        //read last byte data
  590.      IICNoAck();
  591.      errorflag=0;
  592.      break;
  593.      }
  594.   }
  595. IICStop();
  596. if(!(ControlByte&0x01))
  597.   {
  598.   Delay(255);
  599.   Delay(255);
  600.   Delay(255);
  601.   Delay(255);
  602.   }
  603. return(errorflag);
  604. }
  605. /*****************以下是对IIC总线的操作子程序***/
  606. /*****************启动总线**********************/
  607. void IICStart(void)
  608. {
  609. SCL=0;                  //
  610. SDA=1;
  611. SCL=1;
  612. _nop_();
  613. _nop_();
  614. _nop_();
  615. SDA=0;
  616. _nop_();
  617. _nop_();
  618. _nop_();
  619. _nop_();
  620. SCL=0;
  621. SDA=1;                  //
  622. }
  623. /*****************停止IIC总线****************/
  624. void IICStop(void)
  625. {
  626. SCL=0;
  627. SDA=0;
  628. SCL=1;
  629. _nop_();
  630. _nop_();
  631. _nop_();
  632. SDA=1;
  633. _nop_();
  634. _nop_();
  635. _nop_();
  636. SCL=0;
  637. }
  638. /**************检查应答位*******************/
  639. bit IICRecAck(void)
  640. {
  641. SCL=0;
  642. SDA=1;
  643. SCL=1;
  644. _nop_();
  645. _nop_();
  646. _nop_();
  647. _nop_();
  648. CY=SDA;                 //因为返回值总是放在CY中的
  649. SCL=0;
  650. return(CY);
  651. }
  652. /***************对IIC总线产生应答*******************/
  653. void IICACK(void)
  654. {
  655. SDA=0;
  656. SCL=1;
  657. _nop_();
  658. _nop_();
  659. _nop_();
  660. _nop_();
  661. SCL=0;
  662. _nop_();
  663. SDA=1;
  664. }
  665. /*****************不对IIC总线产生应答***************/
  666. void IICNoAck(void)
  667. {
  668. SDA=1;
  669. SCL=1;
  670. _nop_();
  671. _nop_();
  672. _nop_();
  673. _nop_();
  674. SCL=0;
  675. }
  676. /*******************向IIC总线写数据*********************/
  677. void IICSendByte(unsigned char sendbyte)
  678. {
  679. unsigned char data j=8;
  680. for(;j>0;j--)
  681.    {
  682.    SCL=0;
  683.    sendbyte<<=1;        //无论C51怎样实现这个操作,始终会使CY=sendbyte^7;
  684.    SDA=CY;
  685.    SCL=1;
  686.    }
  687. SCL=0;
  688. }
  689. /**********************从IIC总线上读数据子程序**********/
  690. unsigned char IICReceiveByte(void)
  691. {
  692. register receivebyte,i=8;
  693. SCL=0;
  694. while(i--)
  695.    {
  696.    SCL=1;
  697.    receivebyte=(receivebyte<<1)|SDA;
  698.    SCL=0;
  699.    }
  700. return(receivebyte);
  701. }
  702. /***************一个简单延时程序************************/
  703. void Delay(unsigned char DelayCount)
  704. {
  705. while(DelayCount--);
  706. }
复制代码

作者: 邢远    时间: 2013-9-30 12:38
  1. /*****************************************************************************
  2. *    智能家居控制系统VB上的代码
  3. *    单片机采用AT89S52,晶振频率为:12.00MHz。
  4. /******************************************************************************/  
  5. PC上位机调试程序
  6. Private Declare Function TextToSms Lib "SMSDLL.dll" (ByVal csc As String, ByVal ToNum As String, ByVal smsnr As String, ByVal flash As Integer, ByVal reportit As Integer, ByRef sms_len As Integer, ByVal retSms As String) As Integer
  7. Private Declare Function About Lib "SMSDLL.dll" ()
  8. Private Declare Function SmsToText Lib "SMSDLL.dll" (ByVal sms As String, ByVal csca As String, ByRef caca_len, ByVal ToNum As String, ByRef ToNum_len As Integer, ByVal sendtime As String, ByRef time_len As Integer, ByVal smsnr As String) As Integer
  9. Dim i(6) As Byte 'tl
  10. Dim display() As Byte 'tl
  11. Dim test As Byte 'tl
  12. Dim j As Byte
  13. Private Sub Command1_Click()
  14.    '将信息编码成一条短消息
  15.    Dim s As String
  16.    Dim s1 As String
  17.    Dim s2 As String
  18.    Dim r As Integer
  19.    Dim f As Integer
  20.    Dim sms_len As Integer
  21.    r = CInt(Check1.Value)
  22.    f = CInt(Check2.Value)
  23.    
  24.    Dim rsms As String * 400
  25.    
  26.    If Text3.Text = "" Then
  27.      MsgBox "请输入短消息内容"
  28.      Exit Sub
  29.    End If
  30.    
  31.    'rsms = "11111"
  32.     ret = TextToSms(Text1.Text, Text2.Text, Text3.Text, r, f, sms_len, rsms)
  33.     Text5.Text = "短消息长度:" + CStr(sms_len) & vbCrLf & "PDU内容:" + rsms
  34.     MsgBox "总字数:" & ret & vbCrLf & "短消息长度:" + CStr(sms_len) + vbCrLf & "PDU内容:" & rsms
  35.    
  36. '   Dim i
  37. '   i = 98
  38. '    testit s, s1
  39. '    MsgBox s1
  40. End Sub
  41. Private Sub Command2_Click()
  42. 'About
  43. Dim csca As String * 30
  44. Dim csca_len As Integer
  45. Dim num As String * 30
  46. Dim num_len As Integer
  47. Dim sendtime As String * 30
  48. Dim time_len As Integer
  49. Dim nr As String * 300
  50. Dim nr_len As Integer
  51. Dim i As Integer
  52. i = SmsToText(Text4.Text, csca, csca_len, num, num_len, sendtime, time_len, nr)
  53. MsgBox "返回值:" & i & vbCrLf & "短消息内容:" & Left(nr, i)
  54. End Sub
  55. Private Sub Command3_Click()
  56. End Sub
  57. Private Sub Command4_Click()
  58.   On Error Resume Next
  59.    Dim comm As Integer '端口号
  60.    comm = GetSetting(App.Title, "setting", "Com", 1)
  61.    MSComm1.CommPort = comm
  62.    Dim s As String
  63.    Dim s1 As String
  64.    Dim s2 As String
  65.    Dim r As Integer
  66.    Dim f As Integer
  67.    r = 0
  68.    f = 0
  69.    Dim sms_len As Integer
  70.    If Check1.Value = vbChecked Then
  71.      r = 1
  72.      Else
  73.      r = 0
  74.    End If
  75.     If Check2.Value = vbChecked Then
  76.      f = 1
  77.     ' MsgBox "f=1"
  78.      Else
  79.      f = 0
  80.     End If
  81.    
  82.    
  83.      
  84.    'MsgBox "r= " + r + "  f= " + f
  85.    
  86.    'Exit Sub
  87.    Dim i As Integer
  88.    Dim rsms As String * 400
  89.    
  90.    If Text3.Text = "" Then
  91.      MsgBox "请输入短消息内容"
  92.      Text3.SetFocus
  93.      Exit Sub
  94.    End If
  95.    If Text2.Text = "" Then
  96.      MsgBox "请输入对方手机号码"
  97.      Text2.SetFocus
  98.      Exit Sub
  99.    End If
  100.    'rsms = "11111"
  101.     ret = TextToSms(Text1.Text, Text2.Text, Text3.Text, r, f, sms_len, rsms)
  102.     If ret = 0 Then
  103.       MsgBox ("短消息编码错误")
  104.       Exit Sub
  105.     End If
  106.     Text5.Text = "短消息长度:" + CStr(sms_len) & vbCrLf & "PDU内容:" + rsms
  107.     '开始发送
  108.   Dim time1
  109.   With MSComm1
  110.   If .PortOpen = False Then
  111.     .PortOpen = True
  112.   End If
  113.   If .PortOpen = True Then
  114.      time1 = Now()
  115.      .Output = "at+cmgs=" + CStr(sms_len) + vbCrLf
  116.      s = .Input
  117.      Do Until (InStr(s, ">") > 0 Or DateDiff("S", time1, Now()) > 5)  '5秒钟内是否能检测到>,如果没有检测到则可能没有接TC35modem
  118.        DoEvents
  119.        s = s + .Input
  120.      Loop
  121.      
  122.      If InStr(s, ">") > 0 Then '如果发送接收到>符 则继续发送内容
  123.       s = ""
  124.       .Output = Left(rsms, ret)  '去掉空字符
  125.       DoEvents
  126.       For i = 1 To 100
  127.       '少等片刻.
  128.       DoEvents
  129.       Next
  130.       
  131.       .Output = Chr(26) '发送^Z
  132.       
  133.      ElseIf InStr(UCase(s), "ERROR") > 0 Then '如果发送接收到>符 则继续
  134.        MsgBox "发送出错", vbInformation, "发送出错"
  135.      Else
  136.        MsgBox "TC35 MODEM没有响应,请检查断口是否正确", vbInformation, "发送出错"
  137.       
  138.      End If
  139.      time1 = Now()
  140.      s = .Input
  141.      Do Until (InStr(s, "OK") > 0 Or DateDiff("S", time1, Now()) > 5) '检查是否发送成功
  142.        DoEvents
  143.        s = s + .Input
  144.      Loop
  145.      If InStr(s, "+CMGS:") > 0 Then
  146.      ' MsgBox "报警发送"
  147.      Else
  148.        MsgBox "指定时间内未检测到发送成功标志," + vbCrLf + "发送可能失败,请检查连接状况或网络状态。", vbInformation, "发送出错"
  149.      End If
  150.     .PortOpen = False
  151.   
  152.   
  153.   End If
  154.    
  155.   End With
  156.   Exit Sub
  157. err1:
  158.   
  159.   comm = InputBox("请确认端口号是否正确", "打开端口出错", MSComm1.CommPort)
  160.   MSComm1.CommPort = comm
  161.   SaveSetting App.Title, "setting", "Com", comm
  162.   
  163.   
  164. End Sub
  165. Private Sub Command5_Click()
  166.   Dim comm As Integer
  167.   comm = InputBox("请输入端口号", "设置通信端口", MSComm1.CommPort)
  168.   If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
  169.   MSComm1.CommPort = comm
  170.   SaveSetting App.Title, "setting", "Com", comm
  171. End Sub
  172. Private Sub Form_Load()
  173. Text3_Change
  174. 'Text2.Text = GetSetting(App.Title, "setting", "num", "17000165165123")
  175. End Sub
  176. Private Sub Form_Unload(Cancel As Integer)
  177. SaveSetting App.Title, "setting", "num", Text2.Text
  178. End
  179. End Sub
  180. Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)
  181. End Sub
  182. Private Sub Frame3_DragDrop(Source As Control, X As Single, Y As Single) 'tl
  183. End Sub
  184. Private Sub Label6_Click() 'tl
  185. End Sub
  186. Private Sub Label7_Click()
  187. End Sub
  188. Private Sub MSComm2_OnComm() 'tl
  189. End Sub
  190. Private Sub Text3_Change()
  191. Label5.Caption = "字数 : " & Len(Text3.Text)
  192. End Sub
  193. Private Sub Timer1_Timer() 'tl
  194. Label7.ForeColor = RGB(255, 0, 0)
  195. If MSComm2.PortOpen = False Then
  196.         MSComm2.PortOpen = True
  197.    End If
  198. If MSComm2.InBufferCount > 0 Then
  199.     display = MSComm2.Input
  200.     Label6.Caption = display(0) 'Abs(display(0))
  201.      Label8.Caption = Abs(display(1)) & " " & Abs(display(2)) & " " & Abs(display(3)) & " " & Abs(display(4)) & " " & Abs(display(5)) & " " & Abs(display(6)) & " " & Abs(display(7)) & " " & Abs(display(8)) & " " & Abs(display(9))
  202.     If display(0) = 254 Then
  203.         If display(6) = 0 Then
  204.         Text3.Text = "报警"
  205.             Else
  206.          Text3.Text = "提示"
  207.             End If
  208.             For j = 0 To 9
  209.                display(j) = 0
  210.             Next j
  211.         'Command4_Click
  212.         End If
  213.     End If
  214. End Sub
复制代码

作者: 米香/fw南瓜    时间: 2013-9-30 12:56

作者: tlk214    时间: 2013-9-30 13:04
看看,这个系统做的怎么样!!
作者: δεπφξ    时间: 2013-9-30 13:08
回复可下载
作者: mcwa    时间: 2013-9-30 13:59
好东西要收藏
作者: zhowenhu555    时间: 2013-9-30 20:03
002157465515
作者: 智能家居闫    时间: 2013-10-8 13:59
这是要革命吗
作者: 米香/fw南瓜    时间: 2013-10-21 22:31
{:soso_e191:}{:soso_e191:}
作者: seanliu    时间: 2013-10-23 10:58
顶一个,好东西
作者: soulmate    时间: 2013-10-24 09:16
这都有啊,你牛的,邢总
作者: soulmate    时间: 2013-10-24 09:16
这都有啊,你牛的,邢总
作者: kt79c    时间: 2013-10-27 22:35
新手学习
作者: JustinRamos    时间: 2013-10-28 11:14
我要回复 回复 {:soso_e163:}
作者: pbboby    时间: 2013-10-29 00:06
zhowenhu555 发表于 2013-9-30 20:03
002157465515


作者: 陈仙余    时间: 2013-11-8 17:00
邢总太强大啦。
作者: hisnc.com    时间: 2013-11-8 22:59
感谢分享,楼主高风亮洁。
作者: 赵云鹏    时间: 2013-11-9 18:20
不知道对我的项目有没有帮助,先看看
作者: ghhailang    时间: 2013-11-10 20:21
很想学习学习这个,谢谢楼主分享。。
作者: 六识沉沦    时间: 2013-11-17 11:42
回复  下载
作者: 米香/fw南瓜    时间: 2013-11-19 13:26
学习学习
作者: zengmin    时间: 2013-11-25 21:59
太牛拉 实在是强大 谢拉

作者: 苏州智能    时间: 2013-11-26 16:39
好东西要收藏
作者: 冰红茶    时间: 2013-11-28 22:04
邢总,谢谢分享
作者: luidahua    时间: 2013-11-29 20:16
看起来好复杂的样子
作者: 王开德    时间: 2013-12-26 15:25
学习学习
作者: zjm0668    时间: 2013-12-27 23:05
留下来以后有用
作者: zhanglidong887    时间: 2014-1-3 09:15
好东西  下来学习参考一下
这代码是谁写的啊
作者: 尹琛    时间: 2014-1-20 15:40
thanks very much
作者: xinwen0102    时间: 2014-1-27 14:12
bucuo tinghao de
作者: lizhirou    时间: 2014-1-29 16:25
感谢楼主分享
作者: 578478768    时间: 2014-2-3 12:05
看看,好久没看这么专业的文档了
作者: 居家好男    时间: 2014-2-10 23:33
好东西啊,收藏了
作者: xherofly    时间: 2014-2-21 18:35
怎一个好字了得!
作者: somefuture    时间: 2014-2-22 20:37
下载来看下
作者: 众芳摇落    时间: 2014-2-24 11:28
嗯,和我的课题有些相关
作者: 东风破    时间: 2014-2-24 14:32
好东西   收藏下
作者: David    时间: 2014-2-26 16:41
好东西,要学习
作者: qinghan13    时间: 2014-2-27 08:39
辛苦了啊 邢总
作者: 素还真    时间: 2014-2-27 09:55
啊,谢谢分享!!!!!!
作者: 素还真    时间: 2014-2-27 09:55
啊,谢谢分享!!!!!!
作者: boswell    时间: 2014-2-27 11:35
好东西直接拥有
作者: jcfsxuan    时间: 2014-3-4 10:43
顶礼膜拜
作者: zeroluo    时间: 2014-3-4 12:58

作者: rhine1    时间: 2014-3-4 15:13
回复可下载
作者: bigsino    时间: 2014-3-10 16:12
好资料 学习
作者: 四川绵阳    时间: 2014-3-11 21:24
新手学习中
作者: 单片机    时间: 2014-3-12 12:08
谢谢您的无私分享,致敬,我看自己有什么好的资源,也与大家分享~谢谢您
作者: lover2668    时间: 2014-3-14 10:04
学习 了,收藏
作者: 睡起    时间: 2014-3-21 22:03
好的,我很喜欢 hao de  wo hen xi huan ni
作者: lover2668    时间: 2014-3-29 17:02
gfgf ggfgd sdsd
作者: 飘尘万里    时间: 2014-4-6 23:33
我要下载噢噢噢噢哦哦哦
作者: bigwolf    时间: 2014-4-7 20:48
谢谢您的无私分享,好内容
作者: morleylee    时间: 2014-4-12 15:40
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
作者: morleylee    时间: 2014-4-12 15:40
0000000000000000000000000000000000000000
作者: 自由人    时间: 2014-4-25 23:49
学习学习     
作者: ldiamond    时间: 2014-4-26 16:48
可以下载来学习一下,虽然不做开发
作者: 黑侠    时间: 2014-4-28 11:44
谢谢楼主的无私
作者: 一笑而过    时间: 2014-4-28 12:02
多谢楼主分享
作者: 弋阳游云    时间: 2014-4-29 10:46
好高端~~
作者: 邵家林    时间: 2014-4-29 19:10
这么好的资料 谢谢
作者: 乌龟    时间: 2014-5-4 15:02
这么好的东西   先下载了   哈
作者: liupeng2244    时间: 2014-5-4 21:44

好东西要收藏
作者: 小刀    时间: 2014-5-6 10:15
感觉好专业啊,看看,希望能看懂点
作者: 觐丰智能    时间: 2014-5-9 22:35
这个必须下
作者: Sam-森    时间: 2014-5-10 15:47
好吧。收下学习了。。
作者: 贵州文华    时间: 2014-5-11 14:31
这个是必须的,,
作者: 吸烟    时间: 2014-5-13 09:16
好深奥 完全看不懂的样子- -
作者: ~~LHC:--    时间: 2014-5-14 22:29
新人来报到、,多指教
作者: lxn58    时间: 2014-5-16 07:36
很深奥额,马上下载学习
作者: wang.pj    时间: 2014-5-16 17:17
这个是文档吗,可以下载不!
作者: 1531807736    时间: 2014-5-24 14:21
回复就可以下载啦
作者: そ李伟しovё    时间: 2014-5-24 22:36
分享下。。
作者: chj2615    时间: 2014-5-26 15:49
                              
作者: Johnny    时间: 2014-5-29 13:56
好资料,要学习学习。
作者: wutianyin2010    时间: 2014-5-29 21:19
谢谢分享   很有用哦
作者: ~~LHC:--    时间: 2014-5-31 14:42
受教了,,,
作者: tingfc    时间: 2014-6-1 00:52
学习学习!!!!!!!!!!!!!
作者: 德志科技    时间: 2014-6-3 11:07
你值得拥有
作者: 范明全    时间: 2014-6-3 13:38
好东西    分享一下
作者: 望兰    时间: 2014-6-3 13:40
用土话好他很纠结一天今日推荐人体人体  
作者: soulmate    时间: 2014-6-3 16:00
此贴必火!!!
作者: Adolphus    时间: 2014-6-3 16:42
好东西,果断拿走。。。
作者: JamesData    时间: 2014-6-19 01:03
好东西,学习了!
作者: 德古拉    时间: 2014-6-26 17:53
极品啊!!
作者: ytk1121    时间: 2014-6-26 19:02
太长了吧
作者: lzl20110409    时间: 2014-7-1 10:47
学习学习,学习是一种态度!!
作者: 淉凍    时间: 2014-7-17 22:06
顶顶!!!!!!!!!
作者: E_newboy    时间: 2014-7-18 16:16
好东西,要收藏
作者: 弋阳游云    时间: 2014-7-18 17:48
好厉害
作者: hisnc.com    时间: 2014-7-19 14:50
很好的资料,楼主大爱分享。
作者: 过自己的生活    时间: 2014-7-22 10:45
hen hao ,wo zhuang
作者: LEKU    时间: 2014-7-24 15:11
看看是啥样的 ,学习中
作者: l794565293    时间: 2014-8-7 09:41
好牛呀     
作者: hawk    时间: 2014-8-8 22:59
这个够专业的
作者: rainkingson    时间: 2014-8-12 20:43
学习了,谢谢




欢迎光临 智能家居 (https://bbs.mywll.com/) Powered by Discuz! X3.4