【正文】
=06H 表示指紋圖像太亂而生不成特征;確認碼=07H 表示指紋圖像正常,但特征點太少而生不成特征;確認碼=15H 表示圖像緩沖區(qū)內沒有有效原始圖而生不成圖像;三、 合成模板RegMode1指令功能說明:將CharBuffer1與CharBuffer2中的特征文件合成特征模板。這樣,一個端口(如P1口)就可以構成4*4=16個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。矩陣式結構的鍵盤顯然比直接法要復雜一些,識別也要復雜一些,下圖中,列線通過電阻接電源,并將行線所接的單片機的I/O口作為輸出端,將列線所連接的I/O口則作為輸入。行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。 第一步判斷鍵盤中有無鍵按下 將全部行線置低電平,然后檢測列線的狀態(tài)。若所有列線均為高電平,則鍵盤中無鍵按下。其方法是:延時 10ms 消除機械抖動,再次讀取行值,如果此行線還處于低電平狀態(tài)則進入下 一步,否則返回第一步重新判斷。第四步,從寄存器中找到行值和列 值并把其合并,得到按鍵值,對此按鍵值進行編碼,按照從第一行第一個一直到第四行第四個逐行進行編碼,編碼值從“0000” 至“1111” , 再進行譯碼,最后顯示按鍵號碼。開鎖成功后黃燈亮,報警是喇叭一直響,并鎖死鍵盤。該模塊多用于有處理器的5V電源的處理板。因為三端固定集成穩(wěn)壓電路的使用方便,電子制作中經(jīng)常采用。我國交流電頻率為50Hz。我們所設計的電路實現(xiàn)的功能是,輸入家用220v交流電,經(jīng)過全橋整流,穩(wěn)壓后輸出穩(wěn)定的5v直流電。電源電路圖如圖38所示。為了保證其輸出的電壓是5V,在后面接一個穩(wěn)壓電路,由一個7805穩(wěn)壓器組成。電容C1, C2起到抗干擾的作用,能使電壓穩(wěn)定在5V。主要特性如下:1. 工作電壓:~。3. 應用在內部結構:128x8(1K),256x8(2K),512x8(4K),1024x8(8K),2048x8(16K)4. 二線串行接口。6. 雙向數(shù)據(jù)傳輸協(xié)議。8. 支持硬件寫保護。極限額定參數(shù)如下:1. 工作溫度:55℃~+125℃2. 存儲溫度:60℃~+150℃3. 最大工作電壓:4. 直流輸出電流: ma5. 任何引腳的對地電壓:~+ AT24C02的引腳功能引腳說明(如圖39所示)1. 串行時鐘信號引腳行時鐘信號引腳(SCL):在SCL輸入時鐘信號的上升沿將數(shù)據(jù)送入EEPROM器件,并在時鐘的下降沿將數(shù)據(jù)讀出。該引腳為開漏輸出,可與其它多個開漏輸出器件或開集電極器件線或連接。AT24C02在一個總線上最多可尋址八個2K器件,AA1和A0內部必須連接。當該引腳接GND時,允許正常的讀/寫操作。圖39 AT24C02引腳圖 AT24C02的器件操作1. 時鐘及數(shù)據(jù)傳輸:SDA引腳通常被外圍器件拉高。 2. 起始命令:當SCL為高,SDA由高到低的變化被視為起始命令,必須以起始命令作為任何一次讀/寫操作命令的開始。 4. 應答:所有的地址和數(shù)據(jù)字節(jié)都是以8位為一組串行輸入和輸出的。每當主控器件接收到一組8位的數(shù)據(jù)后,應當在第9個時鐘周期向EEPROM返回一個應答信號。若此時沒有得到主控器件的應答信號,EEPROM會停止讀出數(shù)據(jù),直到主控器件返回一個停止命令來結束讀周期??梢酝ㄟ^以下方法進入該模式:(1)上電(2)收到停止位并且結束所有的內部操作后。 IC卡讀卡器IC卡讀卡器用來讀寫IC卡,MINDD3型非接觸式IC卡讀卡器是一款簡單易用的M1卡專用讀寫器,可讀寫Mifare S50卡、S70卡,采用了D8的核心技術,通過RS232串口或USB口實現(xiàn)同PC機及相關設備的連接,USB采用無驅技術。隨機提供各種平臺的驅動開發(fā)包,附帶的演示程序可操作射頻卡的全部功能,并帶有自動測卡操作功能。 MR810 系列非接觸 IC卡讀寫器簡介MR810 系列非接觸 IC 卡讀寫器是基于 NXP 或兼容芯片設計的桌面式讀卡器,帶有 8 位 LED 顯示器,能夠顯示 8 位數(shù)字,全面支持 ISO14443 和 ISO15693,能夠讀寫多種符合不同國際標準的 非接觸 IC 卡,尤其對符合 ISO144434 的非接觸 CPU 卡支持完善,全面支持 EMV2000 和 ,能夠通過多個實驗室的認證,如 Visa Wave 和 Pay Pass 的認證(由 FIME 實驗室完成)以及 中國銀行卡檢測中心的認證;讀卡器內置 SAM 卡插槽,對國內的一卡通應用做了優(yōu)化,支持國 內廣泛使用的 9600bps 和 38400bps 的 SAM 卡。 10%8. 工作溫度: 25 ~ +85 ℃9. 儲存溫度: 40 ~ +125 ℃可讀卡型如下1. ISO14443 TYPEA1) Mifare One S502) Mifare One S703) Mifare Plus (全功能支持)4) Mifare One Mini5) Mifare UltraLight6) ISO144434 (T=CL) TYPE A 雙界面 CPU 卡2. ISO14443 TYPEB1) AT88RF020/0802) SRI512/X4K3) ISO144434 (T=CL) TYPE B 雙界面 CPU 卡3. ISO156931) CODE SLI2) Tagit HFI4. SAM1) 符合 ISO7816 的 CPU(SAM)卡,支持 PPSS 操作2) 支持 T=0 和 T=13) 支持默認任意速率卡片(9600,19200,38400,55800,57600,115200)第4章 軟件設計 主程序設計思路及流程圖主程序采用C語言進行編程。LCD初始化之后調用鍵盤掃描和鍵碼識別等程序,若是密碼錯誤則報警并鎖鍵盤3秒,報警超過3次之后鎖死鍵盤。開鎖成功之后,再次輸入正確密碼即可激發(fā)重置密碼功能,輸入兩次新密碼并確認無誤后,調用密碼修改成功子程序。圖41主程序流程圖 LCD顯示子程序的設計 LCD顯示流程圖LCD顯示程序流程如圖42所示。//設置液晶工作模式,意思:16*2行顯示,5*7點陣,8位數(shù)據(jù) write_1602(0x0c)。//整屏不移動,光標自動右移 write_1602(0x01)。//數(shù)據(jù)/指令選擇置為指令 lcd1602_rw=0。//送入數(shù)據(jù) delay(1)。//拉高使能端,為制造有效的下降沿做準備 delay(1)。//en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令}//寫數(shù)據(jù)write_1602dat(uchar dat)//***液晶寫入數(shù)據(jù)函數(shù)****{ lcd1602_rs=1。 //讀寫選擇置為寫 P0=dat。 lcd1602_en=1。 lcd1602_en=0。*39。 write_1602(yi+5+N)。*39。}//=======================顯示提示輸入=========================void DisplayChar(void){ unsigned char i。 write_1602(two)。i16。 } } else { if(N==0) { //DisplayListChar(0,1,Error)。 for(i=0。i++) { write_1602dat(Error[i])。 write_1602(two)。i16。 } } }}void DisplayInput(void){ unsigned char i。 write_1602(two)。i16。 } }} 鍵盤掃描子程序流程圖鍵盤掃描子程序流程如圖43所示。 switch(m) { case (0x18): k=1。 case (0x28): k=2。 case (0x48): k=3。 case (0x88): k=39。break。break。break。break。B39。 case (0x12): k=7。 case (0x22): k=8。 case (0x42): k=9。 case (0x82): k=39。break。*39。 case (0x21): k=0。 case (0x41): k=39。break。D39。 } return(k)。 P1=0xf0。0xf0)!=0xf0) { Delay5Ms()。 if((P1amp。 //確定行線 i=0。 //精確定位 while(i4) { if((P1amp。0xff)。 //已定位后提前退出 } else { i++。 } } } else { return 0。0xf0)!=0xf0)。 //行線與列線組合后返回 } else return 0。 while(TempCyc)。unsigned int TempCycB。while(TempCycB)。 while(t) { for(i=0。i++) {。 _nop_()。 _nop_()。 Scl=1。 Sda=0。} /*停止條件*/void Stop(void){ Sda=0。 Nop()。 Nop()。 Nop()。 Nop()。}/*反向應答位*/void NoAck(void){ Sda=1。 Scl=1。 Scl=0。 uchar temp。 Scl=0。 if((tempamp。 else Sda=0。 temp=Data1。 BitCounter。 Scl=0。 uchar temp1=0。 Sda=1。 Nop()。 Nop()。 else temp=tempamp。 if(BitCounter1) { temp1=temp1。 } BitCounter。 return(temp)。uchar *PData。for(i=0。i++) {Start()。Ack()。Ack()。Ack()。mDelay(20)。uchar *PData。for(i=0。i++) {Start()。Ack()。Ack()。Send(0xa1)。 *(PData+i)=Read()。NoAck()。 }}//*********************************中斷服務函數(shù)**************************************void time0_int(void) interrupt 1 { TL0=0xB0。 //TR0=1。 if(countt0==20) { countt0=0。 if(pass==1) { if(second==1) { open_led=1。 //關定時器 TL0=0xB0。 second=0。 second=0。 s3_keydown=0。 TH0=0x3C。 } }}第5章 軟硬件組合調試1. 開鎖成功如圖51所示:圖51 開鎖成功2. 開鎖錯誤如圖52所示:圖52 開鎖錯誤3. 重設密碼如圖53所示:圖53 重設密碼4. 強行重至密碼如圖54所示:圖54 強行重至密碼第6章 結論根據(jù)設計要求,本設計已經(jīng)基本完成題目要求但還存在不足之處。通過方案論證、資料查詢及電路設計和反復調試,不斷的解決電路調試過程中的問題,最終在規(guī)定的時間內完成了設計任務。另外在調試過程中,以保證作品實現(xiàn)功能準確為前提,盡量做到電路簡單、美觀、效果好、成本低,以增強其實用價值。此外,磁卡的安全性能也有待改善。pad electronic lock makes a great progress in terms of technology and performance. This paper represents a type of remote173。s high173。s which is crossed on the button. Originally, the horizonal lines are in lowlevel, when we check the varying situation of the vertical lines, that means button is pressed down, at this time we save the situation of port ,then we program to make the port in high level situation line by line, at the meantime checking the varying of the situation of the port ,when it changes, we s