|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
之前在AS608的使用上走了许多弯路,这次希望身为初学者的我们可以吸取经验,特此介绍AS608.+ d0 s# s6 f2 n! i+ W' @
指纹模块AS608的使用:
; o( P4 R- d, f+ U8 v+ v" h9 ?5 C1脚红线:Vcc,连接3.3V电源供电,勿接3.3V以上电源. w5 W% O. n0 b! {8 q
2脚黄线:接单片机串口TX端! Y$ t- p$ ~8 P- Z2 A9 r9 c' t( k% F) ]
3脚白线:接单片机串口RX端* D& n3 }' |& ^0 o/ O% u
4脚黑线:GND,3.3V电源的GND
, P ~6 N" H K5 T* z$ z1 e5脚蓝线:模块触摸感应信号输出(高电平为检测到触摸),需要接VTI到3.3V0 F0 j5 @0 ?8 ~! ] C
6脚绿线:模块触摸感应电路电源,可以与红线并接
: w2 D" L' n$ d% D7 E0 p在本次程序中5,6脚可以不接,2,3脚分别先连在单片机上的TX,RX,保证通信正常。本次程序基于51单片机设计可以通过LCD1602显示,带有录入指纹,检测指纹等等功能。$ @2 |/ q) c( C3 R
4 W6 k! n7 ~% `# ^0 M
! k: I2 h/ ^ u5 i8 Y' P单片机源程序如下:; g3 a7 c' y9 s9 u+ o% J* ~9 G
#include<reg52.h>; j' Q6 d3 m8 m3 _) @) R
#include<intrins.h>
8 ~4 j! P+ h; |( h#include"buzz.h"8 f2 c2 m' t( f" U8 e( d
#include"key.h"
f' p( e! e6 p! k Z6 A#include"uart.h"
4 N, ~ C* W5 [8 |#include"delay.h"9 P" q/ Z# s4 e" u
#include"FPM10A.h"
9 E! k1 E3 \5 k; _ W#include"lcd_1602.h"! i& `. O \% \! b
; E* b0 W. P {3 g* V- C$ W& @
void main()( I& L: y/ X M' p
{
/ |) s8 J/ Z8 b. U+ U2 O: p LCD1602_Init(); //初始化液晶
; q8 D7 ?9 |: p' M LCD1602_Display(0x80,"Fingerprint Test",0,16); //液晶开机显示界面0 n7 E- j( @, u* d8 R/ f; z
Uart_Init(); //初始化串口
& o7 a9 Q& o4 n$ L! p Key_Init(); //初始化按键& K$ n5 z5 ^/ Y' ^, N" l* Y
Delay_Ms(200); //延时500MS,等待指纹模块复位0 l3 N W& l. K8 P3 s+ L( Y
Device_Check(); //校对指纹模块是否接入正确,液晶做出相应的提示: e. A' Z* w/ i& ?0 i4 [: F9 Q/ v
Delay_Ms(1000); //对接成功界面停留一定时间2 L7 }& M0 E! N4 i# J
while(1)
* U+ Q& g5 b: K% |# v {* s, K. X& p& U" {5 e
/**************进入主功能界面****************/
# x" w9 x/ q0 P LCD1602_Display(0x80," search finger ",0,16); //第一排显示搜索指纹
! }$ d1 c# k) X LCD1602_Display(0xc0," Add delete",0,16); //添加和删除指纹! X$ }0 u4 W/ I* T E! Z, l- Y' s
if(local_date==0). O$ p. p: b3 o; f
{
b3 M0 q! Z/ h1 V) P LCD1602_Display(0x80, " *",0,2);
4 I/ r6 `" K* r, S LCD1602_Display(0xc0, " ",0,2);
) J7 [- C# p) a8 k LCD1602_Display(0xc0+8," ",0,2); * Z5 p: G- d. @- M/ i
}
; a; `7 _$ {4 M$ L5 V, Z4 t" r3 ` else if(local_date==1)- D( {$ R$ w: y' n2 ]
{- j( L3 `7 g7 ?2 R1 m
LCD1602_Display(0x80, " ",0,2);- Q3 w- j! |8 ?" ~4 F: j% a. s
LCD1602_Display(0xc0, " *",0,2);
3 T9 k! C" I' e$ W6 { C4 R1 D LCD1602_Display(0xc0+8," ",0,2); 0 d# k: l. J$ y2 j# v5 ?' Q, m# g; p
}" w" h9 F5 \: X' P0 ]* R
else if(local_date==2)
8 |9 r' N3 V! M1 L: W0 v {
; |' G: n2 J; N LCD1602_Display(0x80, " ",0,2);
8 z6 y( h1 q0 \- Q9 V LCD1602_Display(0xc0, " ",0,2);7 m& N, c9 l) `- S! x
LCD1602_Display(0xc0+8," *",0,2);
" U! \- N. l) f- R }
9 {3 F L2 @2 M, D //确认键
3 h* z) F* o+ y1 d% N; c if(KEY_OK == 0)3 W* f# q; c/ f/ }* t
{ & U4 f' H" w( X3 b) e
while(KEY_OK == 0);//等待松开按键 2 a7 |% n1 T9 ]; }0 u- ]
switch(local_date)% Y. n4 O' R6 Q. m$ x" b/ h
{0 y+ s" X, e0 H# P' w4 s4 s/ p
case 0: //搜索指纹
6 R+ s+ \% f' i! ? C1 o% W FPM10A_Find_Fingerprint(); 9 T# n8 s* p7 O1 s7 h- {
break;
7 a) u9 p2 J1 W' q& f 2 z1 T& P- P( r- c/ r) ]
case 1: //添加指纹# ^" g& o" t- B" A& T" ?
FPM10A_Add_Fingerprint(); K8 [* {8 l. K5 H! M/ T: h
break; 4 `) O) ?# m- r2 p+ M6 m' D
6 r4 t2 h! t3 q# s! W s$ | case 2: //清空指纹
8 q. B1 A! t3 g2 k+ ~ FPM10A_Delete_All_Fingerprint();' S g8 i, ^+ w& `6 d3 P9 v" R
break;
9 G( y( w# u9 r }8 i# D a6 v0 R; Y
}7 J ]4 r$ K( b6 P8 H) j& w% Z
//切换键' d, @7 x: E; I7 ^. X( X
if(KEY_DOWN == 0)$ T( C$ @$ p! k
{4 ]# x& F# t* @4 a
while(KEY_DOWN == 0); //等待松开按键
2 }* q, a& V& x6 w if(local_date<=2)
4 z% s l& d+ ^% G( G5 M3 @ {+ T2 V$ c1 H' J9 T
local_date++;8 ~+ E& [! u1 S, d
if(local_date==3)
3 g3 C: g3 L% P3 U% A* O local_date=0; ; e% i3 e: N, F7 T8 _
} * d8 m% B& R& y! g
}
7 T5 @. u$ [( Q* ^ Delay_Ms(100); //延时判断100MS检测一次
3 a: M2 S8 I( {3 ~1 ]8 c8 E" ~ }
7 ]. B1 _( ?3 k- o/ m" q+ }1 I& X}! c3 j P5 b) {' L+ } m
- `: C/ B/ g2 @# m) Z9 }% H
|
|