畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的八路搶答器設(shè)計(jì)_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的八路搶答器設(shè)計(jì)_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的八路搶答器設(shè)計(jì)_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的八路搶答器設(shè)計(jì)_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的八路搶答器設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、廊坊師范學(xué)院本科生畢業(yè)論文摘 要很多人都搶答器作為一種工具,已廣泛應(yīng)用于各種智力和知識(shí)競(jìng)賽場(chǎng)合。但搶答器的使用頻率較低,且有的要么制作復(fù)雜,要么可靠性低。作為一個(gè)單位,如果專門(mén)購(gòu)一臺(tái)搶答器雖然在經(jīng)濟(jì)上可以承受,但每年使用的次數(shù)極少,往往因長(zhǎng)期存放使(電子器件的)搶答器損壞,再購(gòu)置的麻煩和及時(shí)性就會(huì)影響活動(dòng)的開(kāi)展,因此設(shè)計(jì)了本搶答器。 本設(shè)計(jì)是以八路搶答為基本理念??紤]到依需設(shè)定限時(shí)回答的功能,利用at89c51單片機(jī)及外圍接口實(shí)現(xiàn)的搶答系統(tǒng),利用單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,將軟、硬件有機(jī)地結(jié)合起來(lái),使得系統(tǒng)能夠正確地進(jìn)行計(jì)時(shí),同時(shí)使數(shù)碼管能夠正確地顯示時(shí)間。關(guān)鍵詞: 單片機(jī);搶答器

2、; 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 either make complicated or low reliability. as a unit, if specialized purchased a v

3、ies 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 activities, so this contest was designed device. this design is 8 vies for basic ideas.

4、 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, software and hardware organically, and makes the system can correctly to the time, at

5、the same time making digital tube can properly shows the time. keywords: microcontroller ;scare-answering device ; at89c51 目 錄摘要英文摘要目錄緒論1第1章 系統(tǒng)設(shè)計(jì)內(nèi)容11.1 系統(tǒng)設(shè)計(jì)根據(jù)11.2 設(shè)計(jì)任務(wù)和要求11.3 設(shè)計(jì)目的2第2章 硬件設(shè)計(jì)22.1 單片機(jī)控制原理22.2 搶答器的原理32.2.1原理及電路總框圖42.3 功能模塊電路52.3.1 晶振復(fù)位及開(kāi)始搶答電路52.3.2 選手搶答鍵(矩陣式鍵盤(pán))62.3.3顯示與顯示驅(qū)動(dòng)電路72.3.4蜂鳴器音頻輸

6、出電路8第3章 軟件設(shè)計(jì)3.1程序設(shè)計(jì)3.1.1 系統(tǒng)流程圖103.1.2 顯示搶答違規(guī)流程圖113.1.3 搶答成功流程圖113.2 程序代碼11第4章 系統(tǒng)功能說(shuō)明124.1 系統(tǒng)的調(diào)試介紹124.2軟件調(diào)試過(guò)程12參考文獻(xiàn)14致謝15附錄一 程序代碼1625緒 論單片機(jī)作為計(jì)算機(jī)的一個(gè)重要分支,其應(yīng)用范圍很廣,發(fā)展很快,它已成為現(xiàn)代電子技術(shù)、計(jì)算機(jī)應(yīng)用、網(wǎng)絡(luò)、通信、自動(dòng)控制與計(jì)量測(cè)試、數(shù)據(jù)采集與信號(hào)處理等技術(shù)中日益普及的一項(xiàng)新興技術(shù),應(yīng)用范圍十分廣泛。從事單片機(jī)應(yīng)用與開(kāi)發(fā),不僅為將來(lái)可能從事該方面的開(kāi)發(fā)打下基礎(chǔ),另一方面,由于單片機(jī)作為微型計(jì)算機(jī)的一種,麻雀雖小,五臟俱全,可以把它當(dāng)作微

7、型計(jì)算機(jī)的一個(gè)簡(jiǎn)化模型來(lái)看待,學(xué)習(xí)單片機(jī)可以加深對(duì)微型計(jì)算機(jī)工作原理的理解,更加清楚計(jì)算機(jī)的脈絡(luò)。同時(shí),提供了一個(gè)實(shí)際應(yīng)用手段。21世紀(jì),是一個(gè)信息技術(shù)飛速發(fā)展的時(shí)代,智力競(jìng)賽是一種形式比較活潑的教育方式,是人們休閑娛樂(lè)生活的一部分。這些競(jìng)賽一方面充實(shí)了人們的娛樂(lè)生活,另一方面也提高了人們努力汲取相關(guān)領(lǐng)域的知識(shí)的興趣。智力競(jìng)賽,也就是幾個(gè)參賽選手之間在規(guī)定的時(shí)間,規(guī)定的地點(diǎn)進(jìn)行相互競(jìng)爭(zhēng)的比賽。 搶答是各種競(jìng)賽常用的一種形式。在搶答賽中,往往要有主持人宣布搶答的開(kāi)始,還要確定是哪個(gè)選手搶到了答題權(quán),具體答題的時(shí)間有時(shí)也要設(shè)定。這些如果僅憑主持人的主觀判斷,很容易出現(xiàn)誤判的情況。因此,在競(jìng)賽中,搶

8、答器就扮演了一個(gè)非常重要的角色。第1章 系統(tǒng)設(shè)計(jì)內(nèi)容1.1系統(tǒng)設(shè)計(jì)依據(jù) 搶答器由計(jì)數(shù)器、寄存器、集成定時(shí)器和譯碼顯示等組合、時(shí)序電路組成??煞譃閾尨痣娐?,定時(shí)電路,報(bào)警電路等幾個(gè)單元部分。每個(gè)單元電路分別可以處理一些搶答競(jìng)賽中的基本問(wèn)題。 本次課程設(shè)計(jì)設(shè)計(jì)的是一個(gè)多路定時(shí)搶答器,是多于兩位選手參賽的一個(gè)搶答器,具有鎖存和顯示功能。同時(shí)由主持人控制系統(tǒng)的清零和搶答的開(kāi)始。搶答開(kāi)始后,若有任何一名選手按動(dòng)搶答按鈕,搶答器就會(huì)顯示該選手編號(hào)直至系統(tǒng)被主持人清零,并有揚(yáng)聲器發(fā)出提示,同時(shí)其他人再搶答就無(wú)效了。此次設(shè)計(jì)的搶答器還有自動(dòng)定時(shí)功能,主持人可以設(shè)定選手答題的時(shí)間。當(dāng)主持人啟動(dòng)“開(kāi)始”鍵后,定時(shí)

9、器會(huì)自動(dòng)減計(jì)時(shí),這個(gè)會(huì)顯示在顯示器上。選手只有在搶答時(shí)間內(nèi)搶答才有效,若在答題時(shí)間內(nèi)沒(méi)有選手答題,時(shí)間到時(shí),報(bào)警電路就會(huì)發(fā)出警報(bào)亮燈并且禁止搶答。1.2設(shè)計(jì)任務(wù)和要求設(shè)計(jì)一個(gè)八路搶答器要求:(1)設(shè)計(jì)出硬件電路; (2)設(shè)計(jì)出軟件編程方法,并寫(xiě)出源代碼; (3)用proteus進(jìn)行仿真; (4)論文格式要符合學(xué)院的統(tǒng)一規(guī)定,結(jié)構(gòu)要合符邏輯,表達(dá)要得體。1.3 設(shè)計(jì)目的通過(guò)設(shè)計(jì)學(xué)習(xí)單片機(jī)最小系統(tǒng)的基本設(shè)計(jì)方法,掌握單片機(jī)應(yīng)用系統(tǒng)的開(kāi)發(fā)調(diào)試過(guò)程。(1)學(xué)習(xí)單片機(jī)開(kāi)發(fā)工具功能、特點(diǎn)和使用方法。(2)學(xué)會(huì)單片機(jī)控制系統(tǒng)程序的編制和調(diào)試方法。(3)設(shè)計(jì)單片機(jī)搶答器硬件電路,繪制出電路原理圖。(4)編制并

10、調(diào)試出鍵盤(pán)掃描程序和顯示驅(qū)動(dòng)程序。(5)掌握單片機(jī)定時(shí)器的基本用法,編制出定時(shí)器的中斷程序。第2章 硬件設(shè)計(jì)2.1 單片機(jī)控制原理單片機(jī)(scm)是單片微型計(jì)算機(jī)(single chip microcomputer)的簡(jiǎn)稱。它是把中央處理器cpu、隨機(jī)存儲(chǔ)器ram、只讀存儲(chǔ)器rom、i/o接口電路、定時(shí)/計(jì)數(shù)器以及輸入/輸出適配器都集成在一塊芯片上,構(gòu)成一個(gè)完整的微型計(jì)算機(jī)。它的最大優(yōu)點(diǎn)是體積小,可放在儀表內(nèi)部;但存儲(chǔ)量小,輸入/輸出適配器簡(jiǎn)單,功能較低。目前,單片機(jī)在民用和工業(yè)測(cè)控領(lǐng)域得到最廣泛的應(yīng)用,早已深深地融入人們的生活中。簡(jiǎn)單的說(shuō),用單片機(jī)系統(tǒng)來(lái)設(shè)計(jì)搶答器,實(shí)現(xiàn)兩組的搶答時(shí)間即使是相

