畢業(yè)設(shè)計--單片機數(shù)顯計時系統(tǒng)_第1頁
已閱讀1頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  畢業(yè)設(shè)計說明書(論文)</p><p>  課題名稱 單片機數(shù)顯計時系統(tǒng) </p><p>  專業(yè) 班</p><p>  學生姓名

2、 學號 </p><p>  指導老師 技術(shù)職稱 </p><p>  2014年 12 月 31 日 </p><p>  畢業(yè)設(shè)計(論文)任務書</p><p>  學生姓名

3、 班級 </p><p>  1.畢業(yè)設(shè)計(論文)題目 單片機數(shù)顯計時系統(tǒng) 2.畢業(yè)設(shè)計(論文)使用的原始資料數(shù)據(jù)及設(shè)計技術(shù)要求:</p><p>  要求能夠?qū)?-25KHZ的脈沖信號頻率進行準確計數(shù),計數(shù)誤差不超過±2HZ。計數(shù)的頻率結(jié)果通過6位動態(tài)數(shù)碼管顯示出來。

4、 </p><p>  3.畢業(yè)設(shè)計(論文)工作內(nèi)容及完成時間:</p><p>  本課程設(shè)計主要任務是設(shè)計一個頻率計數(shù)器,其主要功能如下:利用AT89C51單片機的T0、T1的定時計數(shù)器功能,來完成對輸入的信號進行頻率計數(shù),計數(shù)的頻率結(jié)果通過6位動態(tài)數(shù)碼管顯示出來。要求能夠?qū)?-25KHZ的信號頻率進行準確計數(shù),計數(shù)誤差不超過&

5、#177;2HZ。 </p><p>  日期:自 20 年 12 月 21 日至 20 年 3 月 31 日</p><p><b>  指導老師評語:</b></p><p>  指導老師 系主任

6、 </p><p><b>  目錄</b></p><p>  一、前言--------------------------------------</p><p>  1.1、 課程設(shè)計任務------------------------------------</p><p>  1.2、 課程設(shè)計任務完成要求-

7、---------------------------</p><p>  1.3、 設(shè)計目的---------------------------------------</p><p>  二、方案提出與論證-----------------------------</p><p>  2.1頻率測量原理與方法-------------------------

8、-</p><p>  三、系統(tǒng)硬件設(shè)計------------------------------</p><p>  3.1電路原理圖總圖-------------------------------------</p><p>  3.1.1電源供電電路-------------------------------------</p><p

9、>  3.1.2 單片機時鐘電路----------------------------------</p><p>  3.1.3單片機復位電路-----------------------------------</p><p>  3.1.4顯示及驅(qū)動電路-----------------------------------</p><p>  3 .2

10、 AT89C51單片機芯片的功能及其參數(shù)-----------------</p><p>  四、系統(tǒng)軟件設(shè)計------------------------------</p><p>  4.1軟件流程圖-----------------------------------------</p><p>  4.2程序調(diào)試及誤差分析--------------

11、-------------------</p><p>  五、元器件明細表------------------------------</p><p>  六、總結(jié)-------------------------------</p><p>  前言 數(shù)字頻率計是計算機、通訊設(shè)備、音頻視頻等科研生產(chǎn)領(lǐng)域不可缺少的測量儀器。在進行模擬、數(shù)字電路的設(shè)計、安裝

12、、調(diào)試過程中,由于其使用十進制數(shù)顯示,測量迅速,精確度高,顯示直觀,會被經(jīng)常使用到。</p><p>  1.1、 課程設(shè)計任務</p><p>  任務要求: 1、要求能夠?qū)?-25KHZ的脈沖信號頻率進行準確計數(shù),計數(shù)誤差不超過±2HZ。</p><p>  2、計數(shù)的頻率結(jié)果通過6位動態(tài)數(shù)碼管顯示出來。分析:本課程設(shè)計主要任務是設(shè)計一個頻率計數(shù)器

13、,其主要功能如下:利用AT89C51單片機的T0、T1的定時計數(shù)器功能,來完成對輸入的信號進行頻率計數(shù),計數(shù)的頻率結(jié)果通過6位動態(tài)數(shù)碼管顯示出來。要求能夠?qū)?-25KHZ的信號頻率進行準確計數(shù),計數(shù)誤差不超過±2HZ。</p><p>  1.2、 課程設(shè)計任務完成要求</p><p>  1、根據(jù)題目要求設(shè)計控制系統(tǒng)。</p><p>  2、完成硬件系

14、統(tǒng)的制作。</p><p>  3、完成軟件的編寫及調(diào)試(先用PROTEUS軟件仿真)。</p><p>  4、完成的控制系統(tǒng)能達到題目的要求。</p><p><b>  1.3、設(shè)計目的:</b></p><p>  A、熟悉和掌握51單片機的原理、結(jié)構(gòu)和應用; B、用 PROTEL進行電路的設(shè)計,進一步了

15、解相關(guān)軟件的功能以及設(shè)計的一些規(guī)則; C、熟悉用C語言進行程序設(shè)計的一般方法、步驟和應用; D、積極發(fā)揚團隊精神和集體榮譽感,互相協(xié)作、互相幫助; E、熟悉電路的調(diào)試的接線方法和調(diào)試方法及其原理 F、鍛煉自己的實踐和動手能力,為以后能更快的投入工作而做準備;</p><p><b>  二、方案提出與論證</b></p><p>  2

16、.1頻率測量原理與方法</p><p>  方案一:直接測頻法。把被測頻率信號經(jīng)過脈沖形成電路后加到閘門的一個輸入端,只有在閘門開通時間 1秒內(nèi),被計數(shù)的脈沖被送到計數(shù)器進行計數(shù)。設(shè)計數(shù)器的值為N,由頻率定義式計算得到被測信號頻率為f=N/T=N。 方案二:測量周期法。將被測量信號經(jīng)過過零檢測后轉(zhuǎn)換成方波信號,利用單片機查詢兩個下降沿,在此期間根據(jù)晶體振蕩器產(chǎn)生的時鐘經(jīng)過12分頻的脈沖送計數(shù)器進行計數(shù),

17、設(shè)計數(shù)值為N,送入計數(shù)器的時鐘周期為T,則得被測量信號的周期值為NT,然后取其倒數(shù)即為被測量信號的頻率(1/NT) 。   理論上分析:采用直接測頻法在測量低頻段信號時的相對測量誤差較大,但在高頻段測量信號的頻率有較高的精度。如果采用測頻法測量低頻段頻率信號,要想提高精確度,勢必會大幅度增加閘門開通時間T,時效性較差。相反,采用測量信號周期然后取其倒數(shù)的方法在低頻段測量時精度很高。</p><p>  但是本題

18、目要求誤差為±2HZ,經(jīng)過試驗分析,加上必要的軟件編程的措施,可以直接用高頻的測法,在高頻段,誤差與示波器的顯示頻率基本一致,低頻時,誤差小于±0.5HZ,滿足題目的要求!</p><p>  52單片機中斷的進入都是需要一定的時間的,如果我們沒有把這個考慮進去,直接進行軟件的設(shè)計,誤差達到了±20HZ。不滿足題目的要求!因而在編程的時候,把中斷事件也考慮進去!這樣可以使得誤差減??!

19、</p><p><b>  三、系統(tǒng)硬件設(shè)計</b></p><p>  3.1電路原理圖總圖</p><p>  3.1.1電源供電電路</p><p>  3.1.2 單片機時鐘電路</p><p>  如圖所示是采用內(nèi)部振蕩方式使8052單片機產(chǎn)生時鐘信號,在單片機芯片的X1和X2引腳兩端

