電子密碼鎖課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  ******</b></p><p>  單片機(jī)課程設(shè)計(jì)報(bào)告書(shū)</p><p>  2010年 12 月 30 日</p><p> 課題名稱(chēng)電子密碼鎖</p><p> 姓 名***</p><p> 學(xué) 號(hào)*********</p>&

2、lt;p> 院、系、部物理與電子科學(xué)系</p><p> 專(zhuān) 業(yè)電子信息科學(xué)與技術(shù)</p><p> 指導(dǎo)教師***</p><p><b>  目 錄</b></p><p>  一、緒言 …………………………………………………………………………… 3</p><p> ?。ㄒ?/p>

3、) 設(shè)計(jì)任務(wù)……………………………………………………………… 3</p><p> ?。ǘ?設(shè)計(jì)方案及分析……………………………………………………… 3</p><p>  二、系統(tǒng)設(shè)計(jì) ……………………………………………………………………… 4</p><p>  (一) 硬件電路設(shè)計(jì)………………………………………………………… 4</p><

4、;p> ?。ǘ?程序流程圖…………………………………………………………… 6</p><p> ?。ㄈ?c語(yǔ)言程序設(shè)計(jì)………………………………………………………… 6</p><p>  三、電子密碼鎖仿真 ……………………………………………………………… 12</p><p> ?。ㄒ唬?系統(tǒng)仿真 ………………………………………………………………12&l

5、t;/p><p> ?。ǘ?工作原理分析………………………………………………………… 13</p><p>  結(jié) 束 語(yǔ) ……………………………………………………………………………13</p><p>  參考文獻(xiàn) ……………………………………………………………………………14</p><p><b>  一、緒 言</b&g

6、t;</p><p><b>  (一)設(shè)計(jì)任務(wù)</b></p><p>  1、用4*3組成0~9數(shù)字鍵及確認(rèn)鍵、刪除鍵。</p><p>  2、用8位數(shù)碼管組成顯示電路提示信息,當(dāng)輸入密碼時(shí),只顯示“-”,當(dāng)密碼位輸入完畢按下確認(rèn)鍵時(shí),對(duì)輸入的密碼與設(shè)定的密碼進(jìn)行比較,若密碼正確,則開(kāi)鎖,此處用LED發(fā)光二極管亮一秒鐘做為提示。</

7、p><p>  3、當(dāng)密碼不正確時(shí),禁止按鍵輸入3秒,同時(shí)發(fā)出“嘀、嘀”報(bào)警聲。</p><p>  (二)、設(shè)計(jì)方案及分析</p><p><b>  1、設(shè)計(jì)方案</b></p><p>  根據(jù)以上密碼鎖的設(shè)計(jì)任務(wù),我們擬定的方案可以簡(jiǎn)略的如以下框圖所示:</p><p>  密碼鎖的控制方案論

8、證</p><p>  根據(jù)設(shè)計(jì)任務(wù)書(shū)中的設(shè)計(jì)要求,可以設(shè)想幾種控制方案,可以是簡(jiǎn)單控制,也可以是較復(fù)雜的控制。本設(shè)計(jì)采用以下密碼鎖控制方案。</p><p>  1. 密碼的設(shè)定,在此程序中密碼是固定在程序存儲(chǔ)器ROM中,假設(shè)預(yù)設(shè)的密碼為“12345”共5位密碼。</p><p>  2. 密碼的輸入問(wèn)題:</p><p>  由于采用兩個(gè)

9、按鍵來(lái)完成密碼的輸入,那么其中一個(gè)按鍵為功能鍵,另一個(gè)按鍵為數(shù)字鍵。在輸入過(guò)程中,首先輸入密碼的長(zhǎng)度,接著根據(jù)密碼的長(zhǎng)度輸入密碼的位數(shù),直到所有長(zhǎng)度的密碼都已經(jīng)輸入完畢;或者輸入確認(rèn)功能鍵之后,才能完成密碼的輸入過(guò)程。進(jìn)入密碼的判斷比較處理狀態(tài)并給出相應(yīng)的處理過(guò)程。</p><p>  P3.6是功能鍵,P3.7是數(shù)字鍵。循環(huán):先按P3.6進(jìn)入工作狀態(tài),之后按P3.7選擇密碼的長(zhǎng)度,為5,再按功能鍵表示確認(rèn)。之后

