|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
之前在AS608的使用上走了许多弯路,这次希望身为初学者的我们可以吸取经验,特此介绍AS608.
2 ^- A3 I' X# h6 r9 F/ z# i指纹模块AS608的使用:
' l5 g' F" e) x1 w3 y2 a0 G# A1脚红线:Vcc,连接3.3V电源供电,勿接3.3V以上电源1 j* Y( m1 k9 ?& x
2脚黄线:接单片机串口TX端. D2 [2 f: \" I. [- d# ?
3脚白线:接单片机串口RX端
3 c9 M' ~0 \5 c; a0 k4脚黑线:GND,3.3V电源的GND
* O Q ~+ ^. L8 I6 r5脚蓝线:模块触摸感应信号输出(高电平为检测到触摸),需要接VTI到3.3V+ ^, P6 h7 X$ R) q) \5 L1 \3 z
6脚绿线:模块触摸感应电路电源,可以与红线并接
* H7 w, i" V/ L5 A. C在本次程序中5,6脚可以不接,2,3脚分别先连在单片机上的TX,RX,保证通信正常。本次程序基于51单片机设计可以通过LCD1602显示,带有录入指纹,检测指纹等等功能。3 P# m3 b3 q1 f4 z9 E
; _0 O" b; l4 e O( n% Q
" Z0 A% ?: r2 T1 n8 P
单片机源程序如下:
4 c! a( d0 D% W; E4 L7 y0 I0 u4 L |- H( g#include<reg52.h>& P5 n# B2 S# o: y; r7 Q! X: U+ l) p
#include<intrins.h>
5 p" \. [1 T7 Q! {6 T#include"buzz.h"
' |- o3 y& R9 |4 J" D7 j#include"key.h": M* F0 c* Q) n' d' u' I
#include"uart.h"
) e, r( p4 Q7 s6 P#include"delay.h"
9 e0 m( G9 B3 j' A7 Z, k#include"FPM10A.h"
. E. T: s; F& S1 d( T#include"lcd_1602.h"
9 H4 Z! m# s" z' M" [% r; ]$ T5 f: R" _6 Q/ [- V, L# {
void main()
- j0 `. B# @7 U. H{ : S7 c7 h* ~) ^$ ~4 u% M/ Z! s
LCD1602_Init(); //初始化液晶
D8 b! j6 Q2 p! m9 O% Z LCD1602_Display(0x80,"Fingerprint Test",0,16); //液晶开机显示界面
* Z3 N" ?1 c6 Q3 | Uart_Init(); //初始化串口
- \0 [% q6 y4 A5 K2 j/ d( G y Key_Init(); //初始化按键
6 ^ |: I6 J# @ Delay_Ms(200); //延时500MS,等待指纹模块复位
0 T* F- c& b' u! Z5 e$ m Device_Check(); //校对指纹模块是否接入正确,液晶做出相应的提示6 ]; `. q l' ^3 Q# N
Delay_Ms(1000); //对接成功界面停留一定时间
; X7 F/ {+ S) \" V U while(1)
) m, o+ ^5 `6 `" E) P% m {; x( O9 A& l; L) r7 B& o; R, ~0 a# y
/**************进入主功能界面****************/$ M4 t2 u$ N5 ?6 ^$ p z
LCD1602_Display(0x80," search finger ",0,16); //第一排显示搜索指纹) U' b, q* ?, D" V9 Z6 M8 y
LCD1602_Display(0xc0," Add delete",0,16); //添加和删除指纹- A" E2 A5 Y N5 ?
if(local_date==0)
. a, x6 V3 L6 G4 d {
5 ` D$ e! }# [1 l5 @ LCD1602_Display(0x80, " *",0,2);+ ?2 n) u6 `5 P& x3 w6 Z! b
LCD1602_Display(0xc0, " ",0,2);
# s9 x, L( M8 x* x* S: q LCD1602_Display(0xc0+8," ",0,2);
1 O% L2 Z2 X4 l+ O$ r }
7 |% B) U3 i, N' `" ]! H else if(local_date==1), f: j0 E- l6 D3 W
{/ Y) c R+ w1 d8 P b
LCD1602_Display(0x80, " ",0,2);
) W( P" i# F( f; \( Z7 k LCD1602_Display(0xc0, " *",0,2);
t& R9 Z0 {5 L& B9 M. @ LCD1602_Display(0xc0+8," ",0,2); 0 H. c& ^# }5 J
}/ Q+ P: x2 h& b; y7 L' K- |
else if(local_date==2)' p& L5 e% ~9 q' t/ Y! V) f
{9 ]5 {) V9 @6 B3 b1 D
LCD1602_Display(0x80, " ",0,2);
4 b7 C5 o6 d7 I: ^1 c0 X LCD1602_Display(0xc0, " ",0,2);2 Y1 O* W5 c' U0 r4 K
LCD1602_Display(0xc0+8," *",0,2); ' d @7 P, X1 w. W9 q. }2 M, O
} / V' U' x! o; k6 ~
//确认键
& {1 i. D, V0 V- W8 e if(KEY_OK == 0)
4 R9 M4 q( G/ m# {, P/ P { " {; w3 \* N3 R" S2 l8 F& E
while(KEY_OK == 0);//等待松开按键 ) @- I2 H S9 ]- L
switch(local_date)
( O) O% c: J2 i; g {% R1 w/ Y6 |; W% p6 x
case 0: //搜索指纹 / }3 F4 E8 K( _5 f
FPM10A_Find_Fingerprint(); # n% n' |+ r6 w* S8 R1 K# ~3 m9 f
break; 1 b) N3 ~8 y9 s
& {" ^- f6 Z# p: c8 B' S
case 1: //添加指纹
2 ~ g5 z( b( r/ [ FPM10A_Add_Fingerprint();
/ N1 C6 U6 M, N* Y* U break;
5 C1 l( b3 T' {/ i# ]( a
* j) W X" A* R case 2: //清空指纹/ i K! {( x) d* W L
FPM10A_Delete_All_Fingerprint();
) E" } q+ ]# s' z% |; R4 V break;
& m2 G1 C4 {* ]5 R% r+ H6 c: ^. H }
: j2 ^0 z r# R* W }" \ B$ Z5 f) s' ]/ m; B
//切换键7 Y3 z: x5 `5 I h# h# B$ Y, ~0 W
if(KEY_DOWN == 0)# u* d" g8 |. F+ y0 @
{
' }2 z2 E3 o& i4 v h2 J3 S while(KEY_DOWN == 0); //等待松开按键 7 N7 c( Q1 J! H3 M1 a0 Z
if(local_date<=2)+ m6 P0 V: @' j% }
{
$ O6 D: k" c/ k8 s& Q0 h local_date++;7 A4 Q+ N' p: R# { s) ]
if(local_date==3)
! L: M5 S& C, t e; \% `& D; A local_date=0; - w4 H2 I* j/ m. ?
}
: F! d+ i$ t# d* _7 }# [ } 2 \; g6 R. m- @
Delay_Ms(100); //延时判断100MS检测一次
8 _1 i$ _( Z5 e/ z }
! a0 G% A. l$ F0 k/ N, A+ }}3 L1 P- p! `. F- K( E& T
& U2 p/ `7 d0 T1 G/ A! F
|
|