




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 PAGE23 / NUMPAGES28HUBEIUNIVERSITY OF EDUCATION高等教育自學(xué)考試畢業(yè)設(shè)計(jì)(論文)題目基于單機(jī)片的數(shù)據(jù)顯示搶答器設(shè)計(jì) 專業(yè)班級學(xué)號指導(dǎo)教師、職稱所屬助學(xué)單位2011年12月20日目 錄目錄字體摘要英文摘要緒論1 系統(tǒng)設(shè)計(jì)容11.1 系統(tǒng)設(shè)計(jì)根據(jù)11.2 設(shè)計(jì)任務(wù)和要求11.3設(shè)計(jì)目的12硬件設(shè)計(jì)22.1 單片機(jī)控制原理22.2 搶答器的原理32.2.1原理與電路總框圖32.3 功能模塊電路42.3.1 晶振復(fù)位與開始搶答電路52.3.2 選手搶答鍵(矩陣式鍵盤)62.3.3顯示與顯示驅(qū)動電路62.3.4蜂鳴器音頻輸出電路73軟件設(shè)計(jì)83.1程序設(shè)計(jì)
2、83.1.1 系統(tǒng)流程圖93.1.2 顯示搶答違規(guī)流程圖103.1.3 搶答成功流程圖103.2 程序代碼114系統(tǒng)功能說明194.1 系統(tǒng)的調(diào)試介紹194.2軟件調(diào)試過程19致21參考文獻(xiàn)22摘要很多人都搶答器作為一種工具,已廣泛應(yīng)用于各種智力和知識競賽場合。但搶答器的使用頻率較低,且有的要么制作復(fù)雜,要么可靠性低。作為一個(gè)單位,如果專門購一臺搶答器雖然在經(jīng)濟(jì)上可以承受,但每年使用的次數(shù)極少,往往因長期存放使(電子器件的)搶答器損壞,再購置的麻煩和與時(shí)性就會影響活動的開展,因此設(shè)計(jì)了本搶答器。本設(shè)計(jì)是以八路搶答為基本理念??紤]到依需設(shè)定限時(shí)回答的功能,利用AT89C51單片機(jī)與外圍接口實(shí)現(xiàn)的
3、搶答系統(tǒng),利用單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,將軟、硬件有機(jī)地結(jié)合起來,使得系統(tǒng)能夠正確地進(jìn)行計(jì)時(shí),同時(shí)使數(shù)碼管能夠正確地顯示時(shí)間。關(guān)鍵詞: 單片機(jī);搶答器; AT89C51 AbstractMany people are scare-answering device as a tool, has been widely applied in all kinds of intelligence and knowledge competition situation. But vies to implement use frequency is quite low, and some e
4、ither make complicated or low reliability. As a unit, if specialized purchased a vies to implement whereas economically may inherit, but every year the number of little use for long-term storage, often make (electronics) vies is damaged, again the purchase of trouble and timeliness will affect activ
5、ities, so this contest was designed device. This design is 8 vies for basic ideas. Considering according to need to set limit to answer function, using AT89C51 and periphery interface implementation of scare-answering system, of the microcontroller timer/counter timing and numeration principle, soft
6、ware and hardware organically, and makes the system can correctly to the time, at the same time making digital tube can properly shows the time. Keywords:Microcontroller; Scare-answering device; AT89C51緒 論單片機(jī)作為計(jì)算機(jī)的一個(gè)重要分支,其應(yīng)用圍很廣,發(fā)展很快,它已成為現(xiàn)代電子技術(shù)、計(jì)算機(jī)應(yīng)用、網(wǎng)絡(luò)、通信、自動控制與計(jì)量測試、數(shù)據(jù)采集與信號處理等技術(shù)中日益普與的一項(xiàng)新興技術(shù),應(yīng)用圍十分廣泛。從
7、事單片機(jī)應(yīng)用與開發(fā),不僅為將來可能從事該方面的開發(fā)打下基礎(chǔ),另一方面,由于單片機(jī)作為微型計(jì)算機(jī)的一種,麻雀雖小,五臟俱全,可以把它當(dāng)作微型計(jì)算機(jī)的一個(gè)簡化模型來看待,學(xué)習(xí)單片機(jī)可以加深對微型計(jì)算機(jī)工作原理的理解,更加清楚計(jì)算機(jī)的脈絡(luò)。同時(shí),提供了一個(gè)實(shí)際應(yīng)用手段。21世紀(jì),是一個(gè)信息技術(shù)飛速發(fā)展的時(shí)代,智力競賽是一種形式比較活潑的教育方式,是人們休閑娛樂生活的一部分。這些競賽一方面充實(shí)了人們的娛樂生活,另一方面也提高了人們努力汲取相關(guān)領(lǐng)域的知識的興趣。智力競賽,也就是幾個(gè)參賽選手之間在規(guī)定的時(shí)間,規(guī)定的地點(diǎn)進(jìn)行相互競爭的比賽。搶答是各種競賽常用的一種形式。在搶答賽中,往往要有主持人宣布搶答的開
8、始,還要確定是哪個(gè)選手搶到了答題權(quán),具體答題的時(shí)間有時(shí)也要設(shè)定。這些如果僅憑主持人的主觀判斷,很容易出現(xiàn)誤判的情況。因此,在競賽中,搶答器就扮演了一個(gè)非常重要的角色。1 系統(tǒng)設(shè)計(jì)容1.1系統(tǒng)設(shè)計(jì)依據(jù)搶答器由計(jì)數(shù)器、寄存器、集成定時(shí)器和譯碼顯示等組合、時(shí)序電路組成??煞譃閾尨痣娐?,定時(shí)電路,報(bào)警電路等幾個(gè)單元部分。每個(gè)單元電路分別可以處理一些搶答競賽中的基本問題。本次課程設(shè)計(jì)設(shè)計(jì)的是一個(gè)多路定時(shí)搶答器,是多于兩位選手參賽的一個(gè)搶答器,具有鎖存和顯示功能。同時(shí)由主持人控制系統(tǒng)的清零和搶答的開始。搶答開始后,若有任何一名選手按動搶答按鈕,搶答器就會顯示該選手編號直至系統(tǒng)被主持人清零,并有揚(yáng)聲器發(fā)出提
9、示,同時(shí)其他人再搶答就無效了。此次設(shè)計(jì)的搶答器還有自動定時(shí)功能,主持人可以設(shè)定選手答題的時(shí)間。當(dāng)主持人啟動“開始”鍵后,定時(shí)器會自動減計(jì)時(shí),這個(gè)會顯示在顯示器上。選手只有在搶答時(shí)間搶答才有效,若在答題時(shí)間沒有選手答題,時(shí)間到時(shí),報(bào)警電路就會發(fā)出警報(bào)亮燈并且禁止搶答。1.2設(shè)計(jì)任務(wù)和要求設(shè)計(jì)一個(gè)八路搶答器要求:(1)設(shè)計(jì)出硬件電路; (2)設(shè)計(jì)出軟件編程方法,并寫出源代碼;(3)用PROTEUS進(jìn)行仿真;(4)論文格式要符合學(xué)院的統(tǒng)一規(guī)定,結(jié)構(gòu)要合符邏輯,表達(dá)要得體。1.3 設(shè)計(jì)目的通過設(shè)計(jì)學(xué)習(xí)單片機(jī)最小系統(tǒng)的基本設(shè)計(jì)方法,掌握單片機(jī)應(yīng)用系統(tǒng)的開發(fā)調(diào)試過程。(1)學(xué)習(xí)單片機(jī)開發(fā)工具功能、特點(diǎn)和使
10、用方法。(2)學(xué)會單片機(jī)控制系統(tǒng)程序的編制和調(diào)試方法。(3)設(shè)計(jì)單片機(jī)搶答器硬件電路,繪制出電路原理圖。(4)編制并調(diào)試出鍵盤掃描程序和顯示驅(qū)動程序。(5)掌握單片機(jī)定時(shí)器的基本用法,編制出定時(shí)器的中斷程序。2硬件設(shè)計(jì)2.1 單片機(jī)控制原理單片機(jī)(SCM)是單片微型計(jì)算機(jī)(Single Chip Microcomputer)的簡稱。它是把中央處理器CPU、隨機(jī)存儲器RAM、只讀存儲器ROM、I/O接口電路、定時(shí)/計(jì)數(shù)器以與輸入/輸出適配器都集成在一塊芯片上,構(gòu)成一個(gè)完整的微型計(jì)算機(jī)。它的最大優(yōu)點(diǎn)是體積小,可放在儀表部;但存儲量小,輸入/輸出適配器簡單,功能較低。目前,單片機(jī)在民用和工業(yè)測控領(lǐng)域
11、得到最廣泛的應(yīng)用,早已深深地融入人們的生活中。簡單的說,用單片機(jī)系統(tǒng)來設(shè)計(jì)搶答器,實(shí)現(xiàn)兩組的搶答時(shí)間即使是相差幾微秒,也可分辨出哪組優(yōu)先答題。P0端口(P0.0-P0.7):P0口為一個(gè)8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。P1端口(P1.0-P1.7):P1口是一個(gè)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被部上拉
12、為高電平,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 P2端口(P2.0-P2.7):P2口為一個(gè)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被部上拉電阻拉高,且作為輸入。作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流,這是由于部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的容。P2口在FLASH編程
13、和校驗(yàn)時(shí)接收高八位地址信號和控制信號。P3端口(P3.0-P3.7):P3口管腳是一個(gè)帶有部上拉電阻的8位的雙向I/O端口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被部上拉為高電平,并用作輸入。作為輸入端時(shí),由于外部下拉為低電平,P3口將輸出電流(ILL)。2.2 搶答器的原理數(shù)碼管與上拉電阻AT89C51復(fù)位電路搶答器計(jì)時(shí)時(shí)間調(diào)整與語音報(bào)警獨(dú)立式按鍵鍵盤電子智能搶答計(jì)分器在搶答過程中,為了知道哪一組或哪一位選手先答題,必須要設(shè)計(jì)一個(gè)系統(tǒng)來完成這個(gè)任務(wù)。為了完成這個(gè)任務(wù)設(shè)計(jì)時(shí)系統(tǒng)能顯示搶答組號、各組計(jì)分并能計(jì)分顯示以與比賽結(jié)束時(shí)能發(fā)出報(bào)警聲三個(gè)要求;電子智能搶答計(jì)分器主要是由硬件
14、部分和軟件部分構(gòu)成,硬件和軟件分開設(shè)計(jì);系統(tǒng)綜框圖如下:圖2.2系統(tǒng)綜框圖2.2.1 原理與電路總框圖所需元件:該系統(tǒng)的核心器件是AT89C51,其外部接上復(fù)位電路、上拉電阻、數(shù)碼管、按鈕與揚(yáng)聲器。元件為:晶體振蕩管X1,電容C1、C2、C3,電阻RP1,P3.0和P3.1有裁判控制分別是搶答停止和開始鍵;P1.0-P1.7是8組搶答的輸入口;P2.0-P2.3口為數(shù)碼管的位選口;段選口用的是P0.0-P0.6口輸出,外部中斷0、1和P3.2,P3.3為搶答記時(shí)調(diào)整口,實(shí)現(xiàn)的對個(gè)隊(duì)進(jìn)行計(jì)時(shí),并且加減調(diào)整,外部中斷0,1實(shí)現(xiàn)了答題時(shí)間調(diào)整。P3.4、P3.5分別實(shí)現(xiàn)了時(shí)間的加一和減一;P3.6為
15、蜂鳴器控制口。智能搶答器用單片機(jī)來設(shè)計(jì)制作完成,由于其功能的實(shí)現(xiàn)主要通過軟件編程來完成,采用單片機(jī)AT89C51,它是低功耗、高性能的CMOS型8位單片機(jī)。片帶有4KB的Flash存儲器,并允許在系統(tǒng)改寫或用編程器編程。該智力競賽搶答器的準(zhǔn)確度很高,其誤差主要由晶振自身的誤差所造成。AT89C51單片機(jī)部由CPU、4KB的FPEROM ,128B的RAM,兩個(gè)16位的定時(shí)/計(jì)數(shù)器T0和T1,4個(gè)8位的I/O端P0、P1、P2、P3等組成。單片微機(jī)部最核心的部分是CPU。CPU主要功能是產(chǎn)生各種控制信號,控制存儲器、輸入/輸出端口的數(shù)據(jù)傳輸、數(shù)據(jù)的算術(shù)運(yùn)算、邏輯運(yùn)算以與位操作處理等,CPU按其功
16、能可分為運(yùn)算器和控制器兩部分??刂破饔沙绦蛴?jì)數(shù)器PC、指令儲存器、指令譯碼器、實(shí)時(shí)控制與條件轉(zhuǎn)移邏輯電路等組成。它的功能是對來自存儲器中的指令進(jìn)行譯碼,通過實(shí)時(shí)控制電路,在規(guī)定的時(shí)刻發(fā)出各種操作所需的部和外部的控制信號,使各部分協(xié)調(diào)工作,完成指令所規(guī)定的操作。運(yùn)算器由算術(shù)邏輯器部件ALU、累加器ACC、暫存器、程序狀態(tài)字寄存器PSW,BCD碼運(yùn)算調(diào)整電路等組成。圖2.2.1搶答器總原理圖2.3 功能模塊電路本設(shè)計(jì)分為硬件設(shè)計(jì)和軟件設(shè)計(jì),這兩者相互結(jié)合,不可分離;從時(shí)間上看,硬件設(shè)計(jì)的絕大部分工作量是在最初階段,到后期往往還要做一些修改。只要技術(shù)準(zhǔn)備充分,硬件設(shè)計(jì)的大返工是比較少的,軟件設(shè)計(jì)的任
17、務(wù)貫徹始終,到中后期基本上都是軟件設(shè)計(jì)任務(wù),隨著集成電路技術(shù)的飛速發(fā)展,各種功能很強(qiáng)的芯片不斷出現(xiàn),使硬件電路的集成度越來越高,硬件設(shè)計(jì)的工作量在整個(gè)項(xiàng)目中的所占的比重逐漸下降。為使硬件電路設(shè)計(jì)盡可能合理,應(yīng)注意以下幾方面7:(1) 盡可能采用功能強(qiáng)的芯片,以簡化電路,功能強(qiáng)的芯片可以代替若干普通芯片,隨著生產(chǎn)工藝的提高,新型芯片的的價(jià)格不斷下降,并不一定比若干普通芯片價(jià)格的總和高。(2) 留有設(shè)計(jì)余地。在設(shè)計(jì)硬件電路時(shí),要考慮到將來修改擴(kuò)展的方便。因?yàn)楹苌儆幸诲N定音的電路設(shè)計(jì),如果現(xiàn)在不留余地,將來可能要為一點(diǎn)小小的修改或擴(kuò)展而被迫進(jìn)行全面返工。(3) 程序空間,選用片程序空間足夠大的單片機(jī)
18、,本設(shè)計(jì)采用AT89C51單片機(jī)。(4) RAM空間,AT89C51部RAM不多,當(dāng)要增強(qiáng)軟件數(shù)據(jù)處理功能時(shí),往往覺得不足。如果系統(tǒng)配置了外部RAM,則建議多留一些空間。如選用8155作I/O接口,就可以增強(qiáng)256字節(jié)RAM。如果有大批數(shù)據(jù)需要處理,則應(yīng)配置足夠的RAM,如6264,62256等。隨著軟件設(shè)計(jì)水平的提高,往往只要改變或增加軟件中的數(shù)據(jù)處理算法,就可以使系統(tǒng)功能提高很多,而系統(tǒng)的硬件不必做任何更換就使系統(tǒng)升級換代。只要在硬件電路設(shè)計(jì)初期考慮到這一點(diǎn),就應(yīng)該為系統(tǒng)將來升級留足夠的RAM空間,哪怕多設(shè)計(jì)一個(gè)RAM的插座,暫不插芯片也好。(5) I/O端口:在樣機(jī)研制出來后進(jìn)行現(xiàn)場試用
19、時(shí),往往會發(fā)現(xiàn)一些被忽視的問題,而這些問題不是靠單純的軟件措施來解決的。如有些新的信號需要采集,就必須增加輸入檢測端;有些物理量需要控制,就必須增加輸出端。如果在硬件電路設(shè)計(jì)就預(yù)留出一些I/O端口,雖然當(dāng)時(shí)空著沒用,那么用的時(shí)候就派上用場了。2.3.1晶振復(fù)位與開始搶答電路晶振的頻率為12MHZ,提供89C51的時(shí)鐘脈沖使89C51工作,復(fù)位電路是單片機(jī)初始化,使單片機(jī)重新開始執(zhí)行程序。當(dāng)復(fù)位開關(guān)按下RST由低電平變?yōu)楦唠娖?,則程序從頭開始執(zhí)行,在此次課程設(shè)計(jì)電路中當(dāng)一個(gè)問題結(jié)束主持人后按下復(fù)位開關(guān)后進(jìn)行下一題的準(zhǔn)備。圖2.3.1 晶振復(fù)位電路圖2.3.1開始搶答電路2.3.2 選手搶答鍵(矩
20、陣式鍵盤)89C51的P1口做一個(gè)為選手搶答的輸入按鍵引腳,P1.0至P1.7輪流輸出低電位,給每一個(gè)選手編號1至8,當(dāng)選手按下按鈕時(shí),P1口每個(gè)端口的電平變化從P1口輸入,經(jīng)單片機(jī)處理后從P0輸出由數(shù)碼管顯示搶答者編號。圖2.3.2 選手搶答電路2.3.3 顯示與顯示驅(qū)動電路此電路包括顯示和驅(qū)動,顯示采用數(shù)碼管,驅(qū)動用P2口, 違規(guī)者編號、搶答30秒倒計(jì)時(shí)、正常搶答者編號和回答問題時(shí)間60秒倒計(jì)時(shí),數(shù)碼管采用動態(tài)顯示。驅(qū)動電路P2口,查詢顯示程序利用P0口做段選碼口輸出P2低3位做位選碼輸出,當(dāng)為低電平則能驅(qū)動數(shù)碼管使其顯示數(shù)字。在+5V電壓下接10k的電阻,保證正常壓降。圖2.3.3 顯示
21、與顯示驅(qū)動電路2.3.4蜂鳴器音頻輸出電路圖2.3.4蜂鳴器音頻輸出電路通過控制不同頻率的矩形脈沖來控制蜂鳴器發(fā)聲。此次課程設(shè)計(jì)中只需要一些簡單的提示聲音和稍微顯眼的燈控,有搶答違規(guī),開始搶答,搶答時(shí)間結(jié)束和回答時(shí)間到得提示聲和亮燈提醒。3 軟件設(shè)計(jì)3.1程序設(shè)計(jì)軟件任務(wù)分析和硬件電路設(shè)計(jì)結(jié)合進(jìn)行,哪些功能由硬件完成,哪些任務(wù)由軟件完成,在硬件電路設(shè)計(jì)基本定型后,也就基本上決定下來了9。軟件任務(wù)分析環(huán)節(jié)是為軟件設(shè)計(jì)做一個(gè)總體規(guī)劃。從軟件的功能來看可分為兩大類:一類是執(zhí)行軟件,它能完成各種實(shí)質(zhì)性的功能,如測量,計(jì)算,顯示,打印,輸出控制和通信等,另一類是監(jiān)控軟件,它是專門用來協(xié)調(diào)各執(zhí)行模塊和操作
22、者的關(guān)系,在系統(tǒng)軟件中充當(dāng)組織調(diào)度角色的軟件。這兩類軟件的設(shè)計(jì)方法各有特色,執(zhí)行軟件的設(shè)計(jì)偏重算法效率,與硬件關(guān)系密切,千變?nèi)f化。軟件任務(wù)分析時(shí),應(yīng)將各執(zhí)行模塊一一列出,并為每一個(gè)執(zhí)行模塊進(jìn)行功能定義和接口定義(輸入輸出定義)。在各執(zhí)行模塊進(jìn)行定義時(shí),將要牽扯到的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類型問題也一并規(guī)劃好。各執(zhí)行模塊規(guī)劃好后,就可以監(jiān)控程序了。首先根據(jù)系統(tǒng)功能和鍵盤設(shè)置選擇一種最適合的監(jiān)控程序結(jié)構(gòu)。相對來講,執(zhí)行模塊任務(wù)明確單純,比較容易編程,而監(jiān)控程序較易出問題。這如同當(dāng)一名操作工人比較容易,而當(dāng)一個(gè)廠長就比較難了。軟件任務(wù)分析的另一個(gè)容是如何安排監(jiān)控軟件和各執(zhí)行模塊。整個(gè)系統(tǒng)軟件可分為后臺程序(背
23、景程序)和前臺程序。后臺程序指主程序與其調(diào)用的子程序,這類程序?qū)?shí)時(shí)性要求不是太高,延誤幾十ms甚至幾百ms也沒關(guān)系,故通常將監(jiān)控程序(鍵盤解釋程序),顯示程序和打印程序等與操作者打交道的程序放在后臺程序中執(zhí)行;而前臺程序安排一些實(shí)時(shí)性要求較高的容,如定時(shí)系統(tǒng)和外部中斷(如掉電中斷)。也可以將全部程序均安排在前臺,后臺程序?yàn)椤笆瓜到y(tǒng)進(jìn)入睡眠狀態(tài)”,以利于系統(tǒng)節(jié)電和抗干擾。智力競賽搶答器要求有記憶功能,一次時(shí)間設(shè)置完,復(fù)位后不需重新進(jìn)行時(shí)間設(shè)定,通過鍵盤掃描輸出按鍵信息,再通過單片機(jī)將它轉(zhuǎn)換成能在七段數(shù)碼管上顯示字型碼。當(dāng)搶答完畢時(shí),會在數(shù)碼管上顯示搶答者數(shù)字提示以表示搶答成功,同時(shí)顯示其分?jǐn)?shù),
24、分?jǐn)?shù)的加減可有裁判手動進(jìn)行。采取獨(dú)立式鍵盤,可以實(shí)現(xiàn)8路搶答。在顯示時(shí)使用的是七段數(shù)碼管顯示在本設(shè)計(jì)中根據(jù)實(shí)際情況采用的是動態(tài)顯示方法。臂并通過查表發(fā)將其在數(shù)碼管上顯示出來,其中P1口為字型碼輸入端,P2口低6位為字選段輸入端。通過查表將字型碼送給7段數(shù)碼管顯示的數(shù)字。軟件去抖動,如果“開始鍵”按下就向下執(zhí)行,否則就跳到開始。采用發(fā)聲報(bào)警或者采用綠燈,起到報(bào)警作用。如果想調(diào)節(jié)搶答時(shí)間或答題時(shí)間,按搶答時(shí)間調(diào)節(jié)鍵或答題時(shí)間調(diào)節(jié)鍵進(jìn)入調(diào)節(jié)狀態(tài),此時(shí)會顯示現(xiàn)在設(shè)定的搶答時(shí)間或回答時(shí)間值,如想加一秒按一下加1s鍵,如果想減一秒按一下-1s鍵,時(shí)間LED上會顯示改變后的時(shí)間,調(diào)整圍為0s99s, 0s時(shí)
25、再減1s會跳到99,99s時(shí)再加1s會變到0s。 主持人按搶答開始鍵,會有提示音,并立刻進(jìn)入搶答倒計(jì)時(shí)(預(yù)設(shè)30s搶答時(shí)間),如有選手搶答,會有提示音,并會顯示其號數(shù)并立刻進(jìn)入回答倒計(jì)時(shí)(預(yù)設(shè)60s搶答時(shí)間),不進(jìn)行搶答查詢,所以只有第一個(gè)按搶答的選手有效。倒數(shù)時(shí)間到小于5s會每秒響一下提示音。 如倒計(jì)時(shí)期間,主持人想停止倒計(jì)時(shí)可以隨時(shí)按停止按鍵,系統(tǒng)會自動進(jìn)入準(zhǔn)備狀態(tài),等待主持人按搶答開始進(jìn)入下次搶答計(jì)時(shí)。 如果主持人未按搶答開始鍵,而有人按了搶答按鍵,犯規(guī)搶答,LED上不斷閃爍FF和犯規(guī)號數(shù)并響個(gè)不停,直到按下停止 鍵為止。 3.1.1 系統(tǒng)流程圖調(diào)用搶答者獲得的回答問題子程序60秒到中斷
26、返回開 始初始化讀鍵盤是否有鍵按下中斷條件是否滿足調(diào)用顯示搶答違規(guī)并報(bào)警子程序進(jìn)入中斷程序開中斷并響聲提示設(shè)定定時(shí)器值并啟動定時(shí)器30秒搶答時(shí)間并顯示并顯示調(diào)用讀鍵子程序?yàn)檠訒r(shí)程序是否有鍵按下圖3.1.1系統(tǒng)流程圖3.1.2顯示搶答違規(guī)流程圖開 始報(bào)警一直提示顯示違規(guī)者編號圖3.1.2顯示搶答違規(guī)流程圖3.1.3搶答成功流程圖開 始響聲提示設(shè)置定時(shí)器初值并啟動顯示搶答者后30秒倒計(jì)時(shí)60秒答問題時(shí)間到并響聲提示RET圖3.1.3搶答成功流程圖3.2 程序代碼搶答器程序OK EQU 20H;搶答開始標(biāo)志位RING EQU 22H;響鈴標(biāo)志位ORG 0000HAJMP MAINORG 0003HA
27、JMP INT0SUBORG 000BHAJMP T0INTORG 0013HAJMP INT1SUBORG 001BHAJMP T1INTORG 0040HMAIN: MOV R1,#30;初設(shè)搶答時(shí)間為30sMOV R2,#60;初設(shè)答題時(shí)間為60sMOV TMOD,#11H;設(shè)置未定時(shí)器/模式1MOV TH0,#0F0HMOV TL0,#0FFH;越高發(fā)聲頻率越高,越尖MOV TH1,#3CHMOV TL1,#0B0H;50ms為一次溢出中斷SETB EASETB ET0SETB ET1SETB EX0SETB EX1;允許四個(gè)中斷,T0/T1/INT0/INT1CLR OKCLR RI
28、NGSETB TR1SETB TR0;一開始就運(yùn)行定時(shí)器,以開始顯示FFF.如果想重新計(jì)數(shù),重置TH1/TL1就可以了;=查詢程序=START: MOV R5,#0BHMOV R4,#0BHMOV R3,#0BHACALL DISPLAY;未開始搶答時(shí)候顯示FFF P3.0,NEXT;dddddddACALL DELAY P3.0,NEXT;去抖動,如果開始鍵按下就向下執(zhí)行,否者跳到非法搶答查詢ACALL BARK;按鍵發(fā)聲MOV A,R1MOV R6,A;送R1-R6,因?yàn)镽1中保存了搶答時(shí)間SETB OK;搶答標(biāo)志位,用于COUNT只程序中判斷是否查詢搶答MOV R7,#01H ;讀搶答鍵
29、數(shù)據(jù)信號標(biāo)志,這里表示只讀一次有用信號MOV R3,#0AH;搶答只顯示計(jì)時(shí),滅號數(shù)AJMP COUNT;進(jìn)入倒計(jì)時(shí)程序,查詢有效搶答的程序在COUNT里面NEXT: JNB P1.0,FALSE1JNB P1.1,FALSE2JNB P1.2,FALSE3JNB P1.3,FALSE4JNB P1.4,FALSE5JNB P1.5,FALSE6JNB P1.6,FALSE7JNB P1.7,FALSE8AJMP START;=非法搶答處理程序=FALSE1: MOV R3,#01HAJMP ERRORFALSE2: MOV R3,#02HAJMP ERRORFALSE3: MOV R3,#0
30、3HAJMP ERRORFALSE4: MOV R3,#04HAJMP ERRORFALSE5: MOV R3,#05HAJMP ERRORFALSE6: MOV R3,#06HAJMP ERRORFALSE7: MOV R3,#07HAJMP ERRORFALSE8: MOV R3,#08HAJMP ERROR;=INT0(搶答時(shí)間R1調(diào)整程序)=INT0SUB:MOV A,R1MOV B,#0AHDIV ABMOV R5,AMOV R4,BMOV R3,#0AHACALL DISPLAY;先在兩個(gè)時(shí)間LED上顯示R1JNB P3.4,INC0;P3.4為+1s鍵,如按下跳到INCOJNB
31、P3.5,DEC0;P3.5為-1s鍵,如按下跳到DECOJNB P3.1,BACK0;P3.1為確定鍵,如按下跳到BACKOAJMP INT0SUBINC0: MOV A,R1CJNE A,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。MOV R1,#00HACALL DELAY1AJMP INT0SUBADD0: INC R1ACALL DELAY1AJMP INT0SUBDEC0: MOV A,R1JZ SETR1;如果R1為0, R1就置99,DEC R1ACALL DELAY1AJMP INT0SUBSETR1: MOV R1,#63HACALL D
32、ELAY1AJMP INT0SUBBACK0: RETI;=INT1(回答時(shí)間R2調(diào)整程序)=INT1SUB:MOV A,R2MOV B,#0AHDIV ABMOV R5,AMOV R4,BMOV R3,#0AHACALL DISPLAYJNB P3.4,INC1JNB P3.5,DEC1JNB P3.1,BACK1AJMP INT1SUBINC1: MOV A,R2CJNE A,#63H,ADD1MOV R2,#00HACALL DELAY1AJMP INT1SUBADD1: INC R2ACALL DELAY1AJMP INT1SUBDEC1: MOV A,R2JZ SETR2DEC R2
33、ACALL DELAY1AJMP INT1SUBSETR2: MOV R2,#63HACALL DELAY1AJMP INT1SUBBACK1: RETI;=倒計(jì)時(shí)程序(搶答倒計(jì)時(shí)和回答倒計(jì)時(shí)都跳到改程序)=REPEAT:MOV A,R2 ;使用錦囊時(shí)重新計(jì)時(shí)MOV R6,ACLR RINGCOUNT: MOV R0,#00H;重置定時(shí)器中斷次數(shù)MOV TH1,#3CHMOV TL1,#0B0H;重置定時(shí)器RECOUNT:MOV A,R6;R6保存了倒計(jì)時(shí)的時(shí)間,之前先將搶答時(shí)間或回答時(shí)間給R6MOV B,#0AHDIV AB;除十分出個(gè)位/十位MOV 30H,A;十位存于(30H)MOV 3
34、1H,B;個(gè)位存于(31H)MOV R5,30H;取十位MOV R4,31H;取個(gè)位MOV A,R6SUBB A,#07HJNC LARGER;大于5s跳到LARGER,小于等于5s會提醒MOV A,R0CJNE A,#0AH,FULL;1s中0.5s向下運(yùn)行CLR RINGAJMP CHECKFULL: CJNE A,#14H,CHECK;下面是1s的情況,響并顯示號數(shù)并清R0,重新計(jì)SETB RINGMOV A,R6JZ QUIT;計(jì)時(shí)完畢MOV R0,#00HDEC R6;一秒標(biāo)志減1AJMP CHECKLARGER: MOV A,R0CJNE A,#14H,CHECK;如果1s向下運(yùn)行
35、,否者跳到查停/顯示DEC R6;計(jì)時(shí)一秒R6自動減1MOV R0,#00HCHECK: JNB P3.1,QUIT;如按下停止鍵退出JNB OK,CHECKK ;只在回答倒計(jì)時(shí)才有效AJMP NEXTTCHECKK:JNB P3.0,REPEAT ;判斷是否使用錦囊NEXTT: ACALL DISPLAY OK,ACCOUT;如果是搶答倒計(jì)時(shí),如是則查詢搶答,否者跳過查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用)AJMP RECOUNTACCOUT:MOV A,36HJNB ACC.0,TRUE1JNB ACC.1,TRUE2JNB ACC.2,TRUE3JNB ACC.3,TRUE4JNB ACC.4
36、,TRUE5JNB ACC.5,TRUE6 JNB ACC.6,TZ1JNB ACC.7,TZ2AJMP RECOUNTTZ1:JMP TRUE7TZ2:JMP TRUE8QUIT: CLR OK;如果按下了停止鍵執(zhí)行的程序CLR RINGAJMP START;=正常搶答處理程序=TRUE1: ACALL BARKMOV A,R2MOV R6,A;搶答時(shí)間R2送R6MOV R3,#01HCLR OK;因?yàn)榇痤}的計(jì)時(shí)不再查詢搶答,所以就鎖了搶答AJMP COUNTTRUE2:ACALL BARKMOV A,R2MOV R6,AMOV R3,#02HCLR OKAJMP COUNTTRUE3:AC
37、ALL BARKMOV 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
38、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向下運(yùn)行-滅并停響CLR RINGMOV R3,#0AHMOV R4,#0AHMOV R5,#0AH;三燈全滅AJMP CHECK1FLASH: CJNE A,#0CH,CHECK1;下面是0.8s的情況,響并顯示號數(shù)并清R0,重新計(jì)SETB RINGMOV R0,#00HMOV R
39、3,34H;取回號數(shù)MOV R5,#0BHMOV R4,#0BH;顯示FF和號數(shù)AJMP CHECK1CHECK1: JNB P3.1,QUIT1ACALL DISPLAYAJMP HEREQUIT1: CLR RINGCLR OKAJMP START;=顯示程序=DISPLAY:MOV DPTR,#DAT1;查表顯示程序,利用P0口做段選碼口輸出/P2低三位做位選碼輸出,MOV A,R3MOVC A,A+DPTRMOV P2,#0feHMOV P0,AACALL DELAY2MOV DPTR,#DAT2MOV A,R5MOVC A,A+DPTRMOV P2,#0fdHMOV P0,AACAL
40、L DELAY2MOV A,R4MOVC A,A+DPTRMOV P2,#0fbHMOV P0,AACALL DELAY2RETDAT1:DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H;滅,1,2,3,4,5,6,7,8,9,滅,FDAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H;第一個(gè)為零,其他與上一樣,因?yàn)槭蝗绻麨榱泔@示熄滅;=加減時(shí)間延時(shí)(起到不會按下就加N個(gè)數(shù))=DELAY1: MOV 35H,#08HLOOP0: ACALL DISPLAYDJNZ 35H,LOOP0
41、RET;=延時(shí)4236個(gè)機(jī)器周期(去抖動用到)=DELAY: MOV 32H,#12HLOOP: MOV 33H,#0AFHLOOP1: DJNZ 33H,LOOP1DJNZ 32H,LOOPRET;=延時(shí)4236個(gè)機(jī)器周期(顯示用到)=DELAY2: MOV 32H,#43HLOOP3: MOV 33H,#1EHMOV A,R7 ;每隔6070個(gè)機(jī)器周期讀一次P1口,全為1時(shí)為無效數(shù)據(jù),繼續(xù)讀,有一個(gè)不為1時(shí),轉(zhuǎn)到正常搶答處理JNZ AAAA1 ;沒讀到有效數(shù)據(jù)時(shí)繼續(xù)轉(zhuǎn)到AAAA1LOOP2: DJNZ 33H,LOOP2DJNZ 32H,LOOP3RET;=讀搶答按鍵數(shù)據(jù)口程序=;由于在讀
42、搶答數(shù)據(jù)口的時(shí)候,單片機(jī)首先進(jìn)入倒計(jì)時(shí)程序,再調(diào)用顯示程序,最后才檢測按鍵口;然而在檢測按鍵口時(shí)動態(tài)掃描要調(diào)用三次(4ms)延時(shí)程序.這樣就會導(dǎo)致讀數(shù)據(jù)口出現(xiàn)滯后,造成1號優(yōu)先最高.8號最低.;故采用在延時(shí)子程序中加了讀數(shù)據(jù)口程序.保證了靈敏度和可靠性AAAA1: MOV A,P1CJNE A,#0FFH,AA1 ;當(dāng)不全為1時(shí)的數(shù)據(jù)為有效數(shù)據(jù)AA0: MOV 36H,A ;將有效數(shù)據(jù)送到36H暫存AJMP LOOP2AA1: DEC R7AJMP AA0;=發(fā)聲程序=BARK: SETB RINGACALL DELAY1ACALL DELAY1CLR RING;按鍵發(fā)聲RET;=TO溢出中斷
43、(響鈴程序)=T0INT: MOV TH0,#0ECHMOV TL0,#0FFHJNB RING,OUT;CPL P3.6;RING標(biāo)志位為1時(shí)候P3.6口不短取反使喇叭發(fā)出一定頻率的聲音OUT: RETI;=T1溢出中斷(計(jì)時(shí)程序)=T1INT: MOV TH1,#3CHMOV TL1,#0B0HINC R0RETIEND4 調(diào)試功能說明4.1 系統(tǒng)的調(diào)試介紹系統(tǒng)調(diào)試包括硬件調(diào)試和軟件調(diào)試,而且兩者是密不可分的。我們設(shè)計(jì)好的硬件電路和軟件程序,只有經(jīng)過聯(lián)合調(diào)試,才能驗(yàn)證其正確性;軟硬件的配人情況以與是否達(dá)到設(shè)計(jì)任務(wù)的要求,也只有經(jīng)過調(diào)試,才能發(fā)現(xiàn)問題并加以解決、完善,最終開發(fā)成實(shí)用產(chǎn)品。硬件
44、調(diào)試分單元電路調(diào)試和聯(lián)機(jī)調(diào)試,單元電路試驗(yàn)在硬件電路設(shè)計(jì)時(shí)已經(jīng)進(jìn)行,這里的調(diào)試只是將其制成印刷電路板后試驗(yàn)電路是否正確,并排除一些加工工藝性錯誤(如錯線、開路、短路等)。這種調(diào)試可單獨(dú)模擬進(jìn)行,也可通過開發(fā)裝置由軟件配合進(jìn)行,硬件聯(lián)機(jī)調(diào)試則必須在系統(tǒng)軟件的配合下進(jìn)行。軟件調(diào)試一般包括分塊調(diào)試和聯(lián)機(jī)調(diào)試兩個(gè)階段。程序的分塊調(diào)試一般在單片機(jī)開發(fā)裝置上進(jìn)行,可根據(jù)所調(diào)程序功能塊的入口參量初值編制一個(gè)特殊的程序段,并連同被調(diào)程序功能塊一起在開發(fā)裝置上運(yùn)行;也可配合對應(yīng)硬件電路單獨(dú)運(yùn)行某程序功能塊,然后檢查是否正確,如果執(zhí)行結(jié)果與預(yù)想的不一致,可以通過單步運(yùn)行或設(shè)置斷點(diǎn)的方法,查出原因并加以改正,直到運(yùn)
45、行結(jié)果正確為止。這時(shí)該 程序功能塊已調(diào)試完畢,可去掉附加程序段。其它程序功能塊可按此法進(jìn)行調(diào)試。程序聯(lián)機(jī)調(diào)試就是將已調(diào)試好的各程序功能塊按總體結(jié)構(gòu)聯(lián)成一個(gè)完整程序,在所研制的硬件電路上運(yùn)行。從而試驗(yàn)程序整體運(yùn)行的完整性、正確性和與硬件電路的配合情況。在聯(lián)調(diào)中可能會有某些支路上的程序、功能塊因受條件制約而得不到相應(yīng)的輸入?yún)?shù),這時(shí),調(diào)試人員應(yīng)創(chuàng)造條件進(jìn)行模擬調(diào)試。在聯(lián)調(diào)中如發(fā)現(xiàn)硬件問題也應(yīng)與時(shí)修正,直到單片機(jī)系統(tǒng)的軟件、硬件全部調(diào)試成功為止。系統(tǒng)調(diào)試完成后,還要進(jìn)行一段時(shí)間的試運(yùn)行,從而檢驗(yàn)系統(tǒng)的穩(wěn)定性和抗干擾能力,驗(yàn)證系統(tǒng)功能是否達(dá)到設(shè)計(jì)要求,是否達(dá)到預(yù)期的效果。4.2 軟件調(diào)試過程首先對所用
46、軟件與使用方法介紹如下:1、Keil是德國開發(fā)的一個(gè)51單片機(jī)開發(fā)軟件平臺,最開始只是一個(gè)支持C語言和匯編語言的編譯器軟件。后來隨著開發(fā)人員的不斷努力以與版本的不斷升級,使它已經(jīng)成為了一個(gè)重要的單片機(jī)開發(fā)平臺,不過KEIL的界面并不是非常復(fù)雜,操作也不是非常困難,很多工程師的開發(fā)的優(yōu)秀程序都是在KEIL的平臺上編寫出來的??梢哉f它是一個(gè)比較重要的軟件,熟悉他的人很多很多,用戶群極為龐大,要遠(yuǎn)遠(yuǎn)超過偉福等廠家軟件用戶群,操作有不懂的地方只要找相關(guān)的書看看,到相關(guān)的單片機(jī)技術(shù)論壇問問,很快就可以掌握它的基本使用了。2、 總調(diào),即應(yīng)用軟件的調(diào)試,程序固化,軟、硬件結(jié)合的應(yīng)用系統(tǒng)軟硬件聯(lián)合仿真系統(tǒng)由一個(gè)硬件執(zhí)行環(huán)境和一個(gè)軟件執(zhí)行環(huán)境組成,通常軟
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 閱讀課題立項(xiàng)申報(bào)書模板
- 幼兒早期閱讀課題申報(bào)書
- 買賣運(yùn)營車輛合同范本
- 咖啡承包勞務(wù)合同范例
- 合同范例國標(biāo)規(guī)范
- 課題申報(bào)書選題依據(jù)
- 共同委托審計(jì)合同范本
- 單項(xiàng)承攬合同范例
- 借用工合同范本
- 員工合同范本 江西個(gè)體
- 2024湖南省水利廳直屬事業(yè)單位招聘擬聘用人員歷年高頻難、易錯點(diǎn)500題模擬試題附帶答案詳解
- 《計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)》課程教案(完整版)
- 追覓在線測評題
- 調(diào)崗未到崗解除勞動合同通知書
- 金屬材料課程設(shè)計(jì)作業(yè)
- 2023年古文中的化學(xué)知識歸納及相關(guān)練習(xí)題(含答案)
- 《基礎(chǔ)寫作》試卷及答案
- 產(chǎn)品標(biāo)準(zhǔn)化大綱
- 西師版小學(xué)數(shù)學(xué)四年級下冊教案
- 醫(yī)院軟式內(nèi)鏡清洗消毒技術(shù)規(guī)范
- 國有企業(yè)“三定”工作方案-國有企業(yè)三定方案
評論
0/150
提交評論