電子密碼鎖課程設計3_第1頁
已閱讀1頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  一|、前言</b></p><p>  隨著人們生活水平的提高,如何實現(xiàn)家庭防盜這一問題也變得尤其的突出,傳統(tǒng)的機械鎖由于其構造的簡單,被撬的事件屢見不鮮,電子鎖由于其保密性高,使用靈活性好,安全系數高,受到了廣大用戶的青睞。據有關資料介紹,電子密碼鎖的研究從20世紀30年代就開始了,在一些特殊場所早就有所應用,這種鎖是通過鍵盤輸入一組密碼完成開鎖過程。研究這種

2、鎖的初衷就是為提高鎖的安全性。由于鎖的密碼量極大,可以與機械鎖配合使用,并且可以避免因鑰匙被仿制而留下安全隱患。電子鎖只需要記住一組密碼,無需攜帶金屬鑰匙,免除人們攜帶鑰匙的煩惱,電子鎖的種類繁多,例如:指紋鎖、數碼鎖、磁卡鎖、IC鎖、生物鎖等。但較實用的還是按鍵式電子密碼鎖。</p><p><b>  二、設計目的</b></p><p>  設計一個電子密碼鎖,

3、要求是設定6位的密碼鎖,從鍵盤輸入密碼,可用6個數碼管顯示輸入的密碼位數。密碼輸入正確后即可開鎖,輸入三次錯誤密碼就不斷報警。</p><p><b>  三、設計內容</b></p><p>  1.電子密碼鎖的硬件的選擇</p><p><b>  1.1主控芯片</b></p><p>  本

4、次設計采用的單片機芯片是AT89S52。AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器、256字節(jié)RAM、32位I/O口線,看門狗定時器、2個數據指針、三個16位定時器、計數器、一個6向量2級中斷結構、全雙工串行口、片內晶振及時鐘電路。</p><p>  1.2EEPROM數據存儲器24C02,。本次設計采用24C02芯片為密碼存儲器,宰掉電的情況下可以繼續(xù)保存數據

5、。24C02芯片作為系統(tǒng)的從器件,它與主器件之間的通信遵循I^2C總線協(xié)議,協(xié)議規(guī)定任何將數據傳送到總線的器件作為發(fā)送器,任何從總線接收數據的器件為接收器。</p><p><b>  1.3</b></p><p>  串入并出移位寄存器74HC164。它是高速硅門CMOS器件,與低功耗肖特基型TTL器件的引腳兼容,是8位邊沿觸發(fā)式移位寄存器,串行輸入數據,然后并行

6、輸出。數據通過兩個輸入端之一串行輸入,任一輸入端可以用作高電平使能端,控制另一輸入端的數據輸入。兩個輸入端或者連接在一起,或者把不用的輸入端接高電平,一定不能懸空。時鐘每次由低變高時,數據右移一位,輸入到Q0,主復位輸入端上的一個地電平將使其它所有輸入端都無效,同時非同步地清除寄存器,強制所有的輸出為低電平。</p><p>  1.4八位數據鎖存器74273。74273芯片是八位高速寄存器,其內部由8個D鎖存器

7、構成,有共同的時鐘輸入端和異步復位器。其特性有:邊沿觸發(fā)、8位高速寄存器、數據并入并出、同步時鐘,異步復位。</p><p>  2、系統(tǒng)硬件各部分電路</p><p>  2.1數據處理及控制</p><p>  本次設計中,由AT89S52芯片連同附加電路構成的單片機最小系統(tǒng)作為數據處理及控制部分。</p><p><b>  

8、2.2鍵盤輸入</b></p><p>  本次采用行列式鍵盤作為密碼鎖系統(tǒng)的輸入部分,把2單個按鍵按4*4格式組合成鍵盤,四條行線連接到單片機的P1.0~P1.3四條I/O口線上,四條列線連接到單片機芯片的P1.4~P1.7四條I/O口線上,在系統(tǒng)運行時,通過檢測每條行線和列線上的電平變化,即可判斷出用戶輸入的為何種信息,其電路連接圖如下圖所示:</p><p><b&

9、gt;  2.3密碼存儲</b></p><p>  本次設計采用在掉電情況下依然能保存數據的EEPROM存儲芯片24C02作為密碼存儲部分的記憶芯片,在電子密碼鎖系統(tǒng)中,系統(tǒng)需要存儲的密碼僅有6位,數量較小,所以,芯片的地址選擇端口可以直接接地線,只需把芯片的時鐘輸入端口(SCK)和數據輸入端口(SDA)和單片機相連,其電路圖如下:</p><p><b>  2.

10、4顯示部分</b></p><p>  電子密碼鎖系統(tǒng)需要顯示的信息少,故采用七段LED數碼顯示器,數據傳輸采用串行方式,由單片機的串行數據口P3.0發(fā)送,在經過74HC164串行移位寄存器把串行數據轉換成8位并行數據,用以驅動七段LED數碼顯示管。電路圖如下:</p><p>  3.電子密碼鎖的總電路圖如下:</p><p>  3、電子密碼鎖的系統(tǒng)

