久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7679|回復: 7
打印 上一主題 下一主題
收起左側

單片機指紋控制系統設計

  [復制鏈接]
跳轉到指定樓層
樓主
ID:399148 發表于 2018-9-17 18:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
這是我的畢業設計,里面設計到電路圖和源程序,請 各位查看
任 務 書
課程設計題目:指紋識別
功能簡述:
1)根據所學的知識和能力,設計程序可以實現根據指紋的大小、形狀等特征,識別出不同的指紋。
2)利用按鍵標志當前指紋識別的狀態,例如錄入狀態,識別狀態,清楚狀態;利用液晶1602能夠顯示當前指紋識別的狀態信息。
3)利用繼電器,對當前信息的判斷,例如提醒當前指紋識別錯誤;利用蜂鳴器和LED等提醒當前指紋識別是否正確
目錄
第一章  緒論
1.1、指紋識別中的基本概念
1.2 指紋識別的發展前景
1.3、指紋識別課題設計的內容與意義
第二章 方案選擇
2.1 系統原理圖設計
2.2方案說明
2.3 方案比較
2.4 方案選擇
第三章 硬件設計
3.1 AT89C52單片機設計
3.2 電源電路設計
3.3 按鍵控制部分電路
3.4  LED指示燈電路
3.5 蜂鳴器電路
3.6 指紋傳感器模塊
第四章 軟件程序設計
4.1程序流程圖         
4.2程序
第五章  調試
5.1硬件調試
5.2軟件調試
摘      要
隨著時代的發展,社會越來越需要高效、可靠的身份識別系統傳統的個人身份鑒別手段如鑰匙、口令、密碼、身份證件,甚至IC卡等識別方式,由于它們具有可假冒、可偽造、可盜用、可破譯的弱點,已不能完全滿足現代社會經濟活動和社會安全防范的需要。隨著識別技術的不斷成熟和計算機技術的飛速發展,各種基于人體生理特征的身份識別系統如:指紋、手掌、聲音、視網膜、瞳孔和面紋等識別技術紛紛從實驗室中走出來。目前,從實用的角度看,指紋識別技術是優于其它生物識別技術的身份鑒別方法。本次設計我們利用指紋識別傳感器進行指紋采集與識別,在單片機中對指紋進行處理, 用按鍵標志當前指紋識別的狀態,錄入狀態,識別狀態,清除狀態,用液晶1602能夠顯示當前指紋識別的狀態信息;用繼電器對當前信息進行判斷,例如提醒當前指紋識別錯誤;利用蜂鳴器和LED等提醒當前指紋識別是否正確
關鍵詞:指紋識別;單片機;指紋識別傳感器;液晶1602;繼電器
第一章  緒論
進入21世紀后,由于國際反恐、互聯網應用等因素的推動,在全球范圍內,指紋識別技術得到了更加廣泛的應用,指紋識別市場進入高速發展階段。利用人的生理特征,例如像指紋等來識別個人的身份,將成為今后幾年IT產業的重要革新。指紋在所有的生物特征中,相對穩定、不隨年齡而變化和采集較為便捷,同時它的研究歷史最長、相對更為成熟。與現有的智能卡、身份證號碼和密碼的身份識別系統相比,指紋識別的性價比最高,也更適于應用到大眾生活中。因此指紋識別以其革命性的便捷和安全性成為一個理想的卓越的解決方案。
1.1、指紋識別中的基本概念
指紋識別是成熟的生物識別(Biometric)技術,由于人體的身體特征具有不可復制的特點,人們把目光轉向了生物識別技術,希望可以籍此技術來應付現行系統安全所面臨的的挑戰。要把人體的特證用于身份識別,這些特征必須具有唯一性和穩定性。研究和經驗表明,人的指紋、掌紋、面孔、發音、虹膜、視網膜、骨架等都具有唯一性和穩定性的特征,即每個人的這些特征都與別人不同、且終生不變,因此就可以據此識別出人的身份。基于這些特征,人們發展了指紋識別、面部識別、發音識別等多種生物識別技術,目前許多技術都已經成熟并得以應用,其中的指紋識別技術更是生物識別技術的熱點。
1.2 指紋識別的發展前景
指紋行業是一個新興的行業,本身具有很高的科技含量,相對利潤高發展前景廣闊。經專家預計,指紋產品將是未來IT產業新的增長點:利潤率最高、發展潛力最大。于是,世界頂尖的指紋識別技術得到了全球范圍內的高度重視,指紋識別技術的應用如火如荼地迅速發展起來。目前,國內已經有不少企業在參與指紋識別技術的開發和應用。指紋技術在現代生活和工作中的應用已越來越普遍,例如:指紋考勤、指紋社保、指紋銀行、指紋商場、指紋接送幼兒等等生活和工作的新現象已廣為人知,指紋技術正在日益刷新著我們的現代化生活方式。
1.3、指紋識別課題設計的內容與意義
指紋識別技術相對于其他識別方法有許多獨到之處,具有很高的實用性和可行性。因此,指紋識別成為最流行、最方便、最可靠的身份認證方式,己經在社會生活的諸多方面得到廣泛應用。這是由于指紋是獨一無二的,兩人之間不存在著相同的指紋,指紋是獨一無二的,兩人之間不存在著相同的指紋,同時指紋樣本易于采集,難以偽造,便于開發,實用性強,可以利用多個指紋構成多重口令,提高系統的安全性。
本文主要通過對MCS-51系列單片機的結構和功能進行分析,來研究基于單片機指紋識別系統的內部結構特點和功能闡述以及工作原理,更好的了解了指紋識別系統的未來前景。
第二章 方案選擇
2.1系統原理圖設計
2.2方案說明
2.1.1方案一:攝像頭采集、飛思卡爾單片機處理
這種方案由指紋圖像采集、指紋圖像預處理、指紋特征提取、指紋特征匹配、特征數據庫等幾部分組成。指紋識別系統的原理框圖如圖1所示。
               
               圖2-1、指紋識別系統框圖
