單片機課程設計 八路搶答器_第1頁
單片機課程設計 八路搶答器_第2頁
單片機課程設計 八路搶答器_第3頁
單片機課程設計 八路搶答器_第4頁
單片機課程設計 八路搶答器_第5頁
已閱讀5頁,還剩12頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、單片機課程設計8 路搶答器指導老師:宋學 號:班級: 12 電子卓越班目錄一 緒論 3基本設計方案 4具體設計 5電路板的制作 7電路功能測試與調試 7心得體會 8附錄9緒論1.1 單片機搶答器的背景二十世紀跨越了三個“電”的時代,即電氣時代、電子時代和現已進入的電腦 時代。不過,這種電腦,通常是指個人計算機,簡稱 PC 機。它由主機、鍵盤、 顯示器等組成。還有一類計算機,大多數人卻不怎么熟悉。這種計算機就是把智 能賦予各種機械的單片機(亦稱微控制器)。顧名思義,這種計算機的最小系統 只用了一片集成電路,即可進行簡單運算和控制。因為它體積小,通常都藏在被 控機械的“肚子”里。它在整個裝置中,起

2、著有如人類頭腦的作用,它出了毛病, 整個裝置就癱瘓了。現在,這種單片機的使用領域已十分廣泛,如智能儀表、實 時工控、通訊設備、導航系統、家用電器等。各種產品一旦用上了單片機,就能 起到使產品升級換代的功效,常在產品名稱前冠以形容詞“智能型”,如智能 型洗衣機等。現在有些工廠的技術人員或其它業余電子開發者搞出來的某些產品 不是電路太復雜,就是功能太簡單且極易被仿制。究其原因,可能就卡在產品未 使用單片機或其它可編程邏輯器件上。在知識競賽中,特別是做搶答題時,在搶答過程中,為了更確切的知道哪一 組或哪一位選手先搶答到題,必須要有一個系統來完成這個任務。若在搶答中, 只靠人的視覺(或者是聽覺)是很難

3、判斷出哪一組(或哪一個選手)先搶答到題 的。利用單片機編程來設計搶答器,可以使以上問題得以解決,即使兩組的搶答 時間相差幾微秒,也能輕松的分辨出哪一組(或哪個選手)先搶答到題的。本文 主要介紹了搶答器的工作原理及設計,以及它的實際用途。1.2 設計要求:一、 基本功能:1、六路搶答,搶答有效時相應的燈亮,并有音樂提示2、每輪搶答需主持人按“開始”后,搶答才有效;3、搶答無效時,有相應的燈及音樂提示;二、 擴展功能:1、擴展到 8 路或以上;2、搶答倒計時提示;3、各路的參賽者有得分顯示;4、其他自行增加的功能;基本設計方案2.1 單片機的選擇我選擇 STC89C52 單片機芯片的理由如下:1、

4、在設計過程中可能會出現很多問題,89C52可重復燒程序;2、是80C51的增強型,功能與我們所學的51單片機基本相同;3、學校配套發的單片機開發板用的就是89C52,有很多相關教程,程序的 測試與燒寫都十分方便;4、器材室很方便就能領到。89C52單片機,是增強型RISC內載Flash的單片機,芯片上的Flash存儲器附 在用戶的產品中,可隨時編程,再編程,使用戶的產品設計容易 ,更新換代方便。 89C52 單片機采用增強的 RISC 結構,使其具有高速處理能力,在一個時鐘周期內 可執行復雜的指令,每MHz可實現1MIPS的處理能力o 89C52單片機工作電壓為 2.76.0V,可以實現耗電最

5、優化o89C52的單片機廣泛應用于計算機外部設備,工業 實時控制,儀器儀表,通訊設備,家用電器,宇航設備等各個領域.2.2 單片機的基本結構MCS-52 的引腳說明:MCS-52系列單片機中的8032、8052及8752均采用40Pin封裝的雙列直接DIP 結構,右圖是它們的引腳配置, 40 個引腳中,正電源和地線兩根,外置石英振 蕩器的時鐘線兩根,4組8位共32個I/O 口,中斷口線與P3 口線復用。具體引 腳功能不做贅述了(詳細請參見單片機原理與接口技術宋躍)。ri. oPMPl. 2ri. oPMPl. 2P仁2Pl.4PLSPl.6Pl 7KST RXD/P3. 0 TKB/F3. 1

