×
单片机 > 单片机程序设计 > 详情

avr单片机+RFID的门禁系统

发布时间:2020-08-25 发布时间:
|

设计文档:
 


单片机源程序如下:

/******************************************************************************************************************

程序名:      射频卡门禁系统

功能概述:

                         1、  点阵LCD(128*64)显示。在正常、设置情况下LCD显示系统各个时期的菜单以供选择。

                         2、  射频卡开锁,开锁时用射频卡放在读卡器上(距离<15CM)即可开锁,如果用非法卡连续刷写次数超过3

                              次则报警(报警功能没有添加),这时系统将关闭刷卡器30分钟,在30分钟后再允许刷卡。

                         3          本系统分为:

                                      1)、1个主机。

                                      2)、2个读卡头(一个在门外供刷卡用、一个在主机旁用于管理操作)

                         4、  本锁开锁时供电,平时断电(12V)。

                         5、  8个按键(AD转换采样取值)(设置、+、-、↑、↓、确认、返回、说明)

                         6、  每次按下键、刷卡时有峰鸣器指示

                         7、  LCD背光在有按键按下时、或刷卡时自动点亮,延时30秒关闭

                         8、  门外有人体红外传感器探头,发现2米内有人,自动进入预警状态,如果是在晚上超过7点钟,则点亮门前的灯泡照明,

                              如果此时有人破坏(比如取下灯泡、剪断灯炮的线、打烂灯泡)也要报警。否则、连续在门前超过1分钟,就开始报警。

                              (此功能没有添加)

                         9、  开门时发出“欢迎光临”,并提示关门(此功能没有添加)

                         10、 本机带有门铃,并能记录前10天门铃按下的次数。(此功能没有添加)

                         11、 LCD显示日期、星期、时间、室内温度、锁的状态、功能设置(菜单显示)等

                         12、 可以查询过去10天内的开门记录并由LCD显示出来(此功能没有添加)

                         13、 可以于电脑通过RS-232接口连接进行通信,监看门的状态、开门记录等,方便打印(此功能没有添加)

                         14、 要求锁误判率小于1PPM

                         15、 系统配有UPS(12V) 平时用UPS电能,只有当主机检测到电压低于11.5V时,自动接入火电进行充电。

                              电瓶充满时(大约5小时)自动断电。

                         16、 电压:12V   

                         17、 电流:待机时<50MA  


射频卡类型: 4001、EM4100和含E2PROM的RF卡。如E5550。

MCU类型:     ATmega16

晶振频率:    7.3728MHZ

版本:             V0.1

******************************************************************************************************************/

#include

#include

#include

#include"LCD_12864.H"                                                                                //LCD头文件

#include"read_card.H"                                                                                //读卡头文件

#define key_inc  (PINC&(1<

#define key_dec  (PINC&(1<

#define BAUDRATE        9600                                                                //波特率

#define F_CPU                        7372800                                                          //晶振频率

#define LCD_LAMP                60                                                                  //LCD默认30S后关闭

#define BATTERY_TIME        5                                                                        //每十分钟检测一次电池电量


#define ADC_PINA0                 0x00                                                                //ADC0                按键AD    单端通道,不放大

#define ADC_PINA1                 0x01                                                                //ADC1                温度采样

#define ADC_PINA2                 0x02                                                                //ADC2                电平电量检测


#define LCD_BACK_ON           PORTC&=~(1<

#define LCD_BACK_OFF           PORTC|=(1<

#define buzzer_on                  PORTD&=~(1<

#define buzzer_off          PORTD|=(1<


#define charge_on                  PORTC&=~(1<

#define charge_off          PORTC|=(1<



#define LOCK_ON                  PORTC&=~(1<

#define LOCK_OFF                  PORTC|=(1<



#define CHARGE_STATUS          (PINC&(1<


#define null                 0

#define vref            5000                                                                                //AD转换参考电压

#define OVER_FLOW 10 //进入菜单设置时,如果在10S内没有按下任何键



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
采用AT89C2051的数字可调稳压电源单片机源程序