該系統首先由數字攝像頭ov6620采集指紋,并將指紋圖像轉化為數字圖像;然后用16位的飛思卡爾X128單片機對指紋數字圖像進行預處理,再通過圖像增強、分割、平滑、細化等處理過程得到便于指紋特征提取的數字圖像:接著提取細化后的圖像細節特征點; 然后將指紋信息數據送入STC89C52單片機中,一塊液晶1602與STC89C52單片機相連,液晶用于顯示當前指紋采集系統的工作狀態和經對比后指紋采集的信息是否正確,用一個蜂鳴器和LED指示燈指示當前采集的指紋信息正確。當采集到的指紋信息正確,蜂鳴器發出響聲并且LED指示燈點亮。
2.1.2方案二 指紋識別傳感器
代替第一種方案中的攝像頭和飛思卡爾單片機,我們利用一個指紋識別傳感器來對指紋進行采集,識別以及部分處理,然后將信息輸送到AT89C52單片機中,利用按鍵控制當前指紋識別的狀態,用LED燈進行顯示,即錄入狀態,識別狀態,清除狀態;利用液晶1602能夠顯示當前指紋識別的狀態信息,即錄入指紋的編號以及當前指紋;利用繼電器,對當前信息的判斷,例如提醒當前指紋識別錯誤;利用蜂鳴器提醒當前指紋識別是否正確,如果指紋錄入正確,蜂鳴器發出響聲。
2.3 方案比較
1)復雜性:方案一采取用數字攝像頭ov6620采集指紋圖像,然后用16位的飛思卡爾X128單片機進行圖像處理,還要進行圖像增強、分割、平滑、細化等處理過程才能得到便于指紋特征提取的數字圖像;而這些過程在方案二中只用一個指紋傳感器模塊就可以代替,所以方案二設計簡單。
2)準確性:方案一中所采集的攝像頭分辨率有限,所以采集的指紋信息有一定的誤差,方案二中指紋傳感器模塊是利用集成的光學頭進行處理的,比較精確。
3)局限性:由于方案一中使用的飛思卡爾單片機處理程序比較復雜,超出了我們的學習范圍,而方案二傳感器就使程序簡單化了。
2.4 方案選擇
鑒于各種原因,我們最終選擇第二種方案,使用指紋傳感器模塊來設計系統。
第三章 硬件設計
3.1 AT89C52單片機設計
3.1.1 主要性能
有12k字節Flash閃速存儲器,1024字節內部RAM,32個I/O口線,兩個16位定時/計數器,5個中斷向量,一個全雙工串行通信口,片內振蕩器及時鐘電路。
3.1.2引腳結構圖(如圖3-1)
                    
