多路搶答器的設(shè)計_第1頁
多路搶答器的設(shè)計_第2頁
多路搶答器的設(shè)計_第3頁
多路搶答器的設(shè)計_第4頁
多路搶答器的設(shè)計_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目錄摘要2一、緒論21、單片機搶答器的背景22、單片機的應(yīng)用3 3、搶答器的應(yīng)用4二、方案設(shè)計41、總方案設(shè)計4 2、基本功能5 3、擴展功能5三、硬件電路設(shè)計61、單片機的選擇62、各模塊設(shè)計8 2.1、單片機最小系統(tǒng)82.2、搶答按鍵電路82.3、顯示器電路92.4、蜂鳴器音頻輸出電路10四、軟件設(shè)計111、程序設(shè)計112、主程序設(shè)計12五、調(diào)試121、仿真測試121.1、初始狀態(tài)仿真121.2、搶答開始仿真131.3、搶答成功仿真131.4、搶答違規(guī)仿真141.5、搶答過時仿真142、仿真結(jié)果分析15六、心得體會15附錄1.程序清單162.硬件圖233.參考文獻23基于單片機的多路搶答器

2、設(shè)計硬件設(shè)計摘要此次設(shè)計使用AT89C51單片機為核心控制元件,設(shè)計一個簡易的搶答器,與數(shù)碼管、報警器等構(gòu)成八路搶答器,利用了單片機的延時電路、按鍵復(fù)位電路、時鐘電路、定時/中斷電路等。設(shè)計的搶答器具有實時顯示搶答選手的號碼和搶答時間的特點,而復(fù)位電路,則使其能再開始新的一輪答題和比賽,與此同時還利用匯編語言編程,使其能夠?qū)崿F(xiàn)一些基本的功能。本次設(shè)計系統(tǒng)實用性強、判斷精確、操作簡單、擴展功能強等。它的功能實現(xiàn)是比賽開始,主持人讀完題之后按下總開關(guān),則計時開始,此時數(shù)碼管開始進行1s的減計時,直到有一個選手按下?lián)尨鸢粹o,這時對應(yīng)的數(shù)碼管上會顯示出該選手的編號和搶答所用的時間,同時該選手的報警器也

3、會發(fā)出聲音,來提示有人搶答本題。如果在規(guī)定的30s時間內(nèi)沒有選手做出搶答,則此題作廢,即開始重新一輪的搶答。關(guān)鍵詞:單片機、搶答器、數(shù)碼管、報警器一、 緒論1、單片機搶答器的背景 二十世紀(jì)跨越了三個“電”的時代,即電氣時代、電子時代和現(xiàn)已進入的電腦時代。這種電腦,通常是指個人計算機,簡稱PC機。它由主機、鍵盤、顯示器等組成。還有一類計算機,大多數(shù)人卻不怎么熟悉。這種計算機就是把智能賦予各種機械的單片機(亦稱微控制器)。單片機的最小系統(tǒng)只用了一片集成電路,即可進行簡單運算和控制。因為它體積小,通常都藏在被控機械的“肚子”里。它在整個裝置中,起著有如人腦的作用,要是它出了毛病,那么整個裝

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

5、機編程來設(shè)計搶答器,可以使以上問題得以解決,即使兩組的搶答時間相差幾微秒,也能輕松的分辨出哪一組(或哪個選手)先搶答到題的。本文主要介紹了搶答器的工作原理及設(shè)計,以及它的實際用途。2、單片機的應(yīng)用單片機廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分如下幾個范疇: 1.在智能儀器儀表上的應(yīng)用 單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優(yōu)點,廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。采用單片機控制使得儀器儀表數(shù)字化、智能化

