基于单片机的智能插座的设计含电路图毕业设计论文(42页).doc
-基于单片机的智能插座的设计含电路图毕业设计论文-第 13 页毕 业 论 文(设 计)题 目 基于单片机的智能插座的设计 毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日基于单片机的智能插座的设计 摘要:本文主要描述了一个定时插座的设计与制作。定时插座可以弥补现实生活中普通插座功能的不足,能够通过外设按键设置两组开关定时时段和6组倒计时定时,同时也能够通过红外遥控进行无线控制,使外接电器可以按照一定规律工作,既可以达到智能控制的目的,又在很大程度上起到节能的作用。 关键词:STC89C52;定时;插座;红外;继电器The design of timing socket based on microcontrollerAuthor: Tutor: Abstract: This paper mainly describes the design and production of a timing socket. The timing socket could compensate for the shortage of the common socket .It also could set any timing in a day and six groups of fast timing by the key. At the same time, it could also be remotely controlled by infrared controller, so that home appliances could work on rules. In this way, it can achieve the purpose of being intelligently controlled and will largely save the electric energy.Keywords: STC89C52; Timing; Socket; Infrared; Relay目 录1.绪论11.1 课题研究的背景及意义11.2 课题研究的现状及发展趋势11.3 本文主要研究内容32.方案的提出及论证42.1方案的提出42.2方案的比较52.3方案的确定53.硬件电路设计63.1主控制器及最小系统63.2稳压电源模块93.3时钟电路103.4显示电路123.5控制模块143.6 温度采集模块144.软件设计164.1 DS1302计时程序174.2 LCD1602显示电路程序194.3 DS18B20测温电路程序205.仿真与调试215.1 硬件调试245.2 软件调试245.3 小结256.结束语27参考文献28致谢29附录A 外文文献及翻译附录B 源程序附录C 硬件连接图附录D 实物图1绪论1.1 课题研究的背景及意义随着社会科技的不断进步,各式各样的电子产品已经慢慢融入到了我们的生活,这也就意味着我们需要更多的能源来维持我们的生活正常的进行,但是,这个社会是一个能源逐渐枯竭的社会,节约能源又成为了这个社会的主题。所以,为了解决这样一对矛盾,我们了解到,越来越多的产品有了待机功能,如电视机,电脑,冰箱,空调等家用电器。据调查,我国城市家庭的平均待机能耗,相当于每个家庭每天都在亮着一盏15瓦到30瓦的长明灯。据测算,家电待机能耗占到中国家庭电力消耗的10%以上。而正是由于这种长期的待机状态,使得插座的负荷也越来越大,带来了非常严重的安全隐患。除此之外,也使得电器的寿命大大缩短。因此,在本次设计中我们就要对家庭中普通的插座进行更加智能化的设计,我们利用单片机对继电器的控制来达到控制插座通断的目的,并可以通过外设键盘对插座进行定时设置,使其可以按照我们的意愿定时通断。在定时功能的基础上,加上了测温模块、过载保护和防雷模块。所以此次的设计具有以下意义:1) 节约能源;2) 消除安全隐患;3) 延长家用电器的使用寿命;4) 使人们的生活更加方便,简单。1.2 课题研究的现状及发展趋势现在市场上的220V移动式电源插座大部分功能单一,只能简单的实现电源的通断,小部分可以实现定时,但大都是机械式的,而不能根据使用者的意愿编程设定时间自动通断,有时满足不了人们的需求。智能可编程开关插座则可以实现定时可编程,通过编程定时,自动接通和断开,给人们生活带来很大方便,得到了广泛应用。目前市场上比较好的智能插座有小管家智能插座、科德牌智能插座、POLYHOME智能插座、博联智能插座等等。其中,小管家智能插座采用智能芯片系统及其相关的程序控制软件对电器进行协调控制,智能关机,将待机能耗降为零,以达到安全节能的目的。它可以在电器遥控关机后自动切断电源,遥控开机时,能自动接通电源,从而达到安全、节电的效果。它还具有消除待机能耗、智能化保护功能、避免电磁波辐射、有效防雷击冲击的特点。科德TW-L12采用大屏液晶显示,可以进行定时设定,最小设定时间为1分钟,每天最多可设置20组开与关,每周可设置140组。并且具有模式功能,随时可切换到长通或定时状态。而POLYHOME智能插座是北京博力恒昌科技有限公司生产的智能家居产品之一。它主要的特点是内嵌Zigbee无线接收模块,可以对它进行无线遥控,智能控制一些家用电器,比如开关空调、开关电饭煲等,也可以与普通插座互换。对于比较先进的博联智能插座,它是基于Wi-Fi通讯,可实现任何时间、任何地点通过智能手机随心所欲的控制家中、办公室的电器。随着单片机技术的不断发展,智能插座的功能也在不断的更新。由于单片机具有优异的性能性价比,集成度高、体积小、可靠性高,控制功能强,低电压、低功耗等特点,以及单片机控制电路技术的发展使智能插座具有定时准确、性能稳定、携带方便等优点。因此智能可编程开关插座发展迅速,得到了很广泛的应用。所以,智能插座会朝着微型化、低功耗、无线遥控、语音控制等更加智能数字化的方向发展,让人们的生活更加便捷。再具体说,以后智能插座的发展,在节能的基础上,质量要稳定,插座本身耗能要小,这是发展的必要趋势。同时可加上其他一些功能,像USB接口,这样一来,手机,MP3等电器充电机会更加方便;语音功能,让操作更加方便;也可加上温度测量显示功能,让这个插座实现更多的功能,使得智能插座体积小但功能更强大,携带也更加方便。而目前智能插座的实现方法有机械式定时插座、基于单片机的定时器功能实现插座的智能定时、还有采用现成的智能芯片。机械式定时插座是通过转动刻度盘,来设定定时时间,比如科德TW-A07的22小时倒时定时器;而基于单片机的智能插座是通过用单片机控制继电器的通断来控制插座的开关,即通过单片机编程实现智能定时;而采用智能芯片的节能插座是通过芯片直接感应来实现智能通断电,从而达到消除待机功耗的目的;还有一种比较先进的,基于Wi-Fi通讯,只要家中有无线路由器,插座就会自动寻找网路,用户只需输入上网密码即完成配置,通过智能手机在全球任何地点都可以控制。智能插座有效地解决了待机能耗的问题,从而提高终端用电设备的使用寿命,促进我国节电降耗产品领域的发展。也消除了生活中的很多安全隐患。可达到适用于彩电、电脑、空调等用电领域的较高技术指标与节电能力。而随着技术的不断发展,对智能插座的承受功率不断地增高完善,智能插座除了广泛应用于家用电器外,还会更多的应用到工业领域。1.3 本文主要研究内容在本次设计中我们就要对家庭中普通的插座进行更加智能化的设计,我们利用单片机对继电器的控制来达到控制插座通断的目的,并可以通过外设键盘和红外遥控对插座进行定时设置和温度设置,使其可以按照我们的意愿定时通断。在定时定温功能的基础上,加上了过载保护和防雷模块。2.方案的提出及论证2.1方案的提出方案一:设计一个以单片机STC89C52控制的定时开关插座,能控制一路220V/10A的插座,使其可以在24小时内能预先设定定时范围,每天周而复始地控制用电器具的自动开启和关闭,因为是通过时钟芯片来定时,所以更加准确。同时还能通过红外遥控随时控制插座的开关,从而达到方便、智能、节电的目的。其系统框图如图2.1所示:STC89C527805稳压电源模块继电器模块DS18b20模块DS1302计时模块LCD显示模块按键模块图2.1 基于单片机的智能插座框图方案二:设计一个定时开关,通过拨码开关预置一个时间,再通过计数器倒计时方式进行计数,当到达某一个时间时,发出一个信号,进而来控制电器的工作。具体原理是由555组成秒脉冲发生器,再由CD40192构成一个倒计时的计时器,通过一个拨码开关预设时间,最后数码管显示,蜂鸣器报警。其设计框图如图2.2所示:秒脉冲发生器报警电路控制电路译码器定时器图2.2 数字式定时开关2.2方案的比较方案一和方案二均可实现插座的定时。若用数字电路完成,所设计的电路相对复杂,需要更多的数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,其精度也不如单片机和时钟芯片配合的准确,由于元件较多,焊接过程也会比较复杂,成本也高。而单片机控制更加灵活,功能更加强大,可编程性也更高,因为用单片机主要是软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也相对降低。2.3方案的确定通过上述方案的比较,用单片机进行定时插座的设计比数字电路更加准确灵活,功能更加强大,成本相对更低,硬件复杂性也更小,所以,综合各方面因素,本设计采用方案一。3.硬件电路设计定时插座系统在未设置任何定时的时候显示界面显示时间,通过按键设置可设置在24小时内的两组定时开关时间和六组一小时内的固定模式定时,分别控制插座的开关,从而控制外部电器的工作与否。LCD显示模块DS18b20模块继电器模块按键模块DS1302计时模块7805稳压电源模块STC89C52总体的硬件电路框图如图3.1所示:图3.1 硬件电路框图3.1主控制器及最小系统STC89C52是宏晶公司生产的40引脚双列直插芯片,单片机片内集成512字节程序运行空间、8K字节Flash存储空间支持最大64K外部存储扩展。根据不同的运行速度和功耗的要求,时钟频率可以设置在0-33M之间。片内资源有4组I/O控制端口、3个定时器、8个中断、软件设置低能耗模式、看门狗和断电保护。可以在4V到5.5V宽电压范围内正常工作。具有许多独特的优点,即体积小、重量轻、单一电源、低功耗、功能强、价格低廉、运算速度快、抗干扰能力强、可靠性高等,所以特别适用于实时测控系统,应用领域很广,已成为传统工业技术改造,各类产品跟新换代,实现自动化智能化的理想模型。其内部包含以下功能部件:a.8位CPU; b.振荡器和时钟电路; c.8k字节的程序存储器EPROM; d.256字节的数据存储器RAM; e.可寻址外部存储器和数据存储器各64字节; f.20多个特殊功能寄存器; g.32线并行I/O口; h.一个全双工串行I/O口; i.3个16位定时器/计时器;图3.2 DIP-40封装STC89C52引脚图P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0不具有内部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口。P1输出缓冲器能驱动4个TTL逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。P2口:P2口是一个具有内部上拉电阻的8位双向I/O口。P2输出缓冲器能驱动4个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入口使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。P3 口:P3口是一个具有内部上拉电阻的8位双向I/O口。P3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。单片机最小系统如图3.3所示:图3.3 单片机最小系统仿真图最小系统中包括晶振电路和复位电路,其中复位电路采用手动按键复位,来应对系统在运行过程中发生程序跑飞的情况。复位电路通常分为两种:上电复位(图3.4)和手动复位(图3.5)。 图3.4 上电复位 图3.5 手动复位3.2稳压电源模块本设计用到78L05稳压芯片。设计中的继电器是比较耗电的器件,而且如果电量不足会使得继电器无法工作,因为通过78L05稳压芯片把9V电源稳压输出5V给单片机供电。78LXX系列是三端正电源稳压电路,封装形式为TO-220。 它具有一系列固定的电压输出,应用非常广泛。每种类型由于内部电流的限制,以及过热保护和安全工作区的保护,使它基本不会损坏。如果能提供足够的散热片,它们就能够提供大于1.5A的输出电流。当接入适当的外部器件后就能获得各种不同的电压和电流。如图3.6,78L05具有以下特点:a. 最大输出电流为1.5A;b.输出电压为5V;c.热过载保护; d.短路保护;e.输出晶体管安全工作区保护;1脚:输入 2脚:接地 3脚:输出 图3.6 78L05具体的5V电源电路如下图3.7所示:图3.7 电源电路3.3时钟电路系统采用DS1302作为计时器,从而实现定时插座能在24小时内实现任意时间的可变定时和一小时内的固定模式定时。这样可以使得定时准确,方便,节约系统资源,同时程序编写上也能相对简单。DS1302 是高性能时钟芯片,具有以下特性:实时时钟,可对秒、分、时、日、周、月、以及带闰年补偿的年进行计数;用于高速数据暂存的31*8RAM; 最少引脚的串行I/O; 2.5-5.5V满肚工作范围; 2.5V时耗电小于300nA; 用于时钟或数据读/写的单字节或多字节数据传送; 8引脚DIP或可选的用于表面的8引脚SOIC封装; 简单的3线接口; TTL兼容(VCC=5V); 可选的工业温度范围-40至+85; 在DS1202基础上增加的特点:可选的慢速充电的能力; 用于主电源和备份电源的双电源引脚; 备份电源引脚可用作电池或超容量电容器的输入端; 附加的告诉暂存存储器(7字节)。图3.8为DS1302的芯片引脚图。表3.1为DS1302各引脚的功能。图3.3.1 DS1302的芯片引脚图图3.8 DS1302的芯片引脚图DS1302各个引脚的功能可以通过表3.1表示,其中有主电源、备用电池、振荡器、数据输入/输出端口、复位端口和串行时钟端口。图3.9为本设计中时钟芯片和单片机的连接电路,5、6、7引脚分别接在了单片机的P05、P06、P07口。备用电池采用了3v的纽扣电池。表3.1 DS1302引脚功能引脚号引脚名称功能1VCC2主电源2、3X1、X2振荡器,外接32.768HZ晶振4GND电源地5RST复位6I/O数据输入/输出(双向)7SCLK串行时钟8VCC1后备电源图3.9 DS1302电路图3.4显示电路本设计采用的是LCD1602字符型液晶显示器。LCD液晶显示器是一种低功耗的显示器件,它广泛应用于工业控制、消费电子及便携式电子产品中。它不进省电,而且能够显示大量的信息,如文字、曲线、图形、动画等,其功能比数码管强大得多。 LCD1602液晶显示模块可同时显示16*2即32个字符,内部含有的字符发生存储器里面存储了160个不同的点阵字符图形,包括阿拉伯数字、英文字母的大小写、常用的符号和日文的片假名等,每个字符都有一个固定的代码,比如大小写英文字母的A的代码是01000001B(41H),显示模块在显示A时就把地址41H中的点阵字符图像显示出来,我们就能看到屏幕显示字母A了。表3.2为LCD1602引脚定义:表3.2 LCD1602引脚定义引脚号引脚名电平输入/输出作用1Vss电源地2Vcc电源(+5V)3Vee对比调整电压4RS0/1输入0=输入指令1=输入数据5R/W0/1输入0=向LCD写入指令或数据1=从LCD读取信息6E1,10输入使能信号,1时读取信息,10(下降沿)执行命令7DB00/1输入/输出数据总线line0(最低位)8DB10/1输入/输出数据总线line19DB20/1输入/输出数据总线line210DB30/1输入/输出数据总线line311DB40/1输入/输出数据总线line412DB50/1输入/输出数据总线line513DB60/1输入/输出数据总线line614DB70/1输入/输出数据总线line7(最高位)15A+VccLCD背光电源正极16K接地LCD背光电源负极3.5控制模块本设计采用的是型号为SONGLE SRD-05VDC-SL-C的继电器,5V继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用,实现小电压控制大电压的目的。在本系统中,主要是用于控制插座的开关状态,通过单片机I/O输出信号控制继电器的工作已否从而达到控制插座开关的目的。3.6 温度采集模块DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单、体积小、低功耗、高精度、抗干扰能力强等特点的数字温度传感器。DS1820数字温度计提供9位(二进制)温度读数,指示器件的温度。信息经过单线接口送入DS1820或从DS1820送出,因此从主机CPU到DS1820仅需一条线(和地线)、DS1820的电源可以由数据线本身提供而不需要外部电源。因为每一个DS1820在出厂时已经给定了唯一的序号,因此任意多个DS1820可以存放在同一条单线总线上。这允许在许多不同的地方放置温度敏感器件。DSI820的测量范围从一55到+125增量值为0.5,可在1s(典型值)内把温度变换成数字每一个DS1820包括一个唯一的64位长的序号,该序号值存放在DS1820内部的ROM(只读存贮器)中。开始8位是产品类型编码(DS1820编码均为10H)、接着的48位是每个器件唯一的序号、最后8位是前面56位的CRC(循环冗余校验)码。DS1820中还有用于贮存测得的温度值的两个8位存贮器FAM编号为0号和1号。1号存贮器存放温度值的符号,如果温度为负().则1号存贮器8位全为1,否则全为0。0号存贮器用于存放温度值的补码,LSB(最低位)的“1"表示0.5。将存贮器中的二进制数求补再转换成十进制数并除以2就得到被测温度(-550一125). DS1820的引脚如图3.10所示、每只DS1820都可以设置成两种供电方式.即数据总线供电方式和外部供电方式。采取数据总线供电方式可以节省一根导线,但完成温度测量的时间较长,采取外部供电方式则多用一根导线,但测量速度较快。1.GND:地;2.DQ:数字输入/输出;3.VDD:可选的+5V电源。图3.10 DS18B20的引脚图4.软件设计本设计中用到的单片机是STC89C52,为了使编写的程序更加简单明了,采用C语言进行编程,用Keil软件进行编译,STCISP软件进行下载。 软件设计部分包括液晶显示程序、DS1302计时程序、DS18B20测温程序,独立式按键处理程序等。由于定时设置是通过独立式按键进行设置的,程序在按键扫描部分相对重要。在检测到被设置了定时任务时,系统要检测是否到达定时时间,执行相应的动作。图4.1为主程序流程图:图4.1 主程序流程图4.1 DS1302计时程序的编写DS1302串行时钟芯片的主要组成部分:移位寄存器控制逻辑、振荡器、实时时钟以及RAM。为了初始化任何的数据传送,把RST置为高电平且把提供地址和命令信息的8位装入到移位寄存器中。数据在SCLK的上升沿串行输入。无论是读周期还是写周期发生,也无论传送方式是单字节传送还是多字节传送,开始8位指定的40个字节中的那个将被访问。在开始8个时钟周期把命令字装入移位寄存器之后,另外的时钟在读操作时输出数据,在写操作时输入数据。时钟脉冲的个数在单字节方式下为8加8,在多字节方式下为8加最大可达248的数。DS1302总共有12个寄存器,其中的7个寄存器分别与日历、时钟相关,存放的数据位为BCD码形式。表3为它的日历、时间寄存器及控制字,其中奇数为读操作,偶数为写操作。表4.1为寄存器地址和内容:表4.1 寄存器地址和内容写寄存器读寄存器Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0秒80H81HCH10秒秒分82H83H010分分小时84H85H12/24010A/P时时日86H87H0010日日月88H89H00010月月星期8AH8BH00000星期年8CH8DH10年年控制8EH8FHWP0000000如图4.2为DS1302的命令字节,每一数据传送由命令字节初始化。最高位有效位MSB必须为1。如果它是零,禁止写DS1302,位6为逻辑0指定时钟日历数据;逻辑1指定RAM数据。位1和5指定进行输入或输出的特定寄存器。最低位LSB 为逻辑0指定进行写操作;逻辑1指定进行读操作,命令字节总是从最低有效为LSB开始输入。765432101RAM/CKA4A3A2A1A0RD/W图4.2 DS1302的命令字节如图4.3为1302的程序流程图:图4.3 DS1302实时时间流程图4.2 LCD1602显示电路程序编写这部分的显示过程主要是显示从DS1302读取的日历和时钟数值,从DS18B20读取温度值,同时当检测到独立式按键有键按下时,显示相应的设置菜单等。基本操作时序: 读状态:输入:RS=L,RW=H,E=H 输出:DOD7=状态字 写状态:输入:RS=L,RW=L,D0D7=指令码,E=高脉冲 输出:无 读数据:输入:RS=H,RW=H,E=H 输出:DOD7=数据 写数据:输入:RS=H,RW=L,D0D7=数据,E=高脉冲 输出:无1602显示流程图如图4.4所示:开始初始化读状态写命令读数据写数据返回数据显示图4.4 1602显示流程图4.3 DS18B20显示电路程序编写DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。其设计流程图如图4.5所示。图4.5 温度采集子程序流程图5仿真与调试5.1系统的仿真本次设计仿真调试所用的软件是keil和protues.其中,keil用来编写和调试程序,protues用来搭建原理图并进行仿真。在使用这两个软件时,都遇到了一些问题,例如在使用protues进行原理图绘制的时候,有些器件很难找到,这就会浪费很多时间,所以,最后在网上下载了一个protues元件对照表,这个问题就得到了解决。在使用keil编程的时候,问题主要出在编译时,因为这次设计程序代码比较长,所以在开始编译时,会出错,提示是因为代码太长,开始不知道该怎么办,最后通过百度后才知道是因为安装的keil软件没有破解,破解后问题迎刃而解。图5.1 kell软件应用图(1)点击project,设置一些软件目标选项:图5.2 生成工程项目点击“Project->New project”菜单,出现一个对话框,要求给将要建立的工程起一个名字,你可以在编缉框中输入一个名字,点击“保存”按钮,出现第二个对话框,按要求选择目标器件片。建立新文件并增加到组。分别设置“target1”中的“Target,output,debug”各项,使程序汇编后产生HEX文件。(2)编译,调试系统程序Keil 单片机模拟调试软件内集成了一个文本编辑器,用该文本编辑器可以编辑源程序。在集成开发环境中选择菜单“File New.”、单击对应的工具按钮或者快捷键Ctrl +N 将打开一个新的文本编辑窗口,完成C语言源文件的输入,并且完成源程序向当前工程的添加。然后在集成开发环境中选择菜单“FileSave As.”可以完成文件的第一次存储。注意,C语言源文件的扩展名应该是“.c”,它应该与工程文件存储在同一文件夹之内。在完成文件的第一次存储以后,当对C语言源文件又进行了修改,再次存储文件则应该选择菜单“FileSave”、单击对应的工具按钮或者快捷键Ctrl +S 实现文件的保存。接着的工作需要把C语言源文件加入工程之中。选择工程管理器窗口的子目“Source Group 1”,再单击鼠标右键打开快捷菜单。在快捷菜单中选择“Add File to Group Source Group 1”,加入文件对话框被打开。在这个对话框的“查找范围(I)”下拉列表框中选择存储C语言源文件的文件夹,在“文件类型(T)” 下拉列表框选择“C Source file(*.a*;*.src)”,这时存储的C语言源文件将显示出来。双击要加入的文件名或者选择要加入的文件名再单击“Add”按钮即可完成把C语言源文件加入工程。文件加入以后,加入文件对话框并不消失,更多的文件也可以利用它加入工程。如果不需要加入其它文件,单击“Close”按钮可以关闭加入文件对话框。这时工程管理窗口的文件选项卡中子目录“Source Group 1”下出现一个C语言源文件。 需要注意,当把C语言源文件加入工程但还没有关闭加入文件对话框,这时有可能被误认为文件没有成功地加入工程而再次进行加入操作,系统将显示所需的文件已经加入的提示。在这种情况下,单击提示框中的“确定”按钮,再单击“Close”按钮可以关闭加入文件对话框。(3) 编译源程序,出现错误时,返回上一级对错误更改后重新编译,直到没有错误为止。其中需要注意是一些设置:单片机设置:图5.3 单片机属性设置图其中是需要导入由KEIL软件生成的"*.hex"文件,再是时钟频率为12MHZ。电源的设置:点击Design出现选项点击Configure Power Rails如下图所示的对话框:图5.4 电源设置设置电源为5V。5.1 硬件调试开始时是从面包板上搭接硬件电路,一切顺利,当用洞洞板焊接完成后,1602没有显示时间和温度,检查了很长时间才发现问题,因为使用排母,让18b20插在上面,所以,在插的时候插反了。而时钟也没有显示,所以检查1302是否有问题,检查完才发现1302忘了接地。通过不断地查找问题,然后一个一个解决,最终终于正常工作。继电器部分的电路检查时开始用3节干电池给单片机供电,发现继电器无法工作,检查原因后才知道继电器的供电电压不足,因而用12V转5V的稳压电源时工作正常。5.2 软件调试在软件设计前,先把大致的程序流程理清,然后再分模块调试,将各模块部分的程序先调试可行后再整合到一起,编写主程序。首先是LCD1602显示程序,通过编写过的程序掌握了1602的显示原理及其显示过程用到的指令如清屏,开关显示等。初步设计了显示器需要显示的显示菜单。然后通过独立式按键设置显示菜单,执行相应的功能。因为所有的设置在独立式按键处理上都要实现,使得按键处理程序必须有条不紊的编写,先列好按键处理的大致流程,需要设置的的显示菜单和各个按键按下后必须实现的菜单选项等。有了这些流程后才能在编程过程中减少一些不必要的麻烦。在控制定时方面,开始只是让系统可以通过独立式按键设置一组定时开关时间,后面意识到可设置的定时组数太少,功能过于简单,就再加入了一组定时设置,使系统可以通过独立式按键设置两组定时开关时间。后来再经过多番考虑后发现。定时插座设置时间有时候需要快速定时,如果通过按键设置一定时间段的定时可能比较耗时,于是就加入了固定定时模式,可以在简单的操作中设置一个小时内的6组固定模式定时。因为按键处理这块加入了大部分的设置功能,所以编写过程比较费力,通过反复调试,系统已经可以达到预期的效果。5.3 小结通过一番努力,终于在此次设计中完成了预期设计任务。所设计的定时插座已经可以实现预期功能。该定时插座可以控制一路220V/10A的插座,可以设置在一天24小时内的两组任意定时开关时间和6组一小时内的固定模式定时;还可以通过温度上下限的设置,控制继电器稍的工作状态。定时插座工作时红色指示灯亮,不工作时指示灯不亮。本次设计的定时插座虽然可以实现定时控制一路插座的功能,但是可定时的路数和定时组数仍然不够。现实生活中,随着人们的生活水平不断的提高,家电等用电器具越来越多,单一的一路控制明显不能满足要求。因而,如果在设计时多加入几路的插座控制,而且各路控制互不干扰,各司其职的话,用户只需要将要定时控制的用电器具都插在定时插座上,通过各自的定时设置,就可以使各电器按照人们的习惯有规律地工作,很大程度上方便人们的日常生活。同时,可以给定时插座加上保护措施,如漏电保护开关等,达到安全的目的。另外,本次设计中所使用的红外遥控器基本只能在同一室内控制插座,如果采用无线电遥控器等更加先进的遥控器的话,人们或许就可以在室内的任何地方随时控制家电的开关状态了。再者,设计中的定时插座开关状态变换只是用单一红色指示灯体现,如果可以加入扬声器等反应更加明显的指示,甚至是自动语音指示等比较能引起人们注意的外部设备,会让定时插座变得更加人性化,实用性也更高。6.结束语本次毕业设计基于单片机的定时插座到此就告一段落了,所设计的硬件和软件都可以正常工作,各项设计均达到了设计任务的要求。定时插座已经可以完成一天24小时内的两组定时开关设置和六组一小时内的固定模式定时,还可以通过温度上下限的设置,控制继电器稍的工作状态。同时也可以通过红外遥控一键控制插座开关和设置固定模式定时。设计过程中有喜有忧,但是经过多次反复的问题分析和系统调试,还是解决了各个难题,也使我在设计电路及分析电路问题上学到了很多。而在编程上,通过这次设计,我对C语言编程有了进一步的熟悉,巩固了所学知识。但是,在这过程中,我也发现了自己所学知识的不足,在今后仍需不断努力学习。参考文献1徐伟.智能插座在智能家居系统中的设计和应用J.中国仪器仪表,2010,(10) 2黄界.基于AVR的智能节能插座的设计J.现代电子技术,2010,(12) 3王啸东.智能避雷定时插座的设计J.电工电气,2010,(05) 4张凯.新型数字节能功率分配型智能插座的设计实现J.电子设计应用,2009,(07) 5温铁钝 , 孙键国, 张天宏. 无线遥控智能插座的设计J. 测控技术 , 2003,(10) 6方佩敏. 智能插座DS1213BJ. 今日电子 , 1996,(Z1) 7王宏. 智能节电插座 省电就是省钱J. 现代营销(创富信息版) , 2008,(07) 8杨妤. 打破行业格局 纽曼自创“节电插座”J. 中国品牌与防伪 , 2007,