10、開(kāi)始輸入密碼,輸一位后就確認(rèn)一下,確認(rèn)為功能鍵,結(jié)束后可以聽(tīng)到聲音。之后就從新開(kāi)始循環(huán)。</p><p>  1.2、單片機(jī)的控制方案論證</p><p>  根據(jù)設(shè)計(jì)任務(wù)書(shū)中的設(shè)計(jì)要求,可選用Atmel公司的89系列單片機(jī)AT89C2051,但考慮到將來(lái)控制功能的擴(kuò)充,用AT89C51來(lái)完成本次設(shè)計(jì)??刂品桨溉缦拢?lt;/p><p>  密碼鎖進(jìn)行初始化操作,控制數(shù)

11、碼管顯示其初始狀態(tài)。</p><p>  初始化完畢后,單片機(jī)進(jìn)入等待掃描鍵盤(pán)狀態(tài)。</p><p>  當(dāng)有密碼輸入時(shí),保存輸入的數(shù)據(jù),并控制數(shù)碼管顯示其輸入狀態(tài)。</p><p><b>  二、系統(tǒng)設(shè)計(jì)</b></p><p><b>  (一)硬件電路設(shè)計(jì)</b></p>&l

12、t;p>  1、密碼鎖控制電路圖</p><p>  采用AT89C51單片機(jī)控制密碼鎖并實(shí)現(xiàn)實(shí)時(shí)顯示輸入狀態(tài)。單片機(jī)控制密碼鎖的電路原理如圖2-1所示。</p><p><b>  圖2-1</b></p><p><b>  2、主要元器件選擇</b></p><p>  主要元器件選用型

13、號(hào)和數(shù)量如表2-1所示:</p><p>  表2-1 主要元器件清單</p><p><b> ?。ǘ?程序流程圖</b></p><p><b>  C語(yǔ)言程序設(shè)計(jì)</b></p><p><b>  主程序設(shè)計(jì)</b></p><p>  #i

14、nclude <AT89X52.H></p><p>  unsigned char code ps[]={1,2,3,4,5};</p><p>  unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,</p><p>  0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40}

15、;</p><p>  unsigned char pslen=9;</p><p>  unsigned char templen;</p><p>  unsigned char digit;</p><p>  unsigned char funcount;</p><p>  unsigned char dig

16、itcount;</p><p>  unsigned char psbuf[9];</p><p>  bit cmpflag;</p><p>  bit hibitflag;</p><p>  bit errorflag;</p><p>  bit rightflag;</p><p>

17、;  unsigned int second3;</p><p>  unsigned int aa;</p><p>  unsigned int bb;</p><p>  bit alarmflag;</p><p>  bit exchangeflag;</p><p>  unsigned int cc;&l

18、t;/p><p>  unsigned int dd;</p><p>  bit okflag;</p><p>  unsigned char oka;</p><p>  unsigned char okb;</p><p>  void main(void)</p><p><b>

