基于单片机的门禁控制系统的设计
完成了硬件的设计、制作和软件编程之后,要是系统能够按设计正常运行,必须进行硬件调试和软件调试。
硬件调试的主要任务是排除硬件故障,其中包括设计错误和工艺性故障。 (1)脱机检查。按照电路原理图用万用表逐步检测电路板中所有器件的各引脚,尤其是电源的链接是否正确;检查各开关按键是否能正常工作;为了保护芯片,应先对各IC座(尤其是电源端)电位进行检查,确定其无误后再插入芯片检查。
(2)联机调试。暂时拔掉AT89C51芯片,将仿真器插头插入AT89C51的芯片插座进行调试,检验键盘电路是否满足设计要求。可以通过一些简单的测试软件来查看接口工作是否正常。例如,我们可以设计一个能用按键控制蜂鸣器声响检测键盘电路的好坏。如果运行测试结果与预期不符,很容易根据故障现象判断故障原因并采取针对性措施排除故障[14]。
4.3 软件调试
软件调试的任务是利用开发工具进行在线仿真调试,发现和纠正程序错误,同时也能发现硬件故障。
程序的调试应一个模块一个模块地进行,首先单独调试各功能子程序,检验程序是否能够实现预期的功能,接口电路的控制是否正常等;最后初步将各子程序的现场保护与恢复。
调试的基本步骤如下:
(1)编写蜂鸣器程序,调试蜂鸣器是否会响。
(2)编写简单程序调试刷卡时是读卡模块是否有读入。 (3)编写键盘控制程序,调试是否有键盘按下及其按键值。 (4)编写添加、删除用户卡程序,调试是否能实现。
(5)编写更改管理卡,清除所有用户卡程序,调试是否能实现。
(6)总体调试,看能否实现存储一张管理卡,多张用户卡。通过按键能否实现添加、删除用户卡,更改管理卡,清除所有用户卡等设计要求。
4.4 软、硬件设计注意事项
(1)读卡模块T7122M-I外部电源接触不良或者严重的电磁干扰,则有可能偶然使读卡模块内部软件跑飞。
(2)天线周围如果有金属存在,则工作频率将受影响,读卡距离也受影响,严重时读卡反应迟钝,甚至不能读卡。避免的方法是所有的金属材料尽量离开天线线圈,特别是天线前面不能有金属封板。金属封板会屏蔽电磁波,致使打卡完全失效。天线后面如果有金属封板,则应该离开天线线圈至少3厘米以上。 (3)读卡模块与模板注意是否有共到。
14
基于单片机的门禁控制系统的设计
(4)如果使用的电源性能不良,将引起电压不稳,纹波太大,对读卡距离产生影响。 (5)外界的电磁杂波也会对读卡产生干扰[15]。
结论
本论文关于门禁控制器用于鉴别刷卡人员,管理人员出入。功能可实现存储一张管理卡、多张用户卡。AT89C51控制外围设备,T7122M工业级读卡模块识别管理卡或者用户卡,单片机给出信号,外围设备做出响应,通过按键开关可以进行各种卡管理操作,如更改管理卡、增加单个用户卡、删除单个用户卡,清空所有用户卡等。键盘控制部分,采用采取串并转化电路的键盘形式,这样的键盘形式具有去抖动,节约I/O端口资源的优势。
15
基于单片机的门禁控制系统的设计
参考文献
[1] www.wenku.http://www.njliaohua.com/百科门禁系统现状与未来的探讨与思考[J],发表于2011-6-21
[2] 朱清慧,张凤蕊,翟天嵩,王志奎., 《Proteus教程—电子线路设计、制版与仿真》[M].北京:清华大学出版社,2008.9:1-5
[3] 谢振辉, 《改进式MCS-51单片机实验》[M],北京,科学出版社,2006 [4] 赵建领, 《51系列单片机开发宝典》[M]北京,电子工业出版社,2007,78-108 [5] 王为青,程国钢, 《单片机KEIL CX51应用开发设计》[M]北京,人民邮电出版社,
2007,51-76,98-102
[6] 李玉梅, 《基于MCS-51系列单片机原理的应用设计》[M]北京,国防工业出版社,2006,39-76 [7] 谭浩强, 《C程序设计》[M]北京,清华大学出版社,2005-7-1第三版
[8] 李群芳, 《黄建单片机微型计算机与接口技术》[M]北京,电子工业出版社,2001,54-94 [9] 陈龙三, 《8051单片机C语言控制与应用》[M]北京,清华大学出版社,2002,59-86 [10] 张大波, 《嵌入式系统原理设计与应用》[M]北京,机械工业出版社,2005-11,36-78 [11] 沙占友,孟志永,王彦明, 《单片机外围电路设计》[M]北京,电子工业出版社,2006,44-85 [12] 非接触式IC卡 大论坛,百科门禁系统和非接触式IC卡[J]
[13]V. Yu. Teplov,A. V. Anisimov. Thermostatting System Using a Single-Chip Microcomputer and Thermoelectric Modules Based on the Peltier Effect[J] ,2002
[14] Yeager Brent.How to troubleshoot your electronic scale[J], Powder and Bulk Engineering. 1995
[15]Meehan Joanne,Muir Lindsey.SCM in Merseyside SMEs:Benefits and barriers[J], TQM Journal. 2008
16
基于单片机的门禁控制系统的设计
附录
系统程序
#include
unsigned char chcardno[10][5]={0}; unsigned char cardok; unsigned char j=0; unsigned char count; unsigned char a;
unsigned char cardno[5]={0}; unsigned char key_value; unsigned char b=1;
//--------------毫秒延时子程序-------------- Void delay2(unsigned char ms) { unsigned char i
While(ms--) {
For(i=0;i<120;i++); } }
//--------------蜂鸣器-------------- unsigned char feid(void) { Beep=0; Led5=0;
Delay2(250); Beep=1; Led5=1;
Delay2(250); }
17
基于单片机的门禁控制系统的设计
Void send(unsigned char a) //判断是不是有键按下 {
unsigned char I; for(i=0;i<8;i++) {
If(_crol_(a,i)&8x80) KEY_SDA=0; KEY_CLK=0; KEY_CLK=1;
} }
unsigned char key(void) // 判断是第几键按下 {
unsigned char buffer,display_bit,I; buffer=0xff;//赋初值为0xff delay2(250);//延时去抖动 display_bit=0xfe;//扫描键盘 for(i=0;i<8;i++) {
send(display_bit);
if(!KD_KEY)//是此键按下吗? {
buffer=display_bit;//是,则保存其键值 return(i); break;//退出 }
Display_bit=_crol_(display_bit,1); //检测下一键 } }
//-----------同步串行口接收一字节-------- Unsigned char rxlbyte() {
char i;
char rxdata; for(i=9;--i;) {
Rxdata<<=1;
While(sck==0)//等待始终上升沿 Continue;
If(so==1) //读数据
18
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机的门禁控制系统设计1(4)在线全文阅读。
相关推荐: