2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩20頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、<p>  畢 業 設 計 論 文</p><p><b>  摘 要</b></p><p>  單片機自20世紀70年代問世以來,以其極高的性能價格比,受到人們的重視和關注,應用很廣、發展很快。而51單片機是各單片機中最為典型和最有代表性的一種。本實驗是基于MCS51系列單片機所設計的,可以實現鍵盤按鍵與數字動態顯示并可以用音樂倒數的計數器。本設計基于單

2、片機技術原理,以單片機芯片AT89C51作為核心控制器,通過硬件電路的制作以及軟件程序的編制,設計制作出一個計數器,包括以下功能:輸出時間,按下鍵就開始計時,并將時間顯示在LCD1602顯示器上。當倒計數為0時,蜂鳴器就發出音樂聲響等等。該計數器系統主要由計數器模塊、LCD顯示器模塊、蜂鳴器模塊、鍵盤模塊、復位模塊等部分組成。</p><p>  關鍵詞:AT89C51、鍵盤、LCD1602顯示、蜂鳴器</

3、p><p><b>  目錄</b></p><p><b>  摘 要I</b></p><p>  1 項目概述和要求1</p><p>  1.1 單片機基礎知識1</p><p>  1.2 單片機的發展趨勢1</p><p>  1.3

4、項目設計任務與要求3</p><p><b>  2 系統設計4</b></p><p>  2.1 框圖設計4</p><p>  2.2部分硬件方案論述4</p><p>  2.3電路原理圖4</p><p><b>  2.4元件清單5</b></p

5、><p>  2.4.1 AT89C51芯片5</p><p>  2.4.2 字符型LCD16026</p><p>  2.4.3 按鍵控制模塊8</p><p>  2.4.4 其它元件8</p><p><b>  3軟件設計9</b></p><p>  3

6、.1 程序流程圖9</p><p>  3.2 程序關鍵問題的部分代碼11</p><p>  4 系統的仿真與調試16</p><p>  4.1 硬件調試16</p><p>  4.2 軟件調試16</p><p>  4.3 軟硬件調試16</p><p><b>

7、  5總結17</b></p><p><b>  參考文獻18</b></p><p><b>  1 項目概述和要求</b></p><p>  1.1 單片機基礎知識</p><p>  單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機系統集成到一個芯片

8、上。概括的講,一塊芯片就成了一臺計算機。</p><p>  單片機具有體積小、功能強、應用面廣等優點,目前正以前所未見的速度取代著傳統電子線路構成的經典系統,蠶食著傳統數字電路與模擬電路固有的領地。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機了解計算機原理與結構的最佳選擇。</p><p>  現在,這種單片機的使用領域已十分廣泛。彩電、冰箱、空調

9、、錄像機、VCD、遙控器、游戲機、電飯煲等無處不見單片機的影子,單片機早已深深地融入我們每個人的生活之中。</p><p>  單片機能大大地提高這些產品的智能性,易用性及節能性等主要性能指標,給我們的生活帶來舒適和方便的同時,在工農業生產上也極大地提高了生產效率和產品質量。單片機按用途大體上可分為兩類,一種是通用型單片機,另一種是專用型單片機。</p><p>  MCS-51單片機是美

10、國INTEL公司于1980年推出的產品,與MCS- 48單片機相比,它的結構更先進,功能更強,在原來的基礎上增加了更多的電路單元和指令,指令數達111條,MCS-51單片機可以算是相當成功的產品,一直到現在,MCS-51系列或其兼容的單片機仍是應用的主流產品,各高校及專業學校的培訓教材仍與MSC-51單片機作為代表進行理論基礎學習。MCS-51系列單片機主要包括8031、8051和8751等通用產品。</p><p&

11、gt;  1.2 單片機的發展趨勢</p><p>  單片機現在可以說是百花齊放,百家爭鳴的時期,世界上各大芯片制造公司都推出了自己的單片機,從8位、16位到32位,數不勝數,應有盡有,有與主流C51系列兼容的,也有不兼容的,但它們各具特色,互成互補,為單片機的應用提供了廣闊的天地。</p><p>  縱觀單片機的發展過程,可以預示單片機的發展趨勢,大致有:</p>&l

12、t;p><b>  一、微型單片化</b></p><p>  現在常規的單片機普遍都是將中央處理器(CPU)、隨機存取數據存儲(RAM)、只讀程序存儲器(ROM)、并行和串行通信接口,中斷系統、定時電路、時鐘電路集成在一塊單一的芯片上,增強型的單片機集成了如A/D轉換器、PMW(脈寬調制電路)、WDT(看門狗)、有些單片機將LCD(液晶)驅動電路都集成在單一的芯片上,這樣單片機包含的

13、單元電路就更多,功能就越強大。甚至單片機廠商還可以根據用戶的要求量身定做,制造出具有自己特色的單片機芯片。</p><p>  此外,現在的產品普遍要求體積小、重量輕,這就要求單片機除了功能強和功耗低外,還要求其體積要小?,F在的許多單片機都具有多種封裝形式,其中SMD(表面封裝)越來越受歡迎,使得由單片機構成的系統正朝微型化方向發展。</p><p>  二、低功耗CMOS化</p&

14、gt;<p>  MCS-51系列的8031推出時的功耗達630mW,而現在的單片機普遍都在100mW左右,隨著對單片機功耗要求越來越低,現在的各個單片機制造商基本都采用了CMOS(互補金屬氧化物半導體工藝)。像80C51就采用了HMOS(即高密度金屬氧化物半導體工藝)和CHMOS(互補高密度金屬氧化物半導體工藝)。CMOS雖然功耗低,但由于其物理特征決定其工作速度不夠高,而CHMOS則具備了高速和低功耗的特點,這些特征,

15、更適合于要求低功耗像電池供電的應用場合。所以這種工藝將是今后一段時期單片機發展的主要途徑。</p><p>  三、主流與多品種共存</p><p>  現在雖然單片機的品種繁多,各具特色,但仍以89C51為核心的單片機占主流,兼容其結構和指令系統的有PHILIPS公司的產品,ATMEL公司的產品和中國臺灣的Winbond系列單片機。所以89C51占據了半壁江山。而Microchip公司的

16、PIC精簡指令集合(RISC)也有著強勁的發展勢頭,中國臺灣的HOLTEX公司近年的單片機產量與日俱增,與其底價質優的優勢,占據一定的市場份額。此外還有MOTOROLA公司的產品,日本幾大公司的專用單片機。在一定的時期內,這種情形將得以延續,將不存在某個單片機一統天下的壟斷局面,走的是依存互補、相輔相成、共同發展的道路。</p><p>  九十年代以后,單片機在結構上采用雙CPU或內部流水線,CPU位數有8位、

17、16位、32位,時鐘頻率高達20MHZ,片內帶有PWM輸出、監視定時器WDT、可編程計數器陣列PCA、DMA傳輸、調制解調器等。芯片向高度集成化、低功耗方向的發展,使得單片機在大量數據的實時處理、高級通信系統、數字信號處理、復雜工業過程控制、高級機器人以及局域網等方面得到大量應用。這類單片機有NEC公司的MPD7800,MITSUBISHI公司的M337700,REVKWELL公司的R6500。</p><p>

18、  1.3 項目設計任務與要求</p><p>  設計任務:利用AT89C51單片機結合字符型LCD顯示器設計一個簡易的倒數計數器。做一小段時間倒計數,當倒計數為0時,則發出一段音樂聲響,通知倒計數終了,該做應當做的事。</p><p><b>  設計要求:</b></p><p>  字符型LCD(16×2)顯示器,顯示格式為

19、“TIME 分分:秒秒”。</p><p>  用4個按鍵操作來設置當前想要倒計數的時間。</p><p>  一旦按下鍵則開始倒計數,當計數為0時,發出一陣音樂聲。</p><p>  程序執行后工作指示燈LCD閃動,表示程序開始執行,按下操作鍵K1~K4動作如下:</p><p>  K1---可調整倒計數的時間1~60分鐘。</

20、p><p>  K2---設置倒計數的時間為5分鐘,顯示“0500”。</p><p>  K2---設置倒計數的時間為10分鐘,顯示“1000”。</p><p>  K2---設置倒計數的時間為20分鐘,顯示“2000”。</p><p>  復位后LCD的畫面應能顯示倒計時的分鐘和秒數,此時按K1鍵,則在LCD上顯示出設置畫面。此時,若:&

21、lt;/p><p>  按K2鍵---增加倒計數的時間1分鐘。</p><p>  按K2鍵---減少倒計數的時間1分鐘。</p><p>  按K4鍵---設置完成。</p><p><b>  [擴充功能]:</b></p><p>  增加時鐘及鬧鐘功能。</p><p>

22、;<b>  增加秒表計數功能。</b></p><p><b>  2 系統設計</b></p><p><b>  2.1 框圖設計</b></p><p>  框圖設計是為了能夠從整體上把握系統的各個大的模塊以及各個模塊之間的聯系。同時羅列出需要主要使用到的各個器件,以方面系統開發中器件的選取。

23、通過框圖設計,讓設計者從整體上把握系統的開發。</p><p>  本系統設計的框圖如下圖2-1所示。</p><p>  2.2部分硬件方案論述</p><p>  ◆LCD1602顯示方式的方案比較。</p><p>  方案一:采用花樣顯示,花樣顯示是指LCD顯示某一屏字符時,采取從左到右或者是從右到左的整屏移動的顯示方式。在這種顯示方

24、式下,給人的感覺就是程序是在執行的,同時如果控制好了移動一屏的時間間隔的話,在整體視覺上可以達到很好的效果。</p><p>  方案二:采用靜態顯示,靜態顯示是指LCD顯示某一屏字符時,時鐘保持當前字符的顯示,不使用移屏顯示。便于控制,同時能夠滿足正常的顯示效果。</p><p>  由于在顯示中存在播放時間的動態變化,這樣的話,即使是不產生整屏移動,也能給人動態感,也易于控制?;谝陨?/p>

25、各種特點,我選擇了方案二。</p><p><b>  2.3電路原理圖</b></p><p>  電路原理圖如圖2-2所示。</p><p>  圖2-2 電路原理圖</p><p><b>  2.4元件清單</b></p><p>  2.4.1 AT89C51芯片&

26、lt;/p><p>  AT89C51芯片圖如下圖2-3所示。</p><p>  圖2-3 AT89C51芯片圖</p><p><b> ?、俸喗椋?lt;/b></p><p>  AT89C51是一種帶4K字節閃存可編程可擦除只讀存儲器(FPEROM—Flash Programmable and Erasable Read

27、 Only Memory)的低電壓、高性能CMOS8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C

28、單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。</p><p> ?、谥饕匦?與MCS-51 兼容;4K字節可編程閃爍存儲器;壽命:1000寫/擦循環;數據保留時間:10年;全靜態工作:0Hz-24MHz;三級程序存儲器鎖定;128×8位內部RAM;32可編程I/O線;兩個16位定時器/計數器;5個中斷源;可編程串行通道;低功耗的閑置和掉電模式;片內振蕩器和時鐘電路。</p>

29、<p>  2.4.2 字符型LCD1602</p><p>  字符型lcd1602如下圖2-4所示。</p><p>  圖2-4 lcd1602圖</p><p>  1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線。</p><p>  VCC(15腳)和地線GND(16腳),其控制

30、原理與14腳的LCD完全一樣,各引腳符號及其功能表如下表2-1所示。</p><p>  表2-1 LCD各引腳及其功能表</p><p>  2.4.3 按鍵控制模塊</p><p>  按鍵用于控制數碼顯示、LCD顯示、揚聲器等模塊的工作。通過掃描按鍵是否按下,來設定各模塊的工作情況,使各模塊可以在按鍵的控制下,有序地進行工作。設計中使用單個按鍵實現單個功能,屬

31、于較為簡單的控制方式。</p><p>  在多功能系統設計的試驗中我們使用四個按鍵分別與單片機的p1.4、p1.5、p1.6、p1.7相連。通過按下相應的按鍵來處理相應的程序。如下圖2-5所示。</p><p>  圖2-5 按鍵控制模塊圖</p><p>  2.4.4 其它元件</p><p>  其它元件圖如下圖2-6所示。</