6、、微型化,且功能比起采用電子或數(shù)字電路更加強大。例如精密的測量設(shè)備(功率計,示波器,各種分析儀)。 2.在工業(yè)控制中的應(yīng)用 用單片機可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報警系統(tǒng),與計算機聯(lián)網(wǎng)構(gòu)成二級控制系統(tǒng)等。3.在家用電器中的應(yīng)用 可以這樣說,現(xiàn)在的家用電器基本上都采用了單片機控制,從電飯褒、洗衣機、電冰箱、空調(diào)機、彩電、其他音響視頻器材、再到電子秤量設(shè)備,五花八門,無所不在。 4.在計算機網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用 現(xiàn)代的單片機普遍具備通信接口,可以很方便地與計算機進行數(shù)據(jù)通信,為在計算機網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通

7、信設(shè)備基本上都實現(xiàn)了單片機智能控制,從手機,電話機、小型程控交換機、樓宇自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線電對講機等。 5.單片機在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用 單片機在醫(yī)用設(shè)備中的用途亦相當(dāng)廣泛,例如醫(yī)用呼吸機,各種分析儀,監(jiān)護儀,超聲診斷設(shè)備及病床呼叫系統(tǒng)等等。 此外,單片機在工商,金融,科研、教育,國防航空航天等領(lǐng)域都有著十分廣泛的用途。3、搶答器的應(yīng)用隨著我國經(jīng)濟和文化事業(yè)的發(fā)展,在很多的公開競爭場合要求有公正的競爭裁決,諸如證券、股票交易及各種智力競賽等,因此出現(xiàn)了搶答器。搶答器一般是由很多電路組成的,線路復(fù)雜,可靠性不高,功能也比較簡單,特

8、別是當(dāng)搶答路數(shù)很多時,實現(xiàn)起來就更為困難。因此我們設(shè)計了以單片機為核心的新型智能的搶答器,在保留原始搶答器的基本功能的同時又增加了數(shù)碼管顯示電路實現(xiàn)了其它功能。搶答器又稱為第一信號鑒別器,因此能廣泛應(yīng)用于各種知識競賽、文藝活動等場合。二、方案設(shè)計1、總方案設(shè)計搶答器的工作原理是采用單片機最小系統(tǒng)(時鐘電路、復(fù)位電路),用查詢式鍵盤進行搶答。采用動態(tài)顯示組號。主持人按下開始搶答鍵后選手才可以開始搶答。若主持人沒有按下開始搶答按紐(P3.0),而有選手搶答則為搶答違規(guī),此時報警器響起并顯示此選手的組號,需要主持人按下開始搶答開關(guān)重新?lián)尨稹T谥鞒秩税聪麻_始搶答按紐(P3.0),蜂鳴響聲提示,且數(shù)碼管

9、進行30秒倒計時(30秒內(nèi)搶答有效),有選手在30秒搶答,蜂鳴器響聲提示并顯示他的組號,同時開始60秒倒計時(60秒內(nèi)必須回答完問題),60秒后主持人按下復(fù)位開關(guān)為下一題的搶答做準(zhǔn)備;若此30秒內(nèi)沒有選手搶答,則此次搶答作廢,由主持人按下復(fù)位開關(guān)進行下一輪重新?lián)尨?。此次設(shè)計包括單片機最小系統(tǒng)、搶答按鍵模塊(8個按鍵)、顯示模塊、搶答開關(guān)模塊、蜂鳴器音頻輸出模塊。如下圖所示為總體方框圖。圖1 總方框圖2、基本功能   (1)、設(shè)計一個智力競賽搶答器,可同時供8名選手或8個代表隊參加比賽,他們的編號分別為0、1、2、3、4、5、6、7,各用一個搶答按鈕,按鈕的編號與選手的編號相

10、對應(yīng),分別為S0-S7。   (2)、給節(jié)目主持人設(shè)置一個控制開關(guān),用來控制系統(tǒng)的清零(編號顯示數(shù)碼管滅燈)和搶答的開始。   (3)、搶答器具有數(shù)據(jù)鎖存和顯示的功能。搶答開始后,若有選手按動搶答按鈕,編號立即鎖存,并在LED數(shù)碼管行顯示出選手的編號,揚聲器給出音響提示,同時封鎖輸入電路,禁止其他選手搶答。優(yōu)先搶答的選手的編號一直保持到主持人將系統(tǒng)清零為止。 (4)、如果主持人未按"搶答開始"鍵,而有人按了搶答按鍵,此為犯規(guī)搶答,LED上不斷閃爍FF和犯規(guī)報警器并響個不停,直到主持人按下"停止" 鍵為止。3、擴展功