圖3-1   AT89C52管腳圖
3.1.3 一些端口的介紹:
P30口:RXD(串行輸入口)
P31口:TXD(串行輸出口)
XTAL1:振蕩器反相放大器的及內部時鐘發生器的輸入端。
XTAL2:振蕩器反相放大器的輸出端。
3.1.4 單片機最小系統
1)外部晶振的設計
STC89C52的內部有一個用于構成振蕩器的高增益反相放大器,通過XTAL1,ATAL2外部接上一片作為反饋元件的晶體,與C1和C2構成了并聯諧振電路,使其構成自激振蕩器,電容的值具有微調的作用,我們取30PF,具體的接法如圖3-2外部晶振電路。
圖3-2  外部晶振電路
STC89C52的工作頻率范圍在 0-24MHZ。我們選用的是11.0592MHZ的晶振,振蕩周期約為1us機器周期約為0.1us,所以這個晶振可以滿足這個系統的要求。并且晶振不能離單片機太遠,不然使用外部晶振進行軟件調試時就會發現找不到信號。
2)復位電路的設計
MCS51單片機通常采用上電自動復位和按鈕復位兩種方式,本系統采用簡單的自動復位電路如圖2-2所示。單片機在上電瞬間,RC電路充電,RST引腳端出現正脈沖,只要RST端保持兩個機器周期以上的高電平,就能使單片機有效復位。其中電容選10uF、電容選10K。
圖3-3復位電路
3.2 電源電路設計
本系統采用的5V電源主要采用兩種方法,第一是直接用9V電池然后通過一個變壓電路,利用7805將轉化成5V供單片機和液晶顯示部分使用;其二是用220V通過變壓器等將其轉化成5V。
兩種方法都可以,但是由于第一種方法便于攜帶、而且成本相對較低所以我們選用第一種方案。
圖3-4  電源電路
3.3 按鍵控制部分電路
1)消除抖動
按鍵的閉合與否反應在電壓上就是呈現出高電平或低電平,如果高電平表示斷開,那么低電平則表示閉合,通過電平的高低狀態的檢測可確認鍵按下與否。為了確保CPU對一次按鍵動作只確認一次,并且防止干擾信號的影響,必需加入消除電平抖動的措施,下圖3-5為按鍵抖動示意圖:
圖3-5按鍵閉合及斷開前后的電壓
消除抖動通常有硬、軟硬兩種方法,硬件消除抖動可采取雙穩態電路或濾波消抖電路;軟件消抖是在第一次檢測到有鍵按下時,執行一段延時程序再確認該鍵是否仍閉合,如果還是閉合狀態則確認該鍵按下,從而消除抖動和干擾影響。當按鍵較多時,我們多采用硬件件消抖法。本系統中按鍵少直接采用直接接入的方式。
2)按鍵接口設計
按鍵接口設計有兩種方法,獨立式按鍵和矩陣式鍵盤。獨立式按鍵各鍵相獨立,每個按鍵各接入一根輸入線,只要檢測輸入線的電平就可以識別按鍵狀態。這種方法電路配置靈活,軟件結構簡單,但每個按鍵需占用一根輸入口。由于該設計方案IO資源浪費大。故此方法只適用于按鍵少或其他控制功能很簡單的場合。由于本設計中的按鍵只有3個,考慮系統可靠性和鍵盤設計的簡單所以采用獨立式按鍵。本系統的按鍵電路如圖3-6所示:
圖3-6獨立按鍵電路
按鍵按下是呈低電平,我們采用軟件消抖來減少對的單片機影響。
3.4 LED指示燈電路
圖3-7 LED燈指示電路
當k2鍵按下時,錄入模式指示燈red亮;當k1鍵按下時,識別模式指示燈green亮。
3.5 蜂鳴器電路
圖3-8蜂鳴器電路
3.6 指紋傳感器模塊
1)指紋模塊電路如下所示:
圖3-9指紋識別模塊
指紋模塊里面主要是DSP芯片,型號為PS1802,加上外面的CMOS芯片,CMOS芯片主要是對指紋進行“照相”,生成指紋特征,如圖3-8所示就是一個指紋模板,錄入兩次這樣的指紋特征就能生成一個指紋模板。
具體的工作過程是:掃描指紋(錄入圖像)、生成特征、合成模板(建立一個指紋庫文件,成功錄入一個指紋)。
圖 3-10 指紋模板
指紋模板就是“照一次相”,指紋模塊里面的CMOS芯片采集一次指紋信息,然后進行模糊處理生成0和1兩種記錄信息,存入指紋模塊的FLASH芯片里面。
當切換到識別模式的時候,指紋模塊就會先讓CMOS芯片采集一次指紋,然后和FLASH芯片的數據進行對比。看是不是存在,如果存在就能返回是幾號指紋。這樣我們就能通過單片機或者電腦進行指紋識別與登記了。
2)指紋傳感器模塊實物圖
指紋模塊型號是:FM-180,此模塊上里面包含了:
1、光學頭   2、通信連接線 3、DSP芯片(在模塊里面)
4、穩壓芯片5、FLASH芯片  6、CMSO傳感器(在模塊里面) 等部件組成。

