電子密碼鎖設(shè)計畢業(yè)設(shè)計_第1頁
已閱讀1頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設(shè)計 (論文)</b></p><p>  2012?。?013 學(xué)年度</p><p>  電子信息工程 系(部) 應(yīng)用電子技術(shù) 專業(yè)</p><p>  題 目          </p><p>  學(xué)生姓名          </p><p>  學(xué)

2、生班級          </p><p>  指導(dǎo)教師          </p><p>  起止日期          </p><p>  2012 年10 月  日</p><p>  畢業(yè)設(shè)計 (論文)任務(wù)書</p><p>  系(部)   專業(yè) 班級    姓名    學(xué)號

3、     </p><p>  指導(dǎo)教師        </p><p>  職務(wù)(稱)        </p><p>  20  年 月 日</p><p><b>  電子密碼鎖設(shè)計</b></p><p><b>  作者:xxx</b></p>

4、;<p>  【摘要】隨著科學(xué)技術(shù)的不斷發(fā)展,人們對日常生活中的安全保險器件的要求越來越高。為滿足人們對鎖的使用要求,增加其安全性,用密碼代替鑰匙的密碼鎖應(yīng)運而生。密碼鎖具有安全性高、成本低、功耗低、易操作等優(yōu)點,本設(shè)計使用ATMEL公司的AT89S52實現(xiàn)一基于單片機(jī)的電子密碼鎖的設(shè)計。本文介紹一種基于單片機(jī)和串行EEPROM的智能密碼鎖,是密碼鎖設(shè)計中比較簡單的一種,其主要功能有鍵盤輸入、LED數(shù)碼管顯示、加密、修改密

5、碼、密碼檢測、錯誤報警等簡單易懂、使用方便、安全性能高等。本設(shè)計采用AT89S52單片機(jī)為芯片主體,采用AT24C08為掉電存儲器的芯片。這種芯片穩(wěn)定性高,成本低。它是采用AT89S52單片機(jī)和AT24C08串行EEPROM,通過AT89S52模擬I2C總線和AT24C08通訊,實現(xiàn)密碼鎖的功能。</p><p>  【關(guān)鍵詞】 AT89S52 AT24C08 密碼鎖 矩陣鍵盤</p><

6、;p><b>  引言</b></p><p>  在日常的生活和工作中, 住宅與部門的安全防范、單位的文件檔案、財務(wù)報表以及一些個人資料的保存多以加鎖的辦法來解決。若使用傳統(tǒng)的機(jī)械式鑰匙開鎖,人們常需攜帶多把鑰匙, 使用極不方便, 且鑰匙丟失后安全性即大打折扣。隨著科學(xué)技術(shù)的不斷發(fā)展,人們對日常生活中的安全保險器件的要求越來越高。為滿足人們對鎖的使用要求,增加其安全性,用密碼代替鑰匙

7、的密碼鎖應(yīng)運而生。密碼鎖具有安全性高、成本低、功耗低、易操作等優(yōu)點。</p><p>  在安全技術(shù)防范領(lǐng)域,具有防盜報警功能的電子密碼鎖逐漸代替?zhèn)鹘y(tǒng)的機(jī)械式密碼鎖,克服了機(jī)械式密碼鎖密碼量少、安全性能差的缺點,使密碼鎖無論在技術(shù)上還是在性能上都大大提高一步。隨著大規(guī)模集成電路技術(shù)的發(fā)展,特別是單片機(jī)的問世,出現(xiàn)了帶微處理器的智能密碼鎖,它除具有電子密碼鎖的功能外,還引入了智能化管理、專家分析系統(tǒng)等功能,從而使密

8、碼鎖具有很高的安全性、可靠性,應(yīng)用日益廣泛。</p><p>  隨著人們對安全的重視和科技的發(fā)展,許多電子智能鎖(指紋識別、IC卡辨認(rèn))已在國內(nèi)外相繼面世。但是這些產(chǎn)品的特點是針對特定的指紋和有效卡,只能適用于保密要求的箱、柜、門等。而且指紋識識別器若在公共場所使用存在容易機(jī)械損壞,IC卡還存在容易丟失、損壞等特點。加上其成本較高,一定程度上限制了這類產(chǎn)品的普及和推廣。鑒于目前的技術(shù)水平與市場的接收程度,電子密