32、p><p>  圖2-6 其它元件圖</p><p><b>  3軟件設計</b></p><p><b>  3.1 程序流程圖</b></p><p>  主程序開始初始化,然后掃描鍵盤、復位電路和計數器。當鍵盤按鍵有按下時,調整計數器值,LCD顯示新值。當復位鍵有按下時,計數器復位為初值,重新倒

33、計數。當計數器值倒計為0時,蜂鳴器發出聲音,計數器停止倒計,程序結束。主程序流程圖、lcd顯示流程圖和按鍵流程圖分別如下圖3-1、圖3-2和圖3-3所示。</p><p>  圖3-1 主程序流程圖</p><p>  3.2 程序關鍵問題的部分代碼</p><p><b>  ◆LCD顯示代碼:</b></p><p>

34、;  #include<reg51.h></p><p>  #include<intrins.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  #define DataPort P0</p

35、><p>  #define Busy 0x80</p><p>  sbit RS=P3^4;</p><p>  sbit RW=P3^6;</p><p>  sbit E=P0;</p><p>  void Delay(void)</p><p><b>  {</b>

36、;</p><p>  uchar i,j;</p><p>  for(i=255; i>0; i--)</p><p>  for(j=255; j>0; j--)</p><p>  {_nop_();}</p><p><b>  }</b></p><p&

37、gt;  void CheckBusy(void)</p><p><b>  {</b></p><p>  DataPort=0xff;</p><p><b>  RS=0;</b></p><p><b>  RW=1;</b></p><p>

38、<b>  _nop_();</b></p><p><b>  E=1;</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p>  while((DataPort&Bu

39、sy)==Busy)</p><p><b>  {</b></p><p><b>  E=0; </b></p><p><b>  E=1; </b></p><p><b>  }</b></p><p><

40、;b>  E=0;</b></p><p><b>  }</b></p><p>  void WriteIR(uchar CMD,uint check)</p><p><b>  {</b></p><p><b>  if(check)</b><

41、/p><p>  CheckBusy();</p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  RS=0;</b></p><p><b>  RW=0;</

42、b></p><p><b>  _nop_();</b></p><p>  DataPort=CMD;</p><p><b>  _nop_();</b></p><p><b>  E=1;</b></p><p><b>  _

43、nop_();</b></p><p><b>  _nop_();</b></p><p><b>  E=0;</b></p><p><b>  }</b></p><p>  void WriteChar(short Xpos, char c)</p&

