|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
之前在AS608的使用上走了许多弯路,这次希望身为初学者的我们可以吸取经验,特此介绍AS608.
: N: W; S W o$ `& m指纹模块AS608的使用:9 n9 Y! J5 R1 `
1脚红线:Vcc,连接3.3V电源供电,勿接3.3V以上电源
4 T+ }5 C" @$ Q2 _3 G3 a9 x: X2脚黄线:接单片机串口TX端4 S3 m! W: L# m7 H; \
3脚白线:接单片机串口RX端
# z" @3 b$ l: v3 _3 f' z; T4脚黑线:GND,3.3V电源的GND
w, l0 W- H& Q5 S5脚蓝线:模块触摸感应信号输出(高电平为检测到触摸),需要接VTI到3.3V
- J6 [" v+ ^; J( O$ \3 P6脚绿线:模块触摸感应电路电源,可以与红线并接
! m# X3 [; t8 v' r3 {& y, {: d在本次程序中5,6脚可以不接,2,3脚分别先连在单片机上的TX,RX,保证通信正常。本次程序基于51单片机设计可以通过LCD1602显示,带有录入指纹,检测指纹等等功能。
3 w* B- D1 X- x1 z' F- k
) [+ l# x8 g5 c T! [! P( O! u6 f+ z
单片机源程序如下:
6 H8 N$ t4 }( J4 q8 V# m$ r#include<reg52.h>
& S3 i5 D; w2 U+ h7 p0 u" _6 U+ H#include<intrins.h>( W* i1 r. h8 n6 u8 v
#include"buzz.h"
+ e* G7 c& p% W( X#include"key.h"- ~: ?) s0 z, i8 _7 l0 V
#include"uart.h"4 ^/ q( f% v4 V6 R$ I
#include"delay.h" s0 g. U" D- `4 {9 H0 n4 s+ W& W: ?
#include"FPM10A.h"% w7 i. Y7 ]) }! C+ y+ E
#include"lcd_1602.h"$ t4 n0 l* k; }
n$ f/ e4 R7 f3 |" Rvoid main()7 j$ i h/ q" g6 F Y" M9 ? {
{ 5 h2 W# y$ o# E6 ?) z9 }0 `5 S
LCD1602_Init(); //初始化液晶) e; h3 [( s+ n. K' G2 y& J
LCD1602_Display(0x80,"Fingerprint Test",0,16); //液晶开机显示界面6 I$ X! y+ n6 c! Z/ I) Q, a8 c
Uart_Init(); //初始化串口% _2 ]/ e3 G7 W2 Y. y' K/ ~0 v, M
Key_Init(); //初始化按键* h- x5 G& d4 i' Z) i2 U
Delay_Ms(200); //延时500MS,等待指纹模块复位( E* z2 B8 U U, Z2 z6 l+ t
Device_Check(); //校对指纹模块是否接入正确,液晶做出相应的提示
7 y, Z9 @. m- D Delay_Ms(1000); //对接成功界面停留一定时间0 y7 H, x4 ^) j: l' Q* o
while(1)
0 @; l9 }/ [1 i. k {: W/ l M- g, h8 e* _! W
/**************进入主功能界面****************/7 S) [' d4 i2 K$ g1 Y7 R
LCD1602_Display(0x80," search finger ",0,16); //第一排显示搜索指纹
; {& Z4 r4 \- ?4 | LCD1602_Display(0xc0," Add delete",0,16); //添加和删除指纹# J- O) }1 f; Y7 g6 G, |
if(local_date==0)
3 B$ E7 X2 f# `" o& x {
4 L. D3 X0 Q& d# k4 g LCD1602_Display(0x80, " *",0,2);- v' N* ^# Y8 K: @! C- I# k- Y
LCD1602_Display(0xc0, " ",0,2);
7 K3 b& Z: q' q& p2 t/ J LCD1602_Display(0xc0+8," ",0,2); , R V& D+ Y; `
}8 {* l: h& a6 }5 Q$ ], h
else if(local_date==1)
; F% ]+ f" _# m, q8 v {6 K/ j$ W: L# t4 x, r$ _
LCD1602_Display(0x80, " ",0,2);
/ ~4 M# K; U' w3 S LCD1602_Display(0xc0, " *",0,2);9 q5 i8 }1 D0 c6 u! p" `6 ^
LCD1602_Display(0xc0+8," ",0,2);
8 ^7 D' S: x3 N5 K, | }- o* d [: M$ ~ i8 a# X8 v
else if(local_date==2): @' J$ K- [( M4 k
{
& C: X- x4 k* _ LCD1602_Display(0x80, " ",0,2);$ q2 H% j* s1 [. I) k
LCD1602_Display(0xc0, " ",0,2); R; S& y) R/ \/ n6 G
LCD1602_Display(0xc0+8," *",0,2); 8 L$ E" M" j4 L& X$ s& M q2 y
} 5 f7 C+ T) x, H" O3 V8 ?
//确认键8 Z1 d6 u* {6 `# m% J5 r6 m8 D& }8 b
if(KEY_OK == 0)
7 E* |" V5 `3 ?% ~# }9 | {
6 j# U8 V( N2 B3 s1 D while(KEY_OK == 0);//等待松开按键 - v6 c, }2 G6 {/ I- P% C* h/ {# @/ {: V
switch(local_date)/ y* ?. G n e* D: [( @# s* e1 _0 j
{; {. ^5 w g& N% s2 m0 M: H$ U
case 0: //搜索指纹
3 |- [. B' s8 y1 a; P" A* W FPM10A_Find_Fingerprint(); % D) ~9 Q% w% {$ w: z) u
break; ! p# I9 O7 f# S& C! M. k. S
% M/ V6 A" d6 Z case 1: //添加指纹8 e& u$ u/ X5 \0 U; d
FPM10A_Add_Fingerprint();' h1 z- j% ^8 I- [/ j- \
break;
- K1 k* X& g6 |- l! }
4 D d% b/ {) F case 2: //清空指纹3 \: M5 L3 D6 u" J9 N% I* w
FPM10A_Delete_All_Fingerprint();2 d6 y8 E' ~- l* Y; K1 m
break;% ?1 V6 ~) o3 k! t$ q' L# { |
}
1 G6 [) B1 R6 T" h! T0 N# p }# Z! g1 r. ^5 Y' c3 a
//切换键
; _0 c4 F2 i) B w& L2 t if(KEY_DOWN == 0)
5 g, N+ z( [+ D7 S# S5 e1 y. @ {
: D+ k4 h1 H1 q" r$ g/ h* O while(KEY_DOWN == 0); //等待松开按键 ) l+ @! ]+ S% p& o# v6 l$ X- U- o4 b6 j
if(local_date<=2)1 l. |1 S( s+ _% V
{. q" P# z3 V; e) e
local_date++;% J7 l% _ Y# m2 H' L, ]- z9 C( C
if(local_date==3)+ f% W7 H- D3 _ z7 ]% t# r
local_date=0;
4 C1 j, V/ r4 p }
1 r: w# K6 n/ Q( ] }
3 t5 A6 t; f9 n' d: O% V Delay_Ms(100); //延时判断100MS检测一次 0 ?+ k0 w( g4 i& v2 [4 q
}' j, m, V2 Y' M V
}
% D. J& a ?9 V- A9 h' C* `- j1 E! @) N* V/ x" E4 q( E, F$ h
|
|