freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的指紋識(shí)別系統(tǒng)設(shè)計(jì)——畢業(yè)論文-資料下載頁(yè)

2025-06-20 12:37本頁(yè)面
  

【正文】 ,寫(xiě)入0X00 FIFO[count1]=0x00。 if (result) { result=FALSE。 start =FALSE。 stop =FALSE。 count=0。 clk0=0。 //清零CL0計(jì)數(shù) do /////////////////////////////do的內(nèi)容//////////////////////////////// { restart0: if (RI==1)//如果接收到數(shù)據(jù) { tmpdat=SBUF。//先把接收到的數(shù)據(jù)放到tmpdat中 RI=0。 if ((tmpdat==0xef)amp。amp。(start==FALSE))//這個(gè)數(shù)據(jù)為第一個(gè)傳回來(lái)的數(shù)據(jù),也就是“指令應(yīng)答”的第一個(gè)字節(jié) { count=0。 FIFO[0]=tmpdat。//讀入第一個(gè)應(yīng)答字節(jié)(0XEF),存在第“0”個(gè)元素中 flag=1。 goto restart0。//可以用中斷方式進(jìn)行 } if(flag==1)//第一個(gè)字節(jié)已經(jīng)回來(lái),所以flag==1成立 { if(tmpdat!=0x01) //接收數(shù)據(jù)錯(cuò)誤,將重新從緩沖區(qū)接收數(shù)據(jù) { flag=0。//接收應(yīng)答失敗 result=FALSE。 start =FALSE。 stop=FALSE。 count=0。 goto restart0。 } //如果成功接收到0xef01,可以開(kāi)始接收數(shù)據(jù) flag=2。//flag=2。表示應(yīng)答成功,可以開(kāi)始接收數(shù)據(jù)了 count++。//現(xiàn)在count=1。 FIFO[count]=tmpdat。//讀入第二個(gè)應(yīng)答字節(jié)(0X01),存在第“1”個(gè)元素中 start=TURE。 //應(yīng)答成功可以開(kāi)始接收數(shù)據(jù) goto restart0。 } if((flag==2)amp。amp。(start==TURE))//flag=2。表示應(yīng)答成功,可以開(kāi)始接收數(shù)據(jù)了 { count++。 //數(shù)據(jù)元素下標(biāo)++ FIFO[count]=tmpdat。//存入數(shù)據(jù) if(count=6) { checksum=FIFO[count]+checksum。 //計(jì)算校驗(yàn)和 } if(count==8) { package=FIFO[7]*0X100+FIFO[8]。 //計(jì)算包長(zhǎng)度 stop= TURE。 } if(stop) { if(count==package+8) { checksum=checksumFIFO[count1]。 if(checksum!=FIFO[count]amp。0xff) result=FALSE。 //校驗(yàn)失敗,置結(jié)果標(biāo)志為0 else result=TURE。 flag=0。 break。 } } } } }/////////////////////////////do的內(nèi)容結(jié)束//////////////////////////////// while ((clk0=MaxTime)amp。amp。(count=MAX_NUMBER)amp。amp。(changeflag==0))。 //由定時(shí)器以及最大接收數(shù)據(jù)來(lái)控制,保證不會(huì)在此一直循環(huán) FifoNumber=count。 //保存接收到的數(shù)據(jù)個(gè)數(shù) } return (result)。}bit VefPSW(void)//驗(yàn)證設(shè)備握手口令,成功返回1 { unsigned char count=0。 while (1) { if(Command(VPWD,20) amp。amp。 (FifoNumber==11) amp。amp。 (FIFO[9]==0x00)) return(1)。 count++。 if (count=2)//如果不成功,再驗(yàn)證一次,如果兩次不成功,返回失敗 { return(0)。 } }}void Clear_All(void) //清空所有指紋信息,清空前首先驗(yàn)證和指紋模塊通訊是否正常 { if(VefPSW()!=1)//驗(yàn)證失敗 { } else //驗(yàn)證成功 { Command(DELE_all,50)。 //清空指紋庫(kù) Command(DENT,20)。 //清空用戶(hù)記事本 }}unsigned char ImgProcess(unsigned char BUFID) //發(fā)獲取圖像并生成特征文件,存入BUFID中//輸入?yún)?shù)為緩沖區(qū)號(hào) { if(Command(GIMG,89) amp。amp。 (FifoNumber==11) amp。amp。 (FIFO[9]==0x00)) { if(BUFID==1) { if(Command(GENT1,60) amp。amp。 (FifoNumber==11) amp。amp。 (FIFO[9]==0x00)) { return 1。 } else { return 0。 } } else if(BUFID==2) { if(Command(GENT2,60) amp。amp。 (FifoNumber==11) amp。amp。 (FIFO[9]==0x00)) { return 1。 } else { return 0。 } } } else { return 0。 } return 0。 }bit Searchfinger(void)//搜索指紋(發(fā)送搜索命令、以及根據(jù)返回值確定是否存在) { if(Command(SEAT,60) amp。amp。 (FifoNumber==15) amp。amp。 (FIFO[9]==0x00) ) { SearchNumber=FIFO[10]*0x100+FIFO[11]。//搜索到的頁(yè)碼 //MatchScore=FIFO[12]*0x100+FIFO[13] 可以在此計(jì)算得分,從而進(jìn)行安全級(jí)別設(shè)定,本程序忽略 return 1。 } else { return 0。 } }unsigned char search(void)//搜索用戶(hù) { unsigned char SearchBuf=0,i=0。 while (i20) { if(modeflag==0)//在識(shí)別模式下 { if (ImgProcess(1)==1)//首先讀入一次指紋 { SearchBuf=Searchfinger()。//進(jìn)行指紋比對(duì),如果搜索到,返回搜索到的指紋序號(hào) if(SearchBuf==1) //成功搜索到指紋號(hào) { return SearchNumber。 } else //如果沒(méi)有搜索到指紋號(hào) { return 255。 //由于只能錄入162個(gè)指紋,這時(shí)候如果返回255表示識(shí)別錯(cuò)誤,或者這個(gè)指紋沒(méi)有登記 } } } else { return 0。 } i++。 } return 0。}bit savefingure(unsigned char ID)//保存指紋{ unsigned char i=0。 //現(xiàn)在開(kāi)始進(jìn)行存儲(chǔ)指紋模板的操作 for (i=0。i16。i++) //保存指紋信息 { FIFO[i]=STOR[i]。 } FIFO[12]=ID。 //把指紋模板存放的PAGE_ID也就是FLASH的位置 FIFO[14]=FIFO[14]+ID。 //校驗(yàn)和 if (Command(FIFO,70)==1)//不成功返回0 //此處進(jìn)行存放指紋模板的命 {return(1)。} else {return(0)。} //不成功返回0}unsigned char enroll(void) //采集兩次指紋,生成1個(gè) 指紋模板{ unsigned char temp=0,count=0。 while(1) { temp=ImgProcess(1)。 //生成特征1 if (temp==1)//生成特征文件成功 { break。 } else { if (temp==0)//采集指紋沒(méi)有成功 { count++。 if (count=40)//如果采集了40次,還不成功,直接采集失敗,直接退出enroll函數(shù)----返回0 return(0)。 } } } //采集第一個(gè)特征成功 count=0。 buzzer=0。 delay1ms(100)。 buzzer=1。 delay1ms(2000)。//延時(shí)2S開(kāi)始采集下一個(gè)特征 //開(kāi)始采集第二個(gè)特征 while(1) { temp=ImgProcess(2)。 //生成特征2 if (temp==1)//生成特征文件2成功 { if ( (Command(MERG,40)amp。amp。 (FifoNumber==11) amp。amp。 (FIFO[9]==0x00))==0 ) //合并不成功返回0,成功返回1 { return 0。 } else//特征文件合并生成模板,結(jié)果存于ModelBuffer { buzzer=0。 delay1ms(100)。 buzzer=1。 delay1ms(100)。 buzzer=0。 delay1ms(100)。 //響兩聲,表示生成一個(gè)模板成功 buzzer=1。 return 1。 } } else { if (temp==1)//采集指紋沒(méi)有成功 { count++。 if (count=25) return(0)。 } } }}void shownum(u
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1