六路搶答器設(shè)計單片機_第1頁
六路搶答器設(shè)計單片機_第2頁
六路搶答器設(shè)計單片機_第3頁
六路搶答器設(shè)計單片機_第4頁
六路搶答器設(shè)計單片機_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、-目錄第1章 六路搶答器設(shè)計功能要求1第2章 搶答器方案論證3第3章 系統(tǒng)硬件電路設(shè)計4 系統(tǒng)原理圖 4 時鐘頻率電路的設(shè)計5 復(fù)位電路的設(shè)計6 顯示電路的設(shè)計7 鍵盤掃描電路的設(shè)計7 發(fā)聲8 系統(tǒng)復(fù)位8第4章 系統(tǒng)軟件設(shè)計9主程序系統(tǒng)構(gòu)造圖9程序流程圖10系統(tǒng)程序11第5章 調(diào)試及性能分析19第6章 課程設(shè)計小結(jié)20參考文獻 21. z-第1章 六路搶答器設(shè)計功能要求單片機的創(chuàng)造與使用帶著我們進入到了智能化的電子領(lǐng)域并且開啟了一個新的時代,它使得許多復(fù)雜的系統(tǒng)變得電路更簡單、功能更齊全、使用更加靈活、操作及維護更加方便。經(jīng)典的電子系統(tǒng)與智能化的現(xiàn)代電子系統(tǒng)相比擬就好比木偶人與機器人的區(qū)別。隨

2、著技術(shù)的進步,單片機與串口通信的結(jié)合更多地應(yīng)用到各個電子系統(tǒng)中已成一種趨勢。本設(shè)計就是基于單片機來設(shè)計搶答系統(tǒng),通過串口通信動態(tài)傳輸數(shù)據(jù),使搶答系統(tǒng)變得更加完善。單片機系統(tǒng)的硬件構(gòu)造給予了搶答系統(tǒng)身軀,而單片機的應(yīng)用程序就是其聰明的大腦,使它在傳統(tǒng)的搶答器面前具有電路簡單、本錢低、運行可靠等特色。1.1 數(shù)字搶答器的概述對于搶答器我們大家都知道那是用于選手做搶答題時用的,選手進展搶答搶到題的選手來答復(fù)下列問題。做搶答題不僅考驗選手的反響速度同時也要求選手具有豐富的知識面和一定的魄力。搶答器的應(yīng)用使選手們都站在同一個起跑線上,更能表達其公平公正的原則。本實驗設(shè)計的數(shù)字搶答器由主體電路與擴展電路組

3、成。優(yōu)先編碼電路、鎖存器、譯碼電路將參賽隊的輸入信號在顯示器上輸出;用控制電路和主持人開關(guān)啟動報警電路,以上兩局部組成主體電路。通過定時電路和譯碼電路將秒脈沖產(chǎn)生的信號在顯示器上輸出實現(xiàn)計時功能,構(gòu)成擴展電路。經(jīng)過布線、焊接、調(diào)試等工作后數(shù)字搶答器成形,且更具有實用性。1.2 設(shè)計任務(wù)與要求 任務(wù):設(shè)計一款多功能搶答器1、根本要求1搶答器能同時供6名選手或6個代表隊比賽,分別用6個按鈕S0 S5表示。2設(shè)置一個系統(tǒng)去除和搶答控制開關(guān)S,該開關(guān)由主持人控制。3 搶答器具有鎖存與顯示功能。即選手按動按鈕,鎖存相應(yīng)的編號,并在LED數(shù)碼管上顯示,同時揚聲器發(fā)出報警聲提示。選手搶答實行優(yōu)先鎖存,優(yōu)先搶