20、跨接石英晶體振蕩器和兩個電容構(gòu)成穩(wěn)定的自激振蕩電路,其中電容對振蕩頻率起微調(diào)作用。晶振頻率為12MHZ。</p><p>  3.1.3單片機復位電路</p><p>  復位是單片機的初始化操作。其功能是使CPU從0000H單元開始執(zhí)行程序。除了使系統(tǒng)正常初始化外,當程序運行出錯或操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,為擺脫困境,也需要按復位鍵重新啟動。如圖為按鍵手動復位方式,通過復位端經(jīng)電阻和

21、電源+5V接通實現(xiàn)復位功能,兼?zhèn)渖想姀臀还δ堋?lt;/p><p>  3.1.4顯示及驅(qū)動電路</p><p>  共陽四位LED數(shù)碼管</p><p><b>  三極管放大電路</b></p><p>  10K上拉電阻驅(qū)動電路</p><p>  該系統(tǒng)采用兩個四位 LED共陽極顯示器動態(tài)顯示

22、6位數(shù)。當某一字段發(fā)光二極管的陰極極為低電平時,相應字段就點亮。當某一字段的陰極為高電平時,相應字段就不亮。要使數(shù)碼管正常發(fā)光一般都要加驅(qū)動電路,不加驅(qū)動電路是很暗的(特別是共陰極數(shù)碼管)。經(jīng)計算本次設(shè)計需采用上拉電阻+三極管放大器來驅(qū)動整個發(fā)光電路,在三極管基極加以分壓限流電阻,以防止數(shù)碼管因電流過大而燒壞。確保了試驗器件的安全。</p><p>  3 .2 AT89C51單片機芯片的功能及其參數(shù)</p

23、><p>  AT89C51是一個有40個引腳的芯片,引腳配置如下 圖所示。與8031相比,AT89C51自帶4K的ROM和128B的RAM,因此編寫中小型系統(tǒng)就無需任何硬件進行擴展。</p><p>  AT89C51引腳配置AT89C51芯片的40個引腳功能為:VCC:電源電壓。GND:接地。RST:復位輸入。當RST變?yōu)楦唠娖讲⒈3?個機器周期時,所有I/O引腳復位至“1”。X

24、TAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩放大器的輸出。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SF

25、R8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP:當/EA保持低電平時,則在此期間外</p><p><b>  四、系

26、統(tǒng)軟件設(shè)計</b></p><p><b>  4.1軟件流程圖</b></p><p>  1 設(shè)計思路及原理</p><p>  單片機當工作方式寄存器TMOD的C/T位=1時為計數(shù)方式,多路開關(guān)與定時器0的外部引腳連通,外部計數(shù)脈沖由引腳輸入。當外部信號由1至0跳變時,計數(shù)器加1,此時T0成為外部事件的計數(shù)器。由于確認一次由

27、1至0的跳變要用24個振蕩器周期,所以所設(shè)計計數(shù)器的最高計數(shù)頻率為單片機時鐘頻率的1/24。</p><p>  定時/計數(shù)器T0和T1的工作方式設(shè)置,T0是工作在計數(shù)狀態(tài)下,對輸入的頻率信號進行計數(shù),但對工作在計數(shù)狀態(tài)下的T0,最大計數(shù)值為fOSC/24,由于fOSC=12MHz,因此:T0的最大計數(shù)頻率為250KHz。所以對于設(shè)計要求即測量范圍為0~~25KHZ是完全滿足的。對于頻率的概念就是在一秒只數(shù)脈沖的

28、個數(shù),即為頻率值。所以T1工作在定時狀態(tài)下,每定時1秒中到,就停止T0的計數(shù),而從T0的計數(shù)單元中讀取計數(shù)的數(shù)值,然后進行數(shù)據(jù)處理。送到數(shù)碼管顯示出來</p><p>  T1工作在定時狀態(tài)下,最大定時時間為65ms,達不到1秒的定時,所以采用定時50ms,共定時20次,即可完成1秒的定時功能。因此每次放入定時器1的初值為TH1=65536/256,TL1=65536%256.</p><p&

