基于AT89S52单片机设计定时炸弹的毕业设计_第1页
基于AT89S52单片机设计定时炸弹的毕业设计_第2页
基于AT89S52单片机设计定时炸弹的毕业设计_第3页
基于AT89S52单片机设计定时炸弹的毕业设计_第4页
基于AT89S52单片机设计定时炸弹的毕业设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机技术定时炸弹的设计说明书题目 定时炸弹 院系 电气工程系_班级 车辆电子111_姓名 袁湘华 _目录1设计目的2作品意义3功能简介4电路原理图5程序6心得体会7不足与改进8元器件清单摘要:在一次看电影的时候,我看到了一个爆炸场面。虽然电影中是恐怖分子的不法行为引起的爆炸,但是我却想到了定时炸弹在控制和实现等各方面的优点,因而突发灵感,想要利用51单片机自己制作一个模仿的定时炸弹,一来是想要锻炼自己的实际动手能和创新思维,而来是想要提高自己的视野和团队合作精神。1设计目的:锻炼自己的各方面的综合能力,包括创新、设计、焊接、调试、编程等知识水平和沟通、交流、团结协作等一些综合素质,深入了解5

2、2单片机的实际应用。2作品意义:定时炸弹是一个危险的物品,但我们不能因为危险而远离它,恰恰相反我要去深入了解它,了解它的原理这样才不会惧怕它并用它造福。在一些人工开凿方面,光靠人力是很难实现的,而且也存在这安全性问题,用定时炸弹来实现却要方便得多,不仅速度快、效率高、风险小,而且也便于实时性地操作,控制起来极为方便,可以满足很多方面的要求。3功能简介 3.1、开机输入密码才可使用,此密码作为拆弹密码(初始密码为0123) 3.2、可以随意输入1小时以内的定时时间,并显示。 3.3、倒计时时间能够显示直至结束为止。 3.4、时间少于10秒进行声光提示。 3.5、每次按键时都有声光提示。 3.6、

3、允许在指定时间内输入密码进行拆弹。密码错误会导致提前爆炸。 3.7、按下解锁密码键后不论解除危险都将剩最后10秒。解锁失败马上爆炸。3.8、也可以剪断红线或蓝线进行拆弹,剪错线都有引发爆炸的可能。 3.9、倒计时结束时进行模仿爆炸,同时有声光提示。4电路原理图pcb图单片机stc89c52按 键部 分指示电 路电源模 块显示电路爆炸部分定时炸弹总体电路框图5程序#includesbit beep=p36;sbit red=p30;sbit green=p31;sbit end=p37;unsigned char a,k;unsigned char d=10; unsigned char c=1

4、1; unsigned char e=12;unsigned char f=13;unsigned char temp,i;unsigned char code init4=0,1,2,3;unsigned char show4=0;unsigned char min=0; /分unsigned char sec=0; /秒unsigned char n,m; /最后倒计时10计时次数bit flag=0;/标示确认键是否按下bit flag0=0;/密码错误标示位bit flag1=0;/密码输入足够bit time1=0;/时间设置完标志位unsigned char number=0;vo

5、id delay(int t) unsigned int i,j;for(i=0;it;i+)/延时t个1msfor(j=0;j112;j+);/延时约1msunsigned char scankey44()unsigned char key,hey;p1=0x0f;if(p1&0x0f)=0x0f) return f;delay(5);if(p1&0x0f)=0x0f) return f;key=(p1&0x0f);p1=0xf0;hey=(p1&0xf0);key=(key|hey);while(p1!=0xf0);switch(key)case 0x11:k=1;break;case 0

6、x12:k=2;break;case 0x14:k=3;break;case 0x18:k=c;break; case 0x21:k=4;break;case 0x22:k=5;break;case 0x24:k=6;break;case 0x28:k=d;break; case 0x41:k=7;break;case 0x42:k=8;break;case 0x44:k=9;break;case 0x48:k=e;break; case 0x82:k=0;break;default :k=f;break;return(k);void disp(unsigned char post,unsig

7、ned char past) switch(post)case 0:p0=p0&0xf0;p0=p0|past;break;/p0=pastcase 1:p0&=0x0f;p0|=past4;break;case 3:p2&=0xf0;p2|=past;break;case 2:p2&=0x0f;p2|=past4;break;delay(10);void led_init()/数码管初始化disp(0,0);disp(1,0);disp(2,0);disp(3,0);void led_ok()/解锁成功disp(0,8);disp(1,8);disp(2,8);disp(3,8);green