4、答選手的編號一直保持直到主持人將系統(tǒng)去除為止。4搶答器具有定時搶答功能,且每次搶答的時間可由主持人設(shè)定如30秒。當(dāng)主持人啟動開場鍵后,定時器進展減計時,同時揚聲器發(fā)出短暫的聲響,聲響持續(xù)的時間0.5秒左右。5參賽選手在設(shè)定的時間進展搶答,搶答有效,定時器停頓工作,顯示器上顯示選手的編號和搶答的時間,并保持到主持人將系統(tǒng)去除為止。6如果定時時間已到,無人搶答,本次搶答無效,系統(tǒng)報警并制止搶答,定時顯示器上顯示00 優(yōu)點:與普通搶答器相比,本作品有以下幾方面優(yōu)勢: 1、具有清零裝置和搶答控制,可由主持人操縱防止有人在主持人說開場前提前搶答違反規(guī)則。 2、具有定時功能,在30秒無人搶答表示所有參賽選

5、手獲參賽隊對此題棄權(quán)。 3、30秒時仍無人搶答其報警電路工作表示搶答時間耗盡并制止搶答。1.3 系統(tǒng)主要功能搶答器原理:該搶答器供不多于四個的搶答比賽使用。每個選手的座位前安裝一只搶答按鈕開關(guān)和一只信號燈。主持人的座位前安裝一只復(fù)原按鈕開關(guān)、一只蜂鳴器和一只搶答器工作狀態(tài)指示燈。每當(dāng)主持人口頭發(fā)出允許搶答的號令之后,哪個隊先按下座位上的按鈕開關(guān),該座位的信號燈就先被點亮,同時封鎖其他按鈕開關(guān)的活動。并且熄滅主持人座位上的狀態(tài)指示燈和發(fā)出 3 聲類似于振鈴的提示聲,以聲明此次搶答動作已經(jīng)完成。在主持人確認后,按下復(fù)原按鈕,狀態(tài)指示燈重新點亮,并且同時發(fā)出笛笛聲,為下一次的搶答作好準(zhǔn)備。電路中的蜂

6、鳴器 FM 是一只帶有助音腔的壓電瓷蜂鳴器,用于模擬發(fā)出報警聲的功率放大器和喇叭。在 FM 發(fā)聲的同時,燈 D6 也在發(fā)光。FM 可以看作是一個電容性負載,本身不能流過直流電流。發(fā)聲的原理是,作用在兩個電極極板的電位在發(fā)生變化時,瓷材料就發(fā)生彎曲,從而振動空氣發(fā)出聲音。FM和 4 只按鈕開關(guān) SWaSWd 以及 4 只電阻 RaRd 都是在演示板的根底上額外添加的。由于RB端口部具有上拉電阻,只要用軟件設(shè)置其有效,即可省略在4 只端口引腳上外接上拉電阻。按鈕開關(guān)和指示燈與座位的對應(yīng)關(guān)系如表3所示。按鈕開關(guān)和指示燈與座位的對應(yīng)關(guān)系座位主持人席座位1座位2座位3座位4座位5座位6按鈕開關(guān)SW1 S

7、WaSWbSWcSWdSWeSWf指示燈D7 D0D1D2D3D4D5蜂鳴器 有無無無無無無第2章方案論證( 1 ) 搶答器同時供6名選手或6個代表隊比賽,分別用6個按鈕S0 S5表示。( 2 ) 設(shè)置一個系統(tǒng)去除和搶答控制開關(guān)S,該開關(guān)由主持人控制。( 3 ) 搶答器具有鎖存與顯示功能。即選手按動按鈕,鎖存相應(yīng)的編號,并在LED數(shù)碼管上顯示,同時揚聲器發(fā)出報警聲響提示。選手搶答實行優(yōu)先鎖存,優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)去除為止。( 4 ) 搶答器具有定時搶答功能,且一次搶答的時間由主持人設(shè)定如30秒。當(dāng)主持人啟動開場鍵后,定時器進展減計時,同時揚聲器發(fā)出短暫的聲響,聲響持續(xù)的時間

