基于红外遥控的门禁系统.doc_第1页
基于红外遥控的门禁系统.doc_第2页
免费预览已结束,剩余11页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电子设计大赛之“duang片机,给生活加特技”题目:红外遥控开门 红外遥控开门一、选题背景华工北校宿舍的们是没有外置门把的,每次同学来敲门都要走到门口开房门,非常麻烦,如果出门忘记带钥匙就没办法从外面打开门。因此,使用红外遥控开门就能很方便实现门的自动开启。本课题要求使用红外遥控器控制来控制步进电机的转动,从而达到开门效果。通过51单片机设定密码锁,并对红外遥控器的信号进行解码,输入正确密码时可以开锁。主要是需要实现单片机最小电路的设计,红外接收电路的设计,步进电机驱动电路的设计以及液晶显示模块的电路设计等。二、方案论证2.1设计题目要求 制作红外遥控开门装置,使得开关门可以通过红外遥控器控制步进电机转动来控制。(1) 当用上遥控器上锁后,需输入相应的开门密码,单片机判断后,若正确,蜂鸣器发出“滴滴”,代表开门,若错误,蜂鸣器发出较快的“滴滴滴滴”。(2) 在下次用遥控器上锁之前,直接按开门键即可开门。(3) 单片机断电之后,所设密码不会丢失。(4) 实现修改密码功能:以原密码修改旧密码,或者有更高层的密码可直接修改旧密码(类似于安全码)。(5) 平时不用时,单片机处于休眠模式(降低功耗),但接收到遥控器的消息后,单片机进入工作模式。2.2方案设计与论证2.2.1设计思路单片机最小系统部分:设计使单片机运行起来的最小系统,控制外围电路;红外信号解码部分:设计红外接收电路,与单片机连接,并编写解码程序利用单片机对红外信号进行解码;显示部分:设计液晶与单片机连接的接口电路,编写控制液晶显示的程序,将开门过程的信息实时显示在液晶屏上;报警部分:由单片机控制外围的蜂鸣器,当密码输入正确是,输出方波使其发出“滴滴”声,输入错误时,则发出较快“滴滴滴滴”;电机驱动部分:设计步进电机驱动电路,当按下开门键时,由单片机控制其转;信息保存部分:利用单片机内部自带的eeprom,将密码实时写入eeprom中,重新执行程序时从eeprom中读取密码数据,实现掉电保存。2.2.2设计方案论证与比较(1)红外遥控电路:方案一:使用红外发射管与红外接收管组合红外发射管与接收管组合硬件电路简单,制作简便;但是需要外加电路对信号进行调制,增加按键电路,同时接收效率不高,难以实现题目要求方案二:使用红外遥控器与红外一体接收管1838红外遥控器内置调制电路,按下某个按键即发射出特定的调制信号,信号稳定,且传输效率高;红外一体接收管1838对红外遥控器发射的信号进行解调,并转换为数字信号输出到输出管脚,利用单片机可以很方便地对信号进行解码,同时外围电路设计简单。综上所述,选择方案二。(2)显示模块方案一:使用lcd12864液晶进行显示lcd12864是一款常用的中文图形点阵液晶,128x64点阵,内含中文字库,可以显示scaii码跟中文,同时,硬件电路简单,支持并行与串行操作时序,当使用串行操作时,只需要少量io口便能进行控制,由单片机进行控制时需要遵守读写时序,能比较详细显示程序运行过程的信息。方案二:是用移位寄存器74hc595与数码管配合显示74hc595是一种8位串行输入,8位串行输入或并行输出的三态移位寄存器,利用74hc595可以大量节省单片机的io口资源,实现对外数据的传输;数码管是多个发光二极管组成的“8”字形器件,通过8根管脚来控制内部对应二极管的亮与灭。但是数码管只能显示数字,且外围接口电路复杂,显示多位数字时需要不停进行动态扫描,显示效果单一。综上所述,选择方案一。(3)掉电保存模块方案一:使用at24c02作为外部romat24c02是一个串行的e2prom,内部含256个8位字节,通过i2c总线进行操作,数据保密性好,能保存100年,操作简便,外部接口电路简单,需要遵守i2c协议与单片机进行通讯,能对单片机数据进行保存。方案二:使用stc12c5a60s2内部自带的e2promstc12c5a60s2将内部的data flash当做e2prom,擦写次数达10万次以上,并且内部拥有相应的控制寄存器,可以很方便对程序执行过程中的数据进行保存,执行速度快,指令操作简单,不需要添加外围元件即能实现对数据的保存。综上所述,选择方案二。红外遥控器发射信号2.3方案框图红外信号接收电路单片机最小系统内部信息比较过程液晶显示部分密码正确密码错误提示铃响,电机转动报警三、硬件电路论述3.1最小系统电路图1 单片机最小系统电路51单片机是一块芯片,单独时没办法进行工作。使得单片机能顺利工作的最少外围电路合称为最小系统,包括电源滤波模块,复位电路模块,时钟电路模块等。3.1.1滤波电路由于平时使用的5v电源并不是完全是直流成分,其中还包含了交流信号部分,为了剔除这部分噪声,在电源正极与负极之间并联了两个电容,其中104小电容可滤除高频信号,10uf电容可滤除低频信号,保证了流入单片机的电流基本上为直流电。此外,在滤波电路旁并联一个led,作为电源指示灯。其中1k电阻起到限流作用,防止led被烧毁。3.1.2复位电路 图2 滤波电路程序在运行过程中,难免会发生错误,导致程序失控。此时通过一个复位按钮让程序从头开始执行,就能有效解决这个问题。51单片机有一个专门的复位管脚,当给管脚送一个高电平时,单片机就能复位,从头开始执行程序。当电路稳定时,由于电容的隔直作用,rst引脚通过10k电阻接到低电平,不发生复位。当按下按键开关时,rst引脚瞬间变为高电平,芯片复位。3.1.3时钟电路 图3 复位电路51单片机工作的时候需要一个精准的时钟信号,根据这个信号执行指令,通过外接一个晶振与两个电容,与内部电路构成一个振荡器为芯片提供一个高频的时钟信号。其中,晶振的频率决定了单片机工作速度的快慢。图4 时钟电路3.2红外接收电路 图5 红外接收电路红外一体接收头1838将红外遥控器发射的红外信号进行解调生成数字信号,并通过输出引脚out输出到单片机中。3.3液晶显示电路lcd12864第三管脚用于设置对比度,通过改变10k电位器103的阻值就能实现对比度调节。psb为时序选择端,接高电平时选择串行操作时序。rst为复位脚,低电平有效,此项目不需要复位功能,故接高电平。19与20 引脚分别是背光灯的正负极,正极的供电通过三极管9012来控制供电,单片机控制bg_vcc输出0时,三极管导通给背光灯供电,输出1时三极管截至,背光灯熄灭。cs,sid,clk则为液晶的控制引脚,直接由单片机io口控制;cs为串行片选信号,置高电平选中芯片;sid为数据口,通过该管脚接受单片机的数据与指令;clk为串行时钟,时钟信号由单片机产生。 图6 液晶接口电路 控制时需要严格遵守时序图,串行时序图如下:图7 串行操作时序图数据传送分为3个字节:第一字节串口控制rw位为1时表示数据从lcd到mcu,rw位为0时表示数据从mcu到lcdrs位为1时表示数据为显示数据,rs位为0时表示数据为控制指令第二字节d7到d4表示数据字节的高四位第二字节d3到d0表示数据字节的低四位具体工作时序的操作:(1) 将cs拉高选中lcd;(2) 将sclk拉低,允许修改sid上的数据,为产生上升沿做准备;(3) 在sclk为低电平期间修改sid的数据;(4) 将sclk拉高,产生上升沿,lcd将sid上的数据读入;(5) 重复2到4步骤,直到24位数据传输完毕;(6) 将cs拉低取消选中。 3.4步进电机驱动电路步进电机需要的驱动电流比较大,单片机无法直接驱动,因此选择uln2003达林顿管来增大驱动电流,同时另外增加供电电压,使步进电机顺利转动。 图8 步进电机驱动电路四、整机电路图9 整机电路图五、软件原理论述5.1红外解码程序红外遥控器使用的是tc9012是一款专用红外发射集成电路,tc9012 的一帧数据中含有 32 位码,包含两次 8 位用户码, 8 位数据码和 8 位数据码的反码及最后位的同步位。引导码由 4.5ms 的载波和 4.5ms 的载波关断波形所构成,以作为用户码、数据码以及他们的反码的先导。“ 1”和“ 0”的区分取决于脉冲之间的时间,称之为脉冲位置调制方式。发射码格式与数据参数如下图所示:图10 tc9012发射码格式图11 数据参数示意图数据解码过程用到了单片机内部资源的外部中断与定时器中断,采用单片机外部中断的下降沿触发,识别非常灵敏,可以准确捕捉每个跳变信号;同时,使用8位定时器自动重装模式,准确计算出脉冲信号的持续时间,从而得到红外信号数据。具体操作过程:(1) 接收到下降沿信号时计算是否为9ms,若是,则认为是启动信号;(2) 依次接收数据线上的32为数据,将其数据参数暂时存入数组中,等到数据接收完毕,接收标志位置1;(3) 接收标志位为1时,启动数据转换,将32位数据合为4字节数据,存入数组中;(4) 判断第三字节与第四字节是否互为反码,是则认为数据接收正确(5) 将数据码返回给调用函数。5.2单片机内部e2prom操作程序stc12c5a60s2系列单片机内部集成了的eeprom是与程序空间是分开的,利用isp/iap技术可将内部data flash当eeprom,擦写次数在10万次以上。eeprom可分为若干个扇区,每个扇区包含512字节。在用户程序中,可以对eeprom进行字节读/字节编程/扇区擦除操作。数据存储器的擦除操作是按扇区进行的。单片机内部的e2prom有专门的寄存器对其进行管理,包括数据寄存器iap_data、地址寄存器iap_addrh和iap_addrl、命令寄存器iap_cmd、命令触发寄存器iap_trig、命令寄存器iap_contr,具体地址如下图所示:图12 与e2prom相关的寄存器(1) iap_data : isp/iap操作时的数据寄存器。isp/iap 从flash读出的数据放在此处,向flash写的数据也需放在此处(2) iap_addrh : isp/iap 操作时的地址寄存器高八位。iap_addrl : isp/iap 操作时的地址寄存器低八位。(3) iap_cmd模式选择:图13 模式选择相关位(4) iap_trig: 在iapen(iap_contr.7) = 1 时,对iap_trig先写入5ah,再写入 a5h,isp/iap 命令才会生效。(5) 命令寄存器iap_contr:iapen: isp/iap功能允许位。 0:禁止iap读/写/擦除data flash/eeprom1: 允许iap读/写/擦除data flash/eepromswbs: 软件选择从用户应用程序区启动(送0),还是从系统isp监控程序区启动isp监控程序区启动监控程序区启动程序区启动(送1)。要与swrst直接配合才可以实现swrst: 0: 不操作; 1: 产生软件系统复位,硬件自动复位。cmd_fail: 如果送了 isp/iap命令,并对iap_trig送5ah/a5h触发失败,则为1,需由软件清零图14 等待时间设置表具体操作过程:(1) 操作控制寄存器,使能iap功能,设置cpu等待时间;(2) 关闭中断,防止中断打扰数据写入或读出;(3) 向命令寄存器写入操作命令,若为写指令,还需向数据寄存器写入数据;(4) 向地址寄存器写入要操作的地址;(5) 向触发寄存器写入触发命令5ah和a5h;(6) 关闭iap功能,若为读指令,则将数据返回。六、总结经过了半个月的努力,编程序,调试电路,组合测试以及写论文,总算将这个比赛项目做完了。在不落下功课的情况下争分夺秒地完成赛题确实很不容易,但是最后的成果出来了,基本的功能也都实现了,虽然创新方面做得不足,但也是蛮高兴的。刚开始赛题发布的时候,看到abc三个赛题,心里不会完全不知道从哪开始,因为寒假在家里学过单片机,赛题基本跟协会布置的作业很相近。所以有了较大的信心,代码以前写过有一些可以直接移植就比较方便。当然,问题还是不少,主要是在密码锁这部分内容比较难以控制,以前写过的程序因为使用了大量的goto语句导致可读性很差,难以重新使用,所以此次就严格控制goto的使用,在编写程序的同时用注释分隔开,达到了较好的可读性。因为调试电路时做得比较仔细,所以焊接部分做得比较快,功能也都能实现。然后就是写论文部分,因为以前没有接触过论文的写法,格式都不懂,写起来就挺费劲的,而且还要自己学习绘制电路图,这就需要借助altium designer,但又没学过,因此就只能从头学起,画画电路图还好,但是pcb就没办法弄了,而且元件库还是网上下载的,所以,这方面以后还要好好学学。除此之外,还要查阅其他的相关资料,力求用简洁的语言表述自己的电路方案

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论