29、gt;  工作方式的確定。首先,兩個定時器都采用軟件啟動定時器,都工作在16位計數(shù)器狀態(tài),即方式1,所以TMOD的高四位和低四位的GATE=0,M1M0=01;定時器1用于定時,所以D6位=0,定時器0用于技術(shù),所以D3位=1。所以TMOD=0x15.控制方式寄存器TCON的相應位在程序中確定。</p><p>  編寫并調(diào)試好的程序如下:</p><p>  #include <r

30、eg51.h></p><p>  unsigned char code dispbit[]={0x20,0x10,0x08,0x04,0x02,0x01}; </p><p>  unsigned char code dispcode[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09}; </p><p&g

31、t;  unsigned char dispbuf[8]={0,0,0,0,0,0,10,10};</p><p>  unsigned char temp[8];</p><p>  unsigned char dispcount;</p><p>  unsigned char T0count=0;</p><p>  unsigned

32、char timecount=0;</p><p>  unsigned int delay_count=0;</p><p>  bit flag; </p><p>  unsigned long x;</p><p>  void main(void)</p><p><b>  {</b>

33、</p><p>  unsigned char i;</p><p>  TMOD=0x15;//定時器1為定時模式 定時器0為技術(shù)模式</p><p><b>  TH0=0; </b></p><p><b>  TL0=0;</b></p><p>  TH1=(65

34、536-50000)/256;//50ms定時</p><p>  TL1=(65536-50000)%256;</p><p>  TR1=1;//定時器1開</p><p>  TR0=1;//定時器0開</p><p>  ET0=1;//定時器中斷開</p><p><b>  ET1=1; <

35、/b></p><p>  EA=1;//中斷開</p><p><b>  while(1) </b></p><p><b>  {</b></p><p>  //P2=dispcode[9];</p><p>  if(flag==1) //如果1S定時到<

36、;/p><p><b>  }</b></p><p><b>  flag=0;</b></p><p>  x=T0count*65536+TH0*256+TL0; //1S脈沖計數(shù)總量</p><p>  for(i=0;i<8;i++)</p><p><b&

37、gt;  { </b></p><p>  temp[i]=0;</p><p><b>  }</b></p><p><b>  i=0; </b></p><p>  while(x/10) </p><p><b>  {</b>&l

38、t;/p><p>  temp[i]=x%10; //取個位</p><p><b>  x=x/10; </b></p><p><b>  i++; </b></p><p><b>  }</b></p><p>  temp[i]=x;</p&

39、gt;<p>  for(i=0;i<6;i++) </p><p><b>  {</b></p><p>  dispbuf[i]=temp[i]; //取各個位碼</p><p><b>  } </b></p><p>  timecount=0; </p>

40、<p>  T0count=0;</p><p><b>  TH0=0; </b></p><p><b>  TL0=0;</b></p><p><b>  TR0=1; </b></p><p><b>  }</b></p

41、><p>  delay_count++;</p><p>  if(delay_count>=100)//計時變量大于等于100時清零</p><p><b>  {</b></p><p>  delay_count=0;</p><p>  P0=0xff;//</p>&l

42、t;p>  P2=dispcode[dispbuf[dispcount]];</p><p>  P0=dispbit[dispcount];</p><p>  dispcount++;</p><p>  if(dispcount>=6)//如果位數(shù)大于6位</p><p><b>  }</b><

43、/p><p>  dispcount=0; </p><p>  void t0(void) interrupt 1 using 0 </p><p><b>  {</b></p><p>  T0count++; //脈沖計數(shù)溢出</p><p><b>  }</b><

44、;/p><p>  void t1(void) interrupt 3 using 0 </p><p><b>  {</b></p><p>  TH1=(65536-50000)/256;//重裝計時器</p><p>  TL1=(65536-50000)%256;</p><p>  tim

45、ecount++;</p><p>  if(timecount>=20) </p><p><b>  }</b></p><p><b>  TR0=0; </b></p><p>  timecount=0;</p><p>  flag=1; //1S定時到,標

46、志位置1</p><p><b>  }</b></p><p>  4.2程序調(diào)試及誤差分析</p><p>  寫好程序后用protues仿真。第一次仿真結(jié)果為:在低頻時測得的數(shù)據(jù)很準確,在5khz以上開始有誤差,且隨著頻率的上升,誤差增大。當信號頻率為25khz時,誤差為+77hz。分析了一下程序覺得T1重裝次多太多造成計數(shù)時間偏大是誤差

47、的主要原因。修改了程序,讓T0從原來的每次定時5ms,定時1s重裝200次變?yōu)槊看味〞r50ms,定時1s重裝20次后,第二次仿真。誤差大大減小,為+5hz。此時,誤差還是不能滿足要求。在程序中加以下幾個語句if((x>12000)&&(x<18000))x=x-1; else if((x>18000)&&(x<20000))x=x-2;</p><

