毕业设计论文-基于单片机的定时插座内容摘要:

按键都已经经过编码, 当发射器 拨键开关拨到 ON 档时 ,即有遥控码发出 (可以发送任意数字暂定为发送 0AAH(二进制: 10101010B) ,这种遥控码具有以下特征:采用脉宽调制的串行码, 刚开始发送 38K 码 5ms 来判定发射码开始标志, 以脉宽为 、间隔 、周期为 2ms 的组合表示二进制的 “1”;以脉宽为、间隔 、周期为 2ms 的组合表示二进制的 “0”。 解码的关键是如何识别“ 0”和“ 1” ,从位的定义我们可以发现接收判定“ 0”、“ 1”就是判定每个周期 开始时低电平(注意发射与接收码正好反相)出现时间的长短,如果接收 到键盘 编码调制 LED 解码 解调 光 /电放大 遥控发射器 遥控接收器 12 为 0 的时间为 则为 1,如果接收到 0 的时间为 则接收到的值为 0。 图 10 为红外接收管电路,通过红外遥控即可通过单片机解码红外信号得出对应的键码,执行相应的动作。 图 10 红外接收电路 继电器电路 本设计采用 的是如图 11 所示的 SONGLE SRD05VDCSLC 继电器 ,其参数如图所示。 图 11 5V 继电器 继电器是一种电子控制 器件 ,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制 电路 中,它实际上是用较小的电流去控制较大电流的一种 “自动开关 ”。 故在电路中起着自动调节、安全保护、转换电路等作用 ,实现小电压控制大电压的目的 【 6】。 在本系统中,主要是用于控制插座的开关状态,通过单片机 I/O 输出信号控 制继电器的工作已否从而达到控制插座开关的目的。 同时,为了防止倒流,实验电路中加入了光电耦合器 4N25。 4N25 器件由砷化镓红外发光二极管和硅光电晶体管检测器光电耦合构成,是一种发光二极管与光电晶体管面对面得封装的单回路、内光路光电耦合器,也是一种晶体管输出 6 引脚 DIP 封装光电耦合器。 4N25 光电耦合器 具有体积小、寿命长、无触点、抗干扰性能强等特点,因而是开关电路、逻辑电路、长线传书、模 /数变换、 微控制器 的隔离电路、高压控制、过流保护、电平匹配、线性放大等领域中的首选芯片 【 7】。 其主要性能如下 :  经济型光电耦合器;  晶体管输出光电耦合器;  满足火超过左右 JEDEC 注册规格;  输出集电极电流( Ip=10mA, Vce=10V); 13  CE 饱和电压( Ic=2mA, If=50mA)。 ( typ)。  隔离电压( f=60Hz, t=1); 7500V(交流峰值 );  隔离电阻( V=500V); 10178。 Ω( min);  隔离电容( V=0V, f=1MHz); (typ)。 其功能框图如图 12 所示,引脚图如图 13 所示。 图 12 4N25 功能框图 图 13 4N25 引脚图 基于以上两个主要器件就可以构成控制外部插座的继电器电路,从而实现对外部插座开关的控制。 如图 14 所示,当 给 IO 输入端 输入 1 时光电耦合器导通构成回路,继电器部分处于非工作状态,而输入为 0 时, 光电耦合器不工作,使得继电器部分处于工作状态。 由于单片机初始化是 I/O 输出为高电平,正好可以使外部继电器处于常开开关处,当通过按键或者红外定时到关闭时间时, I/O 输出低电平即可让继电器处于常闭开关处,从而让外部插座可用,这样就能够实现定时设置的智能 开关 功能。 14 图 14 继电器电路 蜂鸣器 电路 图 15 蜂鸣器电路 15 设计中加入了蜂鸣器电路, 如图 15, 一是为了检测是否收到红外信号, 当收到红外信号时蜂鸣器发出轻微的鸣叫, 二是为定时到达时发出短暂蜂鸣以提醒 我们定时插座的开关状态改变了。 同时开关的开关状态也用一个红色 LED 灯反映插座的开关状态,当红灯亮时,插座处于工作状态,反之则不工作。 总体硬件电路及其工作原理 整个定时插座系统由 12V 电 源 通过 7805 稳压模块输出 5V 电源供电。 系统可通过外设四个独立式按键设置两组 24 小 时内的任意开关定时和六组一小时以内的模式定时,分别为10 分钟, 20 分钟, 30 分钟, 40 分钟, 50 分钟, 60 分钟。 任意时间定时模式可以让定时插座在已设置的开启时间工作,而到达定时设置的关闭时间停止工作;模式定时则让插座在设置的模式定时开始时使定时插座工作,到达模式定时的时间,如十分钟时让定时插座停止工作。 同时,定时插座也可以通过红外遥控执行相应的设置, 遥控的电源按键可以随时让定时插座工作与不工作,其数字键 1~6 按键也可以分别设置一小时内的模式定时,工作原理和通过外设按键设置的模式定时一致。 当 未设置任何定时的 时候显示器显示日历,当检测到有 外设 按键 和红外遥控器 按键 按下时执行相应的定时任务。 定时插座的工作状态由红色 LED 显示,在切换工作状态的时刻,蜂鸣器也会发出短暂的响声。 系统电路由前文所述的各硬件电路整合而成如附录 2 的电路原理图所示,单片机由 5V电源输入,开机时各模块分别初始化 开始工作 ,插座的工作与否由继电器控制。 单片机从DS1302 模块中读取计时参数,显示在 LCD1602 液晶显示器上,具体显示为年、月、日、周、时、分、秒, 开始时 继电器电路不工作,红色指示灯不亮,蜂鸣器也不响。 当单片机检测到外接的独立式按键有 键按下 而且进行了任意定时设置时,系统记录 下 定时时间 并 执行定时任务,当到达第一个定时时间时,单片机发出开启信号让继电器电路开始工作,同时红色指示灯亮,蜂鸣器发出短暂鸣叫,待到下一个定时时间时单片机发出一个关闭信号让继电器停止工作,红色指示灯熄灭,同时蜂鸣器再次发出短暂的鸣叫。 而当独立式按键所设置的是固定模式的定时的时候,单片机在定时设置完成时立刻发出开启信号给继电器电路,让继电器工作,指示灯亮,蜂鸣器鸣叫,同时记录下定时关闭的时间,待到计时到定时关闭时间比如20 分钟后,单片机发出关闭信号给继电器关闭继电器,从 而达到关闭插座的目的。 红外遥控处理方面, 当 红外遥控器上有键按下的时候,红外接收管接收红外编码信号,传送给单片机进行解码处理得到对应键码,单片机判断该键码为电源键时 则 发出控制信号控制继电器开启,当再次检测到电源键按下时,执行反动作即关闭继电器。 若 单片机解码得到的键码为数字键 1~6 按键的任何一个时,立刻开启继电器并记录 对应的 定时参数,待到下一个定时时间时发送关闭信号,让继电器停止工作。 整体电路的 实物 连接图如 图 16,其中的排插右边两 列 插座 的内部电路已经过 线路 改装 ,使得一列中的两个插座 内部 电路在同一条线路上,当接 通其中一个插座后,另一个 插座 就构成了可用插座。 16 图 16 整体电路实物连接 17 4. 软 件设计 本 设计中用到的单片机是 STC89C52,为了使编写的程序更加简单明了,采用 C 语言进行编程,用 Keil软件进行编译, STC— ISP软件进行下载。 软件设计部分包括液晶显示程序、 DS1302 计时程序、独立式按键处理程序、红外遥控处理程序等。 由于定时设置是通过独立式按键或者红外遥控器的 1~6 按键进行设置的,程序在按键扫描部分和红外信号的解码部分相对重要。 在检测到被设置了定时任务时,系统要检测是否到 达定时时间,执行相应的动作。 图 17 为主程序的流程图。 图 17 程序流程图 开始 系统初始化 是否 设置定时 执行定时程序 是否到达定时时间 执行相应开关程序 Y N Y N 按键 任意定时 按键 模式定时 遥控 模式定时 Y 18 DS1302 计时程序的编写 DS1302 串行时钟芯片的主要组成部分:移位寄存器控制逻辑、振荡器、实时时钟以及RAM。 为了初始化任何的数据传送,把 RST 置为高电平且把提供地址和命令信息的 8 位装入到移位寄存器中。 数据在 SCLK 的上升沿串行输入。 无论是读周期还是写周期发生,也无论传送 方式是单字节传送还是多字节传送,开始 8位 指定 的 40 个字节中的那个将被访问。 在开始 8个时钟周期把命令字装入 移位寄存器之后, 另外的时钟在读操作时输出数据,在写操作时输入数据。 时钟脉冲的个数在单字节方式下为 8加 8,在多字节方式下为 8加最大可达248的数。 如图 18 为 DS1302 的命令字节 , 每一数据传送由命令字节初始化。 最高位有效位 MSB必须为 1。 如果它是零,禁止写 DS1302,位 6为逻辑 0指定 时钟日历数据;逻辑 1指定 RAM数据。 位 1和 5指定进行输入或输出的特定寄存器。 最低位 LSB 为逻辑 0指定进行写操作;逻辑 1指定进行读操作,命令字节总是从最低 有效为 LSB开始输入。 图 18 DS1302 的命令字节 图 19 所示为 DS1302 的读写时序。 多字节方式下,通过对地址 31 寻址,可以把时钟 /日历或 RAM寄存器规定为多字节方式。 如前所述,位 6规定为时钟或 RAM而位 0规定为读或写,在时钟 /日历寄存器中的地址 9至 31或 RAM寄存器的地址 31不能存储数据,在多字节方式中读或写从地址 0 的位 0 开始。 当以多字节方式写 RAM 时,为了传送 数据不必写所有31字节,不管是否写了全部 31 字节,所写 的每一个字节都将传送至 RAM。 图 19 DS1302 的读写时序 DS1302 总共有 12 个寄存器,其 中的 7 个寄存器分别与日历、时钟相关,存放的数据位为 BCD 码形式。 表 3 为 它的日历、时间寄存器及控制字,其中奇数为读操作,偶数为写操作 【 4】。 19 表 3 寄存器地址和内容 这部分的编程中设置固定模式定时的时候,主要用到的是计时过程中的分的数值变化,执行定时时把分的数值提取出来,在这基础上加上模式定时时间,待到下一个时间到达定时时间时执行相反动作。 LCD1602 显示电路 程序编写 这部分的显示过程主要是显示从 DS1302 读取的日历和时钟数值,同时当检测到独立式按键有键按下时,显示相应的设置菜单 等。 基本操作时序: 读状态:输入 : RS=L,RW=H,E=H 输出: DO~D7=状态字 写状态:输入: RS=L,RW=L,D0~D7=指令码 ,E=高脉冲 输出:无 读数据:输入: RS=H,RW=H,E=H 输出: DO~D7=数据 写数据:输入: RS=H,RW=L,D0~D7=数据 ,E=高脉冲 输出:无 【 8】 图 20 为 LCD1602 的具体读写时序。 写寄存器 读寄存器 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 秒 80H 81H CH 10 秒 秒 分 82H 83H 0 10 分 分 小时 84H 85H 12/24 0 10 时 时 A/P 日 86H 87H 0 0 10 日 日 月 88H 89H 0 0 0 10 月 月 星期 8AH 8BH 0 0 0 0 0 星期 年 8CH 8DH 10 年 年 控制 8EH 8FH WP 0 0 0 0 0 0 0 20 图 20 LCD1602 的读写时序 红外 信号解码及 按键处理程 序 编写 当红外线接收管接收到红外信号时,通过单片机执行相应的程序进行红外信号的解码,具体解码原理前文已详细叙述,解码得到的键码赋值给 key,通过检测 key 的值即可执行相应的动作。 当检测到电源键被按下时 即可执行定时插座的开机与关机;当检测到数字键 1~6按键时则进行相应的模式定时设置,同时开启定时插座,待到下一定时时间关闭定时插座。 具体程序 编写 如下所示 : void Key_Handle(void) //红外按键处理 { switch(key) { case 0x12: P0_1=~P0_1。 P0_2=~P0_2。 key=255。 break。 case 0x01: P0_1=0。 P0_2=0。 flag7=1。 gg[0]=fen+10。 key=255。 break。 case 0x02: P0_1=0。 P0_2=0。 flag8=1。 gg[1]=fen+20。 key=255。 break。 case 0x03: P0_1=0。 P0_2=0。 flag9=1。 gg[2]=fen+30。 key=255。 break。 case 0x04: P0_1=0。 P0_2=0。 flag10=1。 gg[。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。