6、 IpTp/P3, 2 IHT1/P3. 3 TCT/P3.45 25/P3.& RD/P3. 1 XTAL2 XTAL1GNDPDIPYCCPO. O/ABOPO. lADlPC.2/AD2PD.3/AD3PO. 5/AD5 PO. 6/AD6PO. I/AD7FESSP2. 7/A15 P2.8/A14P2, 5/A13 F2. */A12P2. 3/A11P2. 2/A10 ?2. INP. 0/A8圖 2-2-1 STC89C52 的引腳圖2.3 基本設計思路因為之前做過單片機最小系統的電路,這次為了節約時間,采取在最小系統 的板旁邊再焊一塊電路。一看到題目我的基本思路就差不多了,我要

7、實現基本功能好說,倒是拓展不 太難,于是選擇了拓展到8路和搶答倒計時。最小系統已經包括了手動復位電路, 時鐘電路,電源電路和89C52的I/O 口排插,這塊板上可以用的地方不多,只能 焊一個蜂鳴器及其驅動電路了。在另一塊板上需要有8個按鍵、8個LED燈和 一個數碼管,并分別對應三個插排。兩塊電路板之間高低電平用兩根導線連通。2.4 相關功能器材的選擇 整體電路需要開關的地方:電源的啟動,主持人的開始與復位,8 名搶答選 手用的搶答按鈕。考慮到電源需長時間保持開啟或斷開狀態,故采用可保持按下或不按下狀態 的開關。同理主持人的“開始”和“未開始”也需要這樣的開關。8 名搶答選手用的 搶答按鈕,只需

8、用 4 腳的按鍵即可,按下即接通,松開就斷路。8 個 LED 燈來顯示選手的搶答狀況,1 個 LED 燈用來顯示電源的狀況;一 個數碼管來顯示主持人說“開始”后的倒計時;一個有源蜂鳴器,用一個 NPN 管 來驅動;其他電容和電阻用最小系統的。具體設計3.1 硬件設計如上所述,該電路部分電路采用之前做出來的單片機最小系統,根據前面的 思路可以在 ISIS 中擺出電路,如下圖所示:-MF- -XTAL1PDOADDPQ1MD1PQ2D2:L2PE3;sDjPUWKLHPD5D5PDMD6RSTPQTDTP2DWS-MF- -XTAL1PDOADDPQ1MD1PQ2D2:L2PE3;sDjPUWKL

9、HPD5D5PDMD6RSTPQTDTP2DWSP2.1MP22X1CPEEKP239.11.Q.LEP2j&?.13P2JEA14P2.TA15凸口P30/RXDH1.1P3.V1XDP12Hru卩1刁旳陽IIT1P11rainnP15R350J.P1J6pn.&iiifiP1.TP3.7.RD-亠l_t_.LED-EIRB . .-;TEXJ=-.圖 3.1 仿真電路圖3.2 軟件設計在 ISIS 中的 89C52 可以仿真燒錄程序運行,這樣可以先在 Keil 中編程然后 燒錄看仿真結果,省時省力。我采用 C 語言編寫程序,詳細程序及分析請看附錄。3.3 仿真測試在 ISIS 中調入 he

