找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 12759|回复: 4
打印 上一主题 下一主题
收起左侧

基于单片机的智能定时插座设计-精品论文下载

[复制链接]
跳转到指定楼层
楼主
ID:303522 发表于 2018-4-8 11:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关于智能家居的设计使用
题    目: 基于单片机的智能定时插座设计
系               部:         电子科学系              
专    业:                           
姓    名:                           
学    号:                          
指导教师:                           

摘要
随着家用电器的越来越普及和人们生活节奏的加快,人们对电器的依赖性进一步提高,对电器的定时需求也进一步增大。定时开关插座可用于电饭煲、饮水机、电视机、电脑、电动车电池的充电、定时开关电热毯等需要定时供电的场合。定时开关插座的使用能够做到节能、安全、方便等。
本文介绍了一种基于AT89S52单片机的定时开关插座设计方案。该系统是通过AT89S52,实现时钟的24小时制或者100小时制的时钟走时,并通过LCD1602显示出来。继电器的通、断通过单片机控制,通过控制继电器的通断可以达到控制插座通断的目的。
本文首先介绍定时开关插座设计要实现的功能,接着阐述系统电路的设计及原理说明,包括设计方案选择、关键元器件介绍、电路设计说明(包括DS1302的电路、IR1308、18b20、键盘、单片机控制电路、液晶1602显示、继电器工作电路)软件设计流程以及系统的测试。最后总结了定时开关插座设计完成的任务,分析系统的不足并提出了系统的应用展望。
关键词:定时开关 继电器 AT89S52单片机 液晶LCD1602 智能。
目录
引言
1  设计要求及构思
1.1 设计要求
1.2 设计构思
2  设计方案分析确定
2.1 系统框图
2.2 开关的选择
2.3 显示方式选择
2.4 时钟的实现及单片机的选择
2.5 按键控制部分的实现
3  主要元器件原理及其应用
3.1继电器介绍
3.1.1继电器的继电特性
3.1.2 继电器工作原理及特性
3.1.3 继电器主要产品技术参数
3.1.4 继电器的选用
3.2 单片机AT89S52介绍
3.3 时钟DS1302介绍
3.5 DS18B20介绍
3.4 液晶LCD1602介绍
4  系统硬件电路设计
4.1单片机最小系统及液晶显示
4.2 继电器驱动电路
4.3键盘电路
5  系统软件程序设计
6.1 硬件的制作
6.2 调试方案
6.3 硬件电路调试
6.3.1 独立元件的检测
6.3.2 电源电路的调试
6.3.3 单片机最小系统的调试
6.3.4 显示模块的调试
6.3.5 键盘模块的调试
6.3.6 继电器电路的调试
6.4 软件调试
6.5 整体系统调试
7  结论
谢    辞
参考文献
附 录1
附 录2
附 录3

引言
现如今,往往由于某些特殊原因给我们的生活或工作带来一些困扰和遗憾。比如:家中的水塔忘记抽水而造成生活的一时不便;学校的起床广播因值班人员睡过头而推迟广播;家中的鱼缸因太久没有供氧造成鱼儿缺氧死亡;许多球迷或者新闻爱好者因为错过了开机时间而与精彩球赛或者新闻擦肩而过;夏天里风扇的定时时间过短(一般为1个小时),不便于晚上分段定时使用等等。而上面的这些问题都可以通过定时开关插座的定时功能得到解决。
随着电器产品待机能耗的迅速增长,家庭和社会付出了太多的代价,中国节能认证中心对家庭待机能耗做过的调查显示,待机能耗占到家庭电力消耗的10%左右,仅以电视机为例,平均每台电视机的待机能耗是8.07W,按每天待机2小时大约耗电0.016度。定时开关插座能够实现定时给电器供电,在工作时间之外把电器的电源切断,这样就能解决电器的待机损耗,达到节约用电的目的。
定时开关插座是一款能在特定时间段内控制电器通、断电的开关插座。能实现24小时制和100小时制两种时钟走时模式,在24小时制时钟模式,可以实现二组360天内的任意定时,定时时间范围最小为1分钟。本文阐述了定时开关插座的硬件电路设计、软件算法设计, 给出了自动开关插座的设计和定型方案,它可以对家中一些需要在特定时间对电器进行自动断、通电控制,而不需要拔掉插头,减少电器的待机损耗,解决生活中的一些烦恼。
1  设计要求及构思1.1 设计要求
本次设计要求实现一个具有定时、按键设置及控制、定时时间显示等功能的定时开关插座,具体要求及指标如下:
(1)可以设定二组360定时时间值。
(2)设定的定时时间调整范围为:360天内任何时间
(3)具有五个操作按键。
(4)具有日期、星期、时钟、温度显示。
(5)具有7个LED显示不同的状态。
(6)可以通红外遥控控制。

1.2 设计构思
根据题目和设计功能要求,系统的实施方案可以分为以下几个步骤:首先,通过模式(模式0为24小时制,模式1为100小时制)选定时钟的走时方式,作为定时时间的判断标准。然后通过按键设置定时时间分别存储在定时开始数组begin和结束数组end,通过数组的值与时钟的值进行比较,时间在定时数组时间范围内则继电器接通,否则断开。用一个红色发光二极管的亮、灭来指示继电器的通、断的状态。定时智能插座的显示则用LCD来实现。电源部分用220V转换为直流5V给定时开关系统供电。用5个键盘实现时钟、定时的设置及开始/停止等按键设置功能。
2  设计方案分析确定2.1 系统框图


