自行车防盗器设计报告.doc

上传人:wux****ua 文档编号:9549377 上传时间:2020-04-06 格式:DOC 页数:11 大小:56KB
返回 下载 相关 举报
自行车防盗器设计报告.doc_第1页
第1页 / 共11页
自行车防盗器设计报告.doc_第2页
第2页 / 共11页
自行车防盗器设计报告.doc_第3页
第3页 / 共11页
点击查看更多>>
资源描述
大学生电子设计竞赛设计报告题目:自行车防盗器 作者:H摘要由于近日来校园内连续出现自行车被盗现象,为了增加同学们的自行车防盗能力,减少同学们的损失,本设计给同学们提供了一个防盗报警器,使同学们的自行车更加安全。本设计主要使用单片机芯片作为控制系统,利用无线遥控控制继电器来实现警报器电路的开与关。当用户不用自行车时,打开电路,当自行车被骑走时,将受到震动,受震的弹簧触片即与地瞬间接触,弹簧触片所连接的IO口此时将收到一个低电平信号,系统在收到信号后,将立刻给蜂鸣器传输一个低电平信号,使其鸣叫,发生警报。此外,本设计设有按键C,当同学们按下C键时,车子将发生鸣叫,此功能方便同学们在车子附近时,可以检查自己的车子是否还在。或者有时因停放车子太多,找不到车子,可以使用此功能,即可循声找到自己的车子。 本设计构造简单,制作费用低,是同学们车子防盗的廉价好管家。关键字:自行车 防盗 遥控 单片机 设计与总结报告 1设计任务与要求1.1任务制作一个自行车的防盗产品。1.2要求基本要求l 系统正常工作后,能禁止他人非法移动车子,或当车子被非法移动时,能够起到警报作用;l 可以准确判断车子是否被非法移动;l 报警触发后,不会被停止;2.理论分析与方案论证当前校园中,经常出现自行车被盗,仅有一把铁锁的自行车在小偷面前简直有锁如同没有锁,主要是小偷开锁技巧高超,各种锁难以支架。在21世纪,这个电子技术高速发展的时代,利用电子技术来制作一个廉价防盗器非常具有应用价值与必要。假若使用蜂鸣器作为一个警报器则可防止小偷盗走车辆。然而,这个警报器必须能辨别车辆是否被移动,此问题可以用加速感应器或震动感应器来辨别。而同时警报器要能辨别出此移动是否合法的,这个可以考虑用电路的开与关来辨别,当车主使用车辆时,可以关掉警报器电源,车主需要采取防盗功能时,则把电源接上。若果使用普通开关控制,则虽然车主能使用此开关来控制电路,但小偷亦能使用此开关。然而若果换成遥控开关的话,则遥控器只在车主的手上,也就只有车主能够控制警报器的电源开关了。同时,为防止防盗器被小偷毁坏,可以把警报器装在自行车内部。2.1 各模块选择与论证2.1.1芯片的选择考虑到本设计需要对信号进行分析处理,而储存信息不多,考虑使用256 Byte On-chip RAM的STC89C52单片机芯片。2.1.2遥控模块的选择有无线遥控或红外遥控的选择,若果选择红外遥控,则外露的接收头易被他人损坏,且接收不方便。故选择无线遥控,无线遥控传输信号方便,任何方向皆可。同时,接收模块可以装在自行车内,不易于被损坏。考虑到本设计所需按键不多,故在淘宝浏览后,选择了只有四位按键的小七遥控器。3.1.3移动感应模块的选择自行车移动时必须能被感应。此感应模块可以考虑加速感应器,加速感应器如右图。感应器易于制作,然而,由于材料有限,找不到足够质量的小导体b或弹性系数足够小的弹簧,故本设计采用了震动感应器,当发生震动时,a将会左右摇摆,与导体b接触。制作更为方便,且对材料要求较低,易于制作。3.1.4警报模块的选择作为警报器,必须声音锐利,然而,材料有限,暂用普通的蜂鸣器代替。3.2 结论通过对各类型元器件的对比,考虑到设计成本和设计精度的要求,在充分保障系统可靠性的前提下,我们选择了成本低廉的元器件,降低了系统硬件投资并减少了软件开发周期,具有可行性。同时,在模块的选择时,考虑了系统升级或者功能的改变带来的资源消耗,我们考虑了冗余部分资源,提高了系统的适应能力。4.系统硬件设计4.1系统总体设计材料:继电器、蜂鸣器、12M晶振、USB接口母座、二极管、40口插座、STC89C52单片机、万用板、小弹环、螺丝各一个,22P电容2个,S9012三极管2个,无线发射接收模块1对,漆包线若干。5系统软件设计本系统采用了STC89C52单片机芯片作为系统控制中心,在软件设计中利用了该单片机控制蜂鸣器与继电器的开与关。整个程序的编写均由C语言完成,在程序设计中,采用了结构化程序设计方法,使各个模块程序相对独立开来,便于程序代码的维护、移植和升级。同时,这样分离式程序设计,降低了代码的调试难度,缩短了调试周期。在程序设计中,大量使用了宏代换语句,为程序的修改提供了简易的接口,消除了修改中重复查找相同代码的繁琐,提高了效率。51 主程序流程图蜂鸣器、继电器定时器初始化初始遥控接收模块是否收到有效信号识别信号辨别按下的是哪个键关闭继电器开始开启继电器蜂鸣器鸣叫一段时间YABCN震动感应器是否接通蜂鸣器响6秒Y N521遥控接收模块信号程序在本设计中,遥控接收模块信号的辨别主要通过启动单片机定时器0,以8位重装工作方式每100us扫描一次所收到信号,由于发射模块所发射的信号高低电平的长度是固定的且只有两种。这里选择以低电平时间的长度来确定是1还是0,若果是按键的信号,则必先接收到同位码(即一段固定的长时间的低电平),先辨别是否已接受到同位码,若果是,则记录信号,否的话,则说明不是有效的信号,不作记录。信号一共24位,记录好24位信号后与ABC键的信号作比较,若是A,作执行A键的功能,若是B,作执行B键的功能,若是C,作执行C键的功能。同时,由于遥控繁多,故每个遥控有自己的地址码(可由用户自调),故在收到信号后,还应与地址码对比,以辨别此信号是不是车主遥控所发出的信号。信号的前16位就是地址码,对比信号的地址码与遥控的地址码,若果两者相同,则信用有效;若果不相同,则说明此信号不是车主遥控所发出的信号,此时信号无效。522 蜂鸣器程序蜂鸣器响有两种情况,一,按了C键;二振动感应器接通。蜂鸣器所接的是S9012三极管,属于PNP型,低电平有效。当遥控接收模块接收到C键信号时,则在蜂鸣器IO口输出低电平,调用延迟子程序,让蜂鸣器鸣叫2秒。同样,在振动感应器接通时,感应器IO口则输入低电平,此时也在蜂鸣器IO口输出低电平,调用延迟子程序,让蜂鸣器鸣叫6秒。之所以延长鸣叫时间,是因为振动导致的感应器接通可能仅仅是瞬间的,若不延长鸣叫时间,则鸣叫将会极短,无法起到警报效果。程序编程见附录16. 功能操作演示部分接通电源后,按A键,则防盗系统开启,当防盗器振动时,警报器发出警报声音。按下B键,防盗系统关闭,防盗器振动时警报电路不工作。在工作状态下按下C键,则警报器鸣叫,车主可根据声音找到自行车的停放位置。附录1:/*蜂鸣器接1.5 遥控接P2.6 指示灯发光二极管接P3.6 继电器接P0.2 */#include #define uchar unsigned char/*IO引脚定义*/sbit ykjs=P11; /遥控接收器口sbit fmk=P24; /蜂鸣器sbit jdq=P00;/继电器sbit zsd=P31; /指示灯,继电器打开时,灯亮。这样可以知道机器是否处于工作状态sbit jsk=P34;/接收口 即看加速度感应器是否接通。 接通时为0void sm();/*变量声明*/code uchar dzm1=0xaa; /地址码1 ;code uchar dzm2=0xaa;/地址码2 用来验证信号是否从指定遥控器发出uchar ddsj=0; /低电平时间计数 用来计算低电平的时间uchar i=0;/每个信号有三个字节,i区分这三个字节。uchar ab=0; /按键 若接收到的是a键,则ab=1,若是b键则=2,从而通过ab的值反应到继电器的开关上。uchar xh3;/信号 用来存信号,共三个字节uchar jsgs=0; /计算个数 计算收到的信号位的个数。满8个则存到下个字节。uchar js=0;bit ok=0;/标志是否完成接受信息。 若ok=1,则说明接受到了一个信号 则主函数执行动作,辨别是按了哪个键。bit twm=0; /同位码 若接受到同位码 则说明很可能接受到信号。即信号的开始bit qjs=0; /前一时期的接受口状态 用来辨别是否从低电平变为高电平或从高变低,或一直?/*初始化*/ void csh(void) /用来初始化一些值,比如计时器的工作方式 中断等TH0=0x9c; / 100us中断一次 即扫描一次有没有收到信号 8位重装,每次256,故设初始值156=10011100=0x9,这样每次运行100次,即100usTMOD|=0x02;/0010 0为gate 0为C/T,0时为定时功能 10 为8位自动重装定时方式 设置T0为自动装入的8位定时器ET0=1; /开T0中断EA=1; /开总中断TR0=1; /启动T0/*延迟函数*/void delay (unsigned int t) /0.001秒unsigned int x;while(t)t-;x=10;while(x-);/*timer0中断扫描 每100us中断一次*/void timer0() interrupt 1 /timer0的中断 interrupt 1的1指的是IE的位数 0为外部中断0 1为timer0 2为外部中断1 3为time1sm(); /每100us扫描一次是否有信号,信号为哪个键/*主程序*/void main()csh();/初始化while(1)/进入大循环if(ok)/如果完成了一次扫描switch(ab) /看看扫描到的是哪个键case 1:jdq=0;zsd=1;break;/扫描到键A则开蜂鸣器,由于是PNP,故蜂鸣器低电时,三极管通,同时指示灯亮case 2:jdq=1;zsd=0;break;/键B则关蜂鸣器 同时关闭指示灯case 3:fmk=0;delay(3000);fmk=1;break;delay(1000);/关或开继电器后延迟一会 为什么呢?我也不知道ok=0;/*把ok关掉(即设为0)这样说明本次按键执行结束, 主函数回到if语句,等等ok变1,即等待下次按键扫描。*/fmk=1;/先关蜂鸣器js=0;/标志jsk=1;/接受口先为1,即不接负极if(!jsk)/当它接负极时,即为0js=1;/标志改为1,让蜂鸣器叫if (js)fmk=0;delay(15000);/叫的时间延迟 让它叫久些/*按键扫描*/void sm()if(ykjs)/遥控接收口为高电平时if(!qjs) /如果前一时期接收到的是低电平,说明高电平现在才开始qjs=1;/标志这一时期(即下一时期的前一时期)的电平为高电平67692if(twm)/如果前面一段低电平不是同位码,则执行如下xhi=xhi1;/令信号记录的第i个字节右移,移出一个0位,如本来11010010,则移后得01101001,这样最高一位为零,可以记录新数字if(1ddsj)&(ddsj5) /低电平时间在100us到500us之间,则记为1 按理说 低电应该记为零,但由于数字是从右记到左的,为了与地址码相符故记为零,仔细想一下会明白的,因为地址码是10101010,从右记左为01010101,故换一下01位置,就成为了10101010 xhi|=0x80; /和10000000或,这样之前空出来的最高一位0位将记为1else if(8ddsj)&(ddsj13) /低电平时间在800us到1.3ms之间,记为0(原本应该为1)xhi&=0x7f; /则和01111111与,这样原本为0的最高位现在还是0,其余的是1的还是1,零的还是0 else /若果低电平时间不在两个范围内,则为干扰码,则退出twm=0; /退出前先清零同位码 ,由于记录信号的三个字节记录的方式与先前数值无关,故可不清零 return;jsgs+;if(jsgs%8=0)i+;if(jsgs=24)twm=0;if(xh0=dzm1&xh1=dzm2)ok=1;switch(xh2)case 0x03:ab=1;break;case 0xc0:ab=2;break;case 0x30:ab=3;break;case 0x0c:ab=4;break; else /未检测到同位码,则检测之前那次低电平是否同位码if(100ddsj)&(ddsj140) /检测到是同位码则下面复位一些值twm=1; /将同位码置1,说明接收到了同位码i=0;/将i置0,下次接收时将从第一个字节开始记怒江jsgs=0;/计数个数也置0,下次接收将从第1个计起ddsj=0;/低电时间清零。elsereturn;else/接收口为低电平时if(qjs)/如果前一时期接收到的是高电平,则说明低电平现在才开始qjs=0;/标志这一时期(即下一时期的前一时期)的电平为低电平ddsj=0;/清零低电平计数(ddjs低电计数)else/如果之前也是低电平ddsj+;/低电平时间+1
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!