8、0.5秒左右。( 5 ) 參賽選手在設(shè)定的時間進展搶答,搶答有效,定時器停頓工作,顯示器上顯示選手的編號和搶答的時間,并保持到主持人將系統(tǒng)去除為止。如果定時時間已到,無人搶答,本次搶答無效,系統(tǒng)報警并制止搶答,定時顯示器上顯示0066路搶答器可以利用硬件電子元器件實現(xiàn),但電路構(gòu)造復(fù)雜,調(diào)試?yán)щy,涉及到的外圍元件多,不便于安裝,實驗給實際操作帶來很大的麻煩。7我們利用單片機可以用很少元件實現(xiàn)一樣功能,而且單片機性能穩(wěn)定,可操作性強??梢灾挥肞0口連接上拉電阻,完成驅(qū)動LED的功能,串接按鍵可以由選手自己控制搶答時機,利用P3口的R*D接74LS164的A,B端,T*D接移位脈沖做時鐘信號。利用單

9、片機程序判斷選手按鍵是否有效,但選手違規(guī)搶答,利用簡單程序顯示選手序號,啟動蜂鳴器并不連續(xù),告訴主持人有人違規(guī)操作,搶答無效。給出相應(yīng)的延時,選手按正常的操作搶答,軟件倒記時,利用74LS164移位存放8段數(shù)碼管,實現(xiàn)倒記時顯示時間,到5秒相應(yīng)時間提醒選手時間快到了,要及時作答,并啟動蜂鳴器。如果有選手在規(guī)定的時間以前完成問題,主持人通過按鍵P2.4復(fù)位,開場新的問題作答,因為程序不是很大不需要擴展存儲空間,選手按鍵跳入相應(yīng)的子程序,答復(fù)倒記時,通過單片機實現(xiàn)功能可以更人性化,只需單電源供電更方便,容易實現(xiàn)。電路構(gòu)造簡單,外圍擴展的電路不是很多,鍛煉我們所學(xué)的知識應(yīng)用到現(xiàn)實生活當(dāng)中。為我們提供

10、實踐的時機。單片機是電子專業(yè)開展的方向,更好的使用單片機可以是我們的產(chǎn)品小型化,使用更方便,性能更穩(wěn)定,功能更齊全,所以我們選用單片機加一定的外圍設(shè)備實現(xiàn)本次課程設(shè)計的要求。第3章 系統(tǒng)硬件設(shè)計為使硬件電路設(shè)計盡可能合理,應(yīng)注意以下幾方面:(1) 盡可能采用功能強的芯片,以簡化電路,功能強的芯片可以代替假設(shè)干普通芯片,隨著生產(chǎn)工藝的提高,新型芯片的的價格不斷下降,并不一定比假設(shè)干普通芯片價格的總和高。(2) 留有設(shè)計余地。在設(shè)計硬件電路時,要考慮到將來修改擴展的方便。因為很少有一錘定音的電路設(shè)計,如果現(xiàn)在不留余地,將來可能要為一點小小的修改或擴展而被迫進展全面返工。(3) 程序空間,選用片程序

11、空間足夠大的單片機,本設(shè)計采用AT89C51單片機。(4) I/O端口,在樣機研制出來后進展現(xiàn)場試用時,往往會發(fā)現(xiàn)一些被無視的問題,而這些問題不是靠單純的軟件措施來解決的。如有些新的信號需要采集,就必須增加輸入檢測端;有些物理量需要控制,就必須增加輸出端。如果在硬件電路設(shè)計就預(yù)留出一些I/O端口,雖然當(dāng)時空著沒用,則用的時候就派上用場了。3.1總體原理圖如圖2-1,P1.0為開場搶答,P1.7為停頓,P1.1-P1.6為六路搶答輸入,數(shù)碼管段選P0口,位選P2口低3位,蜂鳴器輸出為P3.6口。P3.2為時間加1調(diào)整,P3.3為時間減1調(diào)整。圖2-1 系統(tǒng)原理圖時鐘頻率電路的設(shè)計單片機必須在時鐘

12、的驅(qū)動下才能工作.在單片機部有一個時鐘振蕩電路,只需要外接一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機部的各個單元,決定單片機的工作速度。圖2-2 外部振蕩源電路一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在*TAL2引腳產(chǎn)生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容 C1,C2的作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進展微調(diào)。C1,C2的典型值為30PF。單片機在工作時,由部振蕩器產(chǎn)生或由外直接輸入的送至部控制邏輯單元的時鐘信號的周期稱為時鐘周期。其大小是時鐘信號頻率的倒數(shù),常用fosc表示。如時鐘頻率為12MHz,即f

