|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
之前在AS608的使用上走了许多弯路,这次希望身为初学者的我们可以吸取经验,特此介绍AS608./ ~/ [' {9 E+ O: m' Q
指纹模块AS608的使用:
! f: p6 _/ C; g/ R: t4 r1脚红线:Vcc,连接3.3V电源供电,勿接3.3V以上电源
4 B% b/ M6 `1 p; C! E* M: k6 a$ G2脚黄线:接单片机串口TX端
; p+ w* y J2 q4 a& C3脚白线:接单片机串口RX端% y: l; ~, A# _7 j
4脚黑线:GND,3.3V电源的GND3 M( w2 \# ]( F/ v! l
5脚蓝线:模块触摸感应信号输出(高电平为检测到触摸),需要接VTI到3.3V
" q! ^% Q; T' O T% I$ k6脚绿线:模块触摸感应电路电源,可以与红线并接0 r6 Z8 _- T: Z5 G; M
在本次程序中5,6脚可以不接,2,3脚分别先连在单片机上的TX,RX,保证通信正常。本次程序基于51单片机设计可以通过LCD1602显示,带有录入指纹,检测指纹等等功能。
+ h% `/ f/ G- U1 z5 b7 [( S
4 h9 t5 H j! Q! ~' d; e; S- l7 b' l6 h8 Z
单片机源程序如下:
$ r( F' c& ^) u#include<reg52.h>6 y- k$ L) p! r# c
#include<intrins.h>
6 V$ \. u# G! o/ _7 K#include"buzz.h" H" V3 @' w6 @8 O
#include"key.h"' B/ V$ f% y+ X _1 q1 [9 i. X; y
#include"uart.h"
4 H3 I* C" C2 e5 D9 H1 ?: g) d3 R#include"delay.h"
7 {! [4 E8 L1 f9 ?: M3 N#include"FPM10A.h"
2 m4 w8 L! W7 I; q9 `#include"lcd_1602.h"
2 x7 l+ ^2 a+ N1 _, S* f& u3 r$ |
, p; }+ s+ G/ v* S7 Z- i3 \void main()
2 J7 {4 L5 a" |- o{
; i: z) _. I# j8 [" ]9 l LCD1602_Init(); //初始化液晶8 v0 u' ]! ~0 u
LCD1602_Display(0x80,"Fingerprint Test",0,16); //液晶开机显示界面
! u4 F# q- S; X' J% d5 B Uart_Init(); //初始化串口% u" v9 n; }6 c' r
Key_Init(); //初始化按键
8 M/ n4 ] f. a Delay_Ms(200); //延时500MS,等待指纹模块复位7 K/ V, V$ Q; ` ^$ v
Device_Check(); //校对指纹模块是否接入正确,液晶做出相应的提示- u2 f" G8 p' F
Delay_Ms(1000); //对接成功界面停留一定时间
# n2 J; Y- h- V) G/ k while(1)/ d4 v1 h" x2 { w8 z
{. l; y: U3 b2 o
/**************进入主功能界面****************// `: |5 r7 o5 J, g' l- ~
LCD1602_Display(0x80," search finger ",0,16); //第一排显示搜索指纹1 d* S# _7 K! x; p) a: p; m8 ?
LCD1602_Display(0xc0," Add delete",0,16); //添加和删除指纹
3 @: X$ W; i0 s* U8 X5 ? if(local_date==0)
9 B" P. ]1 _" I* H2 E! n; ~9 } {, d+ K1 E8 X3 Y+ l7 z: O% F
LCD1602_Display(0x80, " *",0,2);. A, e. U1 A! l( o' I' Y
LCD1602_Display(0xc0, " ",0,2);* e# P3 c, q$ ^) _
LCD1602_Display(0xc0+8," ",0,2);
$ w: b3 S% D" C: _% X5 A9 l }
. ?! ?0 W) d! h: ?' k# E else if(local_date==1)
& d. P$ `0 ]3 y& n {
; i' L* s4 t/ v- q+ I9 o LCD1602_Display(0x80, " ",0,2);
0 _$ h( C( ^9 s% j9 @) v) J( w LCD1602_Display(0xc0, " *",0,2);
2 k% @8 W8 L* @# X3 x3 w LCD1602_Display(0xc0+8," ",0,2);
: @8 m- }* p' \8 X: ] }
8 T* L2 c) T( }0 ]7 S A9 U else if(local_date==2)
5 m# }% e4 B% b a7 B {
0 N' `: S! s x( {* w9 }# q LCD1602_Display(0x80, " ",0,2);
, G8 B9 T; U; u9 `% y0 j LCD1602_Display(0xc0, " ",0,2);+ y' h$ K* x# Y/ n2 @# H
LCD1602_Display(0xc0+8," *",0,2); / h7 u% ?# j' [4 g! ^9 _
}
: M( H" Z2 L6 c }( a9 @ //确认键
- K3 x9 i' J4 {. o/ _, ?5 P if(KEY_OK == 0)! G1 W" [+ G/ g- ~
{ 9 A8 C3 e$ h0 C
while(KEY_OK == 0);//等待松开按键 : ]. W' d9 u. L/ n
switch(local_date)
$ r/ S7 ]2 ]' A; j {* S+ g4 Q5 h( F
case 0: //搜索指纹 : A! d2 q( o8 S' d
FPM10A_Find_Fingerprint(); ' c' d9 S* X( ?
break; 0 j6 g. p4 f% ^
+ g. _1 h5 d3 h
case 1: //添加指纹
3 B# r- z0 j7 m% _4 ^. k1 h FPM10A_Add_Fingerprint();
; T2 r% d# n$ b( Q- J* b$ b% x break;
% C% |2 _0 h7 P% M Y6 E) M; R
) i6 ]& U! I: J2 \: @+ W case 2: //清空指纹
2 N; L' T; ?' E% L* H. h FPM10A_Delete_All_Fingerprint();
. w; r! T6 }3 ^6 C& u( F7 }9 w break;% O7 g/ t3 m9 W5 R, r! @, Y
}
; |& k& Q- f8 R# T$ P6 q }
# b, @9 c# J |. C3 @8 Y! G9 e //切换键, ~; E ?) X! H C* n- Z5 N* g6 K( Y. K
if(KEY_DOWN == 0)
/ d1 {# C) x& W2 ]/ D {
# H8 M+ O5 G& a; t0 j while(KEY_DOWN == 0); //等待松开按键
4 V. J4 d8 ]) `" k) w if(local_date<=2)# G, P/ x2 M ?1 g5 X
{, L' ~7 M/ r/ d& S9 h2 {3 H+ o
local_date++;
3 ~) z! ?& a1 c- n/ ^ if(local_date==3)
f7 E0 o$ Y* Y local_date=0; 8 m N; q; T5 c- q4 J) `# d
}
9 ?5 N$ [ f( W } " L( f" W: q' W7 P' S! E+ z
Delay_Ms(100); //延时判断100MS检测一次
2 Q: s8 D4 _! a- d! M3 v- J( u3 n }
" n5 R8 W; Y% a$ g}7 g6 v) K; _3 V7 `
1 j! d' {4 a8 o ^ |
|