|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
之前在AS608的使用上走了许多弯路,这次希望身为初学者的我们可以吸取经验,特此介绍AS608.$ E, C- V' `3 E) a: l
指纹模块AS608的使用:
& |6 w) L* p. f3 o) q0 B1脚红线:Vcc,连接3.3V电源供电,勿接3.3V以上电源- Y& \' q* {' d* \
2脚黄线:接单片机串口TX端
5 x, O% c+ l1 k, {8 t6 N }3脚白线:接单片机串口RX端, x8 W, h) o9 n
4脚黑线:GND,3.3V电源的GND
% o# A* D5 Z' T. o7 a0 y5脚蓝线:模块触摸感应信号输出(高电平为检测到触摸),需要接VTI到3.3V
2 k' n R, k* y1 N6脚绿线:模块触摸感应电路电源,可以与红线并接1 T5 Z, B( R# k- C8 [
在本次程序中5,6脚可以不接,2,3脚分别先连在单片机上的TX,RX,保证通信正常。本次程序基于51单片机设计可以通过LCD1602显示,带有录入指纹,检测指纹等等功能。
+ D9 x) f( S0 c0 G/ ]- h9 n
9 O4 z; s9 E9 k% W5 x
- @: r& n' G- I. Q, s
单片机源程序如下:
: z. E d. r) f( E2 y* m" t' r#include<reg52.h>
$ ^& H, L$ E' _( P#include<intrins.h>
; ]+ N4 y4 w0 g/ @6 v( T#include"buzz.h"! ]) \. X* c: S* ~% z/ D$ @
#include"key.h"0 E, e/ R+ m: l# I% F3 W
#include"uart.h"4 M' a1 R# m8 j' Q2 w3 `7 N- Q: ~, p
#include"delay.h"/ R6 [7 |" W; n7 U' D# o
#include"FPM10A.h"7 d" r# i9 A; ?5 Q5 @
#include"lcd_1602.h"
1 T+ i* A7 P, g0 \
0 z o7 S6 o$ p1 u& C+ wvoid main()
0 V( O' d6 Z6 u" f6 [{ + G% X8 ^7 \ H" O
LCD1602_Init(); //初始化液晶
" M1 _. e9 q1 c) ^( x LCD1602_Display(0x80,"Fingerprint Test",0,16); //液晶开机显示界面
% w2 ~8 a, w& K( V. r Uart_Init(); //初始化串口
' }+ }: r0 E- k# \% f, _ Key_Init(); //初始化按键
" }4 e" G8 Z9 V' U Delay_Ms(200); //延时500MS,等待指纹模块复位& n& e2 d' l& [# S0 a5 t! P
Device_Check(); //校对指纹模块是否接入正确,液晶做出相应的提示3 f7 w+ T8 y! P/ U& W9 y
Delay_Ms(1000); //对接成功界面停留一定时间
& b" |# ?. G# ?1 k: V while(1)
" M& z. n6 o1 ]" \6 b: l {
2 C* D0 F) O- m9 ~$ G5 K' w9 R /**************进入主功能界面****************/
% i \5 B1 j% T" Y! K; D$ T5 e LCD1602_Display(0x80," search finger ",0,16); //第一排显示搜索指纹
' t* s$ M# O- _3 V5 n LCD1602_Display(0xc0," Add delete",0,16); //添加和删除指纹! q7 W3 N8 O* [. ]% T/ b
if(local_date==0)* Y1 w- k. R" Z( L9 e# V& i3 r
{, {6 w I% z4 C6 J1 A
LCD1602_Display(0x80, " *",0,2);
! \& E X2 ^+ H) L LCD1602_Display(0xc0, " ",0,2);
; X2 F s; p4 b! L/ h7 | LCD1602_Display(0xc0+8," ",0,2);
( m; M) K: w* P$ Z5 q }4 }( q# i6 P* N2 E: F
else if(local_date==1)
- |) k* ?/ c, `8 ^. g {
' { v$ r9 e% ]. z LCD1602_Display(0x80, " ",0,2);
; K5 d: ~/ R1 |/ N LCD1602_Display(0xc0, " *",0,2);( B' q; c+ m+ Z* G
LCD1602_Display(0xc0+8," ",0,2); , [1 r+ z; _, T6 Y$ b. Y
}5 n( b4 j2 H: D) O* G+ B
else if(local_date==2)& \* Q+ R. G# \+ Q' w, k* e* C
{# a8 e9 f: _6 r+ R2 R. q; w( v& H
LCD1602_Display(0x80, " ",0,2);
% n& f& ^+ @4 P7 P6 Q) N LCD1602_Display(0xc0, " ",0,2);
( V1 [+ e$ r+ i* ?6 D; e5 F( z LCD1602_Display(0xc0+8," *",0,2);
! i- r4 f8 D$ {" V9 S }
6 r- J7 D! k$ L- d0 @; T% B9 n, p5 C7 r' Q //确认键- R' H' {& e/ f |7 v! J+ |5 w, {+ o1 j
if(KEY_OK == 0)9 X/ A' y0 b/ ?
{ ; [4 ?- N$ t. p/ b
while(KEY_OK == 0);//等待松开按键 & `$ N: Q6 Z8 X' L! u
switch(local_date)& t" c$ G% q6 f2 q3 P$ p
{
) q+ s! B# X9 D* r, L. N6 x case 0: //搜索指纹
. A- e L% m: y$ U7 S+ f8 T6 p FPM10A_Find_Fingerprint();
+ T! I# s5 r1 i2 F. Z break; 0 u _: B9 i1 H4 ~
Q# w( { M( g' ^( u5 ]
case 1: //添加指纹
3 k, _$ }$ ~4 n FPM10A_Add_Fingerprint();( C1 I, U. z, D, I7 x4 F
break;
: i9 B5 Z$ G: X" n0 h
9 y4 M7 a8 M3 L% ^5 U$ S case 2: //清空指纹
# {$ B2 v0 p$ R( c- ?4 j" _7 f FPM10A_Delete_All_Fingerprint();
+ I: R$ G: n. R* L; E) U! W* p break;
) v0 a, N3 E1 w& @& S! J& } }
6 n9 F8 J1 W! u- t }) {9 M3 Z; o0 I$ E0 J& W1 u+ ^' q
//切换键
. k; f) U k9 { if(KEY_DOWN == 0)
/ |0 N& i; q8 A: Y {( j3 c2 O3 z2 S
while(KEY_DOWN == 0); //等待松开按键 ! M$ S& g s% j
if(local_date<=2)
; | W8 S d \ {
3 \9 X& n3 d3 H4 C" ^1 L, b local_date++;
' f) f5 N* o/ n% e | if(local_date==3)
e' y# C% l4 \& t: T! ~" e! l; A local_date=0;
% N7 E! @+ U* p ]- |( g& {$ E }
9 R$ r. j4 j$ C8 r3 k6 Y } ! f2 I1 B6 M- E) w& g
Delay_Ms(100); //延时判断100MS检测一次
3 Y' X0 ~& t: a3 [; p2 @ }
0 u3 I6 f' _! _7 j, e4 X" s/ X}
( L4 Z7 Q6 {. @- j: H
' i& r! q) }* `8 w |
|