9、碼鎖是這類電子防盜產(chǎn)品的主流。本次設(shè)計使用ATMEL公司的AT89S52實現(xiàn)一基于單片機(jī)的電子密碼鎖的設(shè)計</p><p><b>  方案論證</b></p><p>  設(shè)計本課題時構(gòu)思時考慮到數(shù)字電路方案原理過于簡單,而且不能滿足現(xiàn)在的安全需求,所以本文采用一種是用以AT89S52為核心的單片機(jī)控制方案。</p><p>  以AT89S

10、51為核心的單片機(jī)控制方案利用單片機(jī)靈活的編程設(shè)計和豐富的I/O端口,及其控制的準(zhǔn)確性,不但能實現(xiàn)基本的密碼鎖功能,還能添加調(diào)電存儲、聲光提示甚至添加遙控控制功能。其原理方框圖如圖2-1所示。</p><p><b>  圖2-1</b></p><p>  單片機(jī)方案有較大的活動空間,不但能實現(xiàn)所要求的功能而且能在很大的程度上擴(kuò)展功能,而且還可以方便的對系統(tǒng)進(jìn)行升級

11、。</p><p><b>  硬件設(shè)計</b></p><p><b>  3.1 功能模塊</b></p><p>  3.11開鎖電路設(shè)計</p><p>  通過單片機(jī)送給開鎖執(zhí)行機(jī)構(gòu),將P3.5置低電平,密碼正確指示燈亮,從而達(dá)到開鎖的目的。其原理如圖3-1所示。</p>&

12、lt;p>  圖3-1密碼鎖開鎖示意圖</p><p>  3.12按鍵電路設(shè)計</p><p>  由于設(shè)計要求使用矩陣鍵盤,所以本設(shè)計就彩行列式鍵盤,同時也能減少鍵盤與單片機(jī)接口時所占用的I/O口線的數(shù)目,在按鍵比較多的時候,通常采用這樣方法。</p><p>  每一條水平(行線)與垂直線(列線)的交叉處不相通,而是通過一個按鍵來連通,利用這種行列式矩陣

13、結(jié)構(gòu)只需要N條行線和M條列線,即可組成具有N×M個按鍵的鍵盤。在這種行列式矩陣鍵盤非鍵盤編碼的單片機(jī)系統(tǒng)中,鍵盤處理程序首先執(zhí)行等待按鍵并確認(rèn)有無按鍵按下的程序段。</p><p>  當(dāng)確認(rèn)有按鍵按下后,下一步就要識別哪一個按鍵按下。對鍵的識別通常有兩種方法:一種是常用的逐行掃描查詢法,另一種是速度較快的線反轉(zhuǎn)法。</p><p>  判斷鍵盤中哪一個鍵被按下使通過將列線逐列置

14、低電平后,檢查行輸入狀態(tài)來實現(xiàn)的。方法是:依次給列線送低電平,然后查所有行線狀態(tài),如果全為1,則所按下的鍵不在此列;如果不全為1,則所按下的鍵必在此列,而且是在與零電平行線相交的交點上的那個鍵。</p><p>  按鍵的操作面板如圖3-2所示。共計數(shù)字鍵10個,功能鍵4個,鍵盤上還有2個指示燈和蜂鳴器。</p><p>  圖3-2按鍵操作面板示意圖</p><p&g

15、t;  其中10個數(shù)字鍵用來輸入密碼,另外4個功能鍵分別是:A、B、C、D。其中A鍵的功能是顯示密碼,B鍵的功能是確認(rèn)輸入的密碼,C鍵的功能是當(dāng)輸入密碼錯誤的時候,清除前面已經(jīng)輸入的數(shù)據(jù),重新輸入,D是用來進(jìn)入修改密碼的狀態(tài)。上面的兩個指示燈L1、L2、是用來指示操作的狀態(tài):L1是開門指示燈,正常的情況下無顯示,當(dāng)鍵盤動作且密碼正確的時候,燈亮;L2是電源狀態(tài)指示燈,當(dāng)接通電源時,指示燈自動點亮,否則,燈滅。</p>&l

16、t;p>  面板上還有一個蜂鳴器,其功能是當(dāng)用戶輸入密碼錯誤時或密碼輸入錯誤次數(shù)超過了3次,鳴笛以示報警。</p><p>  3.13顯示電路設(shè)計</p><p>  本系統(tǒng)設(shè)計的顯示電路是為了給使用者以提示而設(shè)置的,選擇四位連體共陽的數(shù)碼管,本系統(tǒng)的顯示采用并行顯示的方式,只使用單片機(jī)的兩個口P0口和P2口,就可以完成單片機(jī)的顯示功能,顯示電路的電路原理圖如圖3-3所示,P0口完

