|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
之前在AS608的使用上走了许多弯路,这次希望身为初学者的我们可以吸取经验,特此介绍AS608.
/ k6 V3 S* p7 y指纹模块AS608的使用:
6 Q7 s9 c/ ~- U! U1 O1脚红线:Vcc,连接3.3V电源供电,勿接3.3V以上电源
- Z# x3 S9 N( N; Y# t' q2脚黄线:接单片机串口TX端; l2 o2 k( D+ H) k5 E
3脚白线:接单片机串口RX端
' ^: A0 C6 g. ~2 N( Y5 N4脚黑线:GND,3.3V电源的GND
& S: g3 E, Y. M+ L# e5脚蓝线:模块触摸感应信号输出(高电平为检测到触摸),需要接VTI到3.3V
2 N: H9 k5 J6 K: L6脚绿线:模块触摸感应电路电源,可以与红线并接
+ M4 }, S6 m2 W& x+ [! o在本次程序中5,6脚可以不接,2,3脚分别先连在单片机上的TX,RX,保证通信正常。本次程序基于51单片机设计可以通过LCD1602显示,带有录入指纹,检测指纹等等功能。
7 o" P. o/ D4 D3 v3 c, E
e( \* d, Z2 P3 {& m8 }9 K! X& g% J6 i* S- T5 i6 \4 k
单片机源程序如下:
) n9 e4 o( D6 w! M( `#include<reg52.h>+ q) c- y# ~+ P/ Z( x0 e3 D
#include<intrins.h>
& `/ X5 ]- _* Q0 Z$ I! e#include"buzz.h"9 G" o# c6 l' H3 R
#include"key.h"
) T- H% p# U; V% a+ E5 E) I, ]#include"uart.h"
6 T e! T1 \! s4 E. N* U& j#include"delay.h"
8 N4 p0 k X! x# g+ n#include"FPM10A.h"/ c' {# u6 c8 D
#include"lcd_1602.h"
( N& c7 Q* h4 q% N: c- x/ B: |5 {6 k: q( L! p9 ^6 \4 ^) P/ M
void main()
# ]+ z5 K9 O* z4 {4 t9 N# r. ~{
: q8 k T- x- b, V6 Z- V) Q; u LCD1602_Init(); //初始化液晶! {. {% A& ?9 `+ D- V5 [. m. T
LCD1602_Display(0x80,"Fingerprint Test",0,16); //液晶开机显示界面7 f" q% x* n2 ?8 G, x
Uart_Init(); //初始化串口
2 M- w: X# w! e9 p Key_Init(); //初始化按键$ c" p, M5 q8 G7 O
Delay_Ms(200); //延时500MS,等待指纹模块复位- ^6 }5 d- b8 V; j
Device_Check(); //校对指纹模块是否接入正确,液晶做出相应的提示 {: g$ X1 z G5 W* W
Delay_Ms(1000); //对接成功界面停留一定时间
2 P5 ?8 i8 s( D" T. K4 n; @5 c while(1)
* s1 C/ ~1 \6 F7 f _ {) b* [$ q% ^4 o5 C: w- d
/**************进入主功能界面****************/
/ Y4 n# h4 ]; D8 @- ~ v LCD1602_Display(0x80," search finger ",0,16); //第一排显示搜索指纹8 V. u; I- H" o: L: I, Q- G. c
LCD1602_Display(0xc0," Add delete",0,16); //添加和删除指纹
" T8 v O0 |1 x if(local_date==0)( o+ h6 _8 P3 ?
{
* X" S1 C6 D+ t, { LCD1602_Display(0x80, " *",0,2);, u7 R8 g$ L j: {: K9 j3 I
LCD1602_Display(0xc0, " ",0,2);
& q1 {0 E+ \, o! B* I; D# e LCD1602_Display(0xc0+8," ",0,2);
t5 |( i+ N, r* H! ^- C" n' y }
; t. N. }; ^; X$ c+ W else if(local_date==1)
r: p$ x8 o/ }+ _8 y# E$ { {
4 ?2 h( u9 X1 s1 R( P% t t LCD1602_Display(0x80, " ",0,2);
; t- v8 W: w) a1 y- j8 y0 ~+ ~ LCD1602_Display(0xc0, " *",0,2);+ k6 e$ o5 i: z, J9 ~. n) Y! ?
LCD1602_Display(0xc0+8," ",0,2);
1 ^1 ]2 \2 f5 f. v6 x2 A }
. V6 v2 u: [* o/ j, {) v4 p else if(local_date==2)' M( }2 f5 a, x
{
0 m7 A2 V: g- f LCD1602_Display(0x80, " ",0,2);
9 S: r8 K9 f$ p5 P5 o LCD1602_Display(0xc0, " ",0,2);
9 J* k; n- b' m& C1 J# m LCD1602_Display(0xc0+8," *",0,2);
# F* |& S% j8 o1 a l4 T4 @6 n# L! m9 o } ) l- X2 d; O% H! d7 @6 o
//确认键3 h4 d% n* \! I# `2 B8 G, A f" w
if(KEY_OK == 0)) Q, [ D& z/ c: Q. N/ ]
{ 0 V6 |# ^1 h* H% ]0 @' W
while(KEY_OK == 0);//等待松开按键
' y& Y/ ?# w+ {* ?: s7 ]( n3 l# X switch(local_date)
1 ?/ x; k# t1 |9 ^ {* x7 t0 Y& _4 W! V8 b, k
case 0: //搜索指纹 ' \7 X# C9 R' H4 O
FPM10A_Find_Fingerprint(); - ?( @/ q. E3 ^' K8 T4 D4 P* i9 E* H
break; ) I+ a$ O; y# l3 V( w
; d% D2 A' ]! ^0 Z
case 1: //添加指纹: P# g0 j/ T l) B/ P# v( f
FPM10A_Add_Fingerprint();
2 O! n4 m! ?) f4 I- { break; M# J3 h! ^# Q5 K) p J( ]( z
) x; x. E* L, W# a/ Z case 2: //清空指纹
# \; m6 l# x/ Z8 F7 ` FPM10A_Delete_All_Fingerprint();- a3 g2 F/ z3 h F$ t: H
break;
- q- v) @, n" ], z6 F }. U* j' c3 ^5 g- `2 k3 U
}" ~- z) j9 z) E" [) a2 h, x
//切换键- d/ G# G( [ n" R5 i7 ?- m
if(KEY_DOWN == 0). Y& I" S' A4 F7 y }
{
+ i/ S4 _ K" b$ N7 L2 b while(KEY_DOWN == 0); //等待松开按键
" N; ~; H8 h9 W6 P$ {; W Y$ A if(local_date<=2)
* Y& p- T1 Z$ I2 L {5 v8 E8 t2 o1 [. ]% ], x; |" ^1 p
local_date++;" B. f! _5 M* x; L9 K; @
if(local_date==3)
3 _% d5 [4 \6 y) x' A) q! g' l# L local_date=0; 6 \9 Y2 @ E. ^8 ~4 j
}
; k& S; Y# R4 ~ }
) Y+ W; O7 a% v" V; t( n3 X Delay_Ms(100); //延时判断100MS检测一次
6 w3 e6 ]+ k+ J6 s5 l n3 ` }& C. x2 U( N+ ?- v' C" b$ F+ n
}
/ R1 j( i7 Z) Q7 s) A1 n" t
" h2 j2 O! o% o. l( H, ?" Q! ^ |
|