13、osc=12MHz,則時鐘周期為1/12s。 復(fù)位電路的設(shè)計單片機的第9腳RST為硬件復(fù)位端,只要將該端持續(xù)4個機器周期的高電平即可實現(xiàn)復(fù)位,復(fù)位后單片機的各狀態(tài)都恢復(fù)到初始化狀態(tài),其電路圖如圖4所示:圖2-3 復(fù)位電路值得注意的是,在設(shè)計當(dāng)中使用到了硬件復(fù)位和軟件復(fù)位兩種功能,由上面的硬件復(fù)位后的各狀態(tài)可知存放器及存儲器的值都恢復(fù)到了初始值,而前面的功能介紹中提到了倒計時時間的記憶功能,該功能的實現(xiàn)的前提條件就是不能對單片機進展硬件復(fù)位,所以設(shè)定了軟復(fù)位功能。軟復(fù)位實際上就是當(dāng)程序執(zhí)行完畢之后,將程序指針通過一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到程序執(zhí)行的起始地址。 顯示電路的設(shè)計顯示功能與硬件關(guān)系極大,當(dāng)

14、硬件固定后,如何在不引起操作者誤解的前提下提供盡可能豐富的信息,全靠軟件來解決。 鍵盤掃描電路的設(shè)計鍵盤是人與微機系統(tǒng)打交道的主要設(shè)備。關(guān)于鍵盤硬件電路的設(shè)計方法也可以在文獻和書籍中找到,配合各種不同的硬件電路,這些書籍中一般也提供了相應(yīng)的鍵盤掃描程序。站在系統(tǒng)監(jiān)控軟件設(shè)計的立場上來看,僅僅完成鍵盤掃描,讀取當(dāng)前時刻的鍵盤狀態(tài)是不夠的,還有不少問題需要妥善解決,否則,人們在操作鍵盤就容易引起誤操作和操作失控現(xiàn)象。在單片機應(yīng)用中鍵盤用得最多的形式是獨立鍵盤及矩陣鍵盤。圖2-4 獨立鍵盤它們各有自己的特點,其中獨立鍵盤硬件電路簡單,而且在程序設(shè)計上也不復(fù)雜,一般用在對硬件電路要求不高的簡單電路中;

15、矩陣鍵盤與獨立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨立鍵盤復(fù)雜得多,而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢得多,因此它更適合于多按鍵電路。其次就是消除在按鍵過程中產(chǎn)生的毛刺 現(xiàn)象。這里采用最常用的方法,即延時重復(fù)掃描法,延時法的原理為:因為毛刺脈沖一般持續(xù)時間短,約為幾ms,而我們按鍵的時間一般遠遠大于這個時間,所以當(dāng)單片機檢測到有按鍵動靜后再延時一段時間(這里我們?nèi)?0ms)后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無效。 發(fā)聲我們知道,聲音的頻譜圍約在幾十到幾千赫茲,假設(shè)能利用程序來控制單片機*個口線的高電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上

16、喇叭就能發(fā)出一定頻率的聲音,假設(shè)再利用延時程序控制高低電平的持續(xù)時間,就能改變輸出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。 系統(tǒng)復(fù)位使CPU進入初始狀態(tài),從0000H地址開場執(zhí)行程序的過程叫系統(tǒng)復(fù)位。從實現(xiàn)系統(tǒng)復(fù)位的方法來看,系統(tǒng)復(fù)位可分為硬件復(fù)位和軟件復(fù)位。硬件復(fù)位必須通過CPU外部的硬件電路給CPU的RESET端加上足夠時間的高電位才能實現(xiàn)。上電復(fù)位,人工按鈕復(fù)位和硬件看門狗復(fù)位均為硬件復(fù)位。硬件復(fù)位后,各專用存放器的狀態(tài)均被初始化,且對片通用存放器的容沒有影響。但是,硬件復(fù)位還能自動去除中斷激活標(biāo)志,使中斷系統(tǒng)能夠正常工作,這樣一個事實卻容易為不少編碼人員所無視。軟件復(fù)位就是用一系列指