11、差幾微秒,也可分辨出哪組優(yōu)先答題。p0端口(p0.0-p0.7):p0口為一個(gè)8位漏級(jí)開(kāi)路雙向i/o口,每腳可吸收8ttl門(mén)電流。當(dāng)p1口的管腳第一次寫(xiě)1時(shí),被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時(shí),p0 口作為原碼輸入口,當(dāng)fiash進(jìn)行校驗(yàn)時(shí),p0輸出原碼,此時(shí)p0外部必須被拉高。p1端口(p1.0-p1.7):p1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門(mén)電流。p1口管腳寫(xiě)入1后,被內(nèi)部上拉為高電平,可用作輸入,p1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和

12、校驗(yàn)時(shí),p1口作為第八位地址接收。 p2端口(p2.0-p2.7):p2口為一個(gè)內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個(gè)ttl門(mén)電流,當(dāng)p2口被寫(xiě)“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。作為輸入時(shí),p2口的管腳被外部拉低,將輸出電流,這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。p3端口(p3.0-p3.7):p3口管腳是一個(gè)帶有內(nèi)

13、部上拉電阻的8位的雙向i/o端口,可接收輸出4個(gè)ttl門(mén)電流。當(dāng)p3口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入端時(shí),由于外部下拉為低電平,p3口將輸出電流(ill)。2.2 搶答器的原理數(shù)碼管及上拉電阻at89c51復(fù)位電路搶答器計(jì)時(shí)時(shí)間調(diào)整及語(yǔ)音報(bào)警獨(dú)立式按鍵鍵盤(pán)電子智能搶答計(jì)分器在搶答過(guò)程中,為了知道哪一組或哪一位選手先答題,必須要設(shè)計(jì)一個(gè)系統(tǒng)來(lái)完成這個(gè)任務(wù)。為了完成這個(gè)任務(wù)設(shè)計(jì)時(shí)系統(tǒng)能顯示搶答組號(hào)、各組計(jì)分并能計(jì)分顯示以及比賽結(jié)束時(shí)能發(fā)出報(bào)警聲三個(gè)要求;電子智能搶答計(jì)分器主要是由硬件部分和軟件部分構(gòu)成,硬件和軟件分開(kāi)設(shè)計(jì);系統(tǒng)綜框圖如下:圖2.2系統(tǒng)綜框圖2.2.1 原

14、理及電路總框圖所需元件:該系統(tǒng)的核心器件是at89c51,其外部接上復(fù)位電路、上拉電阻、數(shù)碼管、按鈕及揚(yáng)聲器。元件為:晶體振蕩管x1,電容c1、c2、c3,電阻rp1,p3.0和p3.1有裁判控制分別是搶答停止和開(kāi)始鍵;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)的對(duì)個(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為蜂鳴器控制口。智能搶答器用單片機(jī)來(lái)設(shè)計(jì)制作完成,由于其功能的實(shí)現(xiàn)主要通過(guò)軟件編程來(lái)完成,

15、采用單片機(jī)at89c51,它是低功耗、高性能的cmos型8位單片機(jī)。片內(nèi)帶有4kb的flash存儲(chǔ)器,并允許在系統(tǒng)內(nèi)改寫(xiě)或用編程器編程。該智力競(jìng)賽搶答器的準(zhǔn)確度很高,其誤差主要由晶振自身的誤差所造成。at89c51單片機(jī)內(nèi)部由cpu、4kb的fperom ,128b的ram,兩個(gè)16位的定時(shí)/計(jì)數(shù)器t0和t1,4個(gè)8位的i/o端p0、p1、p2、p3等組成。單片微機(jī)內(nèi)部最核心的部分是cpu。cpu主要功能是產(chǎn)生各種控制信號(hào),控制存儲(chǔ)器、輸入/輸出端口的數(shù)據(jù)傳輸、數(shù)據(jù)的算術(shù)運(yùn)算、邏輯運(yùn)算以及位操作處理等,cpu按其功能可分為運(yùn)算器和控制器兩部分。控制器由程序計(jì)數(shù)器pc、指令儲(chǔ)存器、指令譯碼器、實(shí)

16、時(shí)控制與條件轉(zhuǎn)移邏輯電路等組成。它的功能是對(duì)來(lái)自存儲(chǔ)器中的指令進(jìn)行譯碼,通過(guò)實(shí)時(shí)控制電路,在規(guī)定的時(shí)刻發(fā)出各種操作所需的內(nèi)部和外部的控制信號(hào),使各部分協(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ì)的任務(wù)貫徹始終,到中后期基本上都是軟件設(shè)計(jì)任務(wù),隨著集成電路技術(shù)的飛速發(fā)展,各種功

17、能很強(qiáng)的芯片不斷出現(xiàn),使硬件電路的集成度越來(lái)越高,硬件設(shè)計(jì)的工作量在整個(gè)項(xiàng)目中的所占的比重逐漸下降。為使硬件電路設(shè)計(jì)盡可能合理,應(yīng)注意以下幾方面7:(1) 盡可能采用功能強(qiáng)的芯片,以簡(jiǎn)化電路,功能強(qiáng)的芯片可以代替若干普通芯片,隨著生產(chǎn)工藝的提高,新型芯片的的價(jià)格不斷下降,并不一定比若干普通芯片價(jià)格的總和高。(2) 留有設(shè)計(jì)余地。在設(shè)計(jì)硬件電路時(shí),要考慮到將來(lái)修改擴(kuò)展的方便。因?yàn)楹苌儆幸诲N定音的電路設(shè)計(jì),如果現(xiàn)在不留余地,將來(lái)可能要為一點(diǎn)小小的修改或擴(kuò)展而被迫進(jìn)行全面返工。(3) 程序空間,選用片內(nèi)程序空間足夠大的單片機(jī),本設(shè)計(jì)采用at89c51單片機(jī)。(4) ram空間,at89c51內(nèi)部ra

