AAA基于单片机的指纹识别电子密码锁的毕业设计初稿 - 图文(7)

2025-08-15

附录1:串口调试子程序

串口调试子程序

#include #include //通信协议定义

unsigned char FP_Pack_Head[6] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF}; //协议包头

unsigned char FP_Get_Img[6] = {0x01,0x00,0x03,0x01,0x0,0x05}; //获得指纹图像

unsigned char a[6] ={}; unsigned char b[6] ={}; //初始化 UART 子程序 void UART_Init(void) {

UCSRB = 0x00; //disable while setting baud rate UCSRA = 0x00; //Bit1为1则倍速发送 UCSRC = 0x06;

UBRRL = 0x07; //波特率:57600 Bps UBRRH = 0x00; //误差率:0.000% UCSRB = 0x18; }

//发送一个位

void UART_Send_Byte(unsigned char ucData) {

while(!(UCSRA&(1<

unsigned char UART_Receive_Byte(void) {

29

while(!(UCSRA & ( 1<

return UDR; }

//_获得指纹图像命令 void Cmd_Get_Img(void) {

unsigned char i; for(i=0;i<6;i++)

UART_Send_Byte(FP_Pack_Head[i]); for(i=0;i<6;i++)

UART_Send_Byte(FP_Get_Img[i]); for(i=0;i<6;i++) //发送包头 a[i] =UART_Receive_Byte(); for(i=0;i<6;i++) //发送命令 0x1d b[i] = UART_Receive_Byte(); for(i=0;i<6;i++) UART_Send_Byte(a[i]); for(i=0;i<6;i++) UART_Send_Byte(b[i]); } int main() {

UART_Init(); Cmd_Get_Img(); }

30

附录2:整体源程序

整体源程序 #include #include

//#include #define uchar unsigned char #define uint unsigned int #define key1 0x01 #define key2 0x02 #define key3 0x04 #define key4 0x08 static uchar k=0;

uchar name00[]={\ %uchar name01[]={\ 欢迎使用 %uchar name02[]={\单片机指纹密码锁%uchar name03[]={\ %uchar name04[]={\ 指纹采集开始 %uchar name05[]={\ 指纹对比开始 %uchar name06[]={\ 指纹存储开始 %uchar name07[]={\ 一次采集 %uchar name08[]={\ 二次采集 %uchar name09[]={\ 录入成功 %uchar name10[]={\ 录入失败 %uchar name11[]={\ 收包有错 %uchar name12[]={\传感器上无手指 %uchar name13[]={\ 生成特征成功 %uchar name14[]={\图想乱生不成特征%uchar name15[]={\图象正常特征点少%uchar name16[]={\指纹模板合并成功%uchar name17[]={\指纹模板合并失败\

31

uchar name18[]={\ 非同一手指 %uchar name19[]={\ 存储成功 %uchar name20[]={\ 写指纹库出错 %uchar name21[]={\ 指纹匹配 %uchar name22[]={\ 指纹不匹配 %uchar name23[]={\ 密码正确 %uchar name24[]={\ 密码不正确 %uchar FP_1[6]={}; uchar FP_2[6]={};

uchar FP_Pack_Head[6]={0xEF,0x01,0xFF,0xFF,0xFF,0xFF}; //协议包头 uchar FP_Get_Img[6]={0x01,0x00,0x03,0x01,0x0,0x05}; //获得指纹图像 uchar FP_Search_0_9[11]={0x01,0x0,0x08,0x04,0x01,0x0,0x0,0x0,0x13,0x0,0x21}; //搜索0-9号指纹

uchar FP_Img_To_Buffer1[7]={0x01,0x0,0x04,0x02,0x01,0x0,0x08}; //将图像放入到BUFFER1

uchar FP_Img_To_Buffer2[7]={0x01,0x0,0x04,0x02,0x02,0x0,0x09}; //将图像放入到BUFFER2

uchar FP_Reg_Model[6]={0x01,0x0,0x03,0x05,0x0,0x09}; //将BUFFER1跟BUFFER2合成特征模版

volatile uchar

FP_Save_Finger1[9]={0x01,0x00,0x06,0x06,0x01,0x00,0x0B,0x00,0x19};//将BUFFER1中的特征码存放到指定的位置

volatile uchar

FP_Save_Finger2[9]={0x01,0x00,0x06,0x06,0x01,0x00,0x0C,0x00,0x1A};//将BUFFER1中的特征码存放到指定的位置

volatile uchar

FP_Save_Finger3[9]={0x01,0x00,0x06,0x06,0x01,0x00,0x0D,0x00,0x1B};//将BUFFER1中的特征码存放到指定的位置

uchar yb=0x80; //初始化 UART 子程序 void UART_Init(void) {

UCSRB = 0x00; //disable while setting baud rate UCSRA = 0x00; //Bit1为1则倍速发送

32

UCSRC = 0x06; //传送一桢数据位为8位 UBRRL = 0x07; //波特率:57600 Bps UBRRH = 0x00; //误差率:0.000% UCSRB = 0x18; }

//发送八位数据

void UART_Send_Byte( uchar ucData) {

while(!(UCSRA&(1<

//接收八位数据

uchar UART_Receive_Byte(void) {

while(!(UCSRA&(1<

//_获得指纹图像命令 void Cmd_Get_Img(void) {

uchar i,j;

for(i=0;i<6;i++) //发送包头与模块地址 UART_Send_Byte(FP_Pack_Head[i]); for(i=0;i<6;i++) //发送命令 0x1d UART_Send_Byte(FP_Get_Img[i]); for(i=0;i<6;i++)

FP_1[i]=UART_Receive_Byte();

for(i=0;i<6;i++)

FP_2[i]=UART_Receive_Byte(); j=FP_2[3];

33


AAA基于单片机的指纹识别电子密码锁的毕业设计初稿 - 图文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:国有企业作为LP GP的相关问题

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219