无线模块:SIM900A
显示模块:2.8寸串口屏
指纹模块:AS608
单片机:stm32103zet6,stc89c51
驱动模块:5线4相步进电机
单片机源程序如下:
- #include "sys.h"
- #include "delay.h"
- #include "usart.h"
- #include "lcd.h"
- #include "key.h"
- #include "beep.h"
- #include "touch.h"
- #include "malloc.h"
- #include "usmart.h"
- #include "sdio_sdcard.h"
- #include "w25qxx.h"
- #include "ff.h"
- #include "exfuns.h"
- #include "fontupd.h"
- #include "text.h"
- #include "usart2.h"
- #include "AS608.h"
- #include "timer.h"
- #define usart2_baund 9600//57600//串口2波特率,根据指纹模块波特率更改
- SysPara AS608Para;//指纹模块AS608参数
- u16 ValidN;//模块内有效指纹个数
- u8** kbd_tbl;
- extern u8 USART_RX_BUF[USART_REC_LEN];
- u8 touch_ok=0;
- void press_FR(void);//刷指纹
- u16 GET_NUM(void);//获取数值
- int main(void)
- {
- u8 ensure;
- char *str;
- //u8 touch_ok_temp;
- unsigned int mess_code;
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
- delay_init(); //初始化延时函数
- uart_init(115200); //初始化串口1波特率为115200,用于支持USMART
- usart2_init(usart2_baund);//初始化串口2,用于与指纹模块通讯
- PS_StaGPIO_Init(); //初始化FR读状态引脚
- IO_Init(); //初始化蜂鸣器
- W25QXX_Init(); //初始化W25Q128
- usmart_dev.init(72); //初始化USMART
- my_mem_init(SRAMIN); //初始化内部内存池
- exfuns_init(); //为fatfs相关变量申请内存
- f_mount(fs[1],"1:",1); //挂载FLASH.
- POINT_COLOR=RED;
- while(PS_HandShake(&AS608Addr));//与AS608模块握手
- str=mymalloc(SRAMIN,30);
- ensure=PS_ValidTempleteNum(&ValidN);//读库指纹个数
- if(ensure!=0x00)
- {
- }
- ensure=PS_ReadSysPara(&AS608Para); //读参数
- if(ensure==0x00)
- {
- mymemset(str,0,50);
- }
- myfree(SRAMIN,str);
- while(1)
- {
-
- if(PS_Sta) //检测PS_Sta状态,如果有手指按下
- {
- press_FR();//刷指纹
- }
- if (touch_ok) //刷指纹成功
- {
-
- mess_code= USART_RX_BUF[0]*1000+USART_RX_BUF[1]*100+USART_RX_BUF[2]*10+USART_RX_BUF[3];
- if(mess_code==1234)
- {
- LED=0;
- }
- else
- LED =1;
-
- }
- }
- }
- //刷指纹
- void press_FR(void)
- {
- SearchResult seach;
- u8 ensure;
- char *str;
- ensure=PS_GetImage();
- if(ensure==0x00)//获取图像成功
- {
- //BEEP=1;//打开蜂鸣器
- ensure=PS_GenChar(CharBuffer1);
- if(ensure==0x00) //生成特征成功
- {
- //BEEP=0;//关闭蜂鸣器
- ensure=PS_HighSpeedSearch(CharBuffer1,0,AS608Para.PS_max,&seach);
- if(ensure==0x00)//搜索成功
- {
- str=mymalloc(SRAMIN,50);
- myfree(SRAMIN,str);
- touch_ok=1; //
- LED =1;
- }
- }
- touch_ok=0;
- //BEEP=0;//关闭蜂鸣器
- delay_ms(600);
- }
-
- }
复制代码
所有资料51hei提供下载:
as608源码.rar
(1.62 MB, 下载次数: 169)
|