单片机源程序如下:
- /*****************************************************************
- 使用说明:LED3闪烁后才可放卡,若刷卡过程中LED3闪烁两次,则说明刷卡
- 错误,需重新刷卡,登记标签时,若成功蜂鸣器响LED3亮会重复两次
- ******************************************************************/
- #include "reg52.h"
- #define main_globals
- #include "main.h"
- #include "uart.h"
- #include "lcd12864.h"
- #include "beep.h"
- #include "key.h"
- #include "timer.h"
- #include "eeprom.h"
- #include "ctrl.h"
- #include "UHF2010.h"
- uchar states=0,t2flag=0;
- void init_all(void) //初始化
- {
- uchar status=0x01;
-
- EA = 0; //关总中断
- init_timer(); //定时器初始化
- init_uart(); //串口初始化
- lcd_init(); //LCD初始化
- EA = 1; //开总中断
- EEPROM_READ(0,UII_BUF,40); //EEPROM初始化,取出记录的卡号
- LengthUII = ((( UII_BUF[0] >> 3) & 0x1F) +1)*2; //计算UII长度
- EEPROM_READ(45,KEY_BUF,8); //EEPROM初始化,取出记录的密码
-
- while(status != 0x00)
- status = UHFCheckConnect(); //检查连接状态
- }
- void main(void) //主函数
- {
- uchar key,status=0x80;
- Delay_ms(500); //让硬件稳定
- init_all(); //执行初始化函数
- relay_OFF(); //关继电器
- LED_BLINK_1(); //led test
- beep1(); //beep test
- display(0,0,0); //显示初始化
- while(1)
- {
- key=key_scan(); //按键操作
- if(key==12) if(states>0) states--;
- else states=0; //上一功能
-
- if(key==13) if(++states>3) states=3; //下一功能
- ctrl_process();
- }
- }
复制代码
所有资料51hei提供下载:
UHF门禁系统.zip
(156.02 KB, 下载次数: 11)
|