智能门禁控制系统设计_第1页
智能门禁控制系统设计_第2页
智能门禁控制系统设计_第3页
智能门禁控制系统设计_第4页
智能门禁控制系统设计_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

.z班级:__08电子信息一班_**:_黄昌利、黄勇姬、黄文静__**:_、200802060、__智能门禁控制器设计一、设计任务:智能门禁控制器设计二、设计要求:1.以89C5*系列单片机为核心器件,设计一个智能门禁控制器。2.门控器密码由键盘输入,用四个数码管显示提示信息。3.密码输入错误提示〔可用发光二极管指示〕,密码错误超过3次则通过蜂鸣器发出报警声。4.密码输入正确,则通过发光二极管指示开锁信号,并驱动步进电机正转10圈开门,10秒后步进电机反转10圈关门。5.其它创新设计。三、评分标准:工程潢分评分设计与总结报告方案比拟、设计与论证,硬件系统方框图10具体硬件电路设计或仿真电路设计10软件系统程序设计流程图10调试结果分析及使用操作说明10具体功能实现能完成显示程序设计10能完成按键程序设计10能完成步进电机驱动程序设计10能完成整个工程的程序联调,实现整个工程的功能10辩论工程设计自述10答复下列问题10加分项其它创新设计10智能门禁控制器设计系统方案选择和论证1.1设计要求1.以89C5*系列单片机为核心器件,设计一个智能门禁控制器。2.门控器密码由键盘输入,用四个数码管显示提示信息。3.密码输入错误提示〔可用发光二极管指示〕,密码错误超过3次则通过蜂鸣器发出报警声。4.密码输入正确,则通过发光二极管指示开锁信号,并驱动步进电机正转10圈开门,10秒后步进电机反转10圈关门。5.其它创新设计。1.2系统总体方案AT89C52AT89C52按键输入发光二极管显示步进机蜂鸣器数码显示系统各模块方案选择和论证〔1〕控制器模块AT89C52单片机〔2〕显示模块方案一:LED显示屏。优点:亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定。LED的开展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向开展。缺点:色彩一致性差,马赛克现象较严重,显示效果较差;混色效果不佳,视角不大,水平方向左右观看有色差。加工较复杂,抗静电要求高。实际像素分辨率做到10000点以上较难;加工工艺麻烦,本钱太高;加工还是较复杂,抗静电要求高。方案二:数码管。能在低电压、小电流条件下驱动发光,能与CMOS、ITL电路兼容;发光响应时间极短(<0.1µs),高频特性好,单色性好,亮度高;体积小,重量轻,抗冲击性能好;寿命长,使用寿命在10万小时以上,甚至可达100万小时。本钱低。而且还易于检测。〔3〕键盘输入模块方案一:开关控制方案二:独立式键盘控制键盘控制本身都没有内部音源系统,不过几乎所有键盘合成器/工作站则都可以扮演控制其它设备声音及参数的角色。而且丰富功能及便携性。〔4〕声光报警模块方案一:喇叭和显示管方案二:发光二极管和蜂敏器声光报警器外壳由不锈钢金属材料制成,产品采用了密封构造设计,所以不受污染物和水的影响,防护等级为IP65。〔5步进电机模块方案一:单相八拍方案二:两相四拍系统各模块的最终方案〔1〕控制器模块:AT89C52〔2〕显示模块:数码管〔3〕键盘输入模块:独立式键盘输入控制〔4〕声光报警模块:发光二极管和蜂敏器〔5〕步进机模块:两相四拍系统硬件电路设计键盘51实验板驱动电路3.系统软件设计流程图开场开场初始值输入密码,判断是否正确启动定时器LED显示密码正确密码错误密码错误三次报警步进机正转10圈显示“0-9〞步进机反转10圈显示“0-9〞延迟10秒后4.软件系统源程序*include<AT89*52.H>*defineucharunsignedchar*defineuintunsignedintunsignedcharcodekeycode[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; //10 11 1213 14 15 // 0 1 23 4 5 6 7 8 9 errorightclose0pen . FunsignedcharcodeLED_code[]={0*c0,0*f9,0*a4,0*b0,0*99,0*92,0*82,0*f8,0*80,0*90,0*86,0*88,0*c6,0*8c,0*7f,0*8e};ucharmima_code[]={0,0,0,0};ucharwei_code[]={0*ef,0*cf,0*8f,0*00};ucharcodezheng[4]={0*9f,0*5f,0*9f,0*af}; //正转ucharcodefan[4]={0*af,0*6f,0*5f,0*9f}; //反转ucharjishu=3;ucharspeed;uchartemp=0; intwei=-1;ucharqing=0;uchari,j,k;//延时函数voidsubDelay(uint*){ while(*--);}//置数voidzhishu(){mima_code[wei]=speed;}//显示void*ianshi_code(){if(wei>=0){P0=LED_code[15];P2=wei_code[wei];}else{P0=0*bf;P2=0*00;}} //启动定时器,清零voiddisplay(){if(temp==1){ if(mima_code[0]==2&&mima_code[1]==2&&mima_code[2]==4&&mima_code[3]==4){ P0=LED_code[11]; P2=0*00; subDelay(65000); mima_code[0]=0; mima_code[1]=0; mima_code[2]=0; mima_code[3]=0; TR0=1; jishu=3;} else {jishu--; P0=LED_code[10]; P2=0*00; subDelay(50000); subDelay(50000); P2=0*ff; if(jishu==0){uchark=3;while(k--){ P1_0=0;subDelay(10000);P1_0=1; subDelay(10000);} } }wei=-1;temp=0; speed=14;}}//按键扫描charsubMatri*Scan(){ unsignedcharlcKeyTemp,i; unsignedcharlcRowSel=0*f7; //4个输出行分别输出0的选择码 P3=0*F0; lcKeyTemp=P3; subDelay(200);//延时,消除抖动 if((P3==0*F0)||(P3!=lcKeyTemp)) { return(16); //无按键或未稳定,返回空键码,随后再来 } for(i=0;i<4;++i) { P3=lcRowSel|0*F0; //检查各行有无按键 switch(P3&0*F0) { //获取4列按键状态 case0*E0: lcKeyTemp=0;break; //仅第1列有按键 case0*D0: lcKeyTemp=1;break; //仅第2列有按键 case0*B0: lcKeyTemp=2;break; //仅第3列有按键 case0*70: lcKeyTemp=3;break; //仅第4列有按键 default: lcKeyTemp=16;break; //无按键或多按键 } if(lcKeyTemp!=16) { lcKeyTemp+=i*4; break; } lcRowSel>>=1; //右移1位,选择下一行 } return(lcKeyTemp); //返回按键状态}voidkey_process(){unsignedcharkey=0*ff;key=subMatri*Scan();key=keycode[key];switch(key){case0:speed=0;wei++;subDelay(50000);break;case1:speed=1;wei++;subDelay(50000);break;case2:speed=2;wei++;subDelay(50000);break;case3:speed=3;wei++;subDelay(50000);break;case4:speed=4;wei++;subDelay(50000);break;case5:speed=5;wei++;subDelay(50000);break;case6:speed=6;wei++;subDelay(50000);break;case7:speed=7;wei++;subDelay(50000);break;case8:speed=8;wei++;subDelay(50000);break;case9:speed=9;wei++;subDelay(50000);break;case10:P0=LED_code[key];P2_4=0;break;case11:P0=LED_code[key];P2_4=0;break;case12:P0=LED_code[key];P2_4=0;break;case13:P0=LED_code[10];P2_4=0;break;case14:wei--; subDelay(50000);break;case15:temp=1;P0=LED_code[15];subDelay(50000);P2_4=0;break;default:break;}}//定时计数器,电机控制voidTIMER0()interrupt1{TH0=0*fc;TL0=0*18;TR0=0; for(i=0;i<10;i++) { P0=LED_code[i]; P2=0*00; for(j=0;j<200;j++) { for(k=0;k<4;k++) { P1=zheng[k]; subDelay(50); } } } P0=LED_code[13]; P1=0*0f; subDelay(60000); subDelay(60000); subDelay(60000); subDelay(60000); for(i=9;i>0;i--) { P0=LED_code[i]; P2=0*00; for(j=0;j<200;j++) { for(k=0;k<4;k++) { P1=fan[k]; subDelay(50); } } } P0=LED_code[12]; subDelay(60000); subDelay(60000); subDelay(60000); subDelay(60000); P2=0*ff; P1=0*0f;}//主函数voidmain(){TMOD=0*01;TH0=0*fc; //计数器初始值TL0=0*18;EA=1;ET0=1;P1=0*ff;while(1){key_process();zhishu();display();*

温馨提示

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

评论

0/150

提交评论