2.2 开关的选择
现代自动控制设备中,都存在一个电子电路——电气电路的互相连接的问题,一方面要是电子电路的控制信号能够控制电气电路的执行元件(电动机、电灯、热水器等),另一方面又要为电子线路的电器电路提供良好的电隔离,以保护电子电路和人身的安全。电子继电器和光耦合器便能起到这一桥梁的作用。下面简要介绍各个方案的特点。
方案一:采用继电器作为控制220V通、断的开关。固态继电器(SSR)与机电继电器相比,是一种没有机械运动,不含运动零件的继电器,但它具有与机电继电器本质上相同的功能。SSR是一种全部由固态电子元件组成的无触点开关元件,他利用电子元器件的点,磁和光特性来完成输入与输出的可靠隔离,利用大功率三极管,功率场效应管,单项可控硅和双向可控硅等器件的开关特性,来达到无触点,无火花地接通和断开被控电路。选用SRD-05VCD-SL-C继电器最大电路可达到10A,即继电器的正常工作范围为0到2200瓦,可以给大部分家用电器供电。
2.3 显示方式选择
在模拟电子和数字电子中,常用显示数据的有数码管和液晶显示器。
方案一:采用LED数码管显示。虽然功耗低,控制简单,但却只能显示数字和一些简单的字符,而且显示信息少,需要较多位的数码管,占用了较多的单片机I/O口,没有较好的人机界面。
2.4 时钟的实现及单片机的选择
时钟的实现可已通过使用时钟芯片或者单片机的定时器实现。下面简要介绍几种方案的特点。单片机仅用于控制继电器、键盘,实现时钟和定时,用51结构的有Atmel的AT89CXX系列、AT89SXX系列、AT89C20系列(20引脚)或STC的所有单片机都可以实现。根据在学校比较流行的学习单片机是AT89SXX系列,而且AT89S52单片机便宜,购买方便,故单片机选用AT89S52单片机。
方案一:时钟通过使用时钟芯片来实现,控制部分通过使用单片机来实现。时钟芯片种类非常多,有内置晶振及充电电池的,也有外置晶振的,现在流行的时钟芯片有DS1302、 DS1307、PCF8485、SB2068等。使用时钟芯片可以得到准确的时钟走时,可用简单的程序实现定时开关插座的定时功能。
方案二:时钟通过单片机的内部定时器来实现时钟。单片机的内部定时器可实现较为精确的时钟走时,定时50毫秒的误差率极小,可达到定时开关插座的使用要求。使用单片机内部定时器可简化硬件电路,可以节省开支,但是编程的难度有所提高。
本次设计的时钟走时用DS1302达到定时开关插座的使用要求,时钟芯片可以使时间更准确,单片机掉电DS1302时钟芯片的时间也会准确,所以选用方案一。
2.5 按键控制部分的实现
时钟时间和定时时间的设置功能可以通过按键来实现。按键的实现可以通过以下两种方案实现:
使用矩阵键盘实现。矩阵键盘可以用较少的I/O口实现多个按键功能,能节省更多的I/O口,利于系统扩展功能。
根据本定时开关插座的设置要求,要用到5个按键。通过两个方案的对比,方案二的实施办法更符合要求。
3  主要元器件原理及其应用
本次设计中主要器件有继电器、51系列单片机AT89S52、LCD1602、5V稳压芯片7805,在介绍系统的硬件设计之前,下面先简要介绍一下这些关键器件的原理及应用。
3.1继电器介绍
继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。
3.1.1继电器的继电特性
继电器的输入信号x从0连续增加达到衔铁开始吸合时的动作值xx,继电器的输出信号立刻继续增大,输出信号y将不再起变化。当输入量x从某一大于xx值下降到xf,继电器开始释放,常开触点断开。我们把继电器的这种特性叫做继电特性,也叫继电器的输入-输出特性。
释放值xf与动作值xx的比值叫做反馈系数,即Kf=xf/xx。
触点上输出的控制功率Pc与线圈吸收的最小功率P0之比叫做继电器的控制系数,即Kc=Pc/P0。
3.1.2 继电器工作原理及特性
(1)电磁继电器的工作原理和特性
电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放。这样吸合、释放,从而达到了在电路中的导通、切断的目的。对于继电器的“常开、常闭”触点,可以这样来区分:继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”。
(2)热敏干簧继电器的工作原理和特性
热敏干簧继电器是一种利用热敏磁性材料检测和控制温度的新型热敏开关。它由感温磁环、恒磁环、干簧管、导热安装片、塑料衬底及其他一些附件组成。热敏干簧继电器不用线圈励磁,而由恒磁环产生的磁力驱动开关动作。恒磁环能否向干簧管提供磁力是由感温磁环的温控特性决定的。
(3)固态继电器(SSR)的工作原理和特性
固态继电器是一种两个接线端为输入端,另外两个接线端为输出端的四端器件,中间采用隔离器件实现输入输出的电隔离。
固态继电器按负载电源类型可分为交流型和直流型。按开关型式可分为常开型和常闭型。按隔离型式可分为混合型、变压器隔离型和光电隔离型,其中以光电隔离型最多。
(4)磁簧继电器
磁簧继电器是以线圈产生磁场将磁簧管发生动作的继电器,为一种线圈传感装置。因此磁簧继电器具有尺寸小、轻量、反应速度快、短跳动时间等特性。
当整块铁磁金属或者其它导磁物质与之靠近的时候发生动作,开通或者闭合电路。由永久磁铁和干簧管组成。永久磁铁、干簧管固定在一个不导磁也不带有磁性的支架上。以永久磁铁的南北极的连线为轴线,这个轴线应该与干簧管的轴线重合或者基本重合。由远及近的调整永久磁铁与干簧管之间的距离,当干簧管刚好发生动作(对于常开的干簧管,变为闭合;对于常闭的干簧管,变为断开)时,将磁铁的位置固定下来。这时,当有整块导磁材料,例如铁板同时靠近磁铁和干簧管时,干簧管会再次发生动作,恢复到没有磁场作用时的状态;当该铁板离开时,干簧管即发生相反方向的动作。磁簧继电器结构坚固,触点为密封状态,耐用性高,可以作为机械设备的位置限制开关,也可以用以探测铁制门、窗等是否在指定位置。
(5)光继电器
光继电器为AC/DC并用的半导体继电器,是发光器件和受光器件一体化的器件。输入侧和输出侧电气性绝缘,但信号可以通过光信号传输。
其特点为寿命为半永久性、微小电流驱动信号、高阻抗绝缘耐压、超小型、光传输、无接点等。主要应用于量测设备、通信设备、保全设备、医疗设备等。
3.1.3 继电器主要产品技术参数
(1)额定工作电压
额定工作电压是指继电器正常工作时线圈所需要的电压,也就是控制电路的控制电压,根据继电器的型号不同,可以是交流电压,也可以是直流电压。
(2)直流电阻
直流电阻是指继电器中线圈的直流电阻,可以通过万能表测量。
(3)吸合电流
吸合电流是指继电器能够产生吸合动作的最小电流。在正常使用时,给定的电流必须略大于吸合电流,这样继电器才能稳定地工作。而对于线圈所加的工作电压,一般不要超过额定工作电压的1.5倍,否则会产生较大的电流而把线圈烧毁。
(4)释放电流
释放电流是指继电器产生释放动作的最大电流。当继电器吸合状态的电流减小到一定程度时,继电器就会恢复到未通电的释放状态。这时的电流远远小于吸合电流。
(5)触点切换电压和电流
触点切换电压和电流是指继电器允许加载的电压和电流。它决定了继电器能控制电压和电流的大小,使用时不能超过此值,否则很容易损坏继电器的触点。
3.1.4 继电器的选用
(1)先了解必要的条件
①控制电路的电源电压,能提供的最大电流;
②被控制电路中的电压和电流;
③被控电路需要几组、什么形式的触点。选用继电器时,一般控制电路的电源电压可作为选用的依据。控制电路应能给继电器提供足够的工作电流,否则继电器吸合是不稳定的。
(2)查阅有关资料确定使用条件后,可查找相关资料,找出需要的继电器的型号和规格号。若手头已有继电器,可依据资料核对是否可以利用。最后考虑尺寸是否合适。
(3)注意器具的容积。若是用于一般用电器,除考虑机箱容积外,小型继电器主要考虑电路板安装布局。对于小型电器,如玩具、遥控装置则应选用超小型继电器产品。
通过上面的性能了解和比较,及考虑的器件的性价比,本设计选择电磁继电器。
3.2 单片机AT89S52介绍
AT89S52单片机片内集成256字节程序运行空间、8K字节Flash存储空间,支持最大64K外部存储扩展。根据不同的运行速度和功耗的要求,时钟频率可以设置在0~33M之间。片内资源有4组I/O控制端口、3个定时器、8个中断、软件设置低能耗模式、看门狗和断电保护。可以在4V到5.5V宽电压范围内正常工作。不断发展的半导体工艺也让该单片机的功耗不断降低。同时,该单片机支持计算机并口下载,简单的数字芯片就可以制成下载线。根据不同场合的要求,这款单片机提供了多种封装,本次设计根据最小系统有时需要更换单片机的具体情况,使用双列直插DIP-40的封装,如图3.1所示。下面对定时开关系统中使用到的管脚进行简单说明。
图3.1 DIP-40封装89S52引脚图
P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0不具有内部上拉电阻。
P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3 口:P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
3.3 时钟DS1302介绍
DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。  
3.3.1 引脚功能及结构   
     DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc>2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK为时钟输入端。 下图为DS1302的引脚功能图:

DS1302封装图
3.3.2 DS1302的控制字节
     DS1302 的控制字如图2所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。

3.3.3 数据输入输出(I/O)  
     在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
3.3.4 DS1302的寄存器   
     DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表1。   
     此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。  
3.3.5 DS1302实时显示时间的硬件

     DS1302与CPU的连接需要三条线,即SCLK(7)、I/O(6)、RST(5)。图3示出DS1302与89C2051的连接图,其中,时钟的显示用LCD。
3.3.6 DS1302与CPU的连接   
     实际上,在调试程序时可以不加电容器,只加一个32.768kHz 的晶振即可。只是选择晶振时,不同的晶振,误差也较大。另外,还可以在上面的电路中加入DS18B20,同时显示实时温度。只要占用CPU一个口线即可。 LCD还可以换成LED,还可以使用北京卫信杰科技发展有限公司生产的10位多功能8段液晶显示模块LCM101,内含看门狗(WDT)/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示RAM,可显示任意字段笔划,具有3-4线串行接口,可与任何单片机、IC接口。功耗低,显示状态时电流为2μA (典型值),省电模式时小于1μA,工作电压为2.4V~3.3V,显示清晰。
3.3.7 调试中问题说明
   DS1302 与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位Write Protect(D7)必须为逻辑0,如果D7=1,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5~D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入), D0=1,指定读操作(输出)。     在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。   
DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,在此方式下可一次性读、写所有的RAM的31个字节。     要特别说明的是备用电源B1,可以用电池或者超级电容器(0.1F以上)。虽然DS1302在主电源掉电后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池。可以用老式电脑主板上的3.6V充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。100 μF就可以保证1小时的正常走时。DS1302在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间。
3.4 红外接收头IR1308介绍
IR1308是用于红外遥控接收的小型一体化接收头,集成红外线的接收、放大、解调,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积各普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输,中心频率38.0kHz。接收器对外只有3个引脚:OUT、GDN、VCC与单片机接口非常方便,其中1脚接电源(+VCC),2脚GND是地线(0),3脚脉冲信号输出。
IR1308红外接收头
IR1308接收原理:红外线接收头把遥控器发送的数据(已调信号)转换成一定格式的控制指令脉冲(调制信号、基带信号),也就是完成红外线的接收、放大、调制,还原成发发射格式(高、低电位刚好相反)的脉冲信号。最后通过解码反脉冲信号转换成数据,从而实现数据的传输。
发射调制信号与接收头输出的脉冲信号比较图
接收解码的关键是如何识别“0”和“1”,从上面位的定义我们发现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为“0.56ms”,“1”为1.68ms,所以必须根据高电平的宽度区别“0”和“1”。如果从0.56ms低电平过后开始延时,0.56ms以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms长一些,但不能超过1.12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右均可。也可以利用两个下降沿的时间长短判定“0”和“1“。
3.5 DS18B20介绍
DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。
3.5.1 DS18B20的特点:
DS18B20 单线数字温度传感器,即“一线器件”,其具有独特的优点:
( 1 )采用单总线的接口方式 与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
( 2 )测量温度范围宽,测量精度高 DS18B20 的测量范围为 -55 ℃ ~+ 125 ℃ ; 在 -10~+ 85°C范围内,精度为 ± 0.5°C 。
( 3 )在使用中不需要任何外围元件。
( 4 )持多点组网功能 多个 DS18B20 可以并联在惟一的单线上,实现多点测温。
( 5 )供电方式灵活 DS18B20 可以通过内部寄生电路从数据线上获取电源。因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而使系统结构更趋简单,可靠性更高。
( 6 )测量参数可配置 DS18B20 的测量分辨率可通过程序设定 9~12 位。
( 7 ) 负压特性电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
( 8 )掉电保护功能 DS18B20 内部含有 EEPROM ,在系统掉电以后,它仍可保存分辨率及报警温度的设定值。
DS18B20 具有体积更小、适用电压更宽、更经济、可选更小的封装方式,更宽的电压适用范围,适合于构建自己的经济的测温系统,因此也就被设计者们所青睐。
3.5.2 DS18B20管脚排列:
1. GND为电源地;
2. DQ为数字信号输入/输出端;
3. VDD为外接供电电源输入端(在寄生电源接线方式时接地)
3.5.3 DS18B20内部构成:
高速暂存存储器由9个字节组成,当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。
温度的低八位数据 0
温度的高八位数据 1
高温阀值 2
低温阀值 3
保留 4
保留 5
计数剩余值 6
每度计数值 7
CRC 校验 8
DS18B20中的温度传感器完成对温度的测量,用16位二进制形式提供,形式表达,其中S为符号位。
例如:
+125℃的数字输出07D0H
(正温度直接把16进制数转成10进制即得到温度值 )
-55℃的数字输出为 FC90H。
(负温度把得到的16进制数取反后加1 再转成10进制数)
3.5.4 DS18B20的工作时序:
初始化时序
主机首先发出一个480-960微秒的低电平脉冲,然后释放总线变为高电平,并在随后的480微秒时间内对总线进行检测,如果有低电平出现说明总线上有器件已做出应答。若无低电平出现一直都是高电平说明总线上无器件应答。
做为从器件的DS18B20在一上电后就一直在检测总线上是否有480-960微秒的低电平出现,如果有,在总线转为高电平后等待15-60微秒后将总线电平拉低60-240微秒做出响应存在脉冲,告诉主机本器件已做好准备。若没有检测到就一直在检测等待。
写操作
写周期最少为60微秒,最长不超过120微秒。写周期一开始做为主机先把总线拉低1微秒表示写周期开始。随后若主机想写0,则继续拉低电平最少60微秒直至写周期结束,然后释放总线为高电平。若主机想写1,在一开始拉低总线电平1微秒后就释放总线为高电平,一直到写周期结束。而做为从机的DS18B20则在检测到总线被拉底后等待15微秒然后从15us到45us开始对总线采样,在采样期内总线为高电平则为1,若采样期内总线为低电平则为0。
读操作
对于读数据操作时序也分为读0时序和读1时序两个过程。读时隙是从主机把单总线拉低之后,在1微秒之后就得释放单总线为高电平,以让DS18B20把数据传输到单总线上。DS18B20在检测到总线被拉低1微秒后,便开始送出数据,若是要送出0就把总线拉为低电平直到读周期结束。若要送出1则释放总线为高电平。主机在一开始拉低总线1微秒后释放总线,然后在包括前面的拉低总线电平1微秒在内的15微秒时间内完成对总线进行采样检测,采样期内总线为低电平则确认为0。采样期内总线为高电平则确认为1。完成一个读时序过程,至少需要60us才能完成
3.4 液晶LCD1602介绍
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。
1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。


字符型液晶显示器实物图
3.4.1 1602LCD的基本参数及引脚功能
1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图:

1602LCD尺寸图
3.4.2 1602LCD主要技术参数
显示容量:16×2个字符
芯片工作电压:4.5—5.5V
工作电流:2.0mA(5.0V)
模块最佳工作电压:5.0V
字符尺寸:2.95×4.35(W×H)mm
引脚功能说明
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表所示:
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
数据
3
VL
液晶显示偏压
11
D4
数据
4
RS
数据/命令选择
12
D5
数据
5
R/W
读/写选择
13
D6
数据
6
E
使能信号
14
D7
数据
7
D0
数据
15
BLA
背光源正极
8
D1
数据
16
BLK
背光源负极

引脚接口说明表
第1脚:VSS为地电源。
第2脚:VDD接5V正电源。
第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。               第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。              第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15脚:背光源正极。
第16脚:背光源负极。
3.3.3 1602LCD的指令说明及时序
1602液晶模块内部的控制器共有11条控制指令,如表所示:
序号
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
1
清显示
0
0
0
0
0
0
0
0
0
1
2
光标返回
0
0
0
0
0
0
0
0
1
*
3
置输入模式
0
0
0
0
0
0
0
1
I/D
S
4
显示开/关控制
0
0
0
0
0
0
1
D
C
B
5
光标或字符移位
0
0
0
0
0
1
S/C
R/L
*
*
6
置功能
0
0
0
0
1
DL
N
F
*
*
7
置字符发生存贮器地址
0
0
0
1
字符发生存贮器地址
8
置数据存贮器地址
0
0
1
显示数据存贮器地址
9
读忙标志或地址
0
1
BF
计数器地址
10
写数到CGRAM或DDRAM)
1
0
要写的数据内容
11
从CGRAM或DDRAM读数
1
1
读出的数据内容