18、m不多,當(dāng)要增強(qiáng)軟件數(shù)據(jù)處理功能時(shí),往往覺(jué)得不足。如果系統(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)升級(jí)換代。只要在硬件電路設(shè)計(jì)初期考慮到這一點(diǎn),就應(yīng)該為系統(tǒng)將來(lái)升級(jí)留足夠的ram空間,哪怕多設(shè)計(jì)一個(gè)ram的插座,暫不插芯片也好。(5) i/o端口:在樣機(jī)研制出來(lái)后進(jìn)行現(xiàn)場(chǎng)試用時(shí),往往會(huì)發(fā)現(xiàn)一些被忽視的問(wèn)題,而這些問(wèn)題不是靠單純的軟件措施來(lái)解決的。如

19、有些新的信號(hào)需要采集,就必須增加輸入檢測(cè)端;有些物理量需要控制,就必須增加輸出端。如果在硬件電路設(shè)計(jì)就預(yù)留出一些i/o端口,雖然當(dāng)時(shí)空著沒(méi)用,那么用的時(shí)候就派上用場(chǎng)了。2.3.1晶振復(fù)位及開(kāi)始搶答電路晶振的頻率為12mhz,提供89c51的時(shí)鐘脈沖使89c51工作,復(fù)位電路是單片機(jī)初始化,使單片機(jī)重新開(kāi)始執(zhí)行程序。當(dāng)復(fù)位開(kāi)關(guān)按下rst由低電平變?yōu)楦唠娖?,則程序從頭開(kāi)始執(zhí)行,在此次課程設(shè)計(jì)電路中當(dāng)一個(gè)問(wèn)題結(jié)束主持人后按下復(fù)位開(kāi)關(guān)后進(jìn)行下一題的準(zhǔn)備。圖2.3.1 晶振復(fù)位電路圖2.3.1開(kāi)始搶答電路2.3.2 選手搶答鍵(矩陣式鍵盤(pán))89c51的p1口做一個(gè)為選手搶答的輸入按鍵引腳,p1.0至p1

20、.7輪流輸出低電位,給每一個(gè)選手編號(hào)1至8,當(dāng)選手按下按鈕時(shí),p1口每個(gè)端口的電平變化從p1口輸入,經(jīng)單片機(jī)處理后從p0輸出由數(shù)碼管顯示搶答者編號(hào)。圖2.3.2 選手搶答電路2.3.3 顯示與顯示驅(qū)動(dòng)電路此電路包括顯示和驅(qū)動(dòng),顯示采用數(shù)碼管,驅(qū)動(dòng)用p2口, 違規(guī)者編號(hào)、搶答30秒倒計(jì)時(shí)、正常搶答者編號(hào)和回答問(wèn)題時(shí)間60秒倒計(jì)時(shí),數(shù)碼管采用動(dòng)態(tài)顯示。驅(qū)動(dòng)電路p2口,查詢顯示程序利用p0口做段選碼口輸出p2低3位做位選碼輸出,當(dāng)為低電平則能驅(qū)動(dòng)數(shù)碼管使其顯示數(shù)字。在+5v電壓下接10k的電阻,保證正常壓降。圖2.3.3 顯示與顯示驅(qū)動(dòng)電路2.3.4蜂鳴器音頻輸出電路圖2.3.4蜂鳴器音頻輸出電路通

