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

正文內(nèi)容

基于單片機(jī)指紋識(shí)別系統(tǒng)的設(shè)計(jì)(參考版)

2025-06-21 17:54本頁(yè)面
  

【正文】 //模式發(fā)生了轉(zhuǎn)換 } } }。//等待松手 modeflag=~modeflag。 //延時(shí)17ms}void int1(void) interrupt 2//中斷1,模式轉(zhuǎn)換{ if(k1==0)//模式轉(zhuǎn)換 其中用modeflag 來(lái)標(biāo)志,默認(rèn)從第1個(gè)指紋開(kāi)始錄入 { delay1ms(10)。 TH0=0xBD。 changeflag=1。 if(k3==0)//如果仍為低電平,表示按鍵有效 { while(k3==0)。//顯示當(dāng)前模式 changeflag=0。 SaveNumber=0。 delay1ms(800)。 shownum(0)。//進(jìn)入錄入指紋模式 GotoXY(0,0)。 //紅色燈亮 green=1。 Clear_All()。delay1ms(100)。delay1ms(100)。delay1ms(100)。delay1ms(100)。delay1ms(100)。delay1ms(100)。 } if(searchnum==255)//不正確的指紋 蜂鳴器響三聲 { shownum(0)。i++) { delay1ms(150)。 for(i=0。 delay1ms(100)。 //蜂鳴器響一聲 relay=0。amp。 } } } if(modeflag==0)//為識(shí)別模式 { searchnum=search()。 } red=0。i++) { delay1ms(100)。 for(i=0。//加一次 shownum(SaveNumber)。amp。amp。 if(k2==0)//如果仍為低電平,表示按鍵有效 { while(k2==0)。 break。 } else { red=1。 buzzer=1。 shownum(0)。進(jìn)入識(shí)別模式 { green=0。i++)//開(kāi)始握手6次,如果沒(méi)有一次成功,表示模塊通信不正常。//看當(dāng)前是什么模式 for(i=0。//開(kāi)中斷1EA=1。//中斷1低電平中斷 EX0=1。// 開(kāi)定時(shí)器0 IT0=0。 //UART波特率設(shè)置:9600 TR1=1。 //T1方式2,用于UART波特率 TH1=0xFD。 REN=1:允許接收 PCON=0x00。 //串口初始化 SCON=0x50。 GotoXY(0,0)。 LCD_Initial()。 LcdRw=0。 //17ms的初值 TH0=0xBD。 ET0=1。 } shownum(0)。 red=0。 } else { GotoXY(0,0)。 green=0。}void mode(void){ if(modeflag==0) { GotoXY(0,0)。 str[1]=0x30+numdat%10。 GotoXY(0,8)。 GotoXY(0,1)。 } } }}void shownum(unsigned char dat){ unsigned char numdat=0。 } } else { if (temp==1)//采集指紋沒(méi)有成功 { count++。 //響兩聲,表示生成一個(gè)模板成功 buzzer=1。 buzzer=0。 buzzer=1。 } else//特征文件合并生成模板,結(jié)果存于ModelBuffer { buzzer=0。amp。amp。//延時(shí)2S開(kāi)始采集下一個(gè)特征 //開(kāi)始采集第二個(gè)特征 while(1) { temp=ImgProcess(2)。 buzzer=1。 buzzer=0。 if (count=40)//如果采集了40次,還不成功,直接采集失敗,直接退出enroll函數(shù)----返回0 return(0)。 //生成特征1 if (temp==1)//生成特征文件成功 { break。} //不成功返回0}unsigned char enroll(void) //采集兩次指紋,生成1個(gè) 指紋模板{ unsigned char temp=0,count=0。 //校驗(yàn)和 if (Command(FIFO,70)==1)//不成功返回0 //此處進(jìn)行存放指紋模板的命 {return(1)。 } FIFO[12]=ID。i16。}bit savefingure(unsigned char ID)//保存指紋{ unsigned char i=0。//表示搜索到的指紋不正確 } } i++。//進(jìn)行指紋比對(duì),如果搜索到,返回搜索到的指紋序號(hào) if(SearchBuf==1) { return SearchNumber。 } }unsigned char search(void)//搜索用戶 { unsigned char SearchBuf=0,i=0。//搜索到的頁(yè)碼 //MatchScore=FIFO[12]*0x100+FIFO[13] 可以在此計(jì)算得分,從而進(jìn)行安全級(jí)別設(shè)定,本程序忽略 return 1。amp。amp。 } return 0。 } else { return 0。amp。amp。 } else { return 0。amp。amp。amp。amp。 Command(DELE_all,50)。 if (count=2)//如果不成功,再驗(yàn)證一次,如果兩次不成功,返回失敗 { return(0)。 (FIFO[9]==0x00)) return(1)。 (FifoNumber==11) amp。 while (1) { if(Command(VPWD,20) amp。 //保存接收到的數(shù)據(jù)個(gè)數(shù) } return (result)。 (changeflag==0) )。(count=MAX_NUMBER)amp。 } } } } }/////////////////////////////do的內(nèi)容結(jié)束//////////////////////////////// while ((clk0=MaxTime)amp。 flag=0。0xff) result=FALSE。 } if(stop) { if(count==package+8) { checksum=checksumFIFO[count1]。 //計(jì)算校驗(yàn)和 } if(count==8) { package=FIFO[7]*0X100+FIFO[8]。 //數(shù)據(jù)元素下標(biāo)++ FIFO[count]=tmpdat。(start==TURE))//flag=2。 } if((flag==2)amp。//讀入第二個(gè)應(yīng)答字節(jié)(0X01),存在第“1”個(gè)元素中 start=TURE。//現(xiàn)在count=1。//flag=2。 goto restart0。 stop=FALSE。//接收應(yīng)答失敗 result=FALSE。 goto restart0。 FIFO[0]=tmpdat。amp。//先把接收到的數(shù)據(jù)放到tmpdat中 RI=0。 clk0=0。 stop =FALSE。 if (result) { result=FALSE。 count!=0。//發(fā)送完成,結(jié)果為真 (真為1) FifoNumber=0。//取第個(gè)“1”個(gè)元素的內(nèi)容,然后發(fā)送 TxdByte(temp)。 count!=1。 p++。//數(shù)據(jù)包包頭識(shí)別碼 i=*p。 TxdByte(0xef)。 //清零}bit Command(unsigned char *p,unsigned char MaxTime) //命令解析,給模塊發(fā)送一個(gè)命令{ unsi
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1