11、能   (1)、搶答器具有定時搶答的功能,且一次搶答的時間可以由主持人設(shè)定(比如30s)。當(dāng)節(jié)目主持人按下“開始”鍵后,要求定時器立即減計時,并用顯示器顯示,同時揚聲器發(fā)出短暫的聲響,聲響持續(xù)時間0.5s左右。   (2)、參賽選手在設(shè)定的時間內(nèi)搶答,搶答有效,定時顯示器停止工作,顯示器上顯示選手的編號和搶答時刻的時間,并保持到主持人將系統(tǒng)清零為止。   (3)、如果定時器搶答的時間已到,卻沒有選手搶答時,本次搶答無效,系統(tǒng)短暫報警,并封鎖輸入電路,禁止選手超時后搶答。 (4)、P3.0為開始搶答,P3.1為停止,p1.0-p1.7為八路搶答輸入, 數(shù)碼

12、管段選P0口,位選P2口低3位,蜂鳴器輸出為P3.6口。P3.2搶答時間調(diào)整,P3.3回答時間調(diào)整,P3.4為時間加1調(diào)整,P3.5為時間減1調(diào)整。三、硬件電路設(shè)計1、單片機的選擇單片機(SCM)是單片微型計算機(Single Chip Microcomputer)的簡稱。它是把中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、I/O接口電路、定時/計數(shù)器以及輸入輸出適配器都集成在一塊芯片上,構(gòu)成一個完整的微型計算機。它的最大優(yōu)點是體積小,可放在儀表內(nèi)部,但存儲量小,輸入輸出適配器簡單,功能較低。目前,單片機在民用和工業(yè)測控領(lǐng)域得到最廣泛的應(yīng)用,早已深深地融入人們的生活中。近年來,AT89

13、C51在我國非常流行,它最大的特點是內(nèi)部有可以多次重復(fù)編程的ROM,并且ROM可以直接用編程器來擦寫,使用起來比較方便。本設(shè)計使用到的元器件包括:AT89C51芯片、數(shù)碼LED顯示器、七段LED數(shù)碼管的譯碼。其中AT89C51是系統(tǒng)的核心,它主要負責(zé)控制各個部分的協(xié)調(diào)工作。在其外圍接上復(fù)位電路,上拉電阻,數(shù)碼管,按鈕以及振蕩器,P1.0-P1.7為搶答輸入鍵接口,數(shù)碼管段選P0口,位選P2口,蜂鳴器輸出為P3.6口。 本課題在選取單片機時,根據(jù)課本上的單片機知識,并且充分借鑒了許多成 形產(chǎn)品使用單片機的經(jīng)驗,結(jié)合自己的實際情況,選擇了Intel公司的89C51單片機。單片機的引腳排列圖如圖2所

14、示:圖2 AT89C51單片機引腳排列各條引腳說明如下:外接晶振引腳XTAL1和XTAL2 XTAL1內(nèi)部振蕩電路反相放大器的輸入端,是外接晶體的一個引腳。當(dāng)采用外部振蕩器時,此引腳接地。 XTAL2內(nèi)部振蕩電路反相放大器的輸出端。是外接晶體的另一端。當(dāng)采用外部振蕩器時,此引腳接外部振蕩源。RST復(fù)位引腳。片外程序存儲器開發(fā)信號引腳(輸出信號)。ALE提供把地址的低字節(jié)鎖存到外部鎖存器,ALE 引腳以不變的頻率(振蕩器頻率的1/6)周期性地發(fā)出正脈沖信號。因此,它可用作對外輸出的時鐘,或用于定時目的。片外程序存儲器使用信號引腳/編程電源輸入引腳。P0.0P0.7:P0口8位口線,第一功能作為通