控制命令表
1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)
指令1:清显示,指令码01H,光标复位到地址00H位置。
指令2:光标复位,光标返回到地址00H。
指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。
指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。                指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
指令7:字符发生器RAM地址设置。
指令8:DDRAM地址设置。
指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:写数据。
指令11:读数据。
与HD44780相兼容的芯片时序表如下:
读状态
输入
RS=L,R/W=H,E=H
输出
D0—D7=状态字
写指令
输入
RS=L,R/W=L,D0—D7=指令码,E=高脉冲
输出
读数据
输入
RS=H,R/W=H,E=H
输出
D0—D7=数据
写数据
输入
RS=H,R/W=L,D0—D7=数据,E=高脉冲
输出

基本操作时序表
读写操作时序如下图:

读操作时序

写操作时序
3.3.4  1602LCD的RAM地址映射及标准字库表

液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,下图是1602的内部显示地址。
1602LCD内部显示地址
例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。
在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如图10-58所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”

字符代码与图形对应图
3.3.5 1602LCD的一般初始化(复位)过程
延时15mS
写指令38H(不检测忙信号) 延时5mS
写指令38H(不检测忙信号) 延时5mS
写指令38H(不检测忙信号) 以后每次写指令、读/写数据操作均需要检测忙信号
写指令38H:显示模式设置
写指令08H:显示关闭
写指令01H:显示清屏
写指令06H:显示光标移动设置
写指令0CH:显示开及光标设置
4  系统硬件电路设计
整个系统的硬件设计可以分为四个模块:单片机最小系统及液晶显示、继电器工作电路、键盘电路。单片机AT89S52、继电器、键盘、LCD12232及其他外围电路。单片机最小系统部分是整个系统的智能控制部分,也是整个系统的核心部分。单片机在实现时钟的同时,也负责键盘检测,驱动液晶显示,实现定时功能,并负责控制继电器的通、断,红色指示灯的亮、灭指示继电器的通、断状态。液晶在单片机的控制下显示时钟、定时组别及定时时间的信息。继电器在单片机的控制下实现通、断,从而达到控制插座通、断电的目的。
4.1单片机最小系统及液晶显示
单片机控制电路是整个系统的核心,完成数据处理和控制任务。电路原理图如图4.3所示。
本次设计采用的单片机的型号为AT89S52。单片机晶振为作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。
C1、C2叫负载电容。一般单片机的晶振工作于并联谐振状态,也可以理解为谐振电容的一部分。它是根据晶振厂家提供的晶振要求的负载电容选值的,换句话说,晶振的频率就是在它提供的负载电容下测得的,能最大限度的保证频率值的误差。也能保证温漂等误差。两个电容的取值都是相同的,或者说相差不大,如果相差太大,容易造成谐振的不平衡,容易造成停振或者干脆不起振。P2是单片机的下载口,用于对单片机烧入程序。按键S及其外围电路是实现单片机的硬件复位功能。
P5的管脚与液晶12232的管脚相对应(即作为液晶的底座)。LCD12232可以显示4行,所要显示的信息有:第一个行显示时钟的时(两位)、分(两位)、秒(两位),时、分、秒之间用“:”隔开。在时钟前面显示大写字母“T:0”,其中数字式从0到5可变的,显示的是当前定时的组别。第二行显示的是字母“begin:”,冒号后面显示的是当前定时开始的时(两位)、分(两位),时、分之间用“:”隔开。第三行显示的是字母“stop:”,冒号后面显示的是当前定时结束的时(两位)、分(两位),时、分之间用“:”隔开。第四行仅显示运行模式信息“mod:0”,数字部分可在0和1变化。
图4.3 单片机最小系统及液晶显示
                                                                     
4.2 继电器驱动电路
继电器的驱动电路如图4.4所示。这是典型的继电器驱动电路。单片机是一个弱电器件,一般情况下它们大多工作在5V甚至更低。。驱动电流在mA级以下。而要把它用于一些大功率场合,比如继电器驱动,显然是不行的。所以就要有一个环节来衔接,这个环节就是所谓的“功率驱动”。继电器驱动就是一个典型的、简单的功率驱动环节。
图中三极管8550有两个作用:一个是起放大作用,一个是起开关作用(严格来讲开关作用是放大作用的极限情况)。P1处连接的是单片机的P2.7口。P2.7口给出低电平时,三极管处于导通状态,并起放大作用,这样,继电器就能得到足够的驱动电流来正常工作。当P2.7口给出高电平时,三极管不工作,继电器因没电流通过而不工作。二极管4148起到保护作用。发光二极管用于指示继电器是处于导通状态(灯亮)还是处于断开状态(灯灭)。
图4.4 继电器驱动电路
4.3键盘电路
键盘电路如图4.5所示。使用矩阵键盘能用较少的I/O口实现较多的按键功能。下面为按键实现举例:假设按下的是B/S键进行如下检测(4*4键盘)
先在P2口输出 P2  00011111
低四位行会有变化
unsigned char key()
{
              static unsigned int key_count=0;
              inputkey = P2;
              inputkey |= 0X07;
              inputkey=~inputkey;
              if(inputkey)
              {
                            key_count++;
                            if(key_count>2)
                            {
                                          key_count = 0x00;
                                          inputkey = P2;            
                                          inputkey |= 0X07;
                                          inputkey=~inputkey;
                                          if(inputkey)
                                          {
                                                        inputkey=(inputkey>>4)+(inputkey<<4);
                                                        return(inputkey);            
                                          }
                            }
              }
              return(0);
}
通过此方法,就可以计算出其他的键值,从而实现按键功能。
下面介绍个个按键实现的功能:
定时复位按键:用于实现定时时间归零和继电器复位。
加值键:用于实现日期、星期、时间和定时时间的加值。
选择键:用于实现当前设置右移一位。
减值键:用于实现日期、星期、时间和定时时间的减值。
功能键:用于实现进入修改日期、星期和时间,设定定时时间。
图4.5键盘电路
4.4 DS1302 时钟电路
4.5 DS18B20温度传感器电路
4.6IR1302红外接外头电路
4.7 硬件总电路图
5  系统软件程序设计
在本次设计中,主程序主要是在单片机的控制下,对键盘的输入信息进行存储分析,驱动液晶显示出相关信息,并通过对比分析定时时间与时钟,控制继电器的通、断,从而达到控制插座的通、断电。在这个过程中,单片机首先进行初始化,包括设置单片机各个端口的方向,各个变量的初始化,液晶显示初始化、继电器断开以及单片机振荡频率的校准等。单片机每分钟对定时时间和时钟进行一次比较,当设定时间到,断电器接通,反之断电一直处于断开状态。其具体的源程序见附录2。整个系统软件设计的流程图如图5.1所示。

