版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 . . . 目 錄第1章緒論11.1 例題的仿真1.2選題背景、意義31.3八路搶答器的功能簡介4第2章系統(tǒng)硬件設(shè)計52.1 芯片的選擇52.1.1 控制器的選擇52.1.2 顯示模塊的選擇52.1.3 鍵盤的選擇62.2.4 芯片最終選擇方案62.2 AT89C51單片機簡單概述72.2.1 51系列單片機的功能特性72.2.2 AT89C51單片機結(jié)構(gòu)說明82.3 硬件的構(gòu)成與功能102.3.1 搶答器的硬件圖112.3.2 時鐘頻率控制電路112.3.3 復位電路的設(shè)計122.3.4 報警電路的設(shè)計132.3.5 顯示電路的設(shè)計132.3.6 鍵盤掃描電路的設(shè)計14第3章系統(tǒng)軟件設(shè)計1
2、63.1 系統(tǒng)主程序設(shè)計163.2 鍵盤掃描程序設(shè)計173.3 顯示程序設(shè)計18第4章系統(tǒng)調(diào)試與軟件仿真194.1 硬件調(diào)試194.2 Keil uVision2軟件調(diào)試194.3 Proteus仿真20第5章總結(jié)23附錄23附錄一主程序清單23附錄二單片機八路智能搶答器原理圖37參考文獻38第一章 緒 論1.2 課本例題仿真例題 4-6在Keil uVision2軟件中調(diào)試程序程序如下:例題 5-1在Keil uVision2軟件中調(diào)試程序程序如下:1.2 選題背景、意義當今時代是一個新技術(shù)層出不窮的時代,在電子領(lǐng)域尤其是自動化智能控制領(lǐng)域,傳統(tǒng)的分立元件或數(shù)字邏輯電路構(gòu)成的控制系統(tǒng),正以前
3、所未有的速度被單片機智能化控制所取代。單片機具有體積小、功能強、成本低、應用面廣等優(yōu)點,可以說智能化控制與自動控制的核心就是單片機。目前,搶答器已經(jīng)作為一種必不可少的工具廣泛應用于各種智力和知識競賽場合,但一般的搶答器可靠性低,使用壽命短,介于這些不方便因素,此次設(shè)計提出了用AT89C51單片機為核心控制元件,設(shè)計一個簡易的八路搶答器。本方案以AT89C51單片機作為主控核心,與晶振、數(shù)碼管、蜂鳴器等通過外圍接口實現(xiàn)的八路搶答器,利用了單片機的延時電路、按鍵復位電路、時鐘電路、定時器/計數(shù)器等,設(shè)計的八路搶答器不僅具有實時顯示搶答選手的和搶答時間的功能,同時還利用匯編語言編程,使其實現(xiàn)復位、定
4、時和報警的功能。本次設(shè)計的系統(tǒng)實用性強、判斷精確、操作簡單、擴展功能強。1.3 八路搶答器的功能簡介此次設(shè)計的搶答器具有同步顯示的功能,并且有蜂鳴器的輔助,使得整個設(shè)計更加完整。在每次競賽開始前,主持人讀完比賽規(guī)則,可以對搶答器進行的時間進行預設(shè)。時間設(shè)定按鍵組共有4個按鍵,其中一個鍵為搶答時間修改鍵,一個為回答時間按鍵,剩下的兩個按鍵為加一和減一按鍵。比賽開始,主持人讀完題之后按下“開始鍵”,即搶答開始,蜂鳴器提示一次,此時數(shù)碼管開始顯示30s的倒計時;直到有一個選手按下?lián)尨疰I,對應的會在數(shù)碼管上顯示出該選手的編號和回答剩余的時間,同時蜂鳴器也會發(fā)出一次提示音,以示有人搶答本題;如果在規(guī)定的
5、30s時間沒有人做出搶答,則此題作廢,開始新一輪的搶答。在搶答和回答時間的最后5s,蜂鳴器都會給予報警提示。在倒計時過程中,主持人可以隨時按“停止鍵”結(jié)束本次回答或者搶答。在主持未按下開始鍵,若果有人按下?lián)尨疰I,則屬于犯規(guī)搶答,此時,數(shù)碼管上會顯示違規(guī)選手的編號,同時蜂鳴器會以1s一次的頻率發(fā)出警告。在每次搶答前后,主持人都可以按下復位鍵讓系統(tǒng)清零,此時數(shù)碼管上會顯示“FFF”。 第2章 系統(tǒng)硬件設(shè)計硬件電路部分是一個完整電路的關(guān)鍵部分,硬件性能的好壞關(guān)系到整個系統(tǒng)的性能。本章節(jié)主要介紹了八路搶答器的硬件的選擇與電路的設(shè)計。2.1 芯片的選擇芯片選擇的原則是經(jīng)濟、壽命長、設(shè)計簡單。對此我們作了
6、詳細的論證。2.1.1 控制器的選擇控制器主要用于對顯示、搶答、音樂、計分等模塊進行控制??刂破鞯倪x擇有以下兩種方案。方案一:采用FPGA(現(xiàn)場可編程門列陣)作為系統(tǒng)的控制器。FPGA可以實現(xiàn)各種復雜的邏輯功能,規(guī)模大,密度高,它將所有器件集成在一塊芯片上,減小了體積,提高了穩(wěn)定性,并且可以應用EDA軟件仿真、調(diào)試,易于進行功能擴展。FPGA采用并行的輸入輸出方式,提高了系統(tǒng)的處理速度,適合作為大規(guī)模實時系統(tǒng)的控制核心。但由于本設(shè)計對數(shù)據(jù)處理的速度要求不高,F(xiàn)PGA的高速處理的優(yōu)勢得不到充分體現(xiàn),并且由于其集成度高,使其成本偏高,同時由于芯片的引腳較多,實物硬件電路板布線復雜,加重了電路設(shè)計和
7、實際焊接的工作。方案二:采用AT89C51作為系統(tǒng)控制器的CPU方案。單片機算術(shù)運算功能強、軟件編程靈活、自由度大,可以用軟件編程實現(xiàn)各種算法和邏輯控制,并且由于其功耗低、體積小、技術(shù)成熟和成本低等優(yōu)點,使其在各個領(lǐng)域應用廣泛?;谝陨戏治觯敬卧O(shè)計我采用方案二。2.1.2 顯示模塊的選擇顯示模塊主要是顯示時間和編號??紤]有以下兩種顯示方案。方案一:使用液晶屏顯示時間。液晶顯示屏(LCD)具有輕薄短小、低耗電量、無輻射危險,平面直角顯示以與影像穩(wěn)定不閃爍等優(yōu)勢,可視面積大,畫面效果好,分辨率高,抗干擾能力強的特點。但由于只需要顯示時間和轉(zhuǎn)向、相數(shù)這樣的數(shù)字,信息量比較少,且液晶屏是以點陣的模式
8、顯示各種符號,需要利用控制芯片創(chuàng)建字符庫,編程工作量大,控制器的資源占用較多,其成本也偏高。在使用時,不能有靜電干擾,否則易燒壞液晶顯示芯片,不易維護。方案二:使用傳統(tǒng)的數(shù)碼管顯示。數(shù)碼管具有低能耗、低損耗、低壓、壽命長、耐老化、防曬、防潮、防火、防高(低)溫,對外界環(huán)境要求低,易于維護的優(yōu)點,同時其精度高,稱量快,精確可靠,操作簡單。數(shù)碼顯示是采用BCD編碼顯示數(shù)字,程序編譯容易,資源占用較少。根據(jù)以上的論述,我采用方案二。2.1.3 鍵盤的選擇鍵盤是單片機不可缺少的輸入設(shè)備,是實現(xiàn)人機對話的紐帶。鍵盤按結(jié)構(gòu)形式可以分為非編碼鍵盤和編碼鍵盤,前者用軟件方法產(chǎn)生鍵碼,而后者則用硬件方法來產(chǎn)生鍵
9、碼。在單片機中使用的都是非編碼鍵盤,因為非編碼鍵盤結(jié)構(gòu)簡單,成本低廉,非編碼鍵盤的類型很多,常用的有獨立式鍵盤,行列式鍵盤等。方案一:獨立式鍵盤獨立式鍵盤接口中使用幾根I/O線,就有幾個按鍵,這種類型的鍵盤,其按鍵比較少,且鍵盤中各按鍵的工作互不干擾。因此可以根據(jù)實際需要對鍵盤中的按鍵靈活編碼。獨立式鍵盤的缺點是需要占用比較多的I/O口線,當單片機應用系統(tǒng)鍵盤中需要的按鍵比較少或I/O口線比較富余時,可以采用這樣類型的鍵盤。方案二:行列式鍵盤行列式鍵盤是用N條I/O線作為行線,M條I/O線作為列線組成的鍵盤,按鍵在行線和列線的每個交叉點上。這種形式的鍵盤結(jié)構(gòu),能夠有效地提高單片機系統(tǒng)中I/O的
10、利用率。CPU對鍵盤的掃描可以采用取程序控制的隨機方式,即只有在CPU空閑是時才去掃描鍵盤,響應操作人員的鍵盤輸入,即利用單片機部定時器每隔一定時間對鍵盤掃描一次,這樣控制方式,不管鍵盤上有無鍵閉合,CPU總是定時的關(guān)心鍵盤狀態(tài)。在大多數(shù)情況下,CPU對鍵盤可能進行空掃描。為了提高CPU的效率而又能與時響應鍵盤輸入,可以采用中斷方式,即CPU平時不必掃描鍵盤,只要當鍵盤上有鍵盤閉合時就產(chǎn)生中斷請求,向CPU申請中斷后,立即對鍵盤上有鍵盤進性掃描,識別閉合鍵,并做相應的處理。根據(jù)以上的論述,我采用方案一。2.2.4 芯片最終選擇方案根據(jù)上幾節(jié)的論證,通過綜合考慮,我們的芯片選擇如表2-1。表2-
11、1 器件選擇方案詳單器件名稱規(guī)格型號數(shù)量微處理器AT89C511電阻220歐姆88K11K1瓷片電容30pF2電解電容10uF1晶振12MHZ1按鈕CD401315器件名稱規(guī)格型號數(shù)量七段數(shù)碼管7SEG-MPX-CC4蜂鳴器12.2 AT89C51單片機簡單概述AT89C51單片機屬于51系列單片機,本次設(shè)計所用的核心元件即為AT89C51,本節(jié)主要介紹了AT89C51的管腳功能。2.2.1 51系列單片機的功能特性MSC-51單片機是美國英特爾公司于1980年起推出的第二代產(chǎn)品。與8084相比,8051的硬件結(jié)構(gòu)和指令系統(tǒng)均有很大改進,可支持更大存儲空間擴充了更多的I/O功能,速度提高了2-
12、5倍。1. 主要特性:(1) 適于控制應用的8位CPU。(2) 擴展的邏輯處理能力。(3) 4KB片程序存儲空間。其片外可尋址的圍為64KB,主要用于存放已編程的程序,也可存放一些原始數(shù)據(jù)和表格。(4) 128B的片數(shù)據(jù)RAM。其片外數(shù)據(jù)存儲器的尋址圍為64KB用于存放可讀寫的數(shù)據(jù),如運算的中間結(jié)果和最終結(jié)果。(5) 32根雙向可單獨尋址的輸入輸出線。(6) 2個16位定時/計數(shù)器,片時鐘發(fā)生器。它可以設(shè)置為計數(shù)方式,對外部事件進行計數(shù),也可以設(shè)置為定時方式進行定時。(7) 全雙工異步發(fā)送/接收器。(8) 具有5個中斷源,可編程為兩個優(yōu)先級的中斷系統(tǒng),它可以接收外部中斷請求、定時器/計數(shù)器中斷
13、申請和串行口中斷申請。2. 程序指令AT89C51單片機的時序單位有四個,分別是節(jié)拍、狀態(tài)、機器周期和指令周期。節(jié)拍與狀態(tài):我們把振蕩脈沖的周期定義為節(jié)拍(P),振蕩脈沖經(jīng)過兩個分頻后即得到整個單片機工作系統(tǒng)的時鐘信號,把時鐘信號的周期定義為狀態(tài)(S),這樣一個狀態(tài)就有兩個節(jié)拍,前半個周期相應的節(jié)拍我們定義為P1,后半周期對應的節(jié)拍定義為P2。機器周期:AT89C51有固定的機器周期,規(guī)定一個機器周期有6個狀態(tài),分別表示為S1-S6,而一個狀態(tài)包含兩個節(jié)拍,那么一個機器周期就有12個節(jié)拍,即一個機器周期包含12個振蕩脈沖,即機器周期就是振蕩脈沖的12分頻,如果使用12MHZ的時鐘頻率,一個機器
14、周期就是1us。2.2.2 AT89C51單片機結(jié)構(gòu)說明AT89C51單片機的管腳圖如圖2-1所示:圖2-1 AT89C51單片機管腳圖u P0口:P0口是一組8位漏極開路雙向I/O口,在訪問外部存儲器時用作8位低地址線和數(shù)據(jù)總線。u P1口: P1口是一個帶部上拉電阻的8位雙向I/O口,向P1口寫入“1”時,P1口被部電路上拉為高電平,可用作輸入口。當作為輸出口時,被外部拉低的P1口會因為部上拉電阻的存在而輸出電流。u P2口:P2口為一個部上拉電阻的8位雙向I/O口,當P2口被寫“1”時,其管腳被部電路上拉為高電平,可作輸入口。當作為輸出口時,被外部拉低的P2口會因為部上拉電阻的存在而輸出
15、電流。在訪問外部程序存儲器和外部數(shù)據(jù)存儲器時,P2口可作為地址總線的高八位地址線。P3口:P3口管腳是8個帶部上拉電阻的雙向I/O口,當P3口寫入“1”后,它們被部電路上拉為高電平,并用作輸入口。當作為輸出口時,被外部拉低的P3口會因為部上拉電阻的存在而輸出電流。 P3口也可作為AT89C51的一些特殊功能口,如下表所示: P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口)P3.2 /INT0(外部中斷0) P3.3 /INT1(外部中斷1) P3.4 T0(記時器0外部輸
16、入) P3.5 T1(記時器1外部輸入)P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)u RST:復位信號輸入端。當振蕩器工作時,RET引腳出現(xiàn)兩個機器周期以上的高電平將使單片機復位。u ALE/PROG:ALE是地址鎖存允許信號。它的作用是把CPU從P0口分時輸出的低8位地址鎖存在鎖存器中。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6,可用作外部時鐘或定時。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。如果CPU在外部執(zhí)行狀態(tài)ALE禁止,置位無
17、效。u /PSEN:讀片外程序存儲器選通信號輸出端。當執(zhí)行外部程序存儲器數(shù)據(jù)時,/PSEN將產(chǎn)生負脈沖作為外部程序存儲器的讀選通信號。在訪問外部數(shù)據(jù)存儲器和部程序存儲器時,/PSEN無效。u /EA/VPP:讀片與片外程序存儲器的選擇端。當/EA為高電平時,低4KB的地址為片程序存儲器單元,高于4KB以上的地址為片外程序存儲器單元;當/EA為低電平時,則只能讀片外程序存儲器。u XTAL1:片振蕩電路反向放大器的輸入端,采用外部時鐘時該引腳接地。XTAL2:片振蕩電路反向放大器的輸出端,采用外部時鐘時該引腳為振蕩信號的輸入端。2.3 硬件的構(gòu)成與功能本節(jié)主要介紹了搶答器的硬件部分的設(shè)計,硬件部
18、分的設(shè)計是比不可少的,也是此次設(shè)計的核心。2.3.1 搶答器的硬件圖根據(jù)所要實現(xiàn)的功能,我們先大概將搶答器的硬件分為這幾部分:CPU、聲音電路、顯示電路、定時電路、開始結(jié)束鍵輸入和搶答按鍵輸入。硬件圖如圖2-2所示。圖2-2 搶答器硬件圖2.3.2 時鐘頻率控制電路單片機必須在時鐘的驅(qū)動下才能工作。AT89C51中有一個用于構(gòu)成部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。只需要外接一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機部的各個單元,決定單片機的工作速度。時鐘頻率控制電路如圖2-3所示。圖2-3 外部振蕩電路部時鐘振蕩器一般選用石英晶體振蕩器。此電路
19、在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容C1、C2選用30PF大小,其作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進行微調(diào)。單片機在工作時,由部振蕩器產(chǎn)生或由外部直接輸入的送至部控制邏輯單元的時鐘信號的周期稱為時鐘周期。其大小是時鐘信號頻率的倒數(shù)。該設(shè)計中時鐘頻率選為12MHz。2.3.3 復位電路的設(shè)計在搶答器中復位是為定時做鋪墊的,在搶答之前要復位,搶答完畢要復位,按了復位鍵之后LED顯示F。單片機的復位引腳RST出現(xiàn)2個機器周期以上的高電平時即可實現(xiàn)復位,復位后單片機的各狀態(tài)都恢復到初
20、始化狀態(tài),其電路圖如圖2-4所示。圖2-4 復位電路圖中復位電路由按鍵和電解電容C3、電阻R9構(gòu)成的按鍵與上電復位電路。由于單片機是高電平復位,所以當按鍵按下時,單片機的9腳RESET管腳處于高電平,此時單片機處于復位狀態(tài)。當上電后由于電容緩慢充電,單片機的9腳電壓逐步由高向低轉(zhuǎn)化,經(jīng)過一段時間后,單片機的9腳處于穩(wěn)定的低電平狀態(tài),此時單片機上電復位完畢,系統(tǒng)程序從0000H開始執(zhí)行。在此設(shè)計中使用了硬件復位和軟件復位兩種。硬件復位可將寄存器與存儲器的值都恢復到初始值。而在設(shè)計中,倒計時時間存在記憶功能,因此還設(shè)計了軟復位功能。軟復位實際上就是當程序執(zhí)行完畢后,講程序指針通過一條跳轉(zhuǎn)指令讓它跳
21、轉(zhuǎn)到該段程序的起始地址。2.3.4 報警電路的設(shè)計我們知道,聲音的頻譜圍約在幾十到幾千赫茲,若能利用程序來控制單片機某個管腳的高低電平,則在該管腳上就能產(chǎn)生一定頻率的矩形波,接上蜂鳴器就能發(fā)出一定頻率的聲音,若利用延時程序控制高低電平的持續(xù)時間,就能改變輸出頻率,從而改變蜂鳴器發(fā)出的音調(diào)。在本設(shè)計中此電路起到報警功能。它會在第一位選手按下?lián)尨鸢粹o時響一次,以提示有人搶答本題,并且在該選手的60秒搶答過程中或30秒等待過程中剩余最后5秒時響起,以提示到此題結(jié)束還有5秒鐘。本次設(shè)計如圖2-5所示,圖中用到單片機的10、11和16管腳。10管腳具有讀入功能,11管腳具有輸出功能,而16管腳具有外部數(shù)
22、據(jù)寫功能,單片機通過部定時器的操作實現(xiàn)交替變換的波形輸出驅(qū)動蜂鳴器發(fā)生。圖2-5 報警電路2.3.5 顯示電路的設(shè)計顯示功能與硬件的關(guān)系極大,顯示電路有兩種選擇,液晶屏顯示和傳統(tǒng)數(shù)碼管顯示。液晶屏具有輕薄、無輻射危險、可視面積大、分辨率高和抗干擾能力強的特點,但是由于顯示信息少、編程工作量大和成本偏高。而數(shù)碼管具有低耗能、低損耗、低壓、壽命長和精確度高、操作簡單的優(yōu)點,本設(shè)計中采用的是4位七段數(shù)碼管顯示。數(shù)碼管顯示通常顯示分為動態(tài)顯示和靜態(tài)顯示。其中,靜態(tài)顯示的特點是顯示穩(wěn)定不閃爍,編程簡單,顯示亮度高,但占用I/O口多,實際應用時必須增加譯碼驅(qū)動器進行驅(qū)動,增加了硬件電路的復雜性。而動態(tài)顯示
23、的穩(wěn)定性雖沒靜態(tài)顯示的好,編程復雜,但是相對靜態(tài)顯示而言占用的端口資源少。本設(shè)計采用的是動態(tài)顯示方法。通過查表法將值在數(shù)碼管上顯示出來。其中單片機的P0口為字型碼輸入端,P2口得低三位為字選段輸入端。4位七段數(shù)碼管顯示電路如圖2-6。圖2-6 七段數(shù)碼管顯示電路數(shù)碼管有共陰極和共陽極兩種接法。共陰極接法,各發(fā)光二極管的陰極連在一起并接地,當某一發(fā)光二極管的陽極輸入高電平時,則該段發(fā)光;共陽極接法,各發(fā)光二極管的陽極連在一起并接電源,當某一發(fā)光二極管的陰極輸入低電平時,則該段發(fā)光。本設(shè)計采用4位一體的七段共陰極數(shù)碼管,其中A-G段分別接到單片機的P0口,由單片機輸出的P0口數(shù)據(jù)來決定段碼值,位選
24、碼COM1,COM3,COM4分別接到單片機的P2.0,P2.1,P2.2,由單片機來決定當前該顯示的是哪一位。在電路圖中還有8個220歐姆的電阻分別連接在P0口上,用作P0口的上拉電阻,保證P0口沒有數(shù)據(jù)輸出時處于高電平狀態(tài)。2.3.6 鍵盤掃描電路的設(shè)計鍵盤掃描電路由兩部分組成:搶答電路和定時電路。鍵盤是人機交互的主要設(shè)備,鍵盤電路分為獨立式和矩陣式。其中,獨立式鍵盤硬件電路簡單,而且在程序設(shè)計上也不復雜,一般用在對硬件電路要求不高的簡單電路中;矩陣式鍵盤硬件電路比獨立式鍵盤電路復雜,而且程序設(shè)計繁瑣,但它節(jié)省端口,適合于多按鍵電路。本設(shè)計基于簡單硬件電路要求的基礎(chǔ)上,采用的是獨立鍵盤的方
25、式。在定時電路的設(shè)計中,有1個搶答時間調(diào)整按鍵、1個回答時間調(diào)整按鍵、加一按鍵、減一按鍵和1個開始按鍵、1個結(jié)束按鍵。電路圖如圖2-7所示。圖2-7 定時電路 圖2-8 搶答電路圖中和AT89C51芯片的12管腳連接的為搶答時間30s的調(diào)整按鍵,和13管腳連接的為回答時間60s的調(diào)整按鍵,與14管腳連接的為加一按鍵,與15管腳連接的為減一按鍵。這四個按鍵用于主持人對回答時間和搶答時間的調(diào)整。開始按鍵與單片機的10管腳連接,停止按鍵與11管腳連接。這里用到了單片機10、11管腳復合功能中的IO端口功能,單片機通過讀取10、11腳的P3.0、P3.1的IO端口值來判斷當前是否處于搶答開始狀態(tài)或搶答
26、結(jié)束狀態(tài)。當主持人按下開始鍵,搶答電路和定時電路將進入正常搶答狀態(tài);當回答完畢,主持人可以按下結(jié)束鍵停止計時。搶答電路完成兩個功能:一是分辨出選手按鍵先后,并鎖存優(yōu)先搶答者的編號,同時譯碼顯示電路顯示編號;二是其他選手操作無效。搶答電路如圖2-8所示,圖中8個搶答按鍵分別接入單片機的P1.0-P1.7端口,單片機通過讀取P1.0-P1.7的值來判斷當前輸入的是8個搶答按鍵中的哪一個。如果主持人未按下開始按鍵判斷到有人違規(guī)操作,蜂鳴器會發(fā)出警報聲,并且數(shù)碼管會顯示出犯規(guī)者的編號。第3章 系統(tǒng)軟件設(shè)計3.1 系統(tǒng)主程序設(shè)計1. 系統(tǒng)主程序設(shè)計思路為了能達到公平、公正、合理的設(shè)計理念,應該在主持人發(fā)
27、布搶答命令之前設(shè)定好搶答時間。當時間設(shè)定好了之后,主持人發(fā)布搶答命令。按下開始按鍵后,程序開始打開,定時中斷開始倒計時,然后調(diào)用鍵盤掃描子程序,當掃描到有人按下了搶答鍵,馬上關(guān)閉搶答中斷計時器T1,調(diào)用顯示程序,此時封鎖搶答鍵盤,啟動計時器T0。2. 主程序框圖 根據(jù)搶答器設(shè)計要求,其軟件設(shè)計部分流程圖如圖3-1:圖3-1 主程序流程圖3.2 鍵盤掃描程序設(shè)計搶答選手的搶答程序設(shè)計是本設(shè)計的關(guān)鍵。鍵盤掃描流程圖如圖3-2所示。圖3-2 鍵盤掃描程序流程圖3.3 顯示程序設(shè)計本次設(shè)計的顯示部分在按下開始鍵時,后兩個數(shù)碼管顯示倒計時間,以1s變換一次,并且調(diào)用延時程序,此時定時器采用中斷方式,可以
28、充分利用CPU。在有選手按下?lián)尨疰I時,第一個數(shù)碼管顯示選手號,最后兩個數(shù)碼管顯示倒計時,定時器同樣采用中斷方式。除此之外,本設(shè)計數(shù)碼管具有閃爍功能,當有違規(guī)搶答時,第一個數(shù)碼管會顯示選手號,后兩個數(shù)碼管會閃爍顯示FF,一個周期為每秒1次。以示搶答無效,此時定時器采用定時中斷的工作方式。連接時段選信號接在P0口的P0.0P0.6七個I/O口上,P1口是準雙向I/O接口在輸出驅(qū)動部分,所以在接電阻時選擇接220限流電阻。而在位選方面采用P2口的P2.0P2.2,用單片機P2.2三個I/O口作為位選信號的輸出口。第4章 系統(tǒng)調(diào)試與軟件仿真系統(tǒng)調(diào)試包括硬件調(diào)試和軟件調(diào)試,二者密不可分。我們設(shè)計好的硬件
29、電路和軟件程序必須經(jīng)過聯(lián)合調(diào)試才能驗證其正確性。4.1 硬件調(diào)試硬件調(diào)試分為單元電路調(diào)試和聯(lián)機調(diào)試,單元電路調(diào)試在硬件電路設(shè)計中已經(jīng)進行,這里只對其印刷版電路進行檢驗。線路檢查:根據(jù)硬件邏輯設(shè)計圖,仔細檢查電路是否正確,并且核對元器件的型號、規(guī)格和安裝是否符合要求,必要時可用萬用表檢測線路通斷情況。先用萬用表檢查各管腳之間是否有短路、虛焊、漏焊現(xiàn)象。檢查無誤后,測試各個芯片是否有損,待檢查完畢后,將各個芯片插入各自的槽位。電源調(diào)試:電路的第一次通電測試很重要,調(diào)試方法有兩種:一種是斷開電路穩(wěn)壓電源的輸出端,檢查空載時電源的工作情況;另一種是拔下電路上的主要繼承芯片,檢查電源的負載能力。確保電源
30、無故障并符合性能要求。通電檢查:首先按下復位鍵,用萬用表測試復位鍵的第四引腳是否有高電平輸出,然后測試其第一管腳是否有低電平輸出,如果是的話說明電路連接正確。然后按下開始鍵,再按下?lián)尨疰I1,之后依次按下?lián)尨疰I2、3、4、5、6、7、8,分別觀察數(shù)碼管有無變化。最后對蜂鳴器進行驗證,看看是否正常發(fā)聲。同理分別按下其它7個搶答鍵進行檢查。4.2 Keil uVision2軟件調(diào)試軟件調(diào)試是通過對用戶程序的匯編、連接、執(zhí)行來發(fā)現(xiàn)程序中存在的語法錯誤與邏輯錯誤并加以排除糾正的過程。本設(shè)計用到了Keil uVision2軟件,首先打開Keil uVision2,將程序輸入;然后進行調(diào)試,將程序中的語法錯
31、誤和邏輯錯誤糾正,調(diào)試完畢后,創(chuàng)建HEX文件,HEX文件用于燒寫芯片,將制定程序?qū)懭胍言O(shè)計好的電路板中,使其能根據(jù)我們的要現(xiàn)相應的功能;最后將HEX文件燒寫入AT89C51芯片,運行電路,讓其實現(xiàn)八路搶答的功能。如圖4-1所示。圖4-1 Keil uVision軟件4.3 Proteus仿真本設(shè)計用到Proteus仿真軟件。首先將電路圖根據(jù)設(shè)計要求在軟件中準確地畫出,即進行ISIS原理圖設(shè)計,我們的仿真也是完全基于ISIS原理圖模塊下進行的,Proteus有兩種截然不同的仿真方式:交互式仿真和基于圖表的仿真,在本設(shè)計中我們用到的是交互式仿真,用于校驗所設(shè)計的電路是否能正常運行。如圖4-2所示。
32、圖4-2 八路搶答器原理圖然后將Keil uVision2生成的HEX文件到該中原理圖,即設(shè)計文檔的建立。如圖4-3所示。圖4-3 建立設(shè)計文檔文檔建立好之后,按Ctrl+F12開始運行,然后按F12,執(zhí)行程序。下面是幾組仿真圖。圖4-4 復位顯示FFF圖4-5 啟動開始鍵,倒計時30s圖4-6 3號選手非法搶答圖4-7 5號選手正常搶答第5章 總 結(jié)此次設(shè)計主要以硬件系統(tǒng)為基礎(chǔ),硬件系統(tǒng)關(guān)系到電子產(chǎn)品的好壞,如系統(tǒng)的抗干擾性,安全性和可行性等,所以要合理地選擇,合理地安排,盡量減少干擾,以提高系統(tǒng)性能。單片機是很容易受干擾的控制器,當采用外部晶振時,應盡量讓其靠近單片機,以減少對其的干擾,防
33、止程序的混亂現(xiàn)象。硬件系統(tǒng)的好壞很大部分在于經(jīng)驗,比如焊接是否干凈利落,器件是否完好,操作是否規(guī)等,所以我們要有好的動手能力。而軟件設(shè)計確實設(shè)計的核心,具有多樣化,靈活性高,易移植等優(yōu)點。首先我們要深深領(lǐng)會各指令的含義才能更加熟練應用。中斷的合理利用可以有效減少對CPU的占用,更好的處理好其他功能。延時的應用會順利地實現(xiàn)顯示,鳴笛等功能,同時還可以去掉系統(tǒng)固有的不穩(wěn)定性。定時的應用則比較實際,能實現(xiàn)我們所需的功能。軟件的設(shè)計大部分采用模塊化設(shè)計的方法以方便調(diào)試,并使其可讀性大大增強,方便更改和移植。在此次設(shè)計中,我總結(jié)了很多不足,同時也學到了很多新的知識,并且鞏固了課堂知識,但最終設(shè)計的系統(tǒng)仍
34、有不足,敬請?zhí)岢?!?錄附錄一 主程序清單OK EQU 20H;搶答開始標志位RING EQU 22H;響鈴標志位ORG 0000HAJMP MAINORG 0003HAJMP INT00ORG 000BHAJMP T00ORG 0013HAJMP INT11ORG 001BHAJMP T11ORG 0040HMAIN:MOV R1,#30;設(shè)搶答時間30sMOV R2,#60;設(shè)答題時間60s MOV TMOD,#11H;設(shè)置定時器為模式1 MOV TH0,#0F0H MOV TL0,#0FFH MOV TH1,#3CH MOV TL1,#0B0H;50ms為一次溢出中斷 SETB EASE
35、TB ET0 SETB ET1 SETB EX0 SETB EX1;允許四個中斷T0/T1/INT0/INT1CLR OK CLR RING SETB TR1SETB TR0;一開始運行定時器,開始顯示FFFLOOP:MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY;調(diào)用顯示FFF子程序 P3.0,LOOP1;判斷未開始答題,若有人按下?lián)尨?,跳到LOOP1非法搶答處理程序 ACALL DELAY P3.0,LOOP1;判斷已開始答題,則向下執(zhí)行 ACALL BARK;蜂鳴器響 MOV A,R1 MOV R6,A;將R1中30s送入R6 SETB
36、 OK;復位,用于COUNT中判斷是否查詢搶答 MOV R7,#01H;讀搶答鍵按下數(shù),要求只讀一次有用信號 MOV R3,#0AH;搶答時間指顯示計時,不顯示號數(shù) AJMP COUNT;進入COUNT倒計時子程序,查詢有效搶答程序LOOP1:JNB P1.0,FALSE1 JNB P1.1,FALSE2 JNB P1.2,FALSE3 JNB P1.3,FALSE4 JNB P1.4,FALSE5 JNB P1.5,FALSE6 JNB P1.6,FALSE7 JNB P1.7,FALSE8 AJMP LOOP;非法搶答查詢程序,若沒有跳回主程序FALSE1:MOV R3,#01H;1號選手
37、違規(guī) AJMP ERROR;跳轉(zhuǎn)到ERROR非法搶答處理程序FALSE2:MOV R3,#02H AJMP ERRORFALSE3:MOV R3,#03H AJMP ERRORFALSE4:MOV R3,#04H AJMP ERRORFALSE5:MOV R3,#05H AJMP ERRORFALSE6:MOV R3,#06H AJMP ERRORFALSE7:MOV R3,#07H AJMP ERRORFALSE8:MOV R3,#08H AJMP ERROR;=中斷=INT00:MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH
38、 ACALL DISPLAY;在時間LED上顯示搶答時間30s JNB P3.4,INC0 JNB P3.5,DEC0 JNB P3.1,BACK0 AJMP INT00INC0:MOV A,R1CJNE A,#63H,ADD0;如果不是99,則跳轉(zhuǎn)到ADD0加1程序,否則往下執(zhí)行,置0,重新加起 MOV R1,#00H ACALL DELAY AJMP INT00ADD0:INC R1 ACALL DELAY AJMP INT00DEC0:MOV A,R1 JZ SETT;如果R1中值為0,則跳到SETT程序,R1置99 DEC R1ACALL DELAYAJMP INT00SETT:MOV
39、 R1,#63H ACALL DELAY AJMP INT00BACK0:RETIINT11:MOV A,R2 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY JNB P3.4,INC1 JNB P3.5,DEC1 JNB P3.1,BACK1 AJMP INT11INC1:MOV A,R2 CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY AJMP INT11ADD1:INC R2 ACALL DELAY AJMP INT11DEC1:MOV A,R2 JZ SET1 DEC R2 A
40、CALL DELAY AJMP INT11;=計時查詢=SET1:MOV R2,#63H ACALL DELAY AJMP INT11BACK1:RETI;=倒計時程序=REPEAT:MOV A,R2;新一輪重新計時 MOV R6,ACLR RINGCOUNT:MOV R0,#00H;重置定時器中斷次數(shù) MOV TH1,#3CH MOV TL1,#0B0H;重置定時器RECOUNT:MOV A,R6;將回答時間60s給A MOV B,#0AH DIV AB;除10,分出個位和十位 MOV 30H,A;十位存于30H MOV 31H,B;個位存于31H MOV R5,30H;取十位 MOV R4
41、,31H;取個位 MOV A,R6 SUBB A,#07H JNC MAX;大于5s跳轉(zhuǎn)到MAX,小于5s則向下執(zhí)行,蜂鳴器響 MOV A,R0 CJNE A,#0AH,FULL CLR RING AJMP CHECK;回答60s倒計時FULL:CJNE A,#14H,CHECK;下面是1s的情況,響并顯示號數(shù),并清R0 SETB RING MOV A,R6 JZ QUIT;計時完畢,跳轉(zhuǎn)到QUIT,否則繼續(xù)向下執(zhí)行 MOV R0,#00H DEC R6;一秒減一 AJMP CHECKMAX:MOV A,R0CJNE A,#14H,CHECK;如果剩1s向下運行,否則跳轉(zhuǎn)到CHECK查詢“停止
42、”程序DEC R6MOV R0,#00HCHECK:JNB P3.1,QUIT;如果查詢按下停止鍵,則退出;否則向下 JNB OK,CHECK1;判斷是否在回答倒計時,如果不在跳到CHECK1判斷是否開始新一輪;否則向下繼續(xù)執(zhí)行AJMP NEXT1CHECK1:JNB P3.0,REPEAT;判斷是否重新開始NEXT1:ACALL DISPLAY OK,ACCOUT;判斷是否是搶答倒計時,若是則跳轉(zhuǎn)到ACCOUT查詢搶答;否則向下執(zhí)行繼續(xù)倒計時AJMP RECOUNTACCOUT:MOV A,36HJNB ACC.0,TRUE1JNB ACC.1,TRUE2JNB ACC.2,TRUE3JNB
43、 ACC.3,TRUE4JNB ACC.4,TRUE5JNB ACC.5,TRUE6 JNB ACC.6,TRUE7JNB ACC.7,TRUE8AJMP RECOUNTQUIT:CLR OK;停止鍵按下程序CLR RINGAJMP LOOP;=正常搶答處理程序=TRUE1:ACALL BARKMOV A,R2MOV R6,A;搶答時間R2送R6MOV R3,#01HCLR OK;因為答題的計時不再查詢搶答,所以就鎖了搶答AJMP COUNTTRUE2:ACALL BARKMOV A,R2MOV R6,AMOV R3,#02HCLR OKAJMP COUNTTRUE3:ACALL BARKMO
44、V A,R2MOV R6,AMOV R3,#03HCLR OKAJMP COUNTTRUE4:ACALL BARKMOV A,R2MOV R6,AMOV R3,#04HCLR OKAJMP COUNTTRUE5:ACALL BARKMOV A,R2MOV R6,AMOV R3,#05HCLR OKAJMP COUNTTRUE6: ACALL BARKMOV A,R2MOV R6,AMOV R3,#06HCLR OKAJMP COUNTTRUE7:ACALL BARKMOV A,R2MOV R6,AMOV R3,#07HCLR OKAJMP COUNTTRUE8:ACALL BARKMOV A,R2MOV R6,AMOV R3,#08HCLR OKAJMP COUNT;=犯規(guī)搶答程序=ERROR: MOV R0,#00HMOV TH1,#3CHMOV TL1,#0B0HMOV 34H,R3;犯規(guī)號數(shù)暫存與(34H)HERE: MOV A,R0CJNE A,#06H,FLASH;0.3s向下運行->滅并停響CLR RINGMOV R3
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 黑龍江省哈爾濱市六校聯(lián)考2024-2025學年高二上學期1月期末考試語文試題(含解析)
- 考研《教育史(040103)》考前強化練習試題庫(含答案)
- 2025年陜西省職教高考《職測》核心考點必刷必練試題庫(含答案)
- 2025年曲靖醫(yī)學高等專科學校高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 金庸小說知識競賽考試題庫及答案(含各題型)
- 2025高考物理一輪復習第35講拆2.光學.含答案
- 10kV配電站房工程施工中的資源配置與協(xié)調(diào)
- 會議服務外包合同
- 執(zhí)行項目經(jīng)理聘任合同協(xié)議書范本
- 精裝商鋪租賃合同年
- 小學六年級數(shù)學上冊《簡便計算》練習題(310題-附答案)
- 地理標志培訓課件
- 培訓如何上好一堂課
- 高教版2023年中職教科書《語文》(基礎(chǔ)模塊)下冊教案全冊
- 人教版英語七年級上冊閱讀理解專項訓練16篇(含答案)
- 畢業(yè)旅游活動設(shè)計與實施方案
- 宜城安達特種水泥有限公司雙寨子礦區(qū)鋁土礦礦產(chǎn)資源開發(fā)利用與生態(tài)復綠方案
- 面向機器人柔順操作的力位精準控制方法
- 七年級下冊英語單詞默寫表直接打印
- 瓦斯防治八招培訓課件
- 《他汀長期治療》課件
評論
0/150
提交評論