




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、-精品目錄第1章緒論錯.誤!未定義書簽。例題的仿真TOC o 1-5 h z HYPERLINK l bookmark6 選題背景、意義3. HYPERLINK l bookmark8 八路搶答器的功能簡介4. HYPERLINK l bookmark10 第2章系統(tǒng)硬件設計5. HYPERLINK l bookmark12 芯片的選擇5.2.1.1控制器的選擇5.2.1.2顯示模塊的選擇5.2.1.3鍵盤的選擇6.2.2.4芯片最終選擇方案6. HYPERLINK l bookmark14 AT89C51單片機簡單概述751系列單片機的功能特性7.AT89C51單片機結(jié)構(gòu)說明8. HYPER
2、LINK l bookmark16 硬件的構(gòu)成及功能1.02.3.1搶答器的硬件圖1.1.時鐘頻率控制電路1.1.2.3.3復位電路的設計1.2.2.3.4報警電路的設計1.3.顯示電路的設計1.3.TOC o 1-5 h z鍵盤掃描電路的設計1.2. HYPERLINK l bookmark18 第3章系統(tǒng)軟件設計1.6 HYPERLINK l bookmark20 系統(tǒng)主程序設計1.6 HYPERLINK l bookmark22 鍵盤掃描程序設計1.7 HYPERLINK l bookmark24 顯示程序設計1.8 HYPERLINK l bookmark26 第4章系統(tǒng)調(diào)試與軟件仿真
3、1.9 HYPERLINK l bookmark28 硬件調(diào)試1.9 HYPERLINK l bookmark30 KeiluVision2軟件調(diào)試19 HYPERLINK l bookmark32 Proteus仿真20 HYPERLINK l bookmark38 第5章總結(jié)2.3附錄2.0附錄一主程序清單2.3 HYPERLINK l bookmark42 附錄二單片機八路智能搶答器原理圖3.7參考文獻3.8第一章緒論1.2課本例題仿真例題4-6在軟序如程下KeiluVision2UMPSTARTORCDDI3HAJWLKT7L敘01OOH.STAETiSETBITSETBEKSETBE
4、AKiirKD,AOmir尸匚鋁甩r-FIEUtIAB曲SJMPIIHTVIXCEQIKiVAjKOWireAu4A+-IIPTRmvpiaLJWErd.sdfh?keCLREftEE-REIIMtDB3FH06H飆勺陰陽比6Dft?DEV07BDBTFRiJFHTTR7CH旳乩5EB,79EL71B例題5-1o:-KTAIE世IClI老IHI尸??谕?沖4簡1杜申111HESXEAUnwmRt1M耐fHUPii*iP工加2是他;1RZirM-4惑個零rsornnF.-bliPO.tWP.L.Vnrrrra.-vraRLWiR砂FJifiDhTliHIDJjVDreu.itipajxo-rai
5、cc-Pl).4*04MW.TOPDJtvMW耐燉TD2LED-EinrrH片5冷D5LED-DHSHfTEXT:-l-LDlHEEHhE*T:-LEDOFEEULED-DHEEM0000H#0FEHPl,ATWD,S3CHTHlOBOHSHI:RLASJMPNEXT在KeiluVision2軟件中調(diào)試程序程序如下:|1C:UsersAdministratorDe5ktop單片機相關(guān)軟祥單片仇程序SETBTRIGAI:JBCTF1,SHISJMPACAI選題背景、意義當今時代是一個新技術(shù)層出不窮的時代,在電子領域尤其是自動化智能控制領域,傳統(tǒng)的分立元件或數(shù)字邏輯電路構(gòu)成的控制系統(tǒng),正以前所未有
6、的速度被單片機智能化控制所取代。單片機具有體積小、功能強、成本低、應用面廣等優(yōu)點,可以說智能化控制與自動控制的核心就是單片機。目前,搶答器已經(jīng)作為一種必不可少的工具廣泛應用于各種智力和知識競賽場合,但一般的搶答器可靠性低,使用壽命短,介于這些不方便因素,此次設計提出了用AT89C51單片機為核心控制元件,設計一個簡易的八路搶答器。本方案以AT89C51單片機作為主控核心,與晶振、數(shù)碼管、蜂鳴器等通過外圍接口實現(xiàn)的八路搶答器,利用了單片機的延時電路、按鍵復位電路、時鐘電路、定時器/計數(shù)器等,設計的八路搶答器不僅具有實時顯示搶答選手的號碼和搶答時間的功能,同時還利用匯編語言編程,使其實現(xiàn)復位、定時
7、和報警的功能。本次設計的系統(tǒng)實用性強、判斷精確、操作簡單、擴展功能強。八路搶答器的功能簡介此次設計的搶答器具有同步顯示的功能,并且有蜂鳴器的輔助,使得整個設計更加完整。在每次競賽開始前,主持人讀完比賽規(guī)則,可以對搶答器進行的時間進行預設。時間設定按鍵組共有4個按鍵,其中一個鍵為搶答時間修改鍵,一個為回答時間按鍵,剩下的兩個按鍵為加一和減一按鍵。比賽開始,主持人讀完題之后按下“開始鍵”,即搶答開始,蜂鳴器提示一次,此時數(shù)碼管開始顯示30s的倒計時;直到有一個選手按下?lián)尨疰I,對應的會在數(shù)碼管上顯示出該選手的編號和回答剩余的時間,同時蜂鳴器也會發(fā)出一次提示音,以示有人搶答本題;如果在規(guī)定的30s時間
8、內(nèi)沒有人做出搶答,則此題作廢,開始新一輪的搶答。在搶答和回答時間的最后5s,蜂鳴器都會給予報警提示。在倒計時過程中,主持人可以隨時按“停止鍵”結(jié)束本次回答或者搶答。在主持未按下開始鍵,若果有人按下?lián)尨疰I,則屬于犯規(guī)搶答,此時,數(shù)碼管上會顯示違規(guī)選手的編號,同時蜂鳴器會以1s一次的頻率發(fā)出警告。在每次搶答前后,主持人都可以按下復位鍵讓系統(tǒng)清零,此時數(shù)碼管上會顯示“FFF”。第2章系統(tǒng)硬件設計硬件電路部分是一個完整電路的關(guān)鍵部分,硬件性能的好壞關(guān)系到整個系統(tǒng)的性能。本章節(jié)主要介紹了八路搶答器的硬件的選擇及電路的設計。芯片的選擇芯片選擇的原則是經(jīng)濟、壽命長、設計簡單。對此我們作了詳細的論證??刂破鞯?/p>
9、選擇控制器主要用于對顯示、搶答、音樂、計分等模塊進行控制??刂破鞯倪x擇有以下兩種方案。方案一:采用FPGA(現(xiàn)場可編程門列陣)作為系統(tǒng)的控制器oFPGA可以實現(xiàn)各種復雜的邏輯功能,規(guī)模大,密度高,它將所有器件集成在一塊芯片上,減小了體積,提高了穩(wěn)定性,并且可以應用EDA軟件仿真、調(diào)試,易于進行功能擴展。FPGA采用并行的輸入輸出方式,提高了系統(tǒng)的處理速度,適合作為大規(guī)模實時系統(tǒng)的控制核心。但由于本設計對數(shù)據(jù)處理的速度要求不高,F(xiàn)PGA的高速處理的優(yōu)勢得不到充分體現(xiàn),并且由于其集成度高,使其成本偏高,同時由于芯片的引腳較多,實物硬件電路板布線復雜,加重了電路設計和實際焊接的工作。方案二:采用AT
10、89C51作為系統(tǒng)控制器的CPU方案。單片機算術(shù)運算功能強、軟件編程靈活、自由度大,可以用軟件編程實現(xiàn)各種算法和邏輯控制,并且由于其功耗低、體積小、技術(shù)成熟和成本低等優(yōu)點,使其在各個領域應用廣泛。基于以上分析,本次設計我采用方案二。顯示模塊的選擇顯示模塊主要是顯示時間和編號。考慮有以下兩種顯示方案。方案一:使用液晶屏顯示時間。液晶顯示屏(LCD)具有輕薄短小、低耗電量、無輻射危險,平面直角顯示以及影像穩(wěn)定不閃爍等優(yōu)勢,可視面積大,畫面效果好,分辨率高,抗干擾能力強的特點。但由于只需要顯示時間和轉(zhuǎn)向、相數(shù)這樣的數(shù)字,信息量比較少,且液晶屏是以點陣的模式顯示各種符號,需要利用控制芯片創(chuàng)建字符庫,編
11、程工作量大,控制器的資源占用較多,其成本也偏高。在使用時,不能有靜電干擾,否則易燒壞液晶顯示芯片,不易維護。方案二:使用傳統(tǒng)的數(shù)碼管顯示。數(shù)碼管具有低能耗、低損耗、低壓、壽命長、耐老化、防曬、防潮、防火、防高(低)溫,對外界環(huán)境要求低,易于維護的優(yōu)點,同時其精度高,稱量快,精確可靠,操作簡單。數(shù)碼顯示是采用BCD編碼顯示數(shù)字,程序編譯容易,資源占用較少。根據(jù)以上的論述,我采用方案二。鍵盤的選擇鍵盤是單片機不可缺少的輸入設備,是實現(xiàn)人機對話的紐帶。鍵盤按結(jié)構(gòu)形式可以分為非編碼鍵盤和編碼鍵盤,前者用軟件方法產(chǎn)生鍵碼,而后者則用硬件方法來產(chǎn)生鍵碼。在單片機中使用的都是非編碼鍵盤,因為非編碼鍵盤結(jié)構(gòu)簡
12、單,成本低廉,非編碼鍵盤的類型很多,常用的有獨立式鍵盤,行列式鍵盤等。方案一:獨立式鍵盤獨立式鍵盤接口中使用幾根1/O線,就有幾個按鍵,這種類型的鍵盤,其按鍵比較少,且鍵盤中各按鍵的工作互不干擾。因此可以根據(jù)實際需要對鍵盤中的按鍵靈活編碼。獨立式鍵盤的缺點是需要占用比較多的I/O口線,當單片機應用系統(tǒng)鍵盤中需要的按鍵比較少或I/O口線比較富余時,可以采用這樣類型的鍵盤。方案二:行列式鍵盤行列式鍵盤是用N條I/O線作為行線,M條I/O線作為列線組成的鍵盤,按鍵在行線和列線的每個交叉點上。這種形式的鍵盤結(jié)構(gòu),能夠有效地提高單片機系統(tǒng)中I/O的利用率。CPU對鍵盤的掃描可以采用取程序控制的隨機方式,
13、即只有在CPU空閑是時才去掃描鍵盤,響應操作人員的鍵盤輸入,即利用單片機內(nèi)部定時器每隔一定時間對鍵盤掃描一次,這樣控制方式,不管鍵盤上有無鍵閉合,CPU總是定時的關(guān)心鍵盤狀態(tài)。在大多數(shù)情況下,CPU對鍵盤可能進行空掃描。為了提高CPU的效率而又能及時響應鍵盤輸入,可以采用中斷方式,即CPU平時不必掃描鍵盤,只要當鍵盤上有鍵盤閉合時就產(chǎn)生中斷請求,向CPU申請中斷后,立即對鍵盤上有鍵盤進性掃描,識別閉合鍵,并做相應的處理。根據(jù)以上的論述,我采用方案一。芯片最終選擇方案根據(jù)上幾節(jié)的論證,通過綜合考慮,我們的芯片選擇如表2-1。表2-1器件選擇方案詳單器件名稱規(guī)格型號數(shù)量微處理器AT89C511電阻
14、220歐姆88K11K1瓷片電容30pF2電解電容10uF1晶振12MHZ1按鈕CD401315器件名稱規(guī)格型號數(shù)量七段數(shù)碼管7SEG-MPX-CC4蜂鳴器1AT89C51單片機簡單概述AT89C51單片機屬于51系列單片機,本次設計所用的核心元件即為AT89C51,本節(jié)主要介紹了AT89C51的管腳功能。51系列單片機的功能特性MSC-51單片機是美國英特爾公司于1980年起推出的第二代產(chǎn)品。與8084相比,8051的硬件結(jié)構(gòu)和指令系統(tǒng)均有很大改進,可支持更大存儲空間擴充了更多的I/O功能,速度提高了2-5倍。1.主要特性:適于控制應用的8位CPU。擴展的邏輯處理能力。4KB片內(nèi)程序存儲空間
15、。其片外可尋址的范圍為64KB,主要用于存放已編程的程序,也可存放一些原始數(shù)據(jù)和表格。128B的片內(nèi)數(shù)據(jù)RAM。其片外數(shù)據(jù)存儲器的尋址范圍為64KB用于存放可讀寫的數(shù)據(jù),如運算的中間結(jié)果和最終結(jié)果。32根雙向可單獨尋址的輸入輸出線。2個16位定時/計數(shù)器,片內(nèi)時鐘發(fā)生器。它可以設置為計數(shù)方式,對外部事件進行計數(shù),也可以設置為定時方式進行定時。全雙工異步發(fā)送/接收器。具有5個中斷源,可編程為兩個優(yōu)先級的中斷系統(tǒng),它可以接收外部中斷請求、定時器/計數(shù)器中斷申請和串行口中斷申請。2.程序指令AT89C51單片機的時序單位有四個,分別是節(jié)拍、狀態(tài)、機器周期和指令周期。節(jié)拍與狀態(tài):我們把振蕩脈沖的周期定
16、義為節(jié)拍(P),振蕩脈沖經(jīng)過兩個分頻后即得到整個單片機工作系統(tǒng)的時鐘信號,把時鐘信號的周期定義為狀態(tài),這樣一個狀態(tài)就有兩個節(jié)拍,前半個周期相應的節(jié)拍我們定義為P1,后半周期對應的節(jié)拍定義為P2。機器周期:AT89C51有固定的機器周期,規(guī)定一個機器周期有6個狀態(tài),分別表示為S1-S6,而一個狀態(tài)包含兩個節(jié)拍,那么一個機器周期就有12個節(jié)拍,即一個機器周期包含12個振蕩脈沖,即機器周期就是振蕩脈沖的12分頻,如果使用12MHZ的時鐘頻率,一個機器周期就是1us。AT89C51單片機結(jié)構(gòu)說明AT89C51單片機的管腳圖如圖2-1所示:1918233031U1:-XTALIXTAL2RSTPO.O/
17、ADOpo.vAriP0.2/AD2P0.3;AD2P0.4/AD4P0.5/AI?5F0.6;AD6P0.7/AD735343332F-SENALEEA吃.口聞P2.1/JiaP2.2/A10F2.3/A11P2.4JM2P2.5/A13F2.0/A14P2.7/A15F-1.0F1一1P3.1/TDP1.2P3.2/INT0FM.3P3.3/INT-1P1.4PS.TOP1.5P3.5/T1FM.6P3.6/WRF-1.7P3.7/RC-ATFiSCSITrhrtTi23261012131617圖2-1AT89C51單片機管腳圖PO口:PO口是一組8位漏極開路雙向I/O口,在訪問外部存儲器
18、時用作8位低地址線和數(shù)據(jù)總線。P1口:P1口是一個帶內(nèi)部上拉電阻的8位雙向I/O口,向P1口寫入“1”時,P1口被內(nèi)部電路上拉為高電平,可用作輸入口。當作為輸出口時,被外部拉低的P1口會因為內(nèi)部上拉電阻的存在而輸出電流。P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,當P2口被寫“1”時,其管腳被內(nèi)部電路上拉為高電平,可作輸入口。當作為輸出口時,被外部拉低的P2口會因為內(nèi)部上拉電阻的存在而輸出電流。在訪問外部程序存儲器和外部數(shù)據(jù)存儲器時,P2口可作為地址總線的高八位地址線。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,當P3口寫入“1”后,它們被內(nèi)部電路上拉為高電平,并用作輸入口。
19、當作為輸出口時,被外部拉低的P3口會因為內(nèi)部上拉電阻的存在而輸出電流。P3口也可作為AT89C51的一些特殊功能口,如下表所示:P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INTO(外部中斷0)P3.3/INT1(外部中斷1)P3.4TO(記時器0外部輸入)P3.5T1(記時器1外部輸入)P3.6/WR(外部數(shù)據(jù)存儲器寫選通)P3.7/RD(外部數(shù)據(jù)存儲器讀選通)RST:復位信號輸入端。當振蕩器工作時,RET引腳出現(xiàn)兩個機器周期以上的高電平將使單片機復位。ALE/PROG:ALE是地址鎖存允許信號。它的作用是把CPU從P0口分時輸出的低8位地址鎖存在鎖存器中。在平時,AL
20、E端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6,可用作外部時鐘或定時。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。如果CPU在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:讀片外程序存儲器選通信號輸出端。當執(zhí)行外部程序存儲器數(shù)據(jù)時,/PSEN將產(chǎn)生負脈沖作為外部程序存儲器的讀選通信號。在訪問外部數(shù)據(jù)存儲器和內(nèi)部程序存儲器時,/PSEN無效。/EA/VPP:讀片內(nèi)與片外程序存儲器的選擇端。當/EA為高電平時,低4KB的地址為片內(nèi)程序存儲器單元,高于4KB以上的地址為片外程序存儲器單元;當/EA為低電平時,則只能讀片
21、外程序存儲器。XTAL1:片內(nèi)振蕩電路反向放大器的輸入端,采用外部時鐘時該引腳接地。XTAL2:片內(nèi)振蕩電路反向放大器的輸出端,采用外部時鐘時該引腳為振蕩信號的輸入端。硬件的構(gòu)成及功能本節(jié)主要介紹了搶答器的硬件部分的設計,硬件部分的設計是比不可少的,也是此次設計的核心。搶答器的硬件圖根據(jù)所要實現(xiàn)的功能,我們先大概將搶答器的硬件分為這幾部分:CPU、聲音電路、顯示電路、定時電路、開始結(jié)束鍵輸入和搶答按鍵輸入。硬件圖如圖2-2所示。圖2-2搶答器硬件圖時鐘頻率控制電路單片機必須在時鐘的驅(qū)動下才能工作。AT89C51中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大
22、器的輸入端和輸出端。只需要外接一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機內(nèi)部的各個單元,決定單片機的工作速度。時鐘頻率控制電路如圖2-3所示。圖2-3外部振蕩電路內(nèi)部時鐘振蕩器一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容C1、C2選用30PF大小,其作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進行微調(diào)。單片機在工作時,由內(nèi)部振蕩器產(chǎn)生或由外部直接輸入的送至內(nèi)部控制邏輯單元的時鐘信號的周期稱為時鐘周期。其大小是時鐘信號頻率的倒數(shù)。該設計中時鐘頻率選為12MHz。復位電
23、路的設計在搶答器中復位是為定時做鋪墊的,在搶答之前要復位,搶答完畢要復位,按了復位鍵之后LED顯示F。單片機的復位引腳RST出現(xiàn)2個機器周期以上的高電平時即可實現(xiàn)復位,復位后單片機的各狀態(tài)都恢復到初始化狀態(tài),其電路圖如圖2-4所示。圖中復位電路由按鍵和電解電容C3、電阻R9構(gòu)成的按鍵及上電復位電路。由于單片機是高電平復位,所以當按鍵按下時,單片機的9腳RESET管腳處于高電平,此時單片機處于復位狀態(tài)。當上電后由于電容緩慢充電,單片機的9腳電壓逐步由高向低轉(zhuǎn)化,經(jīng)過一段時間后,單片機的9腳處于穩(wěn)定的低電平狀態(tài),此時單片機上電復位完畢,系統(tǒng)程序從0000H開始執(zhí)行。在此設計中使用了硬件復位和軟件復
24、位兩種。硬件復位可將寄存器及存儲器的值都恢復到初始值。而在設計中,倒計時時間存在記憶功能,因此還設計了軟復位功能。軟復位實際上就是當程序執(zhí)行完畢后,講程序指針通過一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到該段程序的起始地址。報警電路的設計我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單片機某個管腳的高低電平,則在該管腳上就能產(chǎn)生一定頻率的矩形波,接上蜂鳴器就能發(fā)出一定頻率的聲音,若利用延時程序控制高低電平的持續(xù)時間,就能改變輸出頻率,從而改變蜂鳴器發(fā)出的音調(diào)。在本設計中此電路起到報警功能。它會在第一位選手按下?lián)尨鸢粹o時響一次,以提示有人搶答本題,并且在該選手的60秒搶答過程中或30秒等待過程中剩余
25、最后5秒時響起,以提示到此題結(jié)束還有5秒鐘。本次設計如圖2-5所示,圖中用到單片機的10、11和16管腳。10管腳具有讀入功能,11管腳具有輸出功能,而16管腳具有外部數(shù)據(jù)寫功能,單片機通過內(nèi)部定時器的操作實現(xiàn)交替變換的波形輸出驅(qū)動蜂鳴器發(fā)生。2.3.5顯示電路的設計顯示功能與硬件的關(guān)系極大,顯示電路有兩種選擇,液晶屏顯示和傳統(tǒng)數(shù)碼管顯示。液晶屏具有輕薄、無輻射危險、可視面積大、分辨率高和抗干擾能力強的特點,但是由于顯示信息少、編程工作量大和成本偏高。而數(shù)碼管具有低耗能、低損耗、低壓、壽命長和精確度高、操作簡單的優(yōu)點,本設計中采用的是4位七段數(shù)碼管顯示。數(shù)碼管顯示通常顯示分為動態(tài)顯示和靜態(tài)顯示
26、。其中,靜態(tài)顯示的特點是顯示穩(wěn)定不閃爍,編程簡單,顯示亮度高,但占用I/O口多,實際應用時必須增加譯碼驅(qū)動器進行驅(qū)動,增加了硬件電路的復雜性。而動態(tài)顯示的穩(wěn)定性雖沒靜態(tài)顯示的好,編程復雜,但是相對靜態(tài)顯示而言占用的端口資源少。本設計采用的是動態(tài)顯示方法。通過查表法將值在數(shù)碼管上顯示出來。其中單片機的P0口為字型碼輸入端,P2口得低三位為字選段輸入端。4位七段數(shù)碼管顯示電路如圖2-6。圖2-6七段數(shù)碼管顯示電路數(shù)碼管有共陰極和共陽極兩種接法。共陰極接法,各發(fā)光二極管的陰極連在一起并接地,當某一發(fā)光二極管的陽極輸入高電平時,則該段發(fā)光;共陽極接法,各發(fā)光二極管的陽極連在一起并接電源,當某一發(fā)光二極
27、管的陰極輸入低電平時,則該段發(fā)光。本設計采用4位一體的七段共陰極數(shù)碼管,其中A-G段分別接到單片機的P0口,由單片機輸出的P0口數(shù)據(jù)來決定段碼值,位選碼COM1,COM3,COM4分別接到單片機的P2.0,P2.1,P2.2,由單片機來決定當前該顯示的是哪一位。在電路圖中還有8個220歐姆的電阻分別連接在P0口上,用作P0口的上拉電阻,保證P0口沒有數(shù)據(jù)輸出時處于高電平狀態(tài)。2.3.6鍵盤掃描電路的設計鍵盤掃描電路由兩部分組成:搶答電路和定時電路。鍵盤是人機交互的主要設備,鍵盤電路分為獨立式和矩陣式。其中,獨立式鍵盤硬件電路簡單,而且在程序設計上也不復雜,一般用在對硬件電路要求不高的簡單電路中
28、;矩陣式鍵盤硬件電路比獨立式鍵盤電路復雜,而且程序設計繁瑣,但它節(jié)省端口,適合于多按鍵電路。本設計基于簡單硬件電路要求的基礎上,采用的是獨立鍵盤的方式。在定時電路的設計中,有1個搶答時間調(diào)整按鍵、1個回答時間調(diào)整按鍵、加一按鍵、減一按鍵和1個開始按鍵、1個結(jié)束按鍵。電路圖如圖2-7所示。ix橋邸言卻卑P3WIIP3.1.W血匝P3.WTPHTi圖2-7定時電路P1.0P1.1P13P13PWP1.5P1.6P1.7圖2-8搶答電路圖中和AT89C51芯片的12管腳連接的為搶答時間30s的調(diào)整按鍵,和13管腳連接的為回答時間60s的調(diào)整按鍵,與14管腳連接的為加一按鍵,與15管腳連接的為減一按鍵
29、。這四個按鍵用于主持人對回答時間和搶答時間的調(diào)整。開始按鍵與單片機的10管腳連接,停止按鍵與11管腳連接。這里用到了單片機10、11管腳復合功能中的IO端口功能,單片機通過讀取10、11腳的P3.0、P3.1的IO端口值來判斷當前是否處于搶答開始狀態(tài)或搶答結(jié)束狀態(tài)。當主持人按下開始鍵,搶答電路和定時電路將進入正常搶答狀態(tài);當回答完畢,主持人可以按下結(jié)束鍵停止計時。搶答電路完成兩個功能:一是分辨出選手按鍵先后,并鎖存優(yōu)先搶答者的編號,同時譯碼顯示電路顯示編號;二是其他選手操作無效。搶答電路如圖2-8所示,圖中8個搶答按鍵分別接入單片機的P1.0-P1.7端口,單片機通過讀取P1.0-P1.7的值
30、來判斷當前輸入的是8個搶答按鍵中的哪一個。如果主持人未按下開始按鍵判斷到有人違規(guī)操作,蜂鳴器會發(fā)出警報聲,并且數(shù)碼管會顯示出犯規(guī)者的編號。第3章系統(tǒng)軟件設計3.1系統(tǒng)主程序設計1.系統(tǒng)主程序設計思路為了能達到公平、公正、合理的設計理念,應該在主持人發(fā)布搶答命令之前設定好搶答時間。當時間設定好了之后,主持人發(fā)布搶答命令。按下開始按鍵后,程序開始打開,定時中斷開始倒計時,然后調(diào)用鍵盤掃描子程序,當掃描到有人按下了搶答鍵,馬上關(guān)閉搶答中斷計時器T1,調(diào)用顯示程序,此時封鎖搶答鍵盤,啟動計時器T0。2.主程序框圖根據(jù)搶答器設計要求,其軟件設計部分流程圖如圖3-1:開始查P3.0=0?是P1.0-P1.
31、7=0?是ft結(jié)束P1.0-P1.7=0?圖3-1主程序流程圖啟前定時器T1,倒計30s啟動T0s計時60s數(shù)碼管顯示FFF違規(guī)程序調(diào)用3.2鍵盤掃描程序設計搶答選手的搶答程序設計是本設計的關(guān)鍵。鍵盤掃描流程圖如圖3-2所示。開始調(diào)用顯示FFF調(diào)用皿于-Us1昌按下*?孑S扭下?2昌按下勺2呂松下E4呂按下*?5呂粧下7呂按下*?圧呂按下它圖3-2鍵盤掃描程序流程圖3.3顯示程序設計本次設計的顯示部分在按下開始鍵時,后兩個數(shù)碼管顯示倒計時間,以1s變換一次,并且調(diào)用延時程序,此時定時器采用中斷方式,可以充分利用CPU。在有選手按下?lián)尨疰I時,第一個數(shù)碼管顯示選手號,最后兩個數(shù)碼管顯示倒計時,定時
32、器同樣采用中斷方式。除此之外,本設計數(shù)碼管具有閃爍功能,當有違規(guī)搶答時,第一個數(shù)碼管會顯示選手號,后兩個數(shù)碼管會閃爍顯示FF,個周期為每秒1次。以示搶答無效,此時定時器采用定時中斷的工作方式。連接時段選信號接在P0口的P0.0P0.6七個I/O口上,P1口是準雙向I/O接口在輸出驅(qū)動部分,所以在接電阻時選擇接2200限流電阻。而在位選方面采用P2口的P2.0P2.2,用單片機P2.2三個I/O口作為位選信號的輸出口。第4章系統(tǒng)調(diào)試與軟件仿真系統(tǒng)調(diào)試包括硬件調(diào)試和軟件調(diào)試,二者密不可分。我們設計好的硬件電路和軟件程序必須經(jīng)過聯(lián)合調(diào)試才能驗證其正確性。4.1硬件調(diào)試硬件調(diào)試分為單元電路調(diào)試和聯(lián)機調(diào)
33、試,單元電路調(diào)試在硬件電路設計中已經(jīng)進行,這里只對其印刷版電路進行檢驗。線路檢查:根據(jù)硬件邏輯設計圖,仔細檢查電路是否正確,并且核對元器件的型號、規(guī)格和安裝是否符合要求,必要時可用萬用表檢測線路通斷情況。先用萬用表檢查各管腳之間是否有短路、虛焊、漏焊現(xiàn)象。檢查無誤后,測試各個芯片是否有損,待檢查完畢后,將各個芯片插入各自的槽位。電源調(diào)試:電路的第一次通電測試很重要,調(diào)試方法有兩種:一種是斷開電路穩(wěn)壓電源的輸出端,檢查空載時電源的工作情況;另一種是拔下電路上的主要繼承芯片,檢查電源的負載能力。確保電源無故障并符合性能要求。通電檢查:首先按下復位鍵,用萬用表測試復位鍵的第四引腳是否有高電平輸出,然
34、后測試其第一管腳是否有低電平輸出,如果是的話說明電路連接正確。然后按下開始鍵,再按下?lián)尨疰I1,之后依次按下?lián)尨疰I2、3、4、5、6、7、8,分別觀察數(shù)碼管有無變化。最后對蜂鳴器進行驗證,看看是否正常發(fā)聲。同理分別按下其它7個搶答鍵進行檢查。KeiluVision2軟件調(diào)試軟件調(diào)試是通過對用戶程序的匯編、連接、執(zhí)行來發(fā)現(xiàn)程序中存在的語法錯誤與邏輯錯誤并加以排除糾正的過程。本設計用到了KeiluVision2軟件,首先打開KeiluVision2,將程序輸入;然后進行調(diào)試,將程序中的語法錯誤和邏輯錯誤糾正,調(diào)試完畢后,創(chuàng)建HEX文件,HEX文件用于燒寫芯片,將制定程序?qū)懭胍言O計好的電路板中,使其能
35、根據(jù)我們的要求實現(xiàn)相應的功能;最后將HEX文件燒寫入AT89C51芯片,運行電路,讓其實現(xiàn)八路搶答的功能。如圖4-1所示。圖4-1KeiluVision軟件Proteus仿真本設計用到Proteus仿真軟件。首先將電路圖根據(jù)設計要求在軟件中準確地畫出,即進行ISIS原理圖設計,我們的仿真也是完全基于ISIS原理圖模塊下進行的,Proteus有兩種截然不同的仿真方式:交互式仿真和基于圖表的仿真,在本設計中我們用到的是交互式仿真,用于校驗所設計的電路是否能正常運行。如圖4-2所示。仙R4U:yTET%R5kTErfP:龜-II口日匚DERGDF菊耕F竝XT膽arP2-LMP22fHP33P.11P
36、2.Wt2W&ftflnciP-idR27*15P3DJHXDP72AUWP3JIUTIfjF?W1PDiMVT陰.FilW-T|,E4P-圖4-2八路搶答器原理圖如圖4-3然后將KeiluVision2生成的HEX文件鏈接到該中原理圖,即設計文檔的建立。所示。ComponenlRefererice:ComponentValue;PCElPackage:ProgramFile:ClockFrequencyAdvritedProperties:U1AT69C51DIL40Hidden:Hidden:丁遼HideAll型丈件夾謂序TEXT1.h曰國|別則電L312MHzHideAllHelpQat
37、aHiddenPinsCancelHideAllEnabletraceloggingNon“圖4-3建立設計文檔文檔建立好之后,按Ctrl+F12開始運行,然后按F12,執(zhí)行程序。下面是幾組仿真圖。-精品品圖4-4復位顯示FFFashECEEFGDF1S4調(diào)整時間:剜-I圖4-5啟動開始鍵,倒計時30s3FFHBCCEFGDF1:3斗圖4-63號選手非法搶答精品-精品圖4-75號選手正常搶答第5章總結(jié)此次設計主要以硬件系統(tǒng)為基礎,硬件系統(tǒng)關(guān)系到電子產(chǎn)品的好壞,如系統(tǒng)的抗干擾性,安全性和可行性等,所以要合理地選擇,合理地安排,盡量減少干擾,以提高系統(tǒng)性能。單片機是很容易受干擾的控制器,當采用外部
38、晶振時,應盡量讓其靠近單片機,以減少對其的干擾,防止程序的混亂現(xiàn)象。硬件系統(tǒng)的好壞很大部分在于經(jīng)驗,比如焊接是否干凈利落,器件是否完好,操作是否規(guī)范等,所以我們要有好的動手能力。而軟件設計確實設計的核心,具有多樣化,靈活性高,易移植等優(yōu)點。首先我們要深深領會各指令的含義才能更加熟練應用。中斷的合理利用可以有效減少對CPU的占用,更好的處理好其他功能。延時的應用會順利地實現(xiàn)顯示,鳴笛等功能,同時還可以去掉系統(tǒng)固有的不穩(wěn)定性。定時的應用則比較實際,能實現(xiàn)我們所需的功能。軟件的設計大部分采用模塊化設計的方法以方便調(diào)試,并使其可讀性大大增強,方便更改和移植。在此次設計中,我總結(jié)了很多不足,同時也學到了
39、很多新的知識,并且鞏固了課堂知識,但最終設計的系統(tǒng)仍有不足,敬請?zhí)岢觯「戒浉戒浺恢鞒绦蚯鍐蜲KEQU20H;搶答開始標志位RINGEQU22H;響鈴標志位ORG0000HAJMPMAINORG0003HAJMPINT00ORG000BHAJMPT00ORG0013HAJMPINT11ORG001BHAJMPT11ORG0040HMAIN:MOVR1,#30;設搶答時間30sMOVR2,#60;設答題時間60sMOVTMOD,#11H;設置定時器為模式1MOVTH0,#0F0HMOVTL0,#0FFHMOVTH1,#3CHMOVTL1,#0B0H;50ms為一次溢出中斷SETBEASETBET0
40、SETBET1SETBEX0SETBEX1;允許四個中斷T0/T1/INT0/INT1CLROKCLRRINGSETBTR1SETBTR0;開始運行定時器,開始顯示FFFLOOP:MOVR5,#0BHMOVR4,#0BHMOVR3,#0BHACALLDISPLAY;調(diào)用顯示FFF子程序JBP3.0,LOOP1;判斷未開始答題,若有人按下?lián)尨?,跳到LOOP1非法搶答處理程序ACALLDELAYJBP3.0,LOOP1;判斷已開始答題,則向下執(zhí)行ACALLBARK;蜂鳴器響MOVA,R1MOVR6,A;將R1中30s送入R6SETBOK;復位,用于COUNT中判斷是否查詢搶答MOVR7,#01H;
41、讀搶答鍵按下數(shù),要求只讀一次有用信號MOVR3,#0AH;搶答時間指顯示計時,不顯示號數(shù)AJMPCOUNT;進入COUNT倒計時子程序,查詢有效搶答程序LOOP1:JNBP1.0,FALSE1JNBP1.1,FALSE2JNBP1.2,FALSE3JNBP1.3,FALSE4JNBP1.4,FALSE5JNBP1.5,FALSE6JNBP1.6,FALSE7JNBP1.7,FALSE8AJMPLOOP;非法搶答查詢程序,若沒有跳回主程序FALSE1:MOVR3,#01H;1號選手違規(guī)AJMPERROR;跳轉(zhuǎn)到ERROR非法搶答處理程序FALSE2:MOVR3,#02HAJMPERRORFALS
42、E3:MOVR3,#03HAJMPERRORFALSE4:MOVR3,#04HAJMPERRORFALSE5:MOVR3,#05HAJMPERRORFALSE6:MOVR3,#06HAJMPERRORFALSE7:MOVR3,#07HAJMPERRORFALSE8:MOVR3,#08HAJMPERROR;=中斷=INT00:MOVA,R1MOVB,#0AHDIVABMOVR5,AMOVR4,BMOVR3,#0AHACALLDISPLAY;在時間LED上顯示搶答時間30sJNBP3.4,INC0JNBP3.5,DEC0JNBP3.1,BACK0AJMPINT00INC0:MOVA,R1CJNEA
43、,#63H,ADD0;如果不是99,則跳轉(zhuǎn)到ADD0加1程序,否則往下執(zhí)行,置0,重新加起MOVR1,#00HACALLDELAYAJMPINT00ADD0:INCR1ACALLDELAYAJMPINT00DEC0:MOVA,R1JZSETT;如果R1中值為0,則跳到SETT程序,R1置99DECR1ACALLDELAYAJMPINT00SETT:MOVR1,#63HACALLDELAYAJMPINT00BACK0:RETIINT11:MOVA,R2MOVB,#0AHDIVABMOVR5,AMOVR4,BMOVR3,#0AHACALLDISPLAYJNBP3.4,INC1JNBP3.5,DEC
44、1JNBP3.1,BACK1AJMPINT11INC1:MOVA,R2CJNEA,#63H,ADD1MOVR2,#00HACALLDELAYAJMPINT11ADD1:INCR2ACALLDELAYAJMPINT11DEC1:MOVA,R2JZSET1DECR2ACALLDELAYAJMPINT11;=計時查詢=SET1:MOVR2,#63HACALLDELAYAJMPINT11BACK1:RETI;=倒計時程序=REPEAT:MOVA,R2;新一輪重新計時MOVR6,ACLRRINGCOUNT:MOVRO,#OOH;重置定時器中斷次數(shù)MOVTH1,#3CHMOVTL1,#0B0H;重置定時器
45、RECOUNT:MOVA,R6;將回答時間60s給AMOVB,#0AHDIVAB;除10,分出個位和十位MOV30H,A;十位存于30HMOV31H,B;個位存于31HMOVR5,30H;取十位MOVR4,31H;取個位MOVA,R6SUBBA,#07HJNCMAX;大于5s跳轉(zhuǎn)到MAX,小于5s則向下執(zhí)行,蜂鳴器響MOVA,R0CJNEA,#0AH,FULLCLRRINGAJMPCHECK;回答60s倒計時FULL:CJNEA,#14H,CHECK;下面是1s的情況,響并顯示號數(shù),并清R0SETBRINGMOVA,R6JZQUIT;計時完畢,跳轉(zhuǎn)到QUIT,否則繼續(xù)向下執(zhí)行MOVR0,#00
46、HDECR6;秒減一AJMPCHECKMAX:MOVA,R0CJNEA,#14H,CHECK;如果剩1s向下運行,否則跳轉(zhuǎn)到CHECK查詢“停止”程序DECR6MOVR0,#00HCHECK:JNBP3.1,QUIT;如果查詢按下停止鍵,則退出;否則向下JNBOK,CHECK1;判斷是否在回答倒計時內(nèi),如果不在跳到CHECK1判斷是否開始新一輪;否則向下繼續(xù)執(zhí)行AJMPNEXT1CHECK1:JNBP3.0,REPEAT;判斷是否重新開始NEXT1:ACALLDISPLAYJBOK,ACCOUT;判斷是否是搶答倒計時,若是則跳轉(zhuǎn)到ACCOUT查詢搶答;否則向下執(zhí)行繼續(xù)倒計時AJMPRECOUN
47、TACCOUT:MOVA,36HJNBACC.0,TRUE1JNBACC.1,TRUE2JNBACC.2,TRUE3JNBACC.3,TRUE4JNBACC.4,TRUE5JNBACC.5,TRUE6JNBACC.6,TRUE7JNBACC.7,TRUE8AJMPRECOUNTQUIT:CLROK;停止鍵按下程序CLRRINGAJMPLOOP;=正常搶答處理程序=TRUE1:ACALLBARKMOVA,R2MOVR6,A;搶答時間R2送R6MOVR3,#01HCLROK;因為答題的計時不再查詢搶答,所以就鎖了搶答AJMPCOUNTTRUE2:ACALLBARKMOVA,R2MOVR6,AMOVR3,#02HCLROKAJMPCOUNTTRUE3:ACALLBARKMOVA,R2MOVR6,AMOVR3,#03HCLROKAJMPCOUNTTRUE4:ACALLBARKMOVA,R2MOVR6,AMOVR3,#04HCLROKAJMPCOUNTTRUE5:ACALLBARKMOVA,R2MOVR6,AMOVR3,#05HCLROKAJMPCOUNTTRUE6:ACALLBARKMOVA,R2MOVR6,AMOVR3,#06HCLROKAJMPCOUNTTRUE7:ACALLBARKMOVA,R2MOV
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年火災應急預案與救援合同
- 2025年合作策劃新公司設立合同樣本
- 2025年國內(nèi)外勞務合同范文性
- 2025年人力資源外包合同內(nèi)容規(guī)范
- 2025年建筑公司鋼材采購合同
- 自用房租房合同5篇
- 鄉(xiāng)村振興協(xié)議合同范本
- 個人合作合同范本模板
- 兼職和正式合同范例
- 公司中介合同范本
- DeepSeek科普課件深度解析
- 供電工程施工方案(技術(shù)標)
- 2023屆江西省九江市高三第一次高考模擬統(tǒng)一考試(一模)文綜試題 附答案
- 2024年共青團入團積極分子、發(fā)展對象考試題庫及答案
- 2024廣西公務員考試及答案(筆試、申論A、B類、行測)4套 真題
- 箱式變電站遷移施工方案
- 二零二五版服裝廠服裝產(chǎn)品質(zhì)量追溯勞動合同范本3篇
- 2025年中電建新能源集團有限公司招聘筆試參考題庫含答案解析
- 2024年湖南環(huán)境生物職業(yè)技術(shù)學院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 《化工流程教案》課件
- 體育學科核心素養(yǎng)解析
評論
0/150
提交評論