21、過(guò)控制不同頻率的矩形脈沖來(lái)控制蜂鳴器發(fā)聲。此次課程設(shè)計(jì)中只需要一些簡(jiǎn)單的提示聲音和稍微顯眼的燈控,有搶答違規(guī),開(kāi)始搶答,搶答時(shí)間結(jié)束和回答時(shí)間到得提示聲和亮燈提醒。第3章 軟件設(shè)計(jì)3.1程序設(shè)計(jì)軟件任務(wù)分析和硬件電路設(shè)計(jì)結(jié)合進(jìn)行,哪些功能由硬件完成,哪些任務(wù)由軟件完成,在硬件電路設(shè)計(jì)基本定型后,也就基本上決定下來(lái)了9。軟件任務(wù)分析環(huán)節(jié)是為軟件設(shè)計(jì)做一個(gè)總體規(guī)劃。從軟件的功能來(lái)看可分為兩大類:一類是執(zhí)行軟件,它能完成各種實(shí)質(zhì)性的功能,如測(cè)量,計(jì)算,顯示,打印,輸出控制和通信等,另一類是監(jiān)控軟件,它是專門(mén)用來(lái)協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系,在系統(tǒng)軟件中充當(dāng)組織調(diào)度角色的軟件。這兩類軟件的設(shè)計(jì)方法各有

22、特色,執(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ù)類型問(wèn)題也一并規(guī)劃好。各執(zhí)行模塊規(guī)劃好后,就可以監(jiān)控程序了。首先根據(jù)系統(tǒng)功能和鍵盤(pán)設(shè)置選擇一種最適合的監(jiān)控程序結(jié)構(gòu)。相對(duì)來(lái)講,執(zhí)行模塊任務(wù)明確單純,比較容易編程,而監(jiān)控程序較易出問(wèn)題。這如同當(dāng)一名操作工人比較容易,而當(dāng)一個(gè)廠長(zhǎng)就比較難了。軟件任務(wù)分析的另一個(gè)內(nèi)容是如何安排監(jiān)控軟件和各執(zhí)行模塊。整個(gè)系統(tǒng)軟件可分為后臺(tái)程序(背景程序)和前臺(tái)程序。后臺(tái)程序指主程序及其調(diào)用的子程序,這類程序?qū)?shí)時(shí)

23、性要求不是太高,延誤幾十ms甚至幾百ms也沒(méi)關(guān)系,故通常將監(jiān)控程序(鍵盤(pán)解釋程序),顯示程序和打印程序等與操作者打交道的程序放在后臺(tái)程序中執(zhí)行;而前臺(tái)程序安排一些實(shí)時(shí)性要求較高的內(nèi)容,如定時(shí)系統(tǒng)和外部中斷(如掉電中斷)。也可以將全部程序均安排在前臺(tái),后臺(tái)程序?yàn)椤笆瓜到y(tǒng)進(jìn)入睡眠狀態(tài)”,以利于系統(tǒng)節(jié)電和抗干擾。智力競(jìng)賽搶答器要求有記憶功能,一次時(shí)間設(shè)置完,復(fù)位后不需重新進(jìn)行時(shí)間設(shè)定,通過(guò)鍵盤(pán)掃描輸出按鍵信息,再通過(guò)單片機(jī)將它轉(zhuǎn)換成能在七段數(shù)碼管上顯示字型碼。當(dāng)搶答完畢時(shí),會(huì)在數(shù)碼管上顯示搶答者數(shù)字號(hào)碼提示以表示搶答成功,同時(shí)顯示其分?jǐn)?shù),分?jǐn)?shù)的加減可有裁判手動(dòng)進(jìn)行。采取獨(dú)立式鍵盤(pán),可以實(shí)現(xiàn)8路搶答。

24、在顯示時(shí)使用的是七段數(shù)碼管顯示在本設(shè)計(jì)中根據(jù)實(shí)際情況采用的是動(dòng)態(tài)顯示方法。臂并通過(guò)查表發(fā)將其在數(shù)碼管上顯示出來(lái),其中p1口為字型碼輸入端,p2口低6位為字選段輸入端。通過(guò)查表將字型碼送給7段數(shù)碼管顯示的數(shù)字。軟件去抖動(dòng),如果“開(kāi)始鍵”按下就向下執(zhí)行,否則就跳到開(kāi)始。采用發(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í)會(huì)顯示現(xiàn)在設(shè)定的搶答時(shí)間或回答時(shí)間值,如想加一秒按一下加1s鍵,如果想減一秒按一下-1s鍵,時(shí)間led上會(huì)顯示改變后的時(shí)間,調(diào)整范圍為0s99s, 0s時(shí)再減1s會(huì)跳到99,99s時(shí)再加1s會(huì)變到0s。 主持人按搶