44、gt;<p><b>  {</b></p><p>  short temp=0x80;</p><p>  temp|=Xpos;</p><p>  WriteIR(temp,1);</p><p>  CheckBusy();</p><p><b>  _nop_

45、();</b></p><p><b>  _nop_();</b></p><p><b>  RS=1;</b></p><p><b>  RW=0;</b></p><p><b>  _nop_();</b></p>&

46、lt;p>  DataPort=c;</p><p><b>  _nop_();</b></p><p><b>  E=1;</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b><

47、;/p><p><b>  E=0;</b></p><p><b>  Swich(1)</b></p><p><b>  { </b></p><p>  Case s1: time=1;time++;</p><p>  Case s2: tim

48、e=5;ch[]={‘0500’};</p><p>  Case s3: time=10;ch[]={‘1000’};</p><p>  Case s4: time=20;ch[]={‘2000’}</p><p><b>  }</b></p><p>  void LCDReset(void)</p&g

49、t;<p><b>  { </b></p><p><b>  Swich(1)</b></p><p><b>  { </b></p><p>  Case s2: time++;</p><p>  Case s3: time--;</p&g

50、t;<p>  Case s4: break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void main(void)</p><p><b>  {</b></p><p>&

51、lt;b>  uint i;</b></p><p>  char time;</p><p>  uchar ch[]={"20050510,mon,00:00"};</p><p><b>  while(1)</b></p><p><b>  {</b>

52、</p><p>  LCDReset();</p><p><b>  Delay();</b></p><p>  for(i=0; i<10; i++)</p><p><b>  {</b></p><p>  WriteChar(i,ch[i]);</p

53、><p><b>  Delay();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  ◆音樂播放如下(部分):</p>

54、<p>  Void music_paly(unsigned char *msc)</p><p><b>  {</b></p><p>  Unsigned char music_long;</p><p>  Unsigned cha music_data=0; </p><p>  Temp_TH1=

55、0xff;</p><p>  Temp_TL1=0xea;</p><p>  TH1=temp_TH1;</p><p>  TL1=temp_TL1;</p><p><b>  TR1=1;</b></p><p>  While(*msc !=0x00&&N_Ring==

56、1)</p><p><b>  {</b></p><p>  Music_data=*msc & 0x07;</p><p>  Music_long=*msc>>4;</p><p>  //…………………………</p><p>  If(music_long !=0)&

57、lt;/p><p><b>  {</b></p><p>  Temp_TH1=music_freq_tab[music_data *2];</p><p>  Tenp_TH1=music_freq_tab[music_data *2=1];</p><p>  Music_delay(music_1_tab[music

58、_long&0x07]);</p><p><b>  }</b></p><p><b>  Msc++;</b></p><p><b>  }</b></p><p><b>  TR1=0;</b></p><p>

59、  PIN_MSC=1;</p><p><b>  }</b></p><p>  4 系統的仿真與調試</p><p><b>  4.1 硬件調試</b></p><p>  硬件調試分為靜態調試和動態調試,對于硬件調試而言,只要認真焊接,硬件一般不會出現什么問題的。</p>&

60、lt;p>  靜態調試一般采用的工具是萬用表,它是在用戶系統未工作時的一種硬件檢測。</p><p>  動態調試是在用戶系統工作的情況下發現和排查錯誤的一種硬件檢測。調試步驟是:首先把電路分為若干模塊,調試過程中與該模塊無關的元件可以不加考慮,這樣可把故障限定在一定的范圍內;故障清除后,把各個模塊合在一起進行聯調,即可完成整個硬件調試工作。</p><p><b>  4

61、.2 軟件調試</b></p><p>  軟件調試是通過對程序的匯編、連接、執行來發現程序中存在的語法錯誤與邏輯錯誤并加以排除糾正的過程。</p><p><b>  4.3 軟硬件調試</b></p><p>  軟硬件聯調是指把調試無誤的軟件程序燒制進單片機芯片內部,通上電源后,檢查硬件工作是否有預期的效果,如果沒有則需要檢測

62、軟件是否在實現功能上有欠缺。若有錯誤,通過改寫軟件來調試,直至達到預期效果,則設計圓滿成功。</p><p>  本課程設計調試結果如下圖4-1所示。</p><p>  圖4-1 調試結果圖</p><p><b>  5總結</b></p><p>  經過將近一個月的課程設計,簡單帶有LCD顯示的音樂倒數計數器基本

63、完成,系統基本功能基本實現,測試運行也基本正常。該系統基本上完成了日期的顯示與計數的功能。</p><p>  當然這個系統還存在許多有待完善的地方:</p><p>  功能相對較少,有待于添加,比方說時鐘與鬧鐘功能;</p><p>  界面設計得不夠精致完美;</p><p>  這次課程設計的時間雖然不算很長,但使我對很多東西有了更深

64、刻的認識??偨Y如下:</p><p>  查閱資料和閱讀相關文獻的重要性。</p><p>  向同學請教的重要性,團結協作的重要性。</p><p>  勤動手的重要性,自己動手,豐衣足食!在一次次調試代碼的過程中,我才明白“代碼不是寫出來的,是跳出來的”的道理。</p><p>  對待任何事情都要有耐心和恒心,遇到問題要冷靜地思考,積極

65、找出癥結所在,逐個解決。</p><p>  通過本次課程設計,我更深刻的認識到了教學實踐在大學課程中的重要性,同時也發覺到了自己在學習方面存在的許多不足之處,在以后的學習中我會努力改進這些不足,不斷提高自己的動手實踐能力。</p><p><b>  參考文獻</b></p><p>  [1]康華光,陳大欽. 電子技術基礎—模擬部分(第五版

溫馨提示

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

評論

0/150

提交評論