48、p>  else if((x>20000)&&(x<30000))x=x-3;來減小較高頻時的誤差。雖然覺得這樣不合理,不過這樣處理后,誤差真的減了好多。滿足了設(shè)計的初始要求。</p><p><b>  六、元器件明細表</b></p><p><b>  收獲和體會</b></p><p&

49、gt;  我認為,在這次的畢業(yè)設(shè)計中,在收獲知識的同時,還收獲了閱歷,收獲了成熟,在此過程中,我們通過查找大量資料,請教老師,不僅培養(yǎng)了獨立思考、動手操作的能力,更重要的是,在實驗中,我們學會了很多學習的方法。而這是日后最實用的,真的是受益匪淺。要面對社會的挑戰(zhàn),只有不斷的學習、實踐,再學習、再實踐。這樣我們才能成為一名合格的大學生。</p><p>  我們在這過程中遇到很多困難,不管怎樣,這些都是一種鍛煉,一

50、種知識的積累,能力的提高。完全可以把這個當作基礎(chǔ)東西,只有掌握了這些最基礎(chǔ)的,才可以更進一步,取得更好的成績。很少有人會一步登天吧。永不言棄才是最重要的。 而且,這對于我們的將來也有很大的幫助。以后,不管有多苦,我想我們都能變苦為樂,找尋有趣的事情,發(fā)現(xiàn)其中珍貴的事情。就像中國提倡的艱苦奮斗一樣,我們都可以在設(shè)計結(jié)束之后變的更加成熟,會面對需要面對的事情。    與隊友的合作更是一件快樂的事情

51、,只有彼此都付出,彼此都努力維護才能將作品做的更加完美。而團隊合作也是當今社會最提倡的。相信以后我們會以更加積極地態(tài)度對待我們的學習、對待我們的生活。我們的激情永遠不會結(jié)束,相反,我們會更加努力,努力的去彌補自己的缺點,發(fā)展自己的優(yōu)點,去充實自己,只有在了解了自己的長短之后,我們會更加珍惜擁有的,更加努力的去完善它,增進它。只有不斷的測試自己,挑戰(zhàn)自己,才能擁有更多的成功和快樂!To us, happiness

52、60;equals success! 快樂至上,享受過程,而不是結(jié)果!認真對待每一個實驗,珍惜每一分一秒,學到最多的知識和方法,鍛煉</p><p><b>  致謝</b></p><p>  非常感謝 老師在課程設(shè)計中給予了我很多的指導。 老師從最初的定題,到資料收集,到寫作、修改,到說明書定稿,她給了我耐心的指導和無私的幫助。為了幫助我們

53、開拓視角,在我遇到困難的時候給予我最大的支持和鼓勵。 老師嚴謹求實的治學態(tài)度,踏實堅韌的工作精神,將使我終生受益。再多華麗的言語也顯蒼白。在此,謹向易老師致以誠摯的謝意和崇高的敬意。 </p><p>  感謝電子信息工程系的老師們?yōu)槲覀兙倪x題,讓我們在這次課程設(shè)計中有所得。感謝我的伙伴們,我們在這次課題上能夠團結(jié)一致,共同分析電路的問題,才能使這次課程設(shè)計順利完成。</p><

溫馨提示

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

評論

0/150

提交評論