25、答開(kāi)始鍵,會(huì)有提示音,并立刻進(jìn)入搶答倒計(jì)時(shí)(預(yù)設(shè)30s搶答時(shí)間),如有選手搶答,會(huì)有提示音,并會(huì)顯示其號(hào)數(shù)并立刻進(jìn)入回答倒計(jì)時(shí)(預(yù)設(shè)60s搶答時(shí)間),不進(jìn)行搶答查詢,所以只有第一個(gè)按搶答的選手有效。倒數(shù)時(shí)間到小于5s會(huì)每秒響一下提示音。 如倒計(jì)時(shí)期間,主持人想停止倒計(jì)時(shí)可以隨時(shí)按停止按鍵,系統(tǒng)會(huì)自動(dòng)進(jìn)入準(zhǔn)備狀態(tài),等待主持人按搶答開(kāi)始進(jìn)入下次搶答計(jì)時(shí)。 如果主持人未按搶答開(kāi)始鍵,而有人按了搶答按鍵,犯規(guī)搶答,led上不斷閃爍ff和犯規(guī)號(hào)數(shù)并響個(gè)不停,直到按下停止 鍵為止。 3.1.1 系統(tǒng)流程圖調(diào)用搶答者獲得的回答問(wèn)題子程序60秒到中斷返回開(kāi) 始初始化讀鍵盤(pán)是否有鍵按下中斷條件是否滿足調(diào)用顯示搶

26、答違規(guī)并報(bào)警子程序進(jìn)入中斷程序開(kāi)中斷并響聲提示設(shè)定定時(shí)器值并啟動(dòng)定時(shí)器30秒搶答時(shí)間并顯示并顯示調(diào)用讀鍵子程序?yàn)檠訒r(shí)程序是否有鍵按下圖3.1.1系統(tǒng)流程圖3.1.2顯示搶答違規(guī)流程圖開(kāi) 始報(bào)警一直提示顯示違規(guī)者編號(hào)圖3.1.2顯示搶答違規(guī)流程圖3.1.3搶答成功流程圖開(kāi) 始響聲提示設(shè)置定時(shí)器初值并啟動(dòng)顯示搶答者后30秒倒計(jì)時(shí)60秒答問(wèn)題時(shí)間到并響聲提示ret圖3.1.3搶答成功流程圖3.2 程序代碼(見(jiàn)附錄一)第4章 調(diào)試功能說(shuō)明4.1 系統(tǒng)的調(diào)試介紹系統(tǒng)調(diào)試包括硬件調(diào)試和軟件調(diào)試,而且兩者是密不可分的。我們?cè)O(shè)計(jì)好的硬件電路和軟件程序,只有經(jīng)過(guò)聯(lián)合調(diào)試,才能驗(yàn)證其正確性;軟硬件的配人情況以及是

27、否達(dá)到設(shè)計(jì)任務(wù)的要求,也只有經(jīng)過(guò)調(diào)試,才能發(fā)現(xiàn)問(wèn)題并加以解決、完善,最終開(kāi)發(fā)成實(shí)用產(chǎn)品。硬件調(diào)試分單元電路調(diào)試和聯(lián)機(jī)調(diào)試,單元電路試驗(yàn)在硬件電路設(shè)計(jì)時(shí)已經(jīng)進(jìn)行,這里的調(diào)試只是將其制成印刷電路板后試驗(yàn)電路是否正確,并排除一些加工工藝性錯(cuò)誤(如錯(cuò)線、開(kāi)路、短路等)。這種調(diào)試可單獨(dú)模擬進(jìn)行,也可通過(guò)開(kāi)發(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ī)開(kāi)發(fā)裝置上進(jìn)行,可根據(jù)所調(diào)程序功能塊的入口參量初值編制一個(gè)特殊的程序段,并連同被調(diào)程序功能塊一起在開(kāi)發(fā)裝置上運(yùn)行;也可配合對(duì)應(yīng)硬件電路單獨(dú)運(yùn)行某程序功能塊,然后檢查是否正

28、確,如果執(zhí)行結(jié)果與預(yù)想的不一致,可以通過(guò)單步運(yùn)行或設(shè)置斷點(diǎn)的方法,查出原因并加以改正,直到運(yùn)行結(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)中可能會(huì)有某些支路上的程序、功能塊因受條件制約而得不到相應(yīng)的輸入?yún)?shù),這時(shí),調(diào)試人員應(yīng)創(chuàng)造條件進(jìn)行模擬調(diào)試。在聯(lián)調(diào)中如發(fā)現(xiàn)硬件問(wèn)題也應(yīng)及時(shí)修正,直到單片機(jī)系統(tǒng)的軟件、硬件全部調(diào)試成功為止。系統(tǒng)調(diào)試完成后,還要進(jìn)行一段時(shí)間的試運(yùn)行,從而檢驗(yàn)系統(tǒng)的穩(wěn)定性和