15、用I/O接口,第二功能作為存儲器擴展時的地址/數(shù)據(jù)復(fù)用口。 P1.0P1.7:P1口8位口線,通用I/O接口無第二功能。 P2.0P2.7:P2口8位口線,第一功能作為通用I/O接口,第二功能作為存儲器擴展時傳送高8位地址。 P3.0P3.7:P3口8位口線,第一功能作為通用I/O接口,第二功能作為單片機的控制信號。2、各模塊設(shè)計2.1、單片機最小系統(tǒng)單片機的最小系統(tǒng)由時鐘電路和復(fù)位電路組成。時鐘電路中電容器C起穩(wěn)定振蕩頻率、快速起振的作用,電容值一般為533pF。本設(shè)計中采用大小為30pF的電容和12MHz的晶振,晶振提供89C51的時鐘脈沖使其工作。復(fù)位電路是使單片機初始化,即使單片機重新

16、開始執(zhí)行程序。當(dāng)復(fù)位開關(guān)按下,RST由高電平變?yōu)榈碗娖剑瑒t程序從頭開始執(zhí)行。通常選擇C=1030F,R=1K,本設(shè)計采用的電容值為22F的電容和電阻為1K的電阻。在此次課程設(shè)計電路中當(dāng)一個問題結(jié)束主持人后按下復(fù)位開關(guān)后進行下一題的準(zhǔn)備。如下圖所示。圖3 單片機最小系統(tǒng)2.2、搶答按鍵電路搶答電路的功能有兩個:一是能分辨出選手按鍵的先后,并鎖存優(yōu)先搶答者的編號,供譯碼顯示電路用;二是要使其他選手的按鍵操作無效。89C51的P1口做一個八路搶答按鍵。P1口P1.0至P1.7對應(yīng)18號8位選手,當(dāng)主持人按下開始按鈕后,電平由高電平變成低電平傳入P3口,此時選手可以開始搶答。此電路中采用10K的電阻起

17、保護作用。當(dāng)某一選手按下?lián)尨鸢粹o后,電平由高電平變成低電平傳入P1口,經(jīng)單片機處理后從P0輸出由數(shù)碼管顯示搶答者編號,揚聲器給出音響提示。當(dāng)有一人搶答以后,由于系統(tǒng)已經(jīng)接收到了一個電平信號,同一時間內(nèi)它將不再接受另外的電平信號,所以其他選手將不好再搶答。如圖所示。圖4 搶答按鍵電路4.3、顯示器電路數(shù)碼管的顯示可以分為兩種:靜態(tài)顯示和動態(tài)顯示。靜態(tài)顯示的段選位和位選位均單獨連接,因此占用的I/O接口多,無法擴展多個數(shù)碼管。而數(shù)碼管動態(tài)顯示接口是單片機中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃的同名端連在一起,當(dāng)單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究

18、竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,通過分時輪流控制各個數(shù)碼管的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。數(shù)碼顯示管分為共陽數(shù)碼管和共陰數(shù)碼管兩種。本設(shè)計采用共陰極數(shù)碼顯示管做顯示電路。由于采用的是共陰的數(shù)碼顯示管,所以只要數(shù)碼管的各引腳為高電平,那么其對應(yīng)的二極管就會發(fā)光。數(shù)碼管要顯示搶答違規(guī)者編號、正常搶答者編號、搶答倒計時和回答問題時間倒計時,數(shù)碼管采用動態(tài)顯示。段選位接P0口,P0口顯示的是搶答者的編號;位選位接P2口,P2口顯示的是搶答倒計時和答題倒計時。電源供電電壓為5V,當(dāng)上拉電阻選用220電阻時灌電流為22mA。不會損壞單片機的I/O