圖3-11指紋傳感器模塊實物圖
第四章 軟件程序設計
該設計主要通過設定的3個按鍵來實現一定的功能,3個按鍵分別為模式切換(識別模式和錄入指紋模式)、指紋錄入、刪除所有指紋。
4.1程序流程圖            
4.1.1程序主流程圖
(1)指紋錄入: 先進行錄入模式,然后按一下錄入指紋,燈會閃爍,錄入成功一次,蜂鳴器響一次,這時候拿開手指,1秒放入同一個手指,會再錄入一次,如果兩次都成功,就成功錄入了一個指紋。蜂鳴器會響兩次,同時顯示錄入指紋成功。如果不成功就會顯示錄入失敗。錄入完成后,可以進入識別模式,或者接著錄入下一個指紋。錄入完成,按一次指紋轉換,進入指紋識別開鎖模式。
單片機主程序流程設計:

  1. void main(void)//主函數
  2. {
  3.               unsigned char i=0;

  4.               ET0=1;     //定時器0開中斷
  5.               TL0=0x97;  //17ms的初值
  6.               TH0=0xBD;
  7.    delay1ms(5);
  8.    LcdRw=0;      //只對液晶進行寫操作,不進行讀操作
  9.    delay1ms(5);
  10.    LCD_Initial();//液晶初始化
  11.    delay1ms(5);
  12.    GotoXY(0,0);//x,y
  13.    Print(Identify);
  14.     //串口初始化
  15.     SCON=0x50;   //UART方式1:8位UART;   REN=1:允許接收
  16.     PCON=0x00;   //SMOD=0:波特率不加倍
  17.     TMOD=0x21;   //T1方式2,用于UART波特率
  18.     TH1=0xFD;
  19.     TL1=0xFD;   //UART波特率設置:9600
  20.     TR1=1;
  21.     TR0=1;// 開定時器0
  22.             
  23.               IT0=0;//中斷0低電平中斷
  24.               IT1=1;//中斷1低電平中斷
  25.               EX0=1;//開中斷0
  26.               EX1=1;//開中斷1
  27. EA=1;

  28.               mode();//看當前是什么模式
  29.             
  30.               for(i=0;i<6;i++)//開始握手6次,如果沒有一次成功,表示模塊通信不正常。只要成功就跳出此循環
  31.               {
  32.                             if(VefPSW())//與模塊握手通過,綠燈亮起。進入識別模式
  33.                               {
  34.                                                         green=0; //讀一次
  35.                                                         buzzer=0;
  36.                                                         shownum(0);
  37.                                     delay1ms(300);
  38.                                     buzzer=1;
  39.                                                         break;            
  40.                               }
  41.                   else
  42.                             {
  43.                                           red=1;
  44.                                           green=1;
  45.                                           break;
  46.                             }
  47.               }
  48.     while(1)
  49.               {
  50.                             if(k2==0)//錄入一個指紋
  51.                             {
  52.                                                           delay1ms(10);            
  53.                                                           if(k2==0)//如果仍為低電平,表示按鍵有效
  54.                                                                         {
  55.                                                                           while(k2==0);//等待松手
  56.                                                                         if(VefPSW()==1&&modeflag==1&&SaveNumber<10)//與模塊握手通過
  57.                                                                                       {
  58.                                                                                                       if(enroll()==1)//采集兩次,生成1個指紋模板成功
  59.                                                                                                                   {
  60.                                                                                                                    if(savefingure(SaveNumber+1)==1)//保存也成功
  61.                                                                                                                                  {
  62.                                                                                                                                             SaveNumber++;//加一次
  63.                                                                                                                                             shownum(SaveNumber);
  64.                                                                                                                               }
  65.                                                                                                                 }
  66.                                                                                       }
  67.                                                                                     else
  68.                                                                                     {
  69.                                                                                                                 buzzer=0;
  70.                                                                                                                 for(i=0;i<8;i++)
  71.                                                                                                                 {
  72.                                                                                                                   delay1ms(100);
  73.                                                                                                                   red=~red;
  74.                                                                                                                 }
  75.                                                                                                                 red=0;
  76.                                                                                                                 buzzer=1;
  77.                                                                                                                              
  78.                                                                                     }               
  79.                                                                         }
  80.                                                                      
  81.                             }
  82.                             if(modeflag==0)//為識別模式
  83.                             {
  84.                                             searchnum=search();
  85.                                             if(searchnum>=1&&searchnum<=162)//最多是162個指紋
  86.                                             {
  87.                                                             shownum(searchnum);
  88.                                                  //蜂鳴器響一聲
  89.                                                            relay=0;
  90.                                                  buzzer=0;
  91.                                                  delay1ms(100);
  92.                                                  buzzer=1;
  93.                                                            for(i=0;i<20;i++)
  94.                                                            {
  95.                                                             delay1ms(150);
  96.                                                            }
  97.                                                            relay=1;
  98.                                             }
  99.                                             if(searchnum==255)//不正確的指紋 蜂鳴器響三聲
  100.                                             {
  101.                                                              shownum(0);
  102.                                                            buzzer=0;delay1ms(100); buzzer=1;delay1ms(100);
  103.                                                  buzzer=0;delay1ms(100); buzzer=1;delay1ms(100);
  104.                                                  buzzer=0;delay1ms(100); buzzer=1;delay1ms(100);
  105.                                             }
  106.                             }
  107.                             if(clearallflag==1)
  108.                             {
  109.                                           clearallflag=0;
  110.                                           Clear_All();
  111.                                 red=0;                   //紅色燈亮
  112.                                 green=1;
  113.                                           //蜂鳴器長響一次,表示清除所有指紋結束
  114. ……………………

  115. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

完整的Word格式文檔51黑下載地址(含源程序):
指紋答辯問題.docx (49.88 KB, 下載次數: 49)
硬件原理圖.docx (35.8 KB, 下載次數: 48)
基于單片機指紋識別系統設計.doc (423 KB, 下載次數: 165)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏6 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:451311 發表于 2018-12-21 09:42 | 只看該作者
不錯,頂一個,學習一下~
回復

使用道具 舉報

無效樓層,該帖已經被刪除
無效樓層,該帖已經被刪除
5#
ID:636603 發表于 2019-11-17 16:41 | 只看該作者
很不錯,學習一下
回復

使用道具 舉報

6#
無效樓層,該帖已經被刪除
7#
ID:689378 發表于 2020-3-24 23:54 | 只看該作者
為什莫沒有lcd1602那段程序
回復

使用道具 舉報

8#
無效樓層,該帖已經被刪除
9#
ID:505380 發表于 2020-4-7 14:44 | 只看該作者
有沒有仿真文件啊
回復

使用道具 舉報

10#
ID:728647 發表于 2020-4-13 23:59 | 只看該作者
我也想學習一下
回復

使用道具 舉報

11#
ID:240604 發表于 2020-4-14 15:32 | 只看該作者
請問有工程文件么
回復

使用道具 舉報

12#
ID:166543 發表于 2020-4-14 17:43 | 只看該作者
很不錯,學習一下
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美黑人体内she精在线观看 | 国产农村妇女毛片精品久久麻豆 | 久久一区二区三区电影 | www.男人天堂.com | 日韩欧美国产不卡 | 日韩二三区| 人人做人人澡人人爽欧美 | 精品国产乱码久久久久久1区2区 | av在线播放国产 | 亚洲精品国产第一综合99久久 | 亚洲a一区二区 | 成人av播放 | 中文字幕动漫成人 | 天堂网中文字幕在线观看 | 国产一级在线视频 | 一级在线 | 一区二区三区四区国产 | 亚洲成人精品免费 | av一区二区三区四区 | 成人国产精品久久 | 精品国产一区二区国模嫣然 | 黄网站免费在线 | 欧美激情综合 | 成人网av| 日本久久一区二区三区 | 亚洲综合网站 | 久久久精品一区二区三区 | av一级久久 | 欧美精选一区二区 | 亚洲高清在线 | av免费观看网站 | 国产精品久久久亚洲 | 国产精品色av | 日本一区视频在线观看 | 欧美激情一区二区三区 | 久久黄色网 | 精品国产乱码久久久久久蜜臀 | 一级毛片色一级 | 正在播放国产精品 | 自拍偷拍亚洲视频 | 欧美日日 |