17、成段碼顯示,P2口完成位選功能。</p><p>  電路設(shè)定:當(dāng)密碼輸入錯誤次數(shù)達(dá)到三次以上時,顯示”E”,當(dāng)無輸入\斷電時,則關(guān)閉顯示,當(dāng)忘記密碼,輸錯密碼,判斷密碼正確無誤時,可通過功能鍵進(jìn)行顯示更改密碼及判斷。</p><p>  圖3-3顯示器原理圖</p><p>  3.14 AT24C08斷電存儲單元的設(shè)計</p><p> 

18、 斷電存儲單元的作用是在電源斷開的時候,存儲當(dāng)前設(shè)定的信息。AT24C08是ATMEL公司的8KB字節(jié)的電可擦除存儲芯片,采用兩線串行的總線和單片機(jī)通訊,電壓最低可以到2.5V,額定電流為1mA,靜態(tài)電流10Ua(5.5V),芯片內(nèi)的資料可以在斷電的情況下保存40年以上,而且采用8腳的DIP封裝,使用方便。其電路如圖3-4所示。</p><p>  圖3-4斷電存儲電路原理圖</p><p&g

19、t;  由于AT24C08的數(shù)據(jù)線和地址線是復(fù)用的,采用串口的方式傳送數(shù)據(jù),所以只用兩根線SCL(移位脈沖)和SDA(數(shù)據(jù)/地址)與單片機(jī)傳送數(shù)據(jù)。</p><p>  每當(dāng)設(shè)定一次單價,系統(tǒng)就自動調(diào)用存儲程序,將單價信息保存在芯片內(nèi);當(dāng)系統(tǒng)重新上電的時候,自動調(diào)用讀存儲器程序,將存儲器內(nèi)的單價等信息,讀到緩存單元中,供主程序使用。</p><p>  3.15 總體設(shè)計總框圖</

20、p><p>  圖3-5總體設(shè)計框圖</p><p><b>  3.2 原理圖</b></p><p><b>  3.3 PCB圖</b></p><p><b>  軟件設(shè)計</b></p><p>  4.1 程序流程圖</p>

21、<p>  圖4-1 主程序流程圖 圖4-2 修改密碼流程圖</p><p>  圖4-3 鍵盤程序流程圖 圖4-4 24c08程序流程圖</p><p>  4.2 程序?qū)崿F(xiàn)功能.</p><p>  該主要由三部分組成:4×4矩陣鍵盤接口電路、密碼鎖的控制電路、輸出八段顯示電路。另

22、外系統(tǒng)還有LED提示燈,報警蜂鳴器等,可分為以下幾個模塊: </p><p><b>  垣殘壁 </b></p><p><b>  (1)主程序模塊 </b></p><p>  主程序主要完成初始化、檢查有無按鍵按下、以及調(diào)用顯示等等,其流程圖如4-1所示。 </p><p><b>

23、;  (2)顯示子程序 </b></p><p>  由于是分屏顯示數(shù)據(jù),所以就要用到4個顯示子程序,分別是:功能鍵顯示密碼狀態(tài)子程序、修改密碼顯示子程序、判斷密碼輸入正確提示子程序、密碼輸入錯誤次數(shù)超過3次后的鎖定狀態(tài)顯示子程序,其流程圖如4-2所示。 </p><p>  (3)鍵盤掃描及識別子程序 </p><p>  鍵盤采用查詢的方式,放在主程

24、序中,當(dāng)沒有按鍵按下的時候,單片機(jī)循環(huán)主程序,一旦有按鍵按下,便轉(zhuǎn)向相應(yīng)的子程序處理,處理結(jié)束再返回,其程序流程圖如4-3所示。 </p><p>  (4)調(diào)電存儲服務(wù)程序 </p><p>  當(dāng)比較密碼的時候,需要讀AT24C08程序,將存儲在芯片內(nèi)的數(shù)據(jù)讀到RAM中,然后和輸入的密碼相比較。當(dāng)修改密碼的時候,需要把輸入的密碼保存到AT24C08中,并實現(xiàn)斷電保護(hù),其流程圖如4-4所

25、示。 </p><p><b>  程序及部分說明</b></p><p>  #include <reg52.h></p><p>  #include <intrins.h></p><p><b>  unsigned </b></p><p>