29、抗干擾能力,驗(yàn)證系統(tǒng)功能是否達(dá)到設(shè)計(jì)要求,是否達(dá)到預(yù)期的效果。4.2 軟件調(diào)試過(guò)程首先對(duì)所用軟件及使用方法介紹如下:1、keil是德國(guó)開(kāi)發(fā)的一個(gè)51單片機(jī)開(kāi)發(fā)軟件平臺(tái),最開(kāi)始只是一個(gè)支持c語(yǔ)言和匯編語(yǔ)言的編譯器軟件。后來(lái)隨著開(kāi)發(fā)人員的不斷努力以及版本的不斷升級(jí),使它已經(jīng)成為了一個(gè)重要的單片機(jī)開(kāi)發(fā)平臺(tái),不過(guò)keil的界面并不是非常復(fù)雜,操作也不是非常困難,很多工程師的開(kāi)發(fā)的優(yōu)秀程序都是在keil的平臺(tái)上編寫(xiě)出來(lái)的??梢哉f(shuō)它是一個(gè)比較重要的軟件,熟悉他的人很多很多,用戶群極為龐大,要遠(yuǎn)遠(yuǎn)超過(guò)偉福等廠家軟件用戶群,操作有不懂的地方只要找相關(guān)的書(shū)看看,到相關(guān)的單片機(jī)技術(shù)論壇問(wèn)問(wèn),很快就可以掌握它的基本

30、使用了。2、 總調(diào),即應(yīng)用軟件的鏈接調(diào)試,程序固化,軟、硬件結(jié)合的應(yīng)用系統(tǒng)軟硬件聯(lián)合仿真系統(tǒng)由一個(gè)硬件執(zhí)行環(huán)境和一個(gè)軟件執(zhí)行環(huán)境組成,通常軟件環(huán)境和硬件環(huán)境都有自己的除錯(cuò)和控制界面,keil與proteus的整合調(diào)試可以實(shí)現(xiàn)系統(tǒng)的總調(diào),在該系統(tǒng)中,keil作為軟件調(diào)試界面,proteus作為硬件仿真和調(diào)試界面,下面說(shuō)一下如何在keil中調(diào)用proteus進(jìn)行mcu外圍器件的仿真。(1)安裝keil 與 proteus。(2)把安裝proteus models目錄下 vdm51.dll文件復(fù)制到keil安裝目錄的 c51bin目錄中。(3)修改keil安裝目錄下 tools.ini文件,在c51

31、字段加入tdrv5=binvdm51.dll (proteus vsm monitor-51 driver),保存。(注意:不一定要用tdrv5,根據(jù)原來(lái)字段選用一個(gè)不重復(fù)的數(shù)值就可以了。引號(hào)內(nèi)的名字隨意)3、打開(kāi)proteus,畫(huà)出相應(yīng)電路,在proteus的debug菜單中選中use remote debug monitor4、在keil中編寫(xiě)匯編語(yǔ)言程序。5、進(jìn)入keil的project菜單option for target 工程名。在debug選項(xiàng)中右欄上部的下拉菜單選中 proteus vsm monitor-51 driver。6、在keil中進(jìn)行debug吧,同時(shí)在proteus

32、中查看直觀的結(jié)果(如lcd顯示)這樣就可以像使用仿真器一樣調(diào)。參考文獻(xiàn)資料1 張友德. 單片機(jī)原理及應(yīng)用. 機(jī)械工業(yè)出版社 2000年.2 張光飛. 單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo). 北京航天航空大學(xué)出版社 2003年. 3 雷伏蓉. 51單片機(jī)常用模塊設(shè)計(jì)查詢手冊(cè)清華大學(xué)出版社 2005年.4 張俊謨. 單片機(jī)初級(jí)教程. 北京航天航空大學(xué)出版社 2000年.5 何宗彬 8位單片機(jī)開(kāi)發(fā)技術(shù)與規(guī)范 機(jī)械工業(yè)出版社 1999年6 楊居民 單片機(jī)課程設(shè)計(jì)指導(dǎo)清華大學(xué)出版社 2000年7 何立民 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì) 北京航天航空大學(xué)出版社 2000年致 謝我的畢業(yè)論文設(shè)計(jì)能夠順利的完成,是導(dǎo)師老師悉心指導(dǎo)的結(jié)