19、口,同時也可以為數(shù)碼顯示管起到限制電流的保護作用。圖5 顯示器電路4.4、蜂鳴器音頻輸出電路蜂鳴器是一種電子電路中常用的發(fā)聲器件,蜂鳴器分為有源蜂鳴器和無源蜂鳴器兩種。提供蜂鳴器發(fā)聲所需要較高的電流,單片機的I/O口驅(qū)動能力有限,而我們知道三極管有電流放大的作用。蜂鳴器音頻輸出電路的功能是用來報警,當(dāng)遇到報警信號時,發(fā)出蜂鳴聲,以此來提醒操作者。本電路通過控制不同頻率的矩形脈沖來控制蜂鳴器發(fā)聲。此次課程設(shè)計中只需要一些簡單的提示聲音,如有搶答違規(guī),開始搶答,搶答時間結(jié)束和回答問題時間到的提示聲音。當(dāng)主持人按下開始按鈕,系統(tǒng)接收到一個低電平,此時蜂鳴器響起;當(dāng)開始搶答后,某一選手按下?lián)尨鸢粹o,系

20、統(tǒng)接收到一個低電平,此時蜂鳴器響起;當(dāng)還未開始搶答就有選手按下?lián)尨鸢粹o后,此時系統(tǒng)將接收到一個矩形脈沖由高低電平交換運行來控制蜂鳴器,是低電平時蜂鳴器響起,高電平時蜂鳴器停止發(fā)聲。圖6 蜂鳴器音頻輸出電路四、軟件設(shè)計1、程序設(shè)計程序設(shè)計(Programming)是指設(shè)計、編制、調(diào)試程序的方法和過程。在進行微機控制系統(tǒng)設(shè)計時,除了系統(tǒng)硬件設(shè)計外,大量的工作就是如何根據(jù)每個生產(chǎn)對象的實際需要設(shè)計應(yīng)用程序。在單片機控制系統(tǒng)中,大體上可分為數(shù)據(jù)處理、過程控制兩個基本類型。數(shù)據(jù)處理包括:數(shù)據(jù)的采集、數(shù)字濾波、標(biāo)度變換等。過程控制程序主要是使單片機按一定的方法進行計算,然后再輸出。為了完成上述任務(wù),在進行

21、軟件設(shè)計時,通常把整個過程分成若干個部分,每一部分叫做一個模塊。把一個程序分成具有多個明確任務(wù)的程序模塊,分別編制、調(diào)試后再把它們連接在一起形成一個完整的程序,這樣的程序設(shè)計方法稱為模塊化程序設(shè)計。所謂“模塊”,實質(zhì)上就是能完成一定功能,并相對獨立的程序段,這種程序設(shè)計方法稱為模塊程序設(shè)計法。模塊程序設(shè)計法的主要優(yōu)點是:(1)單個模塊比起一個完整的程序易編寫、調(diào)試及修改。(2)程序的易讀性好。(3)程序的修改可局部化。(4)模塊可以共存,一個模塊可以被多個任務(wù)在不同條件下調(diào)用。(5)模塊程序允許設(shè)計者分割任務(wù)和利用已有程序,為設(shè)計者提供方便。本系統(tǒng)軟件采用模塊化結(jié)構(gòu),由主程序鍵盤子程序、顯示驅(qū)

22、動子程序等構(gòu)成。2、主程序設(shè)計為了能夠達到搶答的公平、公正、合理,應(yīng)該在主持人發(fā)布搶答命令之前必須先設(shè)定搶答的時間,因而在編開始搶答前的程序得先編寫設(shè)定時間的程序,當(dāng)時間設(shè)好了之后,主持人按開始鍵發(fā)布搶答命令,若在主持人未按開始鍵之前,有選手提前答題,則為違規(guī)搶答,蜂鳴器會發(fā)出警告聲,并在顯示器上顯示犯規(guī)的選手編號。當(dāng)有選手搶答成功,則程序打開定時中斷開始倒計時,然后調(diào)用鍵盤掃描子程序,編寫鍵盤掃描程序,其他選手在此之后按鍵無效。當(dāng)在掃描到有人按下了搶答鍵,馬上關(guān)閉T0、調(diào)用顯示程序、封鎖鍵盤。五、調(diào)試1、仿真測試由keil軟件編譯生成hex文件,將此文件導(dǎo)入單片機中,進行硬件仿真。1.1、初