主程序软件流程图
5.2时钟DS1302程序设计
时钟程序软件流程
5.3 IR1308程序设计

红外接收解码流程图

5.4 DS18B20温度传器程序设计

6  系统软硬件的制作与调试
6.1 硬件的制作
电路设计软件Protel是目前国内最流行的通用CAD软件,它是将电路原理图设计、PCB板图设计、电路仿真和PLD设计等多个实用工具软件组合后构成的CAD工作平台。
本设计是首先在Protel软件上画好单片机最小系统、液晶与单片机连接电路、继电器的外围电路及与单片机的链接电路、键盘与单片机的连接电路、等的原理图,然后对原理图进行仿真,仿真无误后生成网络表后装载到PCB环境中生成需要的PCB。其中,单片机控制继电器部分为了确保其在实际应用的准确性,首先在万用板上焊接好继电器电路,并接上插座后对其进行验证,证明使用本电路能正常工作后,然后焊接元器件,完成了定时快关插座的硬件电路板的制作。
6.2 调试方案
根据电路原理图、把电路板实物做出来后,下一步就是电路板调试。电路板调试是最关键的一步,前面所做的电路设计的成功与否就是在调试步骤里体现的。本系统的调试主要分为硬件调试、软件调试和接负载调试等三大部分。
经过初步对定时器的分析设计后,在制作硬件电路的同时,调试也在穿插进行。这样有利于问题的分析和解决,不会造成问题的积累,而且不会因为一个小问题而影响整体电路的检查,从而可以节约大量的调试时间。例如当单片机控制模块硬件部分制作好后,就可以先调试显示程序,在LCD1602上显示一个简单的数字0,显示结果正确了,说明LCD显示电路与单片机的连接电路是正确的,单片机能正常工作。软件编程中,首先完成单元功能模块的调试,然后进行系统的调试,调试的整体思想和步骤和硬件大同小异。插座接负载调试是最重要的一部分,虽然软硬件调试都通过了,但是插座接负载调试过程中可能会出现新的问题。
6.3 硬件电路调试
硬件单元电路制作好后,在上电之前,应该先用万用表对各个独立元件进行检查,在排除了虚焊、短路、断路等问题后再通电进行电路功能的调试。具体调试过程如下所述:
6.3.1 独立元件的检测
任何组装好的电子电路,在通电调试之前,必须认真检查电路连线是否有误。检查的方法是对照电路图,按一定的顺序逐级对应检查,例如:对电路板的电阻阻值进行确定,可以通过读取电阻上的色环进行确认。特别是注意电源是否接错,电源与地是否有短接,集成电路和晶体管的引脚是否接错,轻轻拨一拨元器件,观察焊点是否牢固等。用万用表检测是不是有短路和断路现象。
给系统上电后,看下电源(绿色)灯亮不亮。假如不亮,就要检查电源指示灯发光二极管的好坏。还要用万用表测一下单片机等芯片的电压是不是符合要求。假如不是,就要进行各个芯片的检查,看一下各个芯片的引脚有没有焊好,芯片是否损坏。
6.3.2 电源电路的调试
电源电路作为整个系统的供电电路,其输出电压必须在单片机的正常工作电压范围(4V到5.5V之间)内。在电源通220V交流电之前,一定要检查电路是否接错,特别是极性电容是否有接反,防止出现极性电容接反而造成爆电容的现象。在确保器件接法无误的情况下,接通电源,并用万用表测量输出电压,得到其电压为5.3V。符合系统的正常工作电压要求。接上干电池,断开交流电,由于干电池是经过4007二极管后再给系统供电,4007二极管的压降为0.7V,测量得到新电池状态下输出电压为5.4V,达到系统正常工作电压要求。然后再用两部分电源同时供电,由于干电池部分有4007二极管保护,不会出现干电池在电压低于5V时会损耗功率的情况,实现了其储备电源的作用。
6.3.3 单片机最小系统的调试
单片机AT89S52最小系统的检测分为硬件调试及软件调试。硬件调试时用万用表测量单片机的工作电压及各个管脚的电压是否达到正常工作电压。在此检测中还要烧入程序对各个I/O口的输出进行测试,查看I/O口所输出的电压是否与程序所控制值一致。例如:编写一个调试程序,使的所有I/O口从P1.0口开始依次赋予低电平,用万用表测量其输出电压,确定是否与程序所付值一致,一致则证明正确;然后又对其依次赋予高电平,确定是否与程序所付值一致,一致则证明正确。两次测试都正确,证明单片机最小系统是正常工作的。
6.3.4 显示模块的调试
显示模块硬件连接相对比较简单,检查与调试过程中也没有遇到什么困难。这次设计中,结果用LCD1602来显示。在给系统上电后,要观察LCD的亮度,为了减少功耗,LCD1602的背景灯的接地管脚同过I/O口P2.0的高低电平实现灭亮的要求,这种接法其背光灯会较暗,但是能够满足其在白天和夜晚都可以看清楚显示内容的要求。
6.3.5 键盘模块的调试
键盘是用7个按键盘实现。在硬件检测时,首先用万用表检测每个按键之间的链接是否有断线的情况,若是有断线,查出后可以使用熔化后的焊锡将线接通。然后再看每个按键按下时反馈回单片机的电平是否与预期的一致,若不一致这要看原理图是否有错,在画PCB时是否有错,然后再查看线路是否有断线情况。在检测键盘过程中,因为存在连线不好的情况,其中一个按键的功能有时候能实现,有时候不能实现。经检查排除后,发现是与此按键相连的一条线被腐蚀是过度了,造成接触不良,用焊锡加固后解决了此问题。
6.3.6 继电器电路的调试
继电器的外围电路硬件检测的工作最为简单,首先是测出三极管8550在给出工作电平时它的各个管脚的电压值,然后看看是否工作在放大状态。三极管工作在放大状态,就能给继电器提供足够的电流,从而驱动继电器工作。
通过对定时开关插座的硬件制作与调试,系统的实物图如附录3所示。
6.4 软件调试
软件的调试包括程序本身语法的调试和在电路板上功能的调试两种。在编程过程中,为了得到满足要求的用户程序,一般都需要有一个对程序的调试过程,甚至需要经过多次反复的调试才能完成。在调试程序前为了调试方便,避免程序出错时将单片机拆来拆去的麻烦,在电路板上做了一个下载口,可以将下载线直接插到电路板上进行调试,这样就可以一边进行调试,一边修改程序。程序用Keil C软件写好后,先用该软件的编译功能编译一下所写的程序,检查程序是有语法错误或其他的错误。如果有错误则根据提示进行分析将错误改过来直至编译成功为止。当完成了语法调试后,再根据定时开关插座设计的功能要求修改程序完成系统的各个功能。在编写程序的时候一定要根据系统实现的功能和连接方式,认真分析,画出系统主程序、时钟程序、设置程序的流程图,并根据画出的流程图一步一步的去写出程序。
根据系统的特点,软件系统应该按模块进行调试,当各个模块调试通过后再将各个模块整合起来,进行综合调试,直到得到预期结果。软件模块大致可以分为四部分:LCD1602显示模块、时钟模块、按键设置模块、继电器控制模块。在这四个模块中,调试的顺序比较固定:首先调试显示模块,因为只有显示正确后,才能够显示按键操作结果及时钟信息,以便和预期结果比较看是否正确。接着调试时钟程序,然后调试按键模块,最后调试继电器控制模块。
与纯粹的C语言编程不同的是,单片机编程要考虑到硬件的设计,所有程序的编写都是根据硬件资源进行。开始程序下载到单片机的时候,液晶没有显示,在排除了程序语法错误和板子虚焊等原因后,还是没有显示,经过仔细检查发现,原来是软件编写中把单片机和液晶接线的引脚定义错了,改正后即得到了显示结果。在键盘扫描时,在编译过程中没有错误,但是因为其中三个按键的键值计算错误,在按键按下时没有反应到液晶显示上,然后重新计算出正确的键值后即得到预期结果。
6.5 整体系统调试
定时开关插座的硬件模块和软件模块分别调试通过后,接下来就可以进行系统的整体测试。在刚开始的时候也遇到了一些问题。在定时方面,单组定时都能在规定的时间内开始和结束,但是当多组定时有重叠的部分时,由于考虑不周全,在一组结束时继电器会闪一下,这样会造成插座供电也会闪一下。这种状况很容易将负载损坏,最起码会对负载造成伤害。为了解决这个问题,我用了一个中间变量ray来解决定时时间有重叠时的闪烁问题。首先对ray进行归零,在判定定时开始和结束时,每组定时开始都对ray的进行加1操作,结束时对ray进行减1操作,然后通过判断ray的值来控制继电器。当ray为非0值时,继电器导通,当ray为0值时继电器断开。这样,就能避免再有定时叠加时组别之间交接时出继电器闪烁的问题。
对定时开关插座进行负载调试时,负载所接的是额定功率为40W的风扇,并在一天24小时中的每一个小时对6定时进行测试。首先是每组定时时间范围为1分钟,定时组别之间的时间间隔也为一分钟。在设定时间内,都能准确的对插座上的风扇进行通电和断电的操作。然后对每组定时时间范围分别设为10分钟,定时开关插座也能实现对风扇在定时时间范围内供电,其他时间则停止(供电)的操作。接着分别对6组定时分别进行各种时间范围的测试,其中包括定时组别的定时时间又交集的情况。例如,要在定时组别1中定时,要求在每天的13时插座断电、14时插座供电,则可在开始时间数组begin中输入13:00,在结束时间数组end中输入14:00。在定时组别的定时时间有交集时,定时开关插座在两组时间的开始和结束的转换过程中插座供电不会出现跳变,从而不会对电器(风扇)产生影响,达到了设计时要求如果两个或两个以上的定时时间交集时继电器不会出现快速通、断的情况,即不会出现插座供电跳变的情况。
继电器正常工作允许通过的最大电流是10A,额定工作电压为220V,即允许通过的功率为2200W。但是负载的功率过大会影响到系统的运行。通过测试,系统能承受的最大功率为1500W。当插座的负载在超过1500W(由于缺少设备,所以是用40W的风扇、550W的热水器、1500W和1800W的热得快进行测试的)时,继电器在跳变时会造成单片机重启,影响了系统的正常工作。
7  结论
本次毕业设计是一个基于单片机AT89S52的定时开关插座,包括方案选择、软硬件设计、单片机最小系统、继电器驱动电路和键盘电路调试、硬件测试结果及解决在电路调试时遇到的问题。在此期间主要完成的工作包括以下几个方面:
(1)设计初期收集继电器、单片机等相关资料,对定时开关插座的实现原理有比较清晰的了解。
(2)确定系统框图,对电源模块、单片机最小系统模块、键盘电路模块和继电器及其驱动电路模块等的实施方案进行比较,确定最终的定时开关插座的设计方案。
(3)根据定时开关插座的原理图制作出硬件电路板,并对系统进行空载调试和接负载调试。
(4)根据系统要实现的定时和时钟走时等功能编写出软件程序,并进行定时功能的调试及数据采集分析。
(5)软硬件调试通过后进行整体调试,并查找定时开关插座系统存在的缺陷,进行定时功能的完善。
(6)最终系统定时组别可以达到二组,定时时间范围根据模式的不同可以分为24小时内任意时间(最小定时范围为一分钟)和100小时没任意时间(最小定时范围为一分钟)两种定时方式。
本次设计完成了一款定时开关插座系统。该系统采用51单片机AT89S52编程控制继电器的通、断来实现控制插座的通、断电,而继电器的通、断由定时组别确定。在定时范围内继电器导通,否则断开。并用LCD12232显示出时钟及定时时间等信息。
当时钟走到定时开始时间时,继电器接通,插座给负载供电;时钟走到定时结束时间时,继电器断开,插座停止给负载供电。总的来说,本次设计还是比较成功的,各项指标都符合设计要求。由于毕业设计经费有限及有的元器件比较难购买到,故定时开关插座系统存在一定的缺陷,可以做进一步的完善:例如可以用一个按键实现多个功能,这样子按键数目就会大大减少,减小系统的体积。电源部分可以用高频磁芯代替变压器,这样设计出来的电源重量及体积会更小,能使电源模块更加小巧玲珑,从而减小整个系统的重量及体积,便于使用等等。
本次设计的定时开关插座自动化程度较高,符合定时开关插座的发展方向。系统适用于日常家庭电器供电,如:给电风扇定时供电,给水塔定时抽水等等,具有较高的实用价值。系统中的定时组数经简单改造后能增加组数,继电器改用能承受更大的电流的继电器或者光耦合器,能使定时开关的应用更广,具有一定的应用前景。
   
