新闻中心

EEPW首页>嵌入式系统>设计应用> 自己做的门禁系统1

自己做的门禁系统1

作者: 时间:2016-11-29 来源:网络 收藏
由于上个月丢了家钥匙,今天无聊中没啥事儿,就想自己动手设计个自己用的门禁来玩,至少钥匙丢了也不愁了,还可以一卡通。由于基本上目前没硬件来设计,那就先用软件来模拟一下吧,到时感觉不错再买元器件。

今天估计也做不了什么,就大概分析下机器的一些东东吧。
首先考虑使用的卡的类型,是使用id卡还是ic卡还是二代身份证呢?身份证嘛怕丢,不能老是随身带。id卡和ic卡都行,不过ic卡的读头要贵很多又不方便自做,所以最后决定用id卡吧,就算自己做也没什么,大不了买个芯片读曼彻斯特*码也应该容易,况且读卡器,卡片也便宜嘛。
id读卡器到时买最便宜的就行了,不用多想什么了,只要记得到时搞清楚到手的参数就行,不要拿个维根32的当成维根26的来用,就可能走很多弯路了。
主控芯片就用89s52吧,二个外部中断,二个定时中断,32个I/O应该够用了。
存储器的话只存开门卡号和密码等数据,不用太大,就用24c02够了,几十个用户容量够家里用了。
其他的配件都是小件散件,用到时再考虑吧。
用电脑做上位机进行联网远程开门,加卡删卡等操作,电脑软件以后做好下位机后再写了,唉,英语不行,VB,DP等流行软件都不能用,看来只能用易语言了。
现在到晚上了,今天白天已经画好了proteus图,大概说一一分布:1,电源12v输入12v/5v输出。2,主控P3口控制继电器蜂鸣器LED输出和曼码,IIC,中断(读卡器输入)输入和串口通讯。P2,P1口留做读卡器输入(用查询法来读数据)和信号输出。P0口做键盘输入了。主控就暂时就样分布到时需要时再改吧。
今天就先做到就里,任务才刚刚开始,单片机程序估计要几天才能写好吧。

本文引用地址://m.amcfsurvey.com/article/201611/323284.htm


制作自用门禁第1个程序


今天开始写下位机也就是89s52的程序。一个早上才搞定键盘扫描程序,程序基本上正确,只是明明加了松开检测了,怎么有时在按下时会发送呢。实在是检查不出哪儿的问题,也许是模拟软件的问题吧。
现在突然想到怎么先写键盘程序呢,应该写重要的先才对啊,不然到最后重要的部分没写成那不是浪费很多精力?但是没有实际硬件做起来费劲,串口通讯不知怎么用软件模拟,也就是因为这样早上的键盘程序都是*软件调试和蜂鸣器来提示来叛断是否正确,所以做起来很慢。如果有终端来显示那就方便多了。不想买液晶显示,虽然1602液晶应该没多少钱但是怕以后用不到还是用电脑来做显示吧,接上串口来通讯就行。但问题是现在要有芯片,数据线,基本外围元件和洞洞板等等才行。家里街上和工业城市不一样,东西应该不好买,到市区里去看看吧,不行再淘宝了,马上去了……
贴上我的键盘程序:

/*////////////////////////////////////函数原型: uchar key(void)函数说明:键盘扫描版本:V1.0.0 程序员:LIY12586////////////////////////////////////*/uchar key(void){uchar temp,number;P0=0x0f;if(P0!=0x0f){P0=0xfe;if(P0!=0xfe){ temp=P0;switch (temp){ //11110000case 0xee: //01111110number=4;break;case 0xde:number=3;break;case 0xbe:number=2;break;case 0x7e:number=1;break;}while(P0!=0xfe);sound(1);return number;}P0=0xfd;if(P0!=0xfd){ temp=P0;switch (temp){case 0xed:number=8;break;case 0xdd:number=7;break;case 0xbd:number=6;break;case 0x7d:number=5;break;}while(P0!=0xfd);sound(1);return number;}P0=0xfb;//temp=P0;//temp=temp|0xf0;if(P0!=0xfb){ temp=P0;switch (temp){case 0xeb:number=12;break;case 0xdb:number=11;break;case 0xbb:number=10;break;case 0x7b:number=9;break;}while(P0!=0xfb);sound(1);return number;}P0=0xf7;//temp=P0;//temp=temp|0xf0;if(P0!=0xf7){ temp=P0;switch (temp){case 0xe7:number=16;break;case 0xd7:number=15;break;case 0xb7:number=14;break;case 0x77:number=13;break;}while(P0!=0xf7);sound(1);return number;} }return 0;}


关键词:门禁系统89s5

评论


技术专区

关闭