8、=0;void clean() /清除函数 number=0; flag1=0; flag0=0; led_init(); flag=0; flag0=0;void int1() /定时中断初始化tmod=0x11;th0=0x4c;tl0=0xf7;th1=0x4c;tl1=0xf7;it0=1;ex0=1;it1=1;ex1=1;et0=1;tr0=0;tr1=0;et1=1;ea=1;void main()unsigned char num,i=0;int1(); led_init();red=1;green=1;end=1;beep=1; while(1)num=scankey44()

9、;if(num!=f)/有键按下 if(!flag0) if(num=d)/按下确认键flag=1;if(flag1) /密码输入完毕for(i=0;i4;i+)flag0=1;if(showi!=initi)/校验错误clean();flag=1;red=0;beep=0;delay(500);beep=1;red=1;break;if(flag0)/密码输入正确min=0;sec=0;p0=0xff;p2=0xff;number=0;green=0;tr1=0;else if(num=c)/按下clean键clean();else if(flag=1) /之前按下确认键 if(num=9)

10、 /按下数字键 number+; beep=0;delay(100);beep=1;shownumber-1=num;disp(number-1,num);if(number=4)flag1=1;number=0; else /密码对时 设置时间if(!time1)/没设置时间if(num=9)switch(number)case 0:min=min+num*10;disp(number,num);number+;break;case 1:min=min+num;disp(number,num);number+;break;case 2:if(num3) time1=1;elseif(num=

11、d)tr0=1;if(tr0=1)&(min=0)&(sec1) ea=0;end=0;beep=0;green=1;red=0;while(1);/解锁/if(tr0=1)&(num=e)clean();tr0=0;tr1=1;flag=1;if(flag=1) /之前按下确认键 if(num=9) /按下数字键 number+; shownumber-1=num;disp(number-1,num);if(number=4)flag1=1; if(flag1=1) /密码输入完毕for(i=0;i=10) time=0;m+;if(min=0)&(sec=2)m=0;if(sec0)sec

12、-;elseif(sec=0)&(min0)sec=59;min-;disp(0,min/10%10);disp(1,min%10);disp(2,sec/10%10);disp(3,sec%10); void timer1(void) interrupt 3 /按下解锁键最后10秒static char tim=0; th1=0x4c; tl1=0xf7; tim+; if(tim=10) tim=0;beep=beep;red=red;n+;if(n=20)led_init();ea=0;red=0;green=1;beep=0; end=0; void int0(void) interr

13、upt 0 /解锁失败爆炸 led_init(); tr0=0; ea=0; end=0; red=0; beep=0;void int3(void) interrupt 2 /解锁成功 led_ok(); tr0=0; green=0; red=1; ea=0; end=1;6心得体会首先在设计这个项目的时候我开始考虑的是用到定时器作为倒计时的装置,然后声光模拟爆炸情形。后面发现过于简单,而后加了矩阵按键,以及密码锁的原理应用,和爆炸电路。由于加了这么多的部分,故课程设计的过程中,我感触最深的当属查阅大量的设计资料了,数字电路部分有at89s52单片机、cd4511译码器、数码管等等,模拟电

14、路部分有三端稳压器、三极管、发光二极管、蜂鸣器、继电器以及电阻电容等等。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的,花费了我一天的时间。由于原理图的设计出现了不少的问题对后面的调试造成了许多困难,比如在原理图里面的三极管与封装的引脚不同,使之连线出错,单片机的io口用高低平难以驱动蜂鸣器及led灯。而后我用低电平驱动得以实现功能;对于爆炸电路的p3,7口驱动继电器与参数不符驱动不了,而后百度资料才改好。硬件电路的调试成功对于软件的编程起到了有利的局面。由于思路不够严谨,一直未能调试成功,不得已的情况下请教了大三的学长后,顺着他提供的思路下去,我也一步步走向了成功。通过这次的制作设计我深刻的体会到一个人想要完成一个项目是十分有难度的,做电子制作设计需要有严谨的思想,正确的思路以及坚持不懈、永不放弃的决心。带着这样的态度,我的项目才得以成功。7不足与改进首先数码管经过cd4511译码出来后“6”和“9”的显示有一横没有。其次在显示的时候第一位数码管的显示会有点混乱。最后在进行模拟爆炸的时候,我采用的是用一个极性电容反接加上正电压让它过压爆炸。但是实际上在倒计时完后10才爆炸。改进:将模拟爆炸的电容采用较小容量的电容可延短电源爆炸

温馨提示

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

评论

0/150

提交评论