23、始狀態(tài)仿真主持人未按開始按鈕且選手都處于準(zhǔn)備狀態(tài)時。仿真結(jié)果如圖7。圖7 初始狀態(tài)仿真圖1.2、搶答開始仿真主持人按下開始按鈕后,選手們進入搶答30秒倒計時。仿真結(jié)果如圖8。圖8搶答開始仿真圖1.3、搶答成功仿真主持人按下開始按鈕后,30秒內(nèi)搶答則為成功搶答。仿真圖為3號選手成功搶答,搶答后進入60秒倒計時答題時間。仿真結(jié)果如圖9。圖9 搶答成功仿真圖1.4、搶答違規(guī)仿真若在主持人還未按下開始按鈕時,選手就搶答則為搶答犯規(guī)。圖為4號選手在主持人未宣布開始時就搶答,從而造成犯規(guī)。仿真結(jié)果如圖10。圖10 搶答違規(guī)仿真圖1.5、搶答過時仿真主持人按下開始按鈕后,開始30秒搶答倒計時,如果在這30秒

24、中無人搶答,此次搶答算作失敗,系統(tǒng)又將恢復(fù)為初始狀態(tài)。仿真結(jié)果如圖11圖11 搶答過時仿真圖2、仿真結(jié)果分析通過對電路的仿真,可以看出基于AT89C51單片機控制的搶答器在PROTEUS軟件上可以很好的實現(xiàn)搶答報警、搶答成功顯示、搶答倒計時等一系列功能。當(dāng)仿真開始運行時,各個模塊處于初始狀態(tài)。此時顯示器并無狀態(tài)顯示,但此時搶答鍵和蜂鳴器都處于開啟狀態(tài),若此時有選手按下?lián)尨疰I,則蜂鳴器會發(fā)出報警聲,并且在數(shù)碼管上顯示犯規(guī)的選手的編號。主持人重新按下開始鍵,此時表示搶答正式開始,并且數(shù)碼管顯示30秒倒計時,同時蜂鳴器發(fā)出聲音提醒選手搶答開始了。選手搶答成功,同時也進入到倒計時60秒答題時間。從仿真

25、的測試結(jié)果來看,此設(shè)計還是能比較好的實現(xiàn)預(yù)期的目標(biāo)。六、心得體會 通過本次課程設(shè)計使我對Proteus仿真軟件的使用和匯編語言有了更進一步的了解和掌握。并且在老師的耐心指導(dǎo)和自己的不懈努力下,我終于順利的完成了這次科研實踐。在最初編寫過程中,我也曾經(jīng)因為實踐經(jīng)驗的缺乏失落過,也曾經(jīng)因仿真成功而熱情高漲。特別是Proteus仿真軟件的使用,一開始因為對軟件不熟悉,要慢慢摸索,后來差不多會了以后,畫仿真圖又浪費了我大量的時間,最后在不斷努力中終于把仿真圖畫出來了,最后要把寫好的程序?qū)胄酒?。其實這也是一大難事,由于對于書本上的很多知識還不能靈活運用,尤其是對程序語言的理解和運用,不能夠充分理解每個

26、語句的具體含義,導(dǎo)致編程的程序過于復(fù)雜。但后來通過自己和同學(xué)的仔細的分析,并認真分析了原來已有的代碼和應(yīng)有的硬件后,經(jīng)過多次調(diào)試和測試終于成功了。平心而論,這次課程設(shè)計耗費了我不少的心血。雖說這次課程設(shè)計有點辛苦,但是苦中還是有樂的,和同學(xué)們相互幫助,當(dāng)LED亮了起來,喇叭響了起來是對我這段日子以來最好的告慰。而且對于論文的總體構(gòu)思也有了很多經(jīng)驗,相信自己經(jīng)過這一次的訓(xùn)練與學(xué)習(xí),對于今后的畢業(yè)論文會有更多幫助。同時在查找資料的過程中我也學(xué)到了許多新的知識,在和同學(xué)協(xié)作的過程中增進同學(xué)友誼,使我對團隊精神的積極性和重要性有了更加充分的理解,為以后進入社會奠定了一些基礎(chǔ)。附錄1、程序清單OK EQ