11、軟件設計</p><p><b>  軟件設計流程圖: </b></p><p><b>  本次設計得程序:</b></p><p>  void main()</p><p><b>  {</b></p><p>  uchar i = 0;<

12、;/p><p>  uchar IIC_Password[10];</p><p>  uchar IS_Valid_User = 0;</p><p>  P0 = 0xFF; </p><p>  P1 = 0xFF;</p><p>  P2 = 0xFF; </p><p>  T

13、MOD = 0x02; //T0設置為8位自動重裝模式</p><p>  TH0 = 175; </p><p>  TL0 = 175;</p><p>  TR0 = 1; //啟動T0</p><p>  Dela

14、yMS(10); </p><p>  LCD_Init(); //初始化LCD </p><p>  IIC_24C04_Init(); //初始化24C04 </p><p>  Display_String(Title_Text,0x00); //在第1行

15、顯示標題</p><p>  //24C04的內容已由初始化BIN文件導入</p><p>  //將24C04中預先寫入的密碼讀入pass</p><p>  RecString(0xa0, 0 , IIC_Password, 6); </p><p>  IIC_Password[6] = '\0';</p>

16、;<p><b>  while(1)</b></p><p><b>  { </b></p><p>  P1 = 0xF0;</p><p>  if(P1 != 0xF0) KeyNo = Keys_Scan(); //掃描鍵盤獲取鍵序號KeyNo</p><p>  swi

17、tch ( KeyNo )</p><p><b>  {</b></p><p>  case 0: case 1: case 2: case 3: case 4: </p><p>  case 5: case 6: case 7: case 8: case 9:</p><p>  if ( i<= 5

18、) //密碼限制在6位以內</p><p><b>  {</b></p><p>  //如果i為0則執(zhí)行一次清屏</p><p>  if (i ==0) Display_String(" ",0x40);</p><p>  UserPass

19、word[i] = KeyNo + '0';</p><p>  UserPassword[i+1] = '\0';</p><p>  DSY_BUFFER[i] = '*';</p><p>  DSY_BUFFER[i+1] = '\0';</p><p>  Displa

20、y_String(DSY_BUFFER,0x40);</p><p><b>  i++;</b></p><p><b>  }</b></p><p><b>  break;</b></p><p>  case 10: //按A鍵開鎖</p><p&

21、gt;  if (strcmp(UserPassword,IIC_Password) == 0) </p><p><b>  {</b></p><p>  LED_OPEN = 0; //點亮LED</p><p>  Clear_Password();</p><p>  Display_String("

22、;Unlock OK! ",0x40);</p><p>  IS_Valid_User = 1;</p><p><b>  }</b></p><p><b>  else </b></p><p><b>  {</b></p><

23、p>  LED_OPEN =1; //關閉LED</p><p>  Clear_Password();</p><p>  Display_String("ERROR ! ",0x40);</p><p>  IS_Valid_User = 0;</p><p><b>  }<

24、/b></p><p><b>  i = 0;</b></p><p><b>  break;</b></p><p>  case 11: //按B鍵上鎖</p><p>  LED_OPEN =1; </p><p>  Clear_Password();&

25、lt;/p><p>  Display_String(Title_Text,0x00);</p><p>  Display_String(" ",0x40);</p><p>  i = 0; </p><p>  IS_Valid_User =

26、0; </p><p><b>  break;</b></p><p>  case 12: //按C鍵設置新密碼</p><p>  //如果是合法用戶則提示輸入新密碼</p><p>  if ( !IS_Valid_User ) Display_String("No righ

27、ts !",0x40);</p><p><b>  else </b></p><p><b>  {</b></p><p><b>  i = 0;</b></p><p>  Display_String("New Password: "

28、;,0x00);</p><p>  Display_String(" ",0x40);</p><p><b>  }</b></p><p>  break; </p><p>  case 13: //按D鍵保存新密碼&

29、lt;/p><p>  if ( !IS_Valid_User ) Display_String("No rights !",0x40);</p><p><b>  else </b></p><p><b>  {</b></p><p>  SendString(0xa0, 0

30、 , UserPassword, 6);</p><p>  //重新讀入剛寫的密碼</p><p>  RecString(0xa0, 0 , IIC_Password, 6); </p><p>  IIC_Password[6] = '\0'; </p><p>&

31、lt;b>  i = 0;</b></p><p>  Display_String(Title_Text,0x00);</p><p>  Display_String("Password Saved! ",0x40);</p><p>  } </p><p>  brea

32、k; </p><p>  case 14: //按E鍵消除所有輸入</p><p><b>  i = 0;</b></p><p>  Clear_Password();</p><p>  Display_String(" &qu

33、ot;,0x40); </p><p><b>  }</b></p><p>  Beep(); </p><p>  DelayMS(100);</p><p><b>  P1= 0xF0;</b></p><p>  while

34、 (P1 != 0xF0); //如果有鍵未釋放則等待</p><p>  while (P1 == 0xF0); //如果沒有再次按下按鍵則等待</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  四、參考文獻</

35、b></p><p>  【1】李念強,等。單片機原理及應用[M].北京;機械工業(yè)出版社,2007.</p><p>  【2】周潤景、袁偉亭、景曉松。Proteus在MCS-51&ARM7系統(tǒng)中的應用百例[M],電子工業(yè)出版社,2006.</p><p>  【3】樓然苗,李光飛。單片機課程設計及指導。北京航空航天大學出版社。</p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論