1.硬件
1.1 硬件组成
1.正点原子战舰V3开发板
2 AS608指纹模块
3 继电器+5V小灯
4 2.8寸电阻触摸屏
1.2 硬件连接
1,DS0(LED0)(连接在PB5),DS1(LED1)(连接在PE5)
2,蜂鸣器(连接在PB8)
3,按键KEY1(PE3)开锁/KEY2(PE2)关锁
4.继电器(连接在PE1)
5.AS608的接线
红Vi--------3.3V
黄Tx--------Rx(PA3)
白Rx--------Tx(PA2)
黑GND---------GND
蓝WAK---------PA6(感应信号输出,默认高电平有效),GPIO(PA6)读取指纹模块触摸感应信号
绿Vt----------3.3V(触摸感应电源输入端,3.3v 供电)
串口2(波特率:57600,PA2/PA3)与指纹模块AS608通讯
ALIENTEK 2.8寸TFTLCD模块(通过FSMC驱动,FSMC_NE4接LCD片选/A6接RS)
W25Q128(SPI FLASH芯片,连接在SPI1上,用于存储字库)16M字节
EEPROM24C02(用于存储LCD触摸屏一些参数和密码)256字节
2.功能实现
2.1概述
用继电器加一个5V小灯来模拟门锁的开关,用K1和K2按键来模拟钥匙开锁关锁,K1按下继电器吸合小灯亮代表门锁打开,K2按下继电器弹开小灯灭代表门锁关闭。触摸屏通过四位密码来控制继电器,也可以设置密码,密码保存在EEProm里,触摸屏按下指纹按键时跳转为指纹解锁界面,指纹比对成功继电器吸合,也可以新增指纹和删除指纹
2.2触摸屏解锁主界面
2.3指纹解锁界面
2.4 视频演示
3.主要代码
while(1)
{
//延时状态切换
switch(processsum)
{
case 0:
MAIN_MENU();//切回主页面
processsum=2;
break;
case 1:
PS_MAINMENU();
while(1)
{
key_num=AS608_get_keynum(0,170);
if(key_num)
{
if(key_num==1)Del_FR(); //删指纹
if(key_num==3)Add_FR(); //录指纹
}
if(PS_Sta)//检测PS_Sta状态,如果有手指按下跳转指纹解锁界面比对指纹
{
press_FR();//刷指纹
}
delay_ms(20);
cnt++;
if(cnt%500==0)break;//延迟10s后跳转主界面
}
processsum=0;
break;
case 2:
num=PW_GET_NUM();
if(num==0xff00)
{
SET_PW(); //设置新密码
}
if((num!=0xffff)&&(num!=0xff00))
{
VERIFY_PW(num); //密码验证
}
if(num==0xffff)//跳转指纹解锁
{
delay_ms(500);
processsum=1;
break;
}
}
}