17、令來模擬硬件復(fù)位功能,最后通過轉(zhuǎn)移指令使程序從0000H地址開場執(zhí)行。對各專用存放器的復(fù)位操作是容易的,也沒有必要完全模擬,可根據(jù)實際需要去主程序初始化過程中完成。而對中斷激活標(biāo)志的去除工作常被遺忘,因為它沒有明確的位地址可供編程。有的編程人員用020000LJMP 0000H作為軟件陷阱,認為直接轉(zhuǎn)向0000H地址就完成了軟件復(fù)位,就是這類錯誤的典型代表。軟件復(fù)位是使用軟件陷阱和軟件看門狗后必須進展的工作,這時程序出錯完全有可能發(fā)生在中斷子程序中,中斷激活標(biāo)志已置位,它將阻止同級中斷響應(yīng)。由于軟件看門是高級中斷,它將阻止說要中斷響應(yīng),由此可見去除中斷激活標(biāo)志的重要性。在所有的指令中,只有RE

18、TI指令能夠去除中斷激活標(biāo)志。前文各處提案到的出錯處理程序ERR主要完成這一功能,其他的善后工作交由復(fù)位后的系統(tǒng)去完成。這局部程序如下:POWER DATA 67H ;上電標(biāo)志存放單元 ERR: CLR EA ;關(guān)中斷 MOV DPTR,*ERR1 ;準(zhǔn)備返回地址PUSH DPLPUSH DPHRETI ;去除高級中斷激活標(biāo)志ERR1: MOV POWER,*0AAH;重建上電標(biāo)志 CLR A ;準(zhǔn)備復(fù)位地址 PUSH ACC ;壓入復(fù)位地址0000HPUSH ACCRETI ;去除低級中斷激活標(biāo)志,從程序0000H開場執(zhí)行。這段程序先關(guān)中斷,以便后續(xù)處理能順利進展,然后用兩個RETI指令代替

19、兩個LJMP指令,從而去除了兩級中斷激活標(biāo)志。有相應(yīng)軟件陷阱捕捉來的程序可能沒有全部激活兩個標(biāo)志,這也無妨。第4章 系統(tǒng)軟件設(shè)計軟件任務(wù)分析和硬件電路設(shè)計結(jié)合進展,哪些功能由硬件完成,哪些任務(wù)由軟件完成,在硬件電路設(shè)計根本定型后,也就根本上決定下來了。4.1 主程序系統(tǒng)構(gòu)造圖圖2-5 軟件系統(tǒng)構(gòu)造圖4.2 程序流程圖在本設(shè)計中包括了以下八個主要的程序:主程序;非法搶答序;搶答時間調(diào)整程序;答復(fù)時間調(diào)整程序;倒計時程序;正常搶答處理程序;犯規(guī)處理程序;顯示及發(fā)聲程序。主流程圖如2-6所示:圖2-6 程序設(shè)計流程圖4.3 系統(tǒng)程序P1.0為開場搶答,P1.7為停頓,p1.1-p1.6為六路搶答輸入

20、 數(shù)碼管段選P0口,位選P2口,蜂鳴器輸出為P3.6口。OK EQU 20H;搶答開場標(biāo)志位 RING EQU 22H;響鈴標(biāo)志位ORG 0000HAJMP MAINORG 0003HAJMP INT0SUBORG 000BHAJMP T0INTORG 0013HAJMP INT1SUB ORG 001BHAJMP T1INTORG 0040HMAIN: MOV R1,*0FH; 初設(shè)搶答時間為15s MOV R2,*0AH; 初設(shè)答題時間為10s MOV TMOD,*11H; 設(shè)置未定時器/模式1 MOV TH0,*0F0H MOV TL0,*0FFH; 越高發(fā)聲頻率越高,越尖 MOV TH