26、  char b[14]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,</p><p>  0x80,0x90,0xff,0xff,0xff,0xff};</p><p>  unsigned char c[4];</p><p>  unsigned char a[4]={0xf1,0xf2,0xf4,0xf8},kk[8]

27、;</p><p>  unsigned char K,Key,ac,i,z,wr,ii; //ac表示數(shù)碼管顯示個數(shù)</p><p>  sbit scl = P2^6; </p><p>  sbit sda = P2^7; </p><p>  sbit P35 = P3^5;</p&

28、gt;<p>  sbit P34 = P3^4;</p><p><b>  // 延時子程序 </b></p><p>  void delay(unsigned char pp)//延遲時間等于pp*1ms</p><p><b>  {</b></p><p>  wh

29、ile(pp--)</p><p><b>  {</b></p><p>  unsigned char j;</p><p>  for(j=0;j<126;j++); //j進(jìn)行的內(nèi)部循環(huán),1次延遲8us,延遲1ms</p><p><b>  }<

30、;/b></p><p><b>  }</b></p><p>  void delayNOP()</p><p><b>  {</b></p><p>  _nop_();_nop_();_nop_();_nop_();</p><p><b>  }&

31、lt;/b></p><p><b>  //開始位 </b></p><p>  void start() </p><p><b>  { </b></p><p><b>  sda = 1;</b></p><p>  delayNOP()

32、; </p><p><b>  scl = 1; </b></p><p>  delayNOP(); </p><p><b>  sda = 0; </b></p><p>  delayNOP(); </p><p><b>  } </b&g

33、t;</p><p><b>  // 停止位 </b></p><p>  void stop() </p><p><b>  { </b></p><p><b>  sda = 0; </b></p><p>  delayNOP(); <

34、;/p><p>  scl = 1; </p><p>  delayNOP(); </p><p><b>  sda = 1; </b></p><p>  delayNOP(); </p><p><b>  }</b></p><p><b

35、>  //應(yīng)答// </b></p><p>  void respons ()</p><p><b>  {</b></p><p>  unsigned char i;</p><p><b>  scl=1;</b></p><p>  delayN

36、OP(); </p><p>  while((sda==1)&&(i<250))i++;</p><p><b>  scl=0;</b></p><p>  delayNOP();</p><p><b>  }</b></p><p><b&

37、gt;  //總線初始化//</b></p><p>  void init()</p><p><b>  { </b></p><p><b>  sda=1;</b></p><p>  delayNOP(); </p><p><b>  scl

38、=1;</b></p><p>  delayNOP(); </p><p><b>  }</b></p><p><b>  //寫字節(jié)//</b></p><p>  void write_byte(unsigned char date)</p><p>&

39、lt;b>  {</b></p><p>  unsigned char i,temp;</p><p>  temp=date;</p><p>  for(i=0;i<8;i++)</p><p><b>  { </b></p><p>  temp=temp<

40、<1; </p><p><b>  scl=0;</b></p><p>  delayNOP(); </p><p><b>  sda=CY;</b></p><p>  delayNOP();</p><p><b>  scl=1;</b>

41、;</p><p>  delayNOP(); </p><p><b>  }</b></p><p><b>  scl=0;</b></p><p>  delayNOP();</p><p><b>  sda=1;</b></p>

42、<p>  delayNOP(); </p><p><b>  }</b></p><p><b>  //讀字節(jié)//</b></p><p>  unsigned char read_byte()</p><p><b>  { </b></p>

43、<p>  unsigned char i,j,k;</p><p><b>  scl=0;</b></p><p>  delayNOP();</p><p><b>  sda=1;</b></p><p>  delayNOP(); </p><p> 

44、 for(i=0;i<8;i++)</p><p><b>  {</b></p><p><b>  scl=1;</b></p><p>  delayNOP(); </p><p>  if(sda==1)</p><p><b>  j=1;</

45、b></p><p><b>  else</b></p><p><b>  j=0;</b></p><p>  k=(k<<1)|j;</p><p><b>  scl=0;</b></p><p>  delayNOP();

46、</p><p><b>  }</b></p><p><b>  return k;</b></p><p><b>  }</b></p><p><b>  //寫地址//</b></p><p>  void write_

47、add(unsigned char address,unsigned char date)</p><p><b>  {</b></p><p><b>  start();</b></p><p>  write_byte(0xa0);</p><p>  respons();</p>

48、;<p>  write_byte(address);</p><p>  respons();</p><p>  write_byte(date);</p><p>  respons();</p><p><b>  stop();</b></p><p><b> 

49、 }</b></p><p><b>  //讀地址//</b></p><p>  unsigned char read_add(unsigned char address)</p><p><b>  { </b></p><p>  unsigned char date;<

