|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
之前在AS608的使用上走了许多弯路,这次希望身为初学者的我们可以吸取经验,特此介绍AS608.
) \" J, Y" g \* C+ m) |! d指纹模块AS608的使用:
: R/ `) t( | |! u+ \% J1脚红线:Vcc,连接3.3V电源供电,勿接3.3V以上电源
7 S: M7 F; T0 S: s2 f! ?6 E2脚黄线:接单片机串口TX端
" r2 f8 G& {. w: @$ A H# u8 x3脚白线:接单片机串口RX端
1 X/ r7 I K2 C) N' C, s4脚黑线:GND,3.3V电源的GND
/ p0 S) r* I* d! T( T+ ?5脚蓝线:模块触摸感应信号输出(高电平为检测到触摸),需要接VTI到3.3V8 J4 i [+ ?; @% H& V0 h& @
6脚绿线:模块触摸感应电路电源,可以与红线并接) X8 F# Q% {- H( P
在本次程序中5,6脚可以不接,2,3脚分别先连在单片机上的TX,RX,保证通信正常。本次程序基于51单片机设计可以通过LCD1602显示,带有录入指纹,检测指纹等等功能。/ Z/ b+ ^; B) }9 |& P! u3 _' c5 y
! H5 I/ i: R+ p) ]8 P
7 C: _+ d, F- S7 `( Z: w+ X* V4 k8 m
单片机源程序如下:
5 k$ x. k- `4 _9 T9 O& g#include<reg52.h>. n& M* n; [/ T- Q- [
#include<intrins.h>0 J' y3 @' @% A# f( a
#include"buzz.h"& m4 V8 m& Y; b0 i
#include"key.h"
6 v. ?: U) i" |' P& |#include"uart.h"
6 i7 P: l5 I$ E#include"delay.h"
/ ^, C: S2 ^, @, o#include"FPM10A.h"0 R: S! @# j: [, [/ f4 H
#include"lcd_1602.h"
/ ?; i {# c: C9 U% }/ X8 k
& I- D& q6 a' Yvoid main()
% z: {" W0 f! ~{
* O" [1 C, M+ i, [+ J3 X LCD1602_Init(); //初始化液晶
/ m/ n$ \ c- T: v LCD1602_Display(0x80,"Fingerprint Test",0,16); //液晶开机显示界面" I% r! @/ D: k
Uart_Init(); //初始化串口
4 C# P7 ?/ Q& D% L/ n8 r/ I Key_Init(); //初始化按键
: Y, ]3 t2 J$ H$ a. u$ X) }7 Y Delay_Ms(200); //延时500MS,等待指纹模块复位
6 X5 a, a3 e S5 _# p9 ]) ? Device_Check(); //校对指纹模块是否接入正确,液晶做出相应的提示 t1 D1 m8 r* y9 @4 l
Delay_Ms(1000); //对接成功界面停留一定时间4 i- }1 k2 d0 d9 S# W( \) A3 z
while(1)
. |5 ] k g L4 ]( z0 }$ H {
% U0 }& I4 ^. }/ v, K- H /**************进入主功能界面****************/
# X0 [ X# u- \* e LCD1602_Display(0x80," search finger ",0,16); //第一排显示搜索指纹
) F, [) d! f1 s/ F4 |5 y2 H LCD1602_Display(0xc0," Add delete",0,16); //添加和删除指纹
4 X4 {+ C/ ^/ g4 o s! V if(local_date==0)
1 `1 p, v8 _! I! `% i# W+ P( ?: x6 S {/ D, w" G; w1 ?) y$ F- ]
LCD1602_Display(0x80, " *",0,2);+ [! O L$ ~4 F2 m8 f
LCD1602_Display(0xc0, " ",0,2);
" x h; E1 P& v { LCD1602_Display(0xc0+8," ",0,2); # b7 H" W( H g9 L
}% `- c9 W: d, X" D: T
else if(local_date==1)5 `0 x& Z6 r g+ E0 ^5 H$ D
{$ I. n+ e, A" ]* K8 V: @/ R
LCD1602_Display(0x80, " ",0,2);
% J8 f% X$ e, a9 }. }4 } LCD1602_Display(0xc0, " *",0,2);
8 f7 C8 E8 j3 [1 \) q6 u7 v LCD1602_Display(0xc0+8," ",0,2); ; s: H* z2 @- p9 o
}5 y! ?% p3 \. Y$ c3 P
else if(local_date==2). V0 {! ^ R# o g2 { L# e: j
{
& k# H/ f1 E! b+ x6 | LCD1602_Display(0x80, " ",0,2);
* `& c' ?: Q& [) i% k LCD1602_Display(0xc0, " ",0,2);
' I4 ^5 v- e3 ]* W8 H5 E' v. u0 C. u LCD1602_Display(0xc0+8," *",0,2); 6 r, t3 o( g, [5 \& J& b; `
} * Q/ Z' b2 Z( Q% ]' {& z D
//确认键
" s# l) j6 j9 I3 S7 l+ E if(KEY_OK == 0). v/ m& M' @0 j" Q$ r8 I
{ h: r$ J2 y9 B: l9 O% u+ m! W
while(KEY_OK == 0);//等待松开按键
* I9 n; N1 ^/ A6 G$ ?$ A$ k+ Y: [ switch(local_date): E( ~9 q# F6 @0 ~) }
{% b6 D' d' a" w
case 0: //搜索指纹
6 f2 [. w3 X9 ]1 |$ q* W: r% s! o FPM10A_Find_Fingerprint(); \' U6 ?7 x1 t; E
break; . K r0 o; i% ]; }5 F/ q
1 e( g% a7 s, E- {+ k case 1: //添加指纹
5 r2 q8 [2 v. ] p FPM10A_Add_Fingerprint();# X7 @6 ?. S- }% M# k
break;
: g. x: {+ ^6 }4 [# R4 G5 c
7 z1 G% j! N+ K3 _. x. L% | case 2: //清空指纹
# u2 d* o* J4 y1 ^2 X' w FPM10A_Delete_All_Fingerprint();; U% `; L8 c' W N
break;& o S+ D" [ `9 x' Y( O
}4 i: B7 Q6 R$ Q5 S; U: W
}/ c8 J( G+ f4 n2 v1 ~$ b3 n
//切换键3 Y' v/ ^6 j( d+ n) g& @$ F& G
if(KEY_DOWN == 0)
( l! ?1 l8 A, B8 z; Y {
; Z5 s ?1 }- _0 P3 v% L* P" @ while(KEY_DOWN == 0); //等待松开按键
6 p7 h, H$ E' v6 S& b- t: J( |' w if(local_date<=2)
( b( R2 h5 N' z {
' K' @" f1 Z4 E- p0 Q6 ~0 D$ b# L local_date++;: Y* ~3 N! l3 \: p# A
if(local_date==3); M" `) P K( ] w7 F) R* ?8 V
local_date=0;
5 r. X; `. r/ J8 N9 { } ! L7 D4 F7 v W% `9 s% ^. r4 m
} , C% ?) w. B3 H/ g2 R d/ z
Delay_Ms(100); //延时判断100MS检测一次
) m* F5 p% x3 \( T- z1 I7 B' @ }6 M. m; Z) N5 p+ I" q3 j
}% P6 F- g6 f G8 K4 d! B/ t
& _ n3 Q" E: }' m$ r) s |
|