21、1,*3CH MOV TL1,*0B0H;50ms為一次溢出中斷 SETB EA SETB ET0 SETB ET1 SETB E*0 SETB E*1; 允許四個中斷,T0/T1/INT0/INT1 CLR OK CLR RING SETB TR1 SETB TR0; 一開場就運行定時器,以開場顯示FFF.如果想重新計數(shù),重置TH1/TL1就可以了查詢程序:START: MOV R5,*0BH MOV R4,*0BH MOV R3,*0BHACALL DISPLAY; 未開場搶答時候顯示FFF P1.0,NE*T ACALL DELAY P1.0,NE*T;去抖動,如果開場鍵按下就向下執(zhí)行,

22、否者跳到非法搶答查詢 ACALL BARK;按鍵發(fā)聲 MOV A,R1MOV R6,A;送R1-R6,因為R1中保存了搶答時間SETB OK;搶答標(biāo)志位,用于COUNT只程序中判斷是否查詢搶答MOV R3,0AH;搶答只顯示計時,滅號數(shù)AJMP COUNT;進入倒計時程序,查詢有效搶答的程序在COUNT里面NE*T: JNB P1.1,FALSE1JNB P1.2,FALSE2JNB P1.3,FALSE3JNB P1.4,FALSE4JNB P1.5,FALSE5JNB P1.6,FALSE6AJMP START非法搶答處理程序:FALSE1: ACALL BARK; 按鍵發(fā)聲 MOV R3

23、,*01H AJMP ERRORFALSE2: ACALL BARK MOV R3,*02H AJMP ERRORFALSE3: ACALL BARK MOV R3,*03H AJMP ERRORFALSE4: ACALL BARK MOV R3,*04H AJMP ERRORFALSE5: ACALL BARK MOV R3,*05H AJMP ERRORFALSE6: ACALL BARK MOV R3,*06H AJMP ERRORINT0(搶答時間R1調(diào)整程序): INT0SUB:MOV A,R1 MOV B,*0AHDIV ABMOV R5,A MOV R4,BMOV R3,*0AH

24、ACALL DISPLAY;先在兩個時間LED上顯示R1 JNB P3.2,INC0;P3.2為+1s鍵,如按下跳到INCOJNB P3.3,DEC0;P3.3為-1s鍵,如按下跳到DECOJNB P1.7,BACK0;P1.7為確定鍵,如按下跳到BACKOAJMP INT0SUBINC0: MOV A,R1 CJNE A,*63H,ADD0;如果不是99,R2加1,如果加到99了,R1就置0,重新加起 MOV R1,*00H ACALL DELAY1 AJMP INT0SUBADD0: INC R1 ACALL DELAY1 AJMP INT0SUBDEC0: MOV A,R1 JZ SET

25、R1;如果R1為0, R1就置99, DEC R1 ACALL DELAY1 AJMP INT0SUBSETR1: MOV R1,*63H ACALL DELAY1 AJMP INT0SUBBACK0: RETIINT1(答復(fù)時間R2調(diào)整程序):INT1SUB:MOV A,R2 MOV B,*0AH DIV AB MOV R5,A MOV R4,B MOV R3,*0AH ACALL DISPLAY JNB P3.2,INC1 JNB P3.3,DEC1 JNB P1.7,BACK1 AJMP INT1SUBINC1: MOV A,R2 CJNE A,*63H,ADD1 MOV R2,*00H

26、 ACALL DELAY1 AJMP INT1SUBADD1: INC R2 ACALL DELAY1 AJMP INT1SUBDEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP INT1SUBSETR2: MOV R2,*63H ACALL DELAY1 AJMP INT1SUBBACK1: RETI倒計時程序(搶答倒計時和答復(fù)倒計時都跳到該程序): COUNT: MOV R0,*00H; 重置定時器中斷次數(shù)MOV TH1,*3CHMOV TL1,*0B0H; 重置定時器RECOUNT:MOV A,R6;R6保存了倒計時的時間,之前先將搶答時間或