50、/p><p><b>  start();</b></p><p>  write_byte(0xa0);</p><p>  respons();</p><p>  write_byte(address);</p><p>  respons();</p><p><

51、b>  start();</b></p><p>  write_byte(0xa1);</p><p>  respons();</p><p>  date=read_byte();</p><p><b>  stop();</b></p><p>  return dat

52、e;</p><p><b>  }</b></p><p><b>  //功能//</b></p><p>  void fun1()//功能鍵顯示密碼</p><p><b>  { </b></p><p>  for(z=0;z<ac;

53、z++)</p><p><b>  {</b></p><p><b>  P0=c[z];</b></p><p>  P2=read_add(wr++);</p><p>  c[3]=c[2];</p><p>  c[2]=c[1];</p><

54、p>  c[1]=c[0];</p><p>  c[0]=read_add(i++);</p><p><b>  }</b></p><p><b>  } </b></p><p>  void fun2()//判斷密碼</p><p><b>  {

55、</b></p><p>  if(((P0=read_add(i))!=(P0=c[i]))&&((P2=read_add(i))!=(P2=a[i])))</p><p><b>  {</b></p><p><b>  P34=0;</b></p><p>  d

56、elay(100);</p><p><b>  P34=1;</b></p><p><b>  ii++;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b

57、>  {</b></p><p><b>  P35=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void fun3()//刪除功能鍵</p><p><b&g

58、t;  {</b></p><p>  for(K=10;K<11;K++) </p><p><b>  {</b></p><p>  c[0]=c[1];</p><p>  c[1]=c[2];</p><p>  c[2]=

59、c[3]; </p><p>  c[3]=b[K];</p><p><b>  }</b></p><p><b>  }</b></p><p>  void fun4()//更改密碼確認(rèn)鍵</p><p><b>  {</b><

60、;/p><p>  if(P35==0)</p><p><b>  {</b></p><p>  write_add(i,c[0]);</p><p>  write_add(wr,a[0]);</p><p>  delay(10);</p><p>  write_a

61、dd(i+1,c[1]);</p><p>  write_add(wr,a[1]);</p><p>  delay(10);</p><p>  write_add(i+2,c[2]);</p><p>  write_add(wr,a[2]);</p><p>  delay(10);</p>&

62、lt;p>  write_add(i+3,c[3]);</p><p>  write_add(wr,a[3]);</p><p>  delay(10);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>

63、;  //顯示//</b></p><p>  void display()</p><p><b>  { </b></p><p>  unsigned char i;</p><p>  for(i=0;i<ac;i++) //為了讓4個數(shù)碼管輪流亮一遍過去</p&

64、gt;<p><b>  {</b></p><p><b>  P0=c[i];</b></p><p><b>  P2=a[i];</b></p><p>  delay(1); </p><p><b>  }</b></p&g

65、t;<p><b>  } </b></p><p><b>  //按鍵//</b></p><p>  unsigned char Keycan(void) //按鍵掃描程序 P1.0--P1.3為行線 P1.4--P1.7為列線</p><p><b>  {</b&g

66、t;</p><p>  unsigned char rcode, ccode;</p><p>  P1 = 0xF0; // 發(fā)全0行掃描碼,列線輸入</p><p>  if((P1&0xF0) != 0xF0) // 若有鍵按下</p><p><b>

67、;  { </b></p><p>  delay(1); // 延時去抖動 </p><p>  if((P1&0xF0) != 0xF0)</p><p><b>  { </b></p><p>  rcode = 0xFE;

68、 // 逐行掃描初值</p><p>  while((rcode&0x10) != 0)</p><p><b>  {</b></p><p>  P1 = rcode; // 輸出行掃描碼</p><p>  if((P1&0xF0) !=

69、 0xF0) // 本行有鍵按下</p><p><b>  {</b></p><p>  ccode = (P1&0xF0)|0x0F;</p><p>  while((P1&0xF0) != 0xF0); //等待鍵釋放</p><p>  return ((~rco

70、de) + (~ccode)); // 返回鍵編碼</p><p><b>  }</b></p><p><b>  else</b></p><p>  rcode = (rcode<<1)|0x01; // 行掃描碼左移一位</p><p><b>  }

