|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
之前在AS608的使用上走了许多弯路,这次希望身为初学者的我们可以吸取经验,特此介绍AS608.: {& b" P, D1 h" m( k- v
指纹模块AS608的使用:0 K: g+ F/ }% R6 u- B$ ^
1脚红线:Vcc,连接3.3V电源供电,勿接3.3V以上电源
/ c' B2 }) @$ C; r6 o6 j9 N2脚黄线:接单片机串口TX端% c) `! Y. h1 @+ n- Z) S
3脚白线:接单片机串口RX端6 q7 K4 t) k$ E" z
4脚黑线:GND,3.3V电源的GND( ?* F% P+ g# ?. R4 g
5脚蓝线:模块触摸感应信号输出(高电平为检测到触摸),需要接VTI到3.3V" R$ i s& [# Q4 n# C$ `# `# @
6脚绿线:模块触摸感应电路电源,可以与红线并接
& U, m5 Z0 _0 @# H7 |- b5 x6 l在本次程序中5,6脚可以不接,2,3脚分别先连在单片机上的TX,RX,保证通信正常。本次程序基于51单片机设计可以通过LCD1602显示,带有录入指纹,检测指纹等等功能。
3 x( J, c: h8 q, V
6 V& s+ }. u5 C6 i6 g+ I& h5 J
" w/ E/ M4 N# a. [; a% Y. `单片机源程序如下:5 K7 H+ ~9 w- v1 a" I. Q
#include<reg52.h>4 F6 f; ], N; R# a( ^% q
#include<intrins.h>
5 O9 u. b3 q2 S#include"buzz.h"
# u- H. o# _1 ]# V9 g8 c1 B8 |#include"key.h"
# _) M! R# A3 q#include"uart.h"
0 {' k/ Z) @ ?( J1 P- f& s) U#include"delay.h"% D# o* ?5 f8 q# R' Q3 A% y
#include"FPM10A.h"( }/ V9 R5 P; E/ a
#include"lcd_1602.h"
% i8 `: F+ T# [/ n/ s& B$ p
" V5 d/ E. |6 T( jvoid main()
0 X4 Z# t7 x$ K- l' B{ " p! ` ~/ c$ l7 {6 j
LCD1602_Init(); //初始化液晶
4 m6 w! n+ s, v. N# |$ X o LCD1602_Display(0x80,"Fingerprint Test",0,16); //液晶开机显示界面
. _/ d# n _7 V7 R3 Z4 S Uart_Init(); //初始化串口
: K; |3 d' L q h5 W$ U9 d( A Key_Init(); //初始化按键
7 x- {+ N' Y% A) U Delay_Ms(200); //延时500MS,等待指纹模块复位3 w( [4 D$ _3 @, p1 v+ m- h
Device_Check(); //校对指纹模块是否接入正确,液晶做出相应的提示
1 \* o9 g. u# G# l! M Delay_Ms(1000); //对接成功界面停留一定时间$ H/ f& W0 h5 H
while(1)- x7 ~ U8 A( d. I
{+ u/ J" t6 g) K% Q8 e7 ~
/**************进入主功能界面****************/
8 |( B, v0 Q, K# s6 ^ ? LCD1602_Display(0x80," search finger ",0,16); //第一排显示搜索指纹2 ^+ u1 W9 j2 i/ G% h3 D
LCD1602_Display(0xc0," Add delete",0,16); //添加和删除指纹
8 {% Y: U( s2 p& U1 {! P+ D1 ? if(local_date==0)5 l8 R' p7 {9 e3 R! e% N
{
) W' p8 D: L0 E {% s' h7 S! B5 M; l+ j LCD1602_Display(0x80, " *",0,2);
; j+ q: C* F* x, K LCD1602_Display(0xc0, " ",0,2);9 F2 s0 J: c) ?
LCD1602_Display(0xc0+8," ",0,2);
9 @0 ~7 z; w& M# q3 L }
8 E: x" Y9 M# J) I5 M, { else if(local_date==1)$ Q0 c( W, u; z) n( O: w7 T
{% |4 p* G0 s% @- ?
LCD1602_Display(0x80, " ",0,2);
7 s; F$ x5 v; Q% W7 i LCD1602_Display(0xc0, " *",0,2);
4 Z |4 a! A# Z) N! |. A4 V0 P, s LCD1602_Display(0xc0+8," ",0,2); + y9 v5 J, }1 f/ F) B+ f- @$ E
}
' g9 a$ D* Q0 k( D: y) v- p6 V% V else if(local_date==2)
8 e! D7 D" F/ D+ i$ c! E {
( v8 z4 ]( w& B" Z9 D; u LCD1602_Display(0x80, " ",0,2);
& z: [$ B# L* |- e: p2 v" ~* z LCD1602_Display(0xc0, " ",0,2);/ ~$ m& z& b4 A) a1 m5 q
LCD1602_Display(0xc0+8," *",0,2);
! R0 t! g$ a/ l6 F } , l7 p% Q( S7 U, }7 z
//确认键, u/ O7 o0 m( b, P( m8 k
if(KEY_OK == 0)
, ?, v- E' V1 V! t, l4 v5 o$ z7 u {
# ] w4 @3 O" ?% L8 e1 u while(KEY_OK == 0);//等待松开按键 . {5 T3 [1 Q- F9 E
switch(local_date)
7 o$ c) c2 B* R" b, E0 t& ` {4 f, V2 R% M* N3 h% ]
case 0: //搜索指纹
1 F7 u( z1 V) v9 f FPM10A_Find_Fingerprint(); ! I( L& d3 W5 |8 d2 G
break; . n9 Z& O" U' t: |
2 v6 l# y+ O+ j5 r# ^
case 1: //添加指纹) T8 ^. K# ]: U
FPM10A_Add_Fingerprint();, b$ J+ |& [1 b y
break; ; C% ]3 w& k. a3 {" I- S1 N6 O, \5 t
$ v! I1 I0 x* b0 ?/ o0 }. j @ case 2: //清空指纹) _' U& N/ H+ \7 r) U, d: H
FPM10A_Delete_All_Fingerprint();
4 S. Q2 C" X4 z1 `1 [ break;
+ r' W' x+ }* V( Q, Q4 k }
/ l, F, F; K% K- g }4 h. O0 `* @. h( b. n2 c) s
//切换键
! L' B5 N1 }! D/ C+ Z- i& X if(KEY_DOWN == 0)
7 m \" }) k E! _- E {
$ e! p7 [8 E7 C1 C& r5 Y/ `- d while(KEY_DOWN == 0); //等待松开按键
% G* [ o" I3 Q8 h+ a if(local_date<=2)
! G9 C; k, s2 A" |' u# e; R* s {. R! U4 F$ ^6 V5 b1 W4 Z/ F
local_date++;/ u( C3 J* m4 e
if(local_date==3)$ l! @: k+ r! Z
local_date=0;
: D* r% r: b4 [$ |' G' x! D( i; U } $ z2 x" t5 j+ C u- O
} / O( r! z; ^" z- D9 J" V5 e6 ]
Delay_Ms(100); //延时判断100MS检测一次
6 Y& J& V3 ]4 O }% s6 w$ }- {: c; J8 }: {
}, E v. r. V. B' S% {8 ? }
! P! d* V, ]# N' y
|
|