10、x 文件后即可開始仿真,仿真結果如下圖所示:P2R?S 卩2催 吃:在 ISIS 中調入 hex 文件后即可開始仿真,仿真結果如下圖所示:P2R?S 卩2催 吃:MID舊.鍬怛 P2AW13 P2JWH F2.I7A15P3HRMJP3.1lTyDP32(OP3NT1P3.i,1UPJU&T1陽妄極圖 3.3 仿真測試結果主持人按下“開始”按鈕后,數碼管開始倒計時,從9到 0一秒減一下,也就 是搶答倒計時,在數碼管顯示0 之前,8 個開關無論哪一個先按下,對應的燈就 會亮(蜂鳴器沒響,因為仿真不出來),當這個燈亮起后,不論其他的開關怎樣 按都不能改變燈亮的情況,也就是實現了搶答的功能。如果數碼

11、管減到 0 了都沒 人搶答,則搶答作廢,這時無論再怎樣搶答都不會有燈亮,實現搶答倒計時的功 能。在主持人再次按下“復位”按鈕(和“開始”是同一個)時,數碼管和 LED 都 熄滅,同時所有人都不能搶答,實現清零功能。電路板的制作4.1 元件清單元件數量STC89C52140PIC 座1按鍵8開關2LED燈(紅)9排針38管腳數碼管1蜂鳴器1S9012133pF瓷片電容211.0592 晶振110uF電解電容11k電阻110k電阻1電源插口1導線若干萬用板7*9CM14.2 焊接在實際焊接過程中,有很多地方元件以及走線十分密集,如 8 個按鍵、8 個 LED 燈、8 腳數碼管和 3 個排針的焊接,

12、這需要十分的耐心,稍不注意就將排布 密集的錫線焊到了一起,只能用錫槍吸走重新焊。還有一些問題如元件如何擺放平整,如果不平整其他元件難以放得下;LED 燈和數碼管不能用高溫焊太久,否則會毀掉,到時候很難檢查出問題;元件的排 版必須事先計算好,連走線都要想好,不然一步錯步步錯。經過一個下午的焊接,最終還是將它做出來了。電路功能測試與調試5.1 測試測試采用5V電源線接電腦供電,先用開發板將程序燒錄進89C52,然后插 入到板上的 IC 座,將剩余的線連好后開啟電源,電源指示燈亮,結果數碼管不 亮,按搶答器也不亮,復位鍵也無任何作用,蜂鳴器也不響。5.2 調試一下是我遇到的問題及解決的過程。1、除電

13、源鍵外,其他鍵都無反應,蜂鳴器也不響。仔細檢查電路后,我發 現是接口接觸的問題,而且我NPN管忘了接P0 口。2、通電后,數碼管不亮,能實現搶答器的功能,但一旦按下按鍵蜂鳴器一 直響。后來發現是我程序我的問題,仿真上顯示不出來,于是我修改程序。3、通電后,能實現搶答的功能,蜂鳴器也能正常工作了,但是數碼管顯示 亂碼,還是一秒一跳。后來我發現本身程序有一點問題,仿真程序上的數碼管和 我自己用的數碼管不同,只能修改程序。最后,經過一系列的調試與修改后,終于實現了預期功能。心得體會經過一個星期的努力,我完成了設計任務,通過此次課程設計,我重新認識到 了自學的重要性,以及學以致用的道理。我在圖書館以及

14、網上查閱了大量的資料, 同時也認識到了查閱信息的重要作用。通過此次的搶答器的設計,讓我重新拾起 了以前所學習的電子知識,及我覺得此次設計讓我更加鞏固了所學的知識并在設 計的過程中學會了與時俱進,讓我受益匪淺。這一次課程設計的練習,很多事情 我都不可以獨立完成,很多方面都需要同學的幫助,我也深刻認識到自己的不足, 知識的欠缺問題很大,需要在編程方面大下功夫。同時因為我這次課程設計用的 是 C 語言,也希望自己學的更好了以后,能用匯編語言來實現同樣的功能。還 有一點很重要,不能依賴仿真軟件,軟件本身有很多弊端不說,仿真出來的結果 也不一定正確,很容易被誤導,附錄電路板實物圖:C 程序:#inclu

15、de unsigned char flag,num1,num2;sbit al=P3人0;/P3 口開關sbit a2=P3A1;sbit a3=P3A2;sbit a4=P3A3;sbit a5=P3A4;sbit a6=P3A5;sbit a7=P3A6;sbit a8=P3A7;sbit b1=P1A0;/P1 口蜂鳴器sbit b2=P1A1;sbit b3=P1A2;unsignedcharcodetable=0 x80,0 xf9,0 x4c,0 x60,0 x31,0 x22,0 x02,0 xf0,0 x00,0 x20; 數碼管顯示 void display()P2=tabl

16、enum2; /P2 口數碼管void init()num2=9;TMOD=0X01;TH0=(65536-45872)/256;TL0=(65536-45872)/256;EA=1;ET0=1;TR0=1;flag=l;全局變量P0=0 xff;/P0 口 LED 燈bl=l;P2=0 xff;void delay(int z) 延時程序int i,j;for(i=0;iz;i+) for(j=0;jll0;j+);void main()init();while(flag)if(al=0)delay(lOO);/調用延時程序消除抖動 if(a1=O)判斷開關al是否按下 flag=0;P0=

17、0 xfe;對應LED燈亮 b1=0;蜂鳴器響 while(!a1);按住時持續響 b3=0;b1=1;if(a2=0)同理判斷a2delay(100);if(a2=0)flag=0;P0=0 xfd;b1=0; while(!a2);b1=1;if(a3=0)同理判斷a3delay(100);if(a3=0)flag=0;P0=0 xfb;b1=0; while(!a3);b1=1;if(a4=0)同理判斷a4delay(100);if(a4=0)flag=0; P0=0 xf7;b1=0; while(!a4);b1=1;if(a5=0)同理判斷a5delay(10);if(a5=0)flag=0;P0=0 xef;b1=0; while(!a5);b1=1;if(a6=0)同理判斷a6delay(10);if(a6=0) flag=0;P0=0 xdf; b1=0; while(!a6); b1=1; if(a7=0)同理判斷a7 delay(10);if(a7=0) flag=0;P0=0 xbf;b1=0; while(!a7);b1=1; i

溫馨提示

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

評論

0/150

提交評論