33、果。在開(kāi)始的時(shí)候,李老師給了我整個(gè)制作的大概框架和思路,引導(dǎo)我該如何去做。在我制作的過(guò)程中,每次遇到不懂或不會(huì)的地方,李老師都會(huì)給我一一的講解,使我每次都有一種茅塞頓開(kāi)的感覺(jué)。李老師以其嚴(yán)謹(jǐn)求實(shí)的治學(xué)態(tài)度,高度的敬業(yè)精神,兢兢業(yè)業(yè)的工作作風(fēng)和大膽創(chuàng)新的進(jìn)取精神對(duì)我產(chǎn)生重要的影響。在此我向李老師表示感謝。這次的畢業(yè)設(shè)計(jì)我可以順利如期的完成,使我有了很大的信心,讓我了解專業(yè)知識(shí)的同時(shí)也對(duì)本專業(yè)的發(fā)展前景充滿信心。在本次設(shè)計(jì)中取得的點(diǎn)滴進(jìn)步,都來(lái)自于各方面的幫助、指導(dǎo),感謝大家!畢業(yè)設(shè)計(jì)除了針對(duì)我們理論課程掌握的同時(shí),也是對(duì)我們大學(xué)生進(jìn)行綜合性實(shí)踐訓(xùn)練的過(guò)程,是對(duì)整個(gè)專業(yè)知識(shí)的綜合,可以使我們的理論

34、知識(shí)與實(shí)踐緊密的相結(jié)合,鍛煉我們獨(dú)立思考和解決實(shí)際問(wèn)題的能力。在這次畢業(yè)設(shè)計(jì)的過(guò)程中,使我學(xué)到許多以前在課本和課堂上無(wú)法學(xué)到的知識(shí)及技術(shù)能力,特別是在查找資料的過(guò)程中體會(huì)到許多的樂(lè)趣,從而豐富了自己。在設(shè)計(jì)的過(guò)程中,自己能在指導(dǎo)老師的提點(diǎn)下獨(dú)立的分析問(wèn)題、找出問(wèn)題并解決問(wèn)題,同時(shí)能夠更加用心的思考每個(gè)細(xì)節(jié),把專業(yè)知識(shí)和實(shí)際操作更好的結(jié)合起來(lái),使自己能夠自每天的學(xué)習(xí)過(guò)程中都有新的收獲。附錄一搶答器程序ok equ 20h;搶答開(kāi)始標(biāo)志位ring equ 22h;響鈴標(biāo)志位org 0000hajmp mainorg 0003hajmp int0suborg 000bhajmp t0intorg 0

35、013hajmp 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 ringsetb tr1setb tr0;一開(kāi)始就運(yùn)行定時(shí)器,以開(kāi)始顯示f

36、ff.如果想重新計(jì)數(shù),重置th1/tl1就可以了;=查詢程序=start: mov r5,#0bhmov r4,#0bhmov r3,#0bhacall display;未開(kāi)始搶答時(shí)候顯示fffjb p3.0,next;dddddddacall delayjb p3.0,next;去抖動(dòng),如果開(kāi)始鍵按下就向下執(zhí)行,否者跳到非法搶答查詢acall bark;按鍵發(fā)聲mov a,r1mov r6,a;送r1-r6,因?yàn)閞1中保存了搶答時(shí)間setb ok;搶答標(biāo)志位,用于count只程序中判斷是否查詢搶答mov r7,#01h ;讀搶答鍵數(shù)據(jù)信號(hào)標(biāo)志,這里表示只讀一次有用信號(hào)mov r3,#0ah;

37、搶答只顯示計(jì)時(shí),滅號(hào)數(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,#03hajmp errorfalse4: mov r3,#04h

38、ajmp 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 p3.5,dec0;p3.5為-1s鍵,如按下跳到decojn

39、b 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 delay1ajmp int0subback0: reti;=i

40、nt1(回答時(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 r2acall delay1ajmp int1subsetr2:

41、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 31h,b;個(gè)位存于(31h)mov r5,30h;取十位mov

42、 r4,31h;取個(gè)位mov a,r6subb a,#07hjnc larger;大于5s跳到larger,小于等于5s會(huì)提醒mov a,r0cjne a,#0ah,full;1s中0.5s向下運(yùn)行clr ringajmp checkfull: cjne a,#14h,check;下面是1s的情況,響并顯示號(hào)數(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)行,否者跳到查停/顯示dec r6;計(jì)時(shí)一秒r6自動(dòng)減1mov

43、r0,#00hcheck: jnb p3.1,quit;如按下停止鍵退出jnb ok,checkk ;只在回答倒計(jì)時(shí)才有效ajmp nexttcheckk:jnb p3.0,repeat ;判斷是否使用錦囊nextt: acall displayjb ok,accout;如果是搶答倒計(jì)時(shí),如是則查詢搶答,否者跳過(guò)查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用)ajmp recountaccout:mov a,36hjnb acc.0,true1jnb acc.1,true2jnb acc.2,true3jnb acc.3,true4jnb acc.4,true5jnb acc.5,true6 jnb acc

44、.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:acall barkmov a,r2mov r6,amov r

45、3,#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ī)號(hào)數(shù)暫存與(34h)here: mov a,r0cjne a,#06h,fl

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論