|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
之前在AS608的使用上走了许多弯路,这次希望身为初学者的我们可以吸取经验,特此介绍AS608.# p$ y# b7 d: s& A+ F6 V) g. s) G
指纹模块AS608的使用:
3 T; ^& H- _# U- ]! V+ z# Z1脚红线:Vcc,连接3.3V电源供电,勿接3.3V以上电源
% } h6 y$ q' B, i% d. }3 v+ `2脚黄线:接单片机串口TX端
" ^9 [6 `' X6 `) |1 _% _5 J3脚白线:接单片机串口RX端6 Q7 b% c% ` Q9 O: p( s1 S
4脚黑线:GND,3.3V电源的GND `+ R4 e9 y2 x8 s
5脚蓝线:模块触摸感应信号输出(高电平为检测到触摸),需要接VTI到3.3V
* _) E/ A; ]4 y4 a$ A6 ~( Q6脚绿线:模块触摸感应电路电源,可以与红线并接
6 E* M4 A# X4 Q% `: |) U. {3 D在本次程序中5,6脚可以不接,2,3脚分别先连在单片机上的TX,RX,保证通信正常。本次程序基于51单片机设计可以通过LCD1602显示,带有录入指纹,检测指纹等等功能。6 E' e4 s# ~/ g
{& S4 A0 X* k( R* |
2 m. G4 _7 Q) d( w+ s, G
单片机源程序如下:
7 N U& p' b- @#include<reg52.h>. I3 D/ j! K4 ?6 W9 l& w
#include<intrins.h>
: F; l$ K( _/ H# m3 r) \#include"buzz.h", W+ Y+ \0 \! a- U- T
#include"key.h"
5 g6 w$ O% S/ p1 I#include"uart.h"
! Z4 Y, n* x- \% Z3 i6 g+ T#include"delay.h"0 [5 W) r' I: R
#include"FPM10A.h"7 V0 ]) u$ K8 n# s, R: r
#include"lcd_1602.h"
1 s. I9 |9 m& \; s0 Z0 M9 k1 S& M# e& E J6 `( V
void main()
- x5 N6 C1 e- [4 P# c+ m{
# k6 S* B; i) h5 z7 S8 o LCD1602_Init(); //初始化液晶
2 B6 R9 P- a0 c4 W7 Q: w LCD1602_Display(0x80,"Fingerprint Test",0,16); //液晶开机显示界面
/ j& e- J! \5 u* ?/ v# K Uart_Init(); //初始化串口4 q* G9 M# q$ E5 [1 I0 s9 r
Key_Init(); //初始化按键
7 ]: {. f% s- L1 m Delay_Ms(200); //延时500MS,等待指纹模块复位. S0 M+ Q1 }8 N. x+ @+ j7 ~9 C' r4 j
Device_Check(); //校对指纹模块是否接入正确,液晶做出相应的提示
# o! i' F2 o3 n& o5 m1 Y Delay_Ms(1000); //对接成功界面停留一定时间
. w6 g, |% L8 g/ K% Q while(1): C. S2 S J: q+ p; J: p4 ?5 w9 I
{
5 c2 s0 F' T' e /**************进入主功能界面****************/9 L* T4 W1 ?$ z+ f x
LCD1602_Display(0x80," search finger ",0,16); //第一排显示搜索指纹: i9 c' M, ?: G# x! c8 ^1 V/ ^
LCD1602_Display(0xc0," Add delete",0,16); //添加和删除指纹
$ Z& A0 B, F* g$ f if(local_date==0)
" U( s3 ?! ] L h1 e: ^ {
4 p4 r2 Q' l( {& z- p# c& H6 f LCD1602_Display(0x80, " *",0,2);
0 F8 c! I' Y2 Y2 L; a0 [3 C) R" O LCD1602_Display(0xc0, " ",0,2);* P- l& n8 j8 L0 ?
LCD1602_Display(0xc0+8," ",0,2); 1 b$ w* P& [- ` \: h% v) _
}
# {" y* R) W6 b) F' v2 B! c! D else if(local_date==1)
# _) D _. X- \5 o( S- W2 i" D' R {
2 M5 H! B6 U& e LCD1602_Display(0x80, " ",0,2);
& _+ w3 b: D- Z6 a# B( s LCD1602_Display(0xc0, " *",0,2);
% ]4 o5 H [: g) O LCD1602_Display(0xc0+8," ",0,2);
6 h7 W; s0 \0 e1 Q% H) ~ }% \' |+ s7 e3 `! R( p
else if(local_date==2)) k# h m# w7 F8 W+ g
{# D/ }% R6 u# l- u. @" {, }' {# ?
LCD1602_Display(0x80, " ",0,2);; w7 y+ S7 O7 H6 A; X. I
LCD1602_Display(0xc0, " ",0,2);! m% Q7 W7 N' l! k& N" A# f, X
LCD1602_Display(0xc0+8," *",0,2);
+ A a4 t7 j" z* h! F } + @2 z4 O6 ^1 ~ T. P
//确认键$ p& w h* @- Z7 W7 V
if(KEY_OK == 0)9 o- \; r# K5 h& ?
{
- {5 i+ C) }7 J0 e s/ A2 V/ `" m while(KEY_OK == 0);//等待松开按键 , w5 m( \) u. J7 Y
switch(local_date), g/ i- e' }( S
{
/ E- _0 ?. O' _( I8 H* ? case 0: //搜索指纹
8 V* @ r5 o9 W8 A FPM10A_Find_Fingerprint();
8 A/ Z$ O" A' H J% {; T3 S. ^ break; ; G& T' o7 v" s) H! [- m3 l; ]
3 i1 K1 F* S* P
case 1: //添加指纹
4 ~" `) L0 Q. U FPM10A_Add_Fingerprint();9 _8 t% { m- A/ u. Y s) l& F3 O/ U4 d
break; % K* w! D) o, I! V$ S+ x% |% r8 l
?0 k" ~" C% X4 x K$ \& N
case 2: //清空指纹
0 T# N0 `! b) V0 e4 Z- \ FPM10A_Delete_All_Fingerprint();/ w5 y/ ~' } A4 ]' q
break;
) T5 v# f2 t* l: x1 U }
$ I* D2 I( S) w5 G* N+ s& [9 L }+ V$ N9 T. H; _# I, q) v$ f
//切换键
; ?) b3 Y/ n' r7 ^) ]' h if(KEY_DOWN == 0)
3 q1 \; d% H! }( \1 q( A {; R' X7 V0 \7 V! M$ l6 \! \
while(KEY_DOWN == 0); //等待松开按键 5 l3 a0 L8 O+ f3 W) e
if(local_date<=2)
/ M$ k F- Y3 V' z1 [ {
& K' j; h ?: A b0 [ local_date++;5 D- g `. [0 t5 n7 ^5 P W
if(local_date==3)
- r' g% ^$ p. j$ M6 ^ local_date=0;
{ e! a; `3 d* `# P }
- N; J; Q, }/ ?, \4 G E } ) Y9 g) x7 w' [6 M! D
Delay_Ms(100); //延时判断100MS检测一次 . j! \8 U5 d: \$ Q1 R
}/ ?- w- P3 O& a; D( }+ U. k
}
' z7 V% f; k# i, a8 b, Z, S& D( [( Y1 Y
|
|