使用SPCE061A的指紋識別系統設計
[P_IOA_Attrib]=R1; //設置3個屬性向量
[P_IOA_Dir]=R1;
[P_IOA_Data]=R1; //中斷設置(允許IRQ3_KEY觸鍵中斷)
INT OFF; //關中斷
R1=0x0080; //設置中斷標置
[P_Int_Ctrl]=R1;
INT IRQ; //開中斷
//讀P_IOA_Latch單元,以鎖存IOA[0~7]的數據,用于觸鍵喚醒
R1=[P_IOA_Latch]; //鎖存A口低8位的數據
//將P_SystemClock(寫)7013H單元的第0~2位置為“111”,使系統進入睡眠狀態(tài),
R1=0x0007; //系統進入睡眠狀態(tài)
[P_SystemClock]=R1;
//IRQ3子程序(端口A的觸鍵喚醒源被觸發(fā)后,調用IRQ3 中斷服務子程序):
.TEXT
.PUBLIC _IRQ3
_IRQ3:
R1 = 0x0100; //比較是否為L_IRQ3_Ext1中斷
TEST R1,[P_INT_Ctrl];
JNZ L_IRQ3_Ext1; //是,則進入;否,進行下面的判斷
R1 = 0x0200;
TEST R1,[P_INT_Ctrl]; //是否為L_IRQ3_Ext2中斷
JNZ L_IRQ3_Ext2; //是,進入該中斷;否,執(zhí)行下面的程序
L_IRQ3_KeyChange_WakeUp: //不是上面的兩種中斷則一定為鍵喚醒中斷
R1 = 0x0080; //清除IRQ3觸鍵中斷請求
[P_INT_Clear]= R1;
:
(處理系統被喚醒后的任務)
:
RETI
L_IRQ3_Ext2:
[P_INT_Clear] = R1; //清除IRQ3_EXT2中斷請求
RETI
L_IRQ3_Ext1:
[P_INT_Clear] = R1; //清除IRQ3_EXT1中斷請求
RETI
相對于其它指紋識別系統控制核心大多數是DSP運算能力強,但控制能力差的缺點,本系統最大的創(chuàng)新點是控制核心采用了既具有單片機的控制功能,又具有強大的DSP運算能力于一體的16位SOC芯片SPCE061A,使本系統在進行簡單的擴展后即可以在指紋鎖、無鑰汽車、PDA設備、大型門禁系統等各種需要指紋控制的領域進行廣泛的應用。
評論