71、</b></p><p><b>  }</b></p><p><b>  } </b></p><p>  return 0; // 無鍵按下,返回值為0</p><p><b>  }</b></p>

72、;<p>  void KeyDeal(unsigned char Key)</p><p><b>  { </b></p><p>  if(Key!=0)</p><p><b>  {</b></p><p>  switch(Key)</p><p>

73、;<b>  {</b></p><p>  case 0x11: K=0; break;</p><p>  case 0x21: K=1; break;</p><p>  case 0x41: K=2; break;</p><p>  case 0x81: K=3; break;</p><p

74、>  case 0x12: K=4; break;</p><p>  case 0x22: K=5; break;</p><p>  case 0x42: K=6; break;</p><p>  case 0x82: K=7; break;</p><p>  case 0x14: K=8; break;</p>

75、<p>  case 0x24: K=9; break;</p><p>  case 0x44: K=10,fun1(); break;</p><p>  case 0x84: K=11,fun2(); break;</p><p>  case 0x18: K=12,fun3(); break;</p><p>  case

76、0x28: K=13,fun4(); break;</p><p>  default: break;</p><p><b>  } </b></p><p><b>  if(K<=9)</b></p><p><b>  { </b></p>

77、<p>  c[3]=c[2];</p><p>  c[2]=c[1];</p><p>  c[1]=c[0];</p><p>  c[0]=b[K];</p><p><b>  ac++;</b></p><p><b>  if(ac>4)</b>

78、</p><p><b>  ac=4;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void main()</p>

79、<p><b>  { </b></p><p>  init(); // 24C08初始化</p><p>  while(1) //鍵盤及顯示</p><p><b>  { </b></p><p>  Key = Keycan();

80、 //鍵盤掃描獲取一次按鍵的編碼0x11-0x88</p><p>  KeyDeal(Key); //對掃描到的鍵盤編碼進(jìn)行</p><p>  轉(zhuǎn)換處理,變成數(shù)據(jù)鍵盤0-9</p><p>  display();</p><p><b>  if(ii==3)</b></p><

81、;p><b>  { </b></p><p>  P0=0x86; // 三次錯誤顯示E</p><p>  while(1); // 自鎖鍵盤</p><p><b>  }</b></p><p><b>  }</b></p>

82、;<p><b>  }</b></p><p><b>  第五章 總結(jié)</b></p><p>  在沒有做畢業(yè)設(shè)計以前,覺得畢業(yè)設(shè)計只是對知識的單純總結(jié),但是通過這次畢業(yè)設(shè)計發(fā)現(xiàn)自己的看法有點太片面,畢業(yè)設(shè)計(論文)不僅是對前面所學(xué)知識的一種檢驗,也是對自己能力的一種提高,通過這次課程設(shè)計使自己明白了原來的那點知識是非常欠缺

83、的,要學(xué)習(xí)的東西還很多,通過這次課程設(shè)計,明白學(xué)習(xí)是一個長期積累的過程,在以后的工作和生活中都應(yīng)該不斷的學(xué)習(xí),努力提高自己的知識和綜合素質(zhì)。雖然這個設(shè)計做的不怎么好,但是在設(shè)計過程中所學(xué)到的東西是這次課程設(shè)計的最大收獲和財富,使我終身受益</p><p><b>  致謝</b></p><p>  通過寫作論文,我更加深刻理解了“態(tài)度決定一切”這句話,論文即將完成之

84、際,我的心情無法平靜,從開始進(jìn)入課題到論文的順利完成,有多少可敬的師長、同學(xué)、朋友給了我無言的幫助,在這里請接受我誠摯的謝意! </p><p>  我還要向給予我轉(zhuǎn)載和引用權(quán)的資料、圖片、文獻(xiàn)、研究思想和設(shè)想的所有者表示衷心的感謝!</p><p>  最后,再次對關(guān)心、幫助我的老師和同學(xué)表示衷心地感謝!</p><p><b>  【參考文獻(xiàn)】<

85、/b></p><p>  [1] 孫涵芳,徐愛卿編著。MCS—51/96系列單片機(jī)原理及應(yīng)用(修訂版)。北京:北京航空航天大學(xué)出版社,1996.4</p><p>  [2] 何立民編著。MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(系統(tǒng)配置與接口技術(shù))。北京:北京航空航天大學(xué)出版社,1993.8</p><p>  [3] 杜剛,電路設(shè)計與制板——Protel應(yīng)用教

溫馨提示

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

評論

0/150

提交評論