27、U 20H ; 搶答開始標(biāo)志位RING EQU 22H ; 響鈴標(biāo)志位ORG 0000HAJMP MAINORG 0003HAJMP INT0SUBORG 000BHAJMP T0INTORG 0013HAJMP INT1SUBORG 001BHAJMP T1INTORG 0040HMAIN: MOV R1,#30 ; 初設(shè)搶答時間為30s MOV R2,#60 ; 初設(shè)答題時間為60s MOV TMOD,#11H ; 設(shè)置未定時器/模式1 MOV TH0,#0F0H MOV TL0,#0FFH ; 越高發(fā)聲頻率越高,越尖 MOV TH1,#3CH MOV TL1,#0B0H ; 50ms為一

28、次溢出中斷 SETB EA SETB ET0 SETB ET1SETB EX0SETB EX1 ; 允許四個中斷,T0/T1/INT0/INT1 CLR OKCLR RING SETB TR1 SETB TR0 ; 一開始就運行定時器,以開始顯示FFF.如果想重新計數(shù),重置TH1/TL1就可以了;=查詢程序=START: MOV R5,#0BH MOV R4,#0BHMOV R3,#0BHACALL DISPLAY ; 未開始搶答時候顯示FFF JB P3.0,NEXT ACALL DELAY JB P3.0,NEXT ; 去抖動,如果"開始鍵"按下就向下執(zhí)行,否者跳到非法

29、搶答查詢 ACALL BARK ; 按鍵發(fā)聲 MOV A,R1 MOV R6,A ; 送R1->R6,因為R1中保存了搶答時間 SETB OK ; 搶答標(biāo)志位,用于COUNT只程序中判斷是否查詢搶答 MOV R3,#0AH ; 搶答只顯示計時,滅號數(shù) AJMP COUNT ; 進入倒計時程序,"查詢有效搶答的程序"在COUNT里面NEXT: 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,TZ1 JNB P1

30、.7,TZ2 AJMP STARTTZ1: JMP FALSE7TZ2: JMP FALSE8;=非法搶答處理程序=FALSE1: ACALL BARK ; 按鍵發(fā)聲MOV R3,#01H AJMP ERRORFALSE2: ACALL BARKMOV R3,#02H AJMP ERRORFALSE3: ACALL BARKMOV R3,#03H AJMP ERRORFALSE4: ACALL BARKMOV R3,#04H AJMP ERRORFALSE5: ACALL BARKMOV R3,#05H AJMP ERRORFALSE6: ACALL BARKMOV R3,#06H AJMP

31、ERRORFALSE7: ACALL BARKMOV R3,#07H AJMP ERRORFALSE8: ACALL BARKMOV R3,#08H AJMP ERROR;=INT0(搶答時間R1調(diào)整程序)=INT0SUB:MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY ; 先在兩個時間LED上顯示R1 JNB P3.4,INC0 ; 3.4為+1s鍵,如按下跳到INCO JNB P3.5,DEC0 ; 3.5為-1s鍵,如按下跳到DECO JNB P3.1,BACK0 ; 3.1為確定鍵,如按下跳到

32、BACKO AJMP INT0SUBINC0: MOV A,R1CJNE A,#63H,ADD0 ; 如果不是99,R2加1,如果加到99,R1就置0,重新加起。 MOV R1,#00H ACALL DELAY1AJMP INT0SUBADD0: INC R1 ACALL DELAY1 AJMP INT0SUBDEC0: MOV A,R1 JZ SETR1 ; 如果R1為0, R1就置99, DEC R1 ACALL DELAY1 AJMP INT0SUBSETR1: MOV R1,#63H ACALL DELAY1 AJMP INT0SUBBACK0: RETI ;=INT1(回答時間R2調(diào)

33、整程序)=INT1SUB: MOV A,R2 MOV B,#0AH DIV ABMOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY JNB P3.4,INC1 JNB P3.5,DEC1 JNB P3.1,BACK1 JMP INT1SUBINC1: MOV A,R2 CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY1AJMP INT1SUBADD1: INC R2 ACALL DELAY1 AJMP INT1SUBDEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP INT1SUB