19、;  {</b></p><p>  unsigned char i,j;</p><p>  P2=dispcode[digitcount];</p><p>  TMOD=0x01;</p><p>  TH0=(65536-500)/256;</p><p>  TL0=(65536-500)%256

20、;</p><p><b>  TR0=1;</b></p><p><b>  ET0=1;</b></p><p><b>  EA=1;</b></p><p><b>  while(1)</b></p><p><b

21、>  {</b></p><p>  if(cmpflag==0)</p><p><b>  { </b></p><p>  if(P3_6==0) //function key</p><p><b>  {</b></p><p>  for(i=1

22、0;i>0;i--)</p><p>  for(j=248;j>0;j--);</p><p>  if(P3_6==0)</p><p><b>  {</b></p><p>  if(hibitflag==0)</p><p><b>  {</b><

23、;/p><p>  funcount++;</p><p>  if(funcount==pslen+2)</p><p><b>  {</b></p><p>  funcount=0;</p><p>  cmpflag=1;</p><p><b>  }&l

24、t;/b></p><p>  P1=dispcode[funcount];</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  second3=0;&l

25、t;/p><p><b>  }</b></p><p>  while(P3_6==0);</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(P3_7==0) //digit key</p>

26、;<p><b>  {</b></p><p>  for(i=10;i>0;i--)</p><p>  for(j=248;j>0;j--);</p><p>  if(P3_7==0)</p><p><b>  {</b></p><p>

27、  if(hibitflag==0)</p><p><b>  {</b></p><p>  digitcount++; </p><p>  if(digitcount==10)</p><p><b>  {</b></p><p

28、>  digitcount=0;</p><p><b>  }</b></p><p>  P2=dispcode[digitcount];</p><p>  if(funcount==1)</p><p><b>  {</b></p><p>  pslen=d

29、igitcount;</p><p>  templen=pslen;</p><p><b>  }</b></p><p>  else if(funcount>1)</p><p><b>  {</b></p><p>  psbuf[funcount-2]=d

30、igitcount;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  second3=0;&l

31、t;/p><p><b>  }</b></p><p>  while(P3_7==0);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p>

32、<p><b>  else</b></p><p><b>  {</b></p><p>  cmpflag=0;</p><p>  for(i=0;i<pslen;i++)</p><p><b>  {</b></p><p>

33、  if(ps[i]!=psbuf[i])</p><p><b>  {</b></p><p>  hibitflag=1;</p><p><b>  i=pslen;</b></p><p>  errorflag=1;</p><p>  rightflag=0;&

34、lt;/p><p>  cmpflag=0;</p><p>  second3=0;</p><p><b>  goto a;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>

35、;<b>  cc=0;</b></p><p>  errorflag=0;</p><p>  rightflag=1;</p><p>  hibitflag=0;</p><p>  cmpflag=0;</p><p><b>  }</b></p>

36、<p><b>  }</b></p><p><b>  }</b></p><p>  void t0(void) interrupt 1 using 0</p><p><b>  {</b></p><p>  TH0=(65536-500)/256;<

37、/p><p>  TL0=(65536-500)%256;</p><p>  if((errorflag==1) && (rightflag==0))</p><p><b>  {</b></p><p><b>  bb++;</b></p><p>  i

38、f(bb==800)</p><p><b>  {</b></p><p><b>  bb=0;</b></p><p>  alarmflag=~alarmflag;</p><p><b>  }</b></p><p>  if(alarmfl

39、ag==1)</p><p><b>  {</b></p><p>  P0_0=~P0_0;</p><p><b>  }</b></p><p><b>  aa++;</b></p><p>  if(aa==800)</p>&

40、lt;p><b>  {</b></p><p><b>  aa=0;</b></p><p>  P0_1=~P0_1;</p><p><b>  }</b></p><p>  second3++;</p><p>  if(second3

41、==6400)</p><p><b>  {</b></p><p>  second3=0;</p><p>  hibitflag=0;</p><p>  errorflag=0;</p><p>  rightflag=0;</p><p>  cmpflag=0

42、;</p><p><b>  P0_1=1;</b></p><p>  alarmflag=0;</p><p><b>  bb=0;</b></p><p><b>  aa=0;</b></p><p><b>  }</b&g

43、t;</p><p><b>  }</b></p><p>  if((errorflag==0) && (rightflag==1))</p><p><b>  {</b></p><p><b>  P0_1=0;</b></p><

44、p><b>  cc++;</b></p><p>  if(cc<1000)</p><p><b>  {</b></p><p><b>  okflag=1;</b></p><p><b>  }</b></p><

45、;p>  else if(cc<2000)</p><p><b>  {</b></p><p><b>  okflag=0;</b></p><p><b>  }</b></p><p><b>  else</b></p>

46、<p><b>  {</b></p><p>  errorflag=0;</p><p>  rightflag=0;</p><p>  hibitflag=0;</p><p>  cmpflag=0;</p><p><b>  P0_1=1;</b>

47、</p><p><b>  cc=0;</b></p><p><b>  oka=0;</b></p><p><b>  okb=0;</b></p><p><b>  okflag=0;</b></p><p><b

48、>  P0_0=1;</b></p><p><b>  }</b></p><p>  if(okflag==1)</p><p><b>  {</b></p><p><b>  oka++;</b></p><p>  if(o

49、ka==2)</p><p><b>  {</b></p><p><b>  oka=0;</b></p><p>  P0_0=~P0_0;</p><p><b>  }</b></p><p><b>  }</b><

50、;/p><p><b>  else</b></p><p><b>  {</b></p><p><b>  okb++;</b></p><p>  if(okb==3)</p><p><b>  {</b></p>

51、<p><b>  okb=0;</b></p><p>  P0_0=~P0_0;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p&g

52、t;<b>  }</b></p><p>  三、密碼鎖控制器仿真</p><p><b> ?。ㄒ唬┫到y(tǒng)仿真</b></p><p>  在完成了密碼鎖硬件設(shè)計(jì)和軟件設(shè)計(jì)以后,便進(jìn)入系統(tǒng)的調(diào)試階段。系統(tǒng)的調(diào)試步驟和方法基本上是相同的,但具體細(xì)節(jié)和所采用的開(kāi)發(fā)系統(tǒng)以及用戶(hù)系統(tǒng)選用的單片機(jī)型號(hào)有關(guān),如可選用Keil軟件進(jìn)行

53、軟件調(diào)試,用Proteus軟件完成硬件調(diào)試。</p><p>  圖3-1 程序調(diào)試完成圖</p><p><b> ?。ǘ┕ぷ髟矸治?lt;/b></p><p>  電子密碼鎖由4*3組成0~9數(shù)字鍵及確認(rèn)鍵、刪除鍵等組成。用8位數(shù)碼管組成顯示電路提示信息,當(dāng)輸入密碼時(shí),只顯示“-”,當(dāng)密碼位輸入完畢按下確認(rèn)鍵時(shí),對(duì)輸入的密碼與設(shè)定的密碼進(jìn)行

54、比較,若密碼正確,則開(kāi)鎖。當(dāng)密碼不正確時(shí),禁止按鍵輸入3秒,同時(shí)發(fā)出“嘀、嘀”報(bào)警聲。</p><p><b>  結(jié) 束 語(yǔ)</b></p><p><b>  完成情況: </b></p><p> ?。?)、一開(kāi)始由于太急于求成,整個(gè)電路有的模塊比較小,所以我們就沒(méi)有去沒(méi)有去調(diào)試。但是等整個(gè)都基本設(shè)計(jì)完時(shí)才發(fā)現(xiàn)這

55、些看似簡(jiǎn)單的小模塊卻有很多需要改進(jìn)的地方。因此,我們明白了一個(gè)道理:不管做什么事情,都應(yīng)該有耐心,認(rèn)真打好基礎(chǔ),磨刀不誤砍柴工。</p><p> ?。?)、做什么事情并不是一直做就是好的,應(yīng)該時(shí)不時(shí)的跳出來(lái)觀看一下全局,把握好方向。當(dāng)出現(xiàn)問(wèn)題時(shí)不應(yīng)該心浮氣躁,可以適當(dāng)?shù)姆潘尚那?,調(diào)整好心態(tài)再繼續(xù)。</p><p> ?。?)在設(shè)計(jì)的過(guò)程中要敢想敢試,這樣才能找出比較好的解決方案。<

56、/p><p> ?。?)在設(shè)計(jì)的過(guò)程中,我們主動(dòng)地想去了解一些芯片的功能,以便我們的設(shè)計(jì)順利進(jìn)行。這樣一種積極的求知欲對(duì)于學(xué)習(xí)來(lái)講事半功倍。在以后的學(xué)習(xí)生活中應(yīng)該保持。</p><p> ?。?)當(dāng)我們?cè)O(shè)計(jì)出密碼鎖時(shí)感覺(jué)很有成就感,感覺(jué)到很欣慰。在知識(shí)的海洋里,在學(xué)習(xí)的道路上,雖然艱辛,但是努力了就會(huì)有所收獲,收獲時(shí)的喜悅是美妙的。</p><p><b> 

57、 參考文獻(xiàn)</b></p><p>  [1].C語(yǔ)言程序設(shè)計(jì)(第二版),譚浩強(qiáng)主編,清華大學(xué)出版社</p><p>  [2].全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽訓(xùn)練教程,黃智偉主編,電子工業(yè)出版社</p><p>  [3].凌陽(yáng)16位單片機(jī)應(yīng)用基礎(chǔ),羅亞非等編著,北京航空航天大學(xué)出版社</p><p>  [4].MCU-DSP型單片機(jī)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論