之前上传的所有门禁制作程序绝大部分为本人原创(只有I2C程序为网上收集本人更改),所有看到的人可以用来用作个人讨论,学习和研究。禁止完全使用或修改使用在以盈利为目的的商业用途。如有违反,本人保留一切权利。解释权归本人所有。
昨天晚上终于完成了按键操作,由于太晚没上传,大部分功能已经完成,一个简单(功能相对于专业门禁来说简单,制作对我来说相当复杂,但也是体现我的单片机和电子技术水平又有提高)的门禁可以使用了,目前的功能有:读卡开门,密码开门,加卡,删卡,更改密码,系统初始化。后期要加上:远程控制开门,加卡,删卡,监控等。下面是程序:
/*////////////////////////////////////
函数原型:void psw(void)
函数说明:密码写入EEPROM中
版本:V1.0.0
程序员:LIY12586
////////////////////////////////////*/
void psw(void)
{
uchar a=0,b=2,c,d,x=0;
timer=0;
while(1)
{
c=key();
if(c==12)
{
sound(1);
break;
}
if(ex==1)
{
sound(1);
ex=0;
break;
}
if(c!=0)
{
if(a<6)
{
keybuff[a]=c;
a++;
if(a==6)sound(2);
}
else if(a>6,a<13)
{
if(c!=keybuff[x])
{
sound(20);
x=0;
a=0;
break;
}
a++;
x++;
if(a==12)
{
a=0;
x=0;
b=2;
for(d=0;d<6;d++)
{
wt24c(b,keybuff[d]);
ys100us(1000);
b++;
}
SEND(&keybuff[0]);
break;
}
}
}
}
}
/*////////////////////////////////////
函数原型:bit keyscan(void)
函数说明:键盘操作扫描
版本:V1.0.0
程序员:LIY12586
////////////////////////////////////*/
bit keyscan(void)
{
uchar a=1,c,d;
scan=key();
if(scan!=0)
{
if(scan!=11)
{
d=scan;
timer=0;
keybuff[0]=scan;
scan=0;
while(1)
{
if(d==12)
{
sound(1);
break;
}
c=key();
if(c==12)
{
sound(1);
break;
}
else if(ex==1)
{
sound(1);
ex=0;
break;
}
else if(c!=0)
{
keybuff[a]=c;
a++;
if(a==6)
{
a=0;
SEND(&keybuff[0]);
return 1;
break;
}
}
}
}
}
return 0;
}[page]
/*////////////////////////////////////
函数原型:void password(void)
函数说明:确认密码
版本:V1.0.0
程序员:LIY12586
////////////////////////////////////*/
bit password(void)
{
uchar a,b;
if(keyscan())
{
b=2;
for(a=0;a<6;a++)
{
if(keybuff[a]!=rd24c(b))
{
break;
}
b++;
if(b==8)return 1;
}
if(b!=8)
{
sound(5);
// LED=0;
return 0;
}
}
}
/*////////////////////////////////////
函数原型:void systeminit(void)
函数说明:系统初始化
版本:V1.0.0
程序员:LIY12586
////////////////////////////////////*/
void systeminit(void)
{
uchar a;
wt24c(0,0x02);
ys100us(1000);
wt24c(1,0xab);
ys100us(1000);
wt24c(2,0x01);
ys100us(1000);
wt24c(3,0x02);
ys100us(1000);
wt24c(4,0x03);
ys100us(1000);
wt24c(5,0x04);
ys100us(1000);
wt24c(6,0x05);
ys100us(1000);
wt24c(7,0x06);
ys100us(1000);
for(a=8;a<128;a++)
{
if(rd24c(a)!=0xff)
{
//ysms(100)
wt24c(a,0xff);
ys100us(1000);
}
}
sound(5);
}
关键字:门禁系统 EEPROM
引用地址:
自己做的门禁系统3
推荐阅读最新更新时间:2024-03-16 14:26
stm8s103f3p EEPROM的读写
/********************************************************************** /* MAIN.C file * * Copyright (c) 2002-2005 STMicroelectronics */ //EEPROM的读写 //先对)0x40000写入0x12 //在读出来写的数据 //如果是0x12,就使得PD的前4位输出颠倒 #include stm8s103f.h unsigned char ch; main() { unsigned char *p; PD_DDR=0x0f; PD_CR1=0x0f; PD_CR2=0x00; PD_ODR=0x0
[单片机]
keil、IAR和GCCAVR对FLASH和EEPROM的操作
1. keil for MSC51 关键字co de co de unsigned char array ={} 2. IAR for AVR(摘抄) FLASH常用类型的具体操作方法 (1) FLASH 区域数据存储。 用关键字 __flash 控制来存放, __ flash 关键字写在数据类型前后效果一样 __flash unsigned char a;//定义一个变量存放在flash空间 unsigned char __flash a;//效果同上 __flash unsigned char p ;//定义一个数组存放在flash空间 对于flash空间的变量的读操作同SRAM数据空间的操作方法一样,编译器会自动用 L
[单片机]
AT240C02中EEPROM保存数据
/*********************** 程序功能: 利用定时器产生一个0~99秒变化的秒表,并且显示在数码管上, 每过一秒将这个变化的数写入板上AT24C02内部。当关闭电源, 并再次打开电源时,单片机先从AT24C02中将原来写入的数读取出来, 接着此数继续变化并显示在数码管上。 ************************/ /************************ CODE: ************************/ #include reg52.h #define uint unsigned int #define uchar unsigned char #define AT
[单片机]
STC单片机 EEPROM/IAP 功能测试程序演示
/* --- STC International Limited ---------------- 一个完整的EEPROM 测试程序,用宏晶的下载板可以直接测试 STC12C5AxxAD 系列单片机 EEPROM/IAP 功能测试程序演示 STC12C52xxAD 系列单片机 EEPROM/IAP 功能测试程序演示 STC11xx 系列单片机 EEPROM/IAP 功能测试程序演示 STC10xx 系列单片机 EEPROM/IAP 功能测试程序演示 --- STC International Limited ------------------ --- 宏晶科技 设计 2009/1/12 V1.0 --------------
[单片机]
科技辉耀生活 泰豪人脸识别门禁研发成功
近日,在泰豪智能建筑本部研发中心召开的“利用生物信息(面相)识别控制门禁系统”项目专家论证会和阶段成果验收会上,来自中国人工智能学会、清华大学、中国科学院自动化研究所、北京科技大学等科研院所和高校的多名专家,现场目睹了泰豪人脸识别门禁系统的阶段性成果演示,听取了项目组的研发工作报告,并给予高度评价。
据了解,公司正筹备将人脸识别门禁系统推向市场。泰豪人脸识别门禁系统是一款将智能卡、密码和人脸识别技术完美结合的门禁系统。采用国际先进的人脸识别比对算法,识别准确度高,识别速度快。该产品采用5.6寸大屏显示,实时的视频显示与彩色照片显示比对结果相结合,再加上友好的语音提示,使人机交互变得更为友好、直观。一体化超薄设计
[安防电子]
AT93C46/56/55串行EEPROM及单片机程序
16位单片机以其适于高速控制场合及功能多等优点已在工业控制领域中占领了一定的市场。由于EEPROM能在不脱离系统的情况下修改其存储单元中的内容,故在16位单片机中的应用愈来愈广泛。本文结合16位机的特点,详细介绍AT93系列EEPROM及其使用方法。
AT93C46/56/66是ATMEL公司推出的低功耗、低电压电可擦除的可编程只读存储器。它采用CMOS技术和Fairchild Semiconductor 公司的Mi-croWire工业标准3线串行接口,具有1kB/2kB/4kB的容量,并可通过ORG管脚配置成128×8/256×8/512×8或64×16/128×16/256×16等结构。该系列存储器可靠性高,能够重复写10
[单片机]
STM32F103R8t6 FreeRTOS工程adc+flash模拟EEPROM源程序
STM32单片机源程序如下: #include sys.h #include delay.h #include usart.h #include led.h #include FreeRTOS.h #include task.h #include ADC.h #include 74HC595.h #include key.h #include stmflash.h //const u8 TEXT_Buffer ={ 0123456789 }; //任务优先级 #define START_TASK_PRIO 1 //任务堆栈大小 #define START_STK_SIZ
[单片机]
Microchip推出业界最快的1 Mb串行EEPROM
新的串行EEPROM提供字节级读/写功能,可在高达125°C的全电压范围下工作 全球领先的单片机和模拟半导体供应商——Microchip Technology Inc.(美国微芯科技公司)宣布推出业界速度最快(20 MHz)的1 Mb串行EEPROM器件25AA1024及25LC1024(25XX1024)。同时,公司还推出了25AA128、25LC128、25AA512及25LC512(25XX128/512)等多款128 Kb和512 Kb串行EEPROM器件,涵盖整个串行外设接口(SPI)存储密度范围(1 Kb至1 Mb)。 所有新器件均可在高达125°C的温度下工作,并可提供Microchip所有串行EEPROM产品一
[新品]