34、SETR2: MOV R2,#63H ACALL DELAY1 AJMP INT1SUBBACK1: RETI ;=倒計時程序(搶答倒計時和回答倒計時都跳到改程序)=COUNT: MOV R0,#00H ; 重置定時器中斷次數(shù) MOV TH1,#3CH MOV TL1,#0B0H ; 重置定時器RECOUNT:MOV A,R6 ; R6保存了倒計時的時間,之前先將搶答時間或回答時間給R6 MOV B,#0AH DIV AB ; 除十分出個位/十位 MOV 30H,A ; 十位存于(30H) MOV 31H,B ; 個位存于(31H) MOV R5,30H ; 取十位 MOV R4,31H ;

35、取個位 MOV A,R6 SUBB A,#07H JNC LARGER ; 大于5s跳到LARGER,小于等于5s會提醒 MOV A,R0 CJNE A,#0AH,FULL ; 1s中0.5s向下運行 CLR RING AJMP CHECKFULL: CJNE A,#14H,CHECK ; 下面是1s的情況,響并顯示號數(shù)并清R0,重新計 SETB RING MOV A,R6 JZ QUIT ; 計時完畢 MOV R0,#00H DEC R6 ; 一秒標(biāo)志減1 AJMP CHECKLARGER: MOV A,R0 CJNE A,#14H,CHECK ; 如果1s向下運行,否者跳到查"停

36、/顯示" DEC R6 ; 計時一秒R6自動減1 MOV R0,#00HCHECK: JNB P3.1,QUIT ; 如按下停止鍵退出 ACALL DISPLAY JB OK,ACCOUT ; 如果是搶答倒計時,如是則查詢搶答,否者跳過查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用) AJMP RECOUNTACCOUT:JNB P1.0,TRUE1 JNB P1.1,TRUE2 JNB P1.2,TRUE3 JNB P1.3,TRUE4 JNB P1.4,TRUE5 JNB P1.5,TRUE6 JNB P1.6,TZ3 JNB P1.7,TZ4 AJMP RECOUNTTZ3: JMP TRU

37、E7TZ4: JMP TRUE8 QUIT: CLR OK ; 如果按下了"停止鍵"執(zhí)行的程序 CLR RING AJMP START;=正常搶答處理程序=TRUE1: ACALL BARK ; 按鍵發(fā)聲 MOV A,R2 MOV R6,A;搶答時間R2送R6 MOV R3,#01H CLR OK ; 因為答題的計時不再查詢搶答,所以就鎖了搶答 AJMP COUNTTRUE2: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#02H CLR OK AJMP COUNTTRUE3:ACALL BARK; MOV A,R2 MOV R6,A MOV

38、R3,#03H CLR OK AJMP COUNTTRUE4:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#04H CLR OK AJMP COUNTTRUE5: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#05H CLR OK AJMP COUNTTRUE6: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#06H CLR OK AJMP COUNTTRUE7: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#07H CLR OK AJMP COUNTTRUE8:ACALL

39、BARK; MOV A,R2 MOV R6,A MOV R3,#08H CLR OK AJMP COUNT;=犯規(guī)搶答程序=ERROR:MOV R0,#00H MOV TH1,#3CH MOV TL1,#0B0H MOV 34H,R3 ; 犯規(guī)號數(shù)暫存與(34H)HERE: MOV A,R0 CJNE A,#0AH,FLASH ; 0.5s向下運行->滅并停響 CLR RING MOV R3,#0AH MOV R4,#0AH MOV R5,#0AH;三燈全滅 AJMP CHECK1FLASH: CJNE A,#14H,CHECK1 ; 下面是1s的情況,響并顯示號數(shù)并清R0,重新計 SETB RING MOV R0,#00H MOV R3,34H ; 取回號數(shù) MOV R5,#0BH MOV R4,#0BH ; 顯示F

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論