27、答復(fù)時間給R6MOV B,*0AHDIV AB;除十分出個位/十位MOV 30H,A;十位存于(30H)MOV 31H,B;個位存于(31H)MOV R5,30H;取十位 MOV R4,31H;取個位 MOV A,R6 SUBB A,*07HJNC LARGER;大于5s跳到LARGER,小于等于5s會提醒MOV A,R0CJNE A,*0AH,FULL;1s中0.5s向下運行CLR RINGAJMP CHECKFULL: CJNE A,*14H,CHECK;下面系1s的情況,響并顯示號數(shù)并清R0,重新計時SETB RINGMOV A,R6JZ QUIT;計時完畢MOV R0,*00HDEC

28、R6;一秒標(biāo)志減1AJMP CHECKLARGER: MOV A,R0CJNE A,*14H,CHECK;如果1s向下運行,否者跳到查停/顯示DEC R6;計時一秒R6自動減1MOV R0,*00HCHECK: JNB P1.7,QUIT;如按下停頓鍵退出ACALL DISPLAY OK,ACCOUT;如果是搶答倒計時,如是則查詢搶答,否者跳過查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用)AJMP RECOUNTACCOUT:JNB P1.1,TRUE1JNB P1.2,TRUE2JNB P1.3,TRUE3JNB P1.4,TRUE4JNB P1.5,TRUE5JNB P1.6,TRUE6AJMP RE

29、COUNTQUIT: 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,R2MOV R6,AMOV R3,*02HCLR OKAJMP COUNTTRUE3:ACALL BARK;MOV A,R2MOV R6,A MOV R3,*03HCLR OKAJMP COUNTTRUE4:ACALL BARK;

30、 MOV A,R2MOV R6,AMOV R3,*04H CLR OKAJMP 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 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向下運行-滅并停響

31、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;顯示FF和號數(shù) AJMP CHECK1CHECK1: JNB P1.7,QUIT1 ACALL DISPLAY AJMP HEREQUIT1: CLR RING CLR OK AJMP START顯示程序:入口參數(shù):R5,R4,R3存入的分別為第一,二,

32、三為數(shù)碼所顯示的位碼出口參數(shù):無DISPLAY:MOV DPTR,*DAT1;查表顯示程序,利用P0口做段選碼口輸出/P2低三位做位選碼輸出 MOV A,R5 MOVC A,A+DPTR MOV P2,*01H MOV P0,A ACALL DELAY MOV DPTR,*DAT2 MOV A,R4 MOVC A,A+DPTR MOV P2,*02H MOV P0,A ACALL DELAY MOV A,R3 MOVC A,A+DPTR MOV P2,*04H MOV P0,A ACALL DELAY RETDAT1:DB 00H,06h,5bh,4fh,66h,6dh,7dh,07h,7fh

33、,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;第一個為零,其他與上一樣,因為十位如果為零顯示熄滅加減時間延時(起到不會按下就加N個數(shù)):DELAY1: MOV 35H,*08HLOOP0: ACALL DISPLAY DJNZ 35H,LOOP0 RET延時(顯示和去抖動用到):DELAY: MOV 32H,*12HLOOP: MOV 33H,*0AFHLOOP1: DJNZ 33H,LOOP1 DJNZ 32H,LOOP RET發(fā)聲程序:BARK: SET

34、B RING ACALL DELAY1 ACALL DELAY1 CLR RING;按鍵發(fā)聲RETTO溢出中斷(響鈴程序):T0INT:MOV TH0,*0ECH MOV TL0,*0FFH JNB RING,OUT CPL P3.6 ;RING標(biāo)志位為1時候P3.6口不短取反使喇叭發(fā)出一定頻率的聲音OUT:RETIT1溢出中斷(計時程序):T1INT: MOV TH1,*3CH MOV TL1,*0B0H INC R0 RETI END第4章 調(diào)試及性能分析1、具有清零裝置和搶答控制,可由主持人操縱防止有人在主持人說開場前提前搶答違反規(guī)則。2、具有定時功能,在30秒無人搶答表示所有參賽選手獲參賽隊對此題棄權(quán)。3、30秒時仍無人搶答其報警電路工作表示搶答時間耗盡并制止搶答。4、如果想調(diào)節(jié)搶答時間或答題時間,按搶答時間調(diào)節(jié)鍵或答題時間調(diào)

溫馨提示

  • 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

提交評論