本毕业设计是在薛老师悉心的关怀与指导下完成,在此对老师献上最衷心地感谢。李老师从毕业设计一开始就对我们严格要求,每周的周一都会和我们开见面会,询问我们的毕设进度并了解我们遇到的困难,积极协助我们解决设计过程中的各种难题,并要求我们每天记录在毕业设计中所作的工作进度及遇到的问题,让我们去发现问题,解决问题。在我遇到难已解决的问题心中急躁时,薛老师总是及时的给予鼓励,使我能够有勇敢的克服困难,把毕设继续进行下去。薛老师对学生的高度关注和对工作高度负责的精神值得我们尊敬,也是我今后走向工作岗位的榜样。通过本次毕业设计,我不仅是对我们所学知识的一个汇总,同时也是考验我们学习能力和动手能力的一个平台;让我们能学到更多的相关知识,更重要的是学到了面对困难的不放弃、不气馁的态度,不骄不躁的办事风格,奋发向上的精神,这些在我今后的生活和学习中都是一笔宝贵的财富。
最后,我要再次感谢在毕业设计过程中对我提供过制作电路板等工具的同学和老师,以及在毕业设计中对我进行过知道的所有老师和同学。
参考文献
[1]  王港元.电子技能基础基础[M].成都:四川大学出版社,2001.                        
[2]  白驹珩,雷晓平.单片计算机及其应用[M].北京:高等教育出版社,2004.
[3]  范风强,兰娟丽.单片机语言C51应用实战集锦[M].北京:电子工业出版社,2005.
[4]  沈红卫.基于单片机的只能系统设计与实现[M].北京:电子工业出版社,2005.
[5]  马忠梅,张凯.单片机的C语言应用程序设计[M]. 北京:航空航天大学出版社,2003.
[6]  汪德彪,郭杰.MCS-51单片机原理及接口技术[M].北京:电子工业出版社,2003.
[7]  张晓光.用PIC单片机制作的电源定时插座[J]. 电子制作2010年05期.
[8]  雷道仲,李书成,罗政球 .基于单片机定时开关的设计[J].科技广场,2009.
[9]  罗冬,赵海刚等.基于单片机的红外遥控定时开关装置的设计[J].机电工程技术 2010年第39卷第03期.
[10]  谭浩强.C语言程序设计[M].北京:清华大学出版社,2005.
[11]  康华光,陈大钦.电子技术基础模电部分[M].北京:高等教育出版社,2006.
[12]  戴佳,戴卫恒,刘博文.51单片机实例精讲[M].北京:电子工业出版社,2008.
[13]  李瀚荪.电路分析基础[M].北京:高等教育出版社,2006.
[14]  刘昌华,易逵.8051单片机C语言应用程序设计与实践[M].北京:国防工业出版社,2007.
1
单片机AT89S52最小系统及液晶12232接入电路原理图
Header20是液晶12232的插座,其中管脚编号与液晶管脚编号一致。
键盘电路原理图
继电器驱动电路


完整的Word格式文档51黑下载地址:
智能定时插座毕业论文.doc (4.69 MB, 下载次数: 57)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:150219 发表于 2018-4-17 23:07 | 只看该作者
感谢fenxiang
回复

使用道具 举报

板凳
ID:243748 发表于 2018-6-16 17:38 来自手机 | 只看该作者
有程序一起分享下吗
回复

使用道具 举报

地板
ID:386381 发表于 2018-10-3 04:13 来自手机 | 只看该作者
有头没有尾,只有思路,没有程序望梅止渴的感觉。
回复

使用道具 举报

5#
ID:155956 发表于 2019-3-25 17:16 | 只看该作者
感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表