基于W78E516的射频读卡器实现
来源:RFID世界网 作者:罗士栋 白长清 汪峰 发布时间:2007-12-13 09:41:14 字体:[大 中 小]
关键字:射频读卡器 w78e516 射频卡 读卡器电路 读卡器
摘 要:以射频识别技术的实际应用为背景,采用北京远兴时代科技有限公司的低功耗RF射频感应式收发模块MFP-K4,结合带ISP功能的Flash EPROM的低功耗8位微处理W78E516,设计一个门禁控制系统。给出了各部分的硬件电路设计原理图,描述了各个功能的实现方法,同时给出了部分程序代码。
4.系统软件设计
简单地说微 处理器对MTP-K4 的控制事实上就是对非接触式智能射频卡的控制。每当有卡刷入时,单片机通过串口从读卡器芯片读入数据,对它进行处理,然后根据结果控制门的开关。软件设计的主要工作是初始化串口,从串口读入数据并对它进行处理。本系统软件设计时大量采用自定义函数,在主程序中调用不同的函数完成相应的接口功能。采用这种方式,该系统软件也可以很容易移植到其他类似系统。本系统软件在Keil uVision2 下编写,以下给出部分C 语言程序。
4.1串口初始化函数
void initUart()
{
TMOD=0x20; /*定时器1,方式2*/
TL1=0xfd;
TH1=0xfd; /*9600 波特11.0592MHz*/
TCON=0x40; /*启动定时器1*/
PCON=0x00; /*电源控制寄存器设初值*/
SCON=0x50; /*允许接收*/
EA=1; /*允许总中断*/
ES=1; //允许串口中断
}
4.2读数据函数
Uart()interrupt 4 using 1
{
if(RI&&~r_full)
{
rs_buf[r_in]=SBUF;
RI=0;
r_in++;
if(r_in==13)
{
r_full=1;
ES=0;
r_in=0;
P1&=GLED_ON;
P1&=BELL_ON;
delay100ms(2);
P1|=GLED_OFF;
P1|=BELL_OFF;
}
}
}
4.3看门狗"喂狗"函数
void watchdog(void)
{
P1&=0x7f;
NOP();
NOP();
P1|=0X80;
NOP();
NOP();
P1&=0x7f;
}
4.4 延时函数
void delay100ms(unsigned char n)
{
unsigned char k;
for(k=0;k<n;k++)
{
unsigned char i=100;
unsigned char j;
do
{
j=7;
do{ j+=2;j--; }
while(j);
j=1;
}
while(--i);
}
watchdog();
}
5.总结
本文设计的门禁系统其读卡器在9600 bps 通信速率下普通卡读卡距离为18cm,远距离卡可以达40cm,可以实现考勤功能,整个系统采用低功耗器件,使系统的功耗降至最低。另外本文介绍了W78E516 的一种ISP 方法,使得我们不用专门的编程器就可以随时对MCU进行编程,具有简单,实用,成本低廉的特点。
新闻投稿合作邮箱:yktchina-admin@163.com 字体[大 中 小] [收藏] [进入论坛]