基于單片機(jī)的多路搶答器設(shè)計_第1頁
基于單片機(jī)的多路搶答器設(shè)計_第2頁
基于單片機(jī)的多路搶答器設(shè)計_第3頁
基于單片機(jī)的多路搶答器設(shè)計_第4頁
基于單片機(jī)的多路搶答器設(shè)計_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

課程設(shè)計(論文)題目名稱基于單片機(jī)的多路搶答器設(shè)計課程名稱單片機(jī)原理及在電氣測控學(xué)科中的應(yīng)用學(xué)生姓名莫賢超學(xué)號1141203035系專業(yè)電氣工程系、11級測控指導(dǎo)教師王躍球2013年6月14日邵陽學(xué)院課程設(shè)計(論文)任務(wù)書年級專業(yè)11測控學(xué)生姓名莫賢超學(xué)號1141203035題目名稱基于單片機(jī)的多路搶答器設(shè)計設(shè)計時間2013年6月3日—2013年6月14日課程名稱單片機(jī)原理及在電氣測控學(xué)科中的應(yīng)用課程編號121200105設(shè)計地點數(shù)字控制與PLC實驗室\創(chuàng)新實驗室(214)(305)課程設(shè)計(論文)目的課程設(shè)計是在校學(xué)生素質(zhì)教育的重要環(huán)節(jié),是理論與實踐相結(jié)合的橋梁和紐帶。單片機(jī)課程設(shè)計,要求學(xué)生更多的完成軟硬結(jié)合的動手實踐方案,解決目前學(xué)生課程設(shè)計過程中普遍存在的缺乏動手能力的現(xiàn)象。《單片機(jī)課程設(shè)計》是繼《電子技術(shù)》、和《單片機(jī)原理與應(yīng)用》課程之后開出的實踐環(huán)節(jié)課程,其目的和任務(wù)是訓(xùn)練學(xué)生綜合運用已學(xué)課程“電子技術(shù)基礎(chǔ)”、“單片機(jī)原理及應(yīng)用”的基本知識,獨立進(jìn)行單片機(jī)應(yīng)用技術(shù)和開發(fā)工作,掌握單片機(jī)程序設(shè)計、調(diào)試和應(yīng)用電路設(shè)計、分析及調(diào)試檢測。已知技術(shù)參數(shù)和條件1、89C51系列單片機(jī);2、KEIL軟件;Wave軟件;3、任務(wù)和要求1、設(shè)計一款6路或以上的搶答器;2、設(shè)計一個搶答控制開關(guān)(開始搶答后才允許答題者搶答),供主持人用;3、設(shè)定搶答時間限制,超過時間后,該題作廢;4、要求設(shè)計出電氣原理圖;設(shè)計出程序流程圖;設(shè)計出程序。注:1.此表由指導(dǎo)教師填寫,經(jīng)系、教研室審批,指導(dǎo)教師、學(xué)生簽字后生效;2.此表1式3份,學(xué)生、指導(dǎo)教師、教研室各1份。四、參考資料和現(xiàn)有基礎(chǔ)條件(包括實驗室、主要儀器設(shè)備等)1、單片機(jī)課程設(shè)計指導(dǎo),中南大學(xué)出版社,張一斌等2009年9月2、單片機(jī)實驗與實踐教程,北京航空航天大學(xué)出版社,何立民等2004年7月4、數(shù)字控制與PLC實驗室”五、進(jìn)度安排2013年6月3日-4日:收集和課程設(shè)計有關(guān)的資料,熟悉課題任務(wù)和要求總體方案設(shè)計2013年6月5日-6日:硬件電路設(shè)計2013年6月7日-9日:軟件設(shè)計2013年6月10日-12日:系統(tǒng)調(diào)試改進(jìn)2013年6月13日:整理書寫設(shè)計說明書2013年6月14日:答辯并考核六、教研室審批意見教研室主任(簽名):年月日七|、主管教學(xué)主任意見主管主任(簽名):年月日八、備注指導(dǎo)教師(簽字):學(xué)生(簽字):邵陽學(xué)院課程設(shè)計(論文)評閱表學(xué)生姓名莫賢超學(xué)號1141203035系電氣工程系專業(yè)班級11測控題目名稱基于單片機(jī)的多路搶答器課程設(shè)計課程名稱單片機(jī)原理及在電氣測控學(xué)科中的應(yīng)用一、學(xué)生自我總結(jié)這是大學(xué)第一次做課程設(shè)計,剛開始拿到課程計劃的時候覺得它很簡單,應(yīng)該很容易就會做出來。但是動手做了之后我才知道困難,完全不知道該怎么下手做。心里一下子就沒底了,跟著也焦急了起來。后來,找到了小組成員在一起商量,一起找資料。網(wǎng)上的,圖書館的,書本的……。最后,在大家的努力和指導(dǎo)老師的耐心指導(dǎo)下,終于完成了。盡管這樣,也花費了幾天的時間。經(jīng)歷了這次實驗,我懂得了團(tuán)隊合作的重要性,也認(rèn)識到了做任何事都不能有輕視的心理。課程設(shè)計完成時,那感覺是甜蜜的,沒有耕耘,哪來得收獲的喜悅,不懂付出怎么能知道回報的快樂,一分耕耘一分收獲,有付出才會有回報,就在這樣的痛與快樂的交換中,我學(xué)到了知識,學(xué)到了做人的道理。學(xué)生簽名:年月日二、指導(dǎo)教師評定評分項目平時成績論文答辯綜合成績權(quán)重304030單項成績指導(dǎo)教師評語:指導(dǎo)教師(簽名):年月日注:1、本表是學(xué)生課程設(shè)計(論文)成績評定的依據(jù),裝訂在設(shè)計說明書(或論文)的“任務(wù)書”頁后面;2、表中的“評分項目”及“權(quán)重”根據(jù)各系的考核細(xì)則和評分標(biāo)準(zhǔn)確定。摘要此次設(shè)計使用AT89C51單片機(jī)為核心控制元件,設(shè)計一個簡易的搶答器,與數(shù)碼管、報警器等構(gòu)成八路搶答器,利用了單片機(jī)的延時電路、按鍵復(fù)位電路、時鐘電路、定時/中斷電路等。設(shè)計的搶答器具有實時顯示搶答選手的號碼和搶答時間的特點,而復(fù)位電路,則使其能再開始新的一輪答題和比賽,與此同時還利用匯編語言編程,使其能夠?qū)崿F(xiàn)一些基本的功能。本次設(shè)計系統(tǒng)實用性強、判斷精確、操作簡單、擴(kuò)展功能強等。它的功能實現(xiàn)是比賽開始,主持人讀完題之后按下總開關(guān),則計時開始,此時數(shù)碼管開始進(jìn)行1s的減計時,直到有一個選手按下?lián)尨鸢粹o,這時對應(yīng)的數(shù)碼管上會顯示出該選手的編號和搶答所用的時間,同時該選手的報警器也會發(fā)出聲音,來提示有人搶答本題。如果在規(guī)定的30s時間內(nèi)沒有選手做出搶答,則此題作廢,即開始重新一輪的搶答。關(guān)鍵詞:AT89C51;LED;數(shù)碼管;搶答器;計時;報警

目錄摘要Ⅰ1緒論11.1課題研究背景及國內(nèi)外現(xiàn)狀11.2設(shè)計任務(wù)與要求.11.3系統(tǒng)主要功能..22系統(tǒng)主要硬件電路設(shè)計...32.1單片機(jī)控制系統(tǒng)原理圖32.2單片機(jī)主機(jī)系統(tǒng)電路42.3發(fā)聲62.4系統(tǒng)復(fù)位63系統(tǒng)軟件設(shè)計83.1主程序系統(tǒng)結(jié)構(gòu)圖83.2程序流程圖83.3系統(tǒng)程序94調(diào)試及性能分析20總結(jié) 23參考文獻(xiàn)241緒論1.1課題研究背景及國內(nèi)外現(xiàn)狀搶答器是一種應(yīng)用非常廣泛的設(shè)備,在各種競賽、搶答場合中,它能迅速、客觀地分辨出最先獲得發(fā)言權(quán)的選手。早期的搶答器只由幾個三極管、可控硅、發(fā)光管等組成,能通過發(fā)光管的指示辯認(rèn)出選手號碼?,F(xiàn)在大多數(shù)搶答器均使用單片機(jī)(如MCS-51型)和數(shù)字集成電路,并增加了許多新功能,如選手號碼顯示、搶按前或搶按后的計時、選手得分顯示等功能。搶答器作為一種電子產(chǎn)品,早已廣泛應(yīng)用于各種智力和知識競賽場合,但目前所使用的搶答器有的電路較復(fù)雜不便于制作,可靠性低,實現(xiàn)起來很困難;有的則用一些專用的集成塊,而專用集成塊的購買又很困難。為適應(yīng)高校等多代表隊單位活動的需要而設(shè)計一個多功能搶答器,這種搶答器具有電路簡單,元件普通,易于購買等優(yōu)點,很好地解決了制作者制作困難和難于購買的問題。在國內(nèi)外已經(jīng)開始了普遍的應(yīng)用[1]。1.2設(shè)計任務(wù)與要求任務(wù):設(shè)計一款數(shù)字搶答器1.2.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)先搶答選手的編號一直保持到主持人將系統(tǒng)清除為止。(4)搶答器具有定時搶答功能,且一次搶答的時間由主持人設(shè)定(如30秒)。當(dāng)主持人啟動"開始"鍵后,定時器進(jìn)行減計時,同時揚聲器發(fā)出短暫的聲響,聲響持續(xù)的時間0.5秒左右。(5)參賽選手在設(shè)定的時間內(nèi)進(jìn)行搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶答的時間,并保持到主持人將系統(tǒng)清除為止。(6)如果定時時間已到,無人搶答,本次搶答無效,系統(tǒng)報警并禁止搶答,定時顯示器上顯示00。優(yōu)點:與普通搶答器相比,本作品有以下幾方面優(yōu)勢①具有清零裝置和搶答控制,可由主持人操縱避免有人在主持人說“開始”前提前搶答違反規(guī)則。②具有定時功能,在30秒內(nèi)無人搶答表示所有參賽選手或參賽隊對本題棄權(quán)。③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)完成。在主持人確認(rèn)后,按下復(fù)原按鈕,狀態(tài)指示燈重新點亮,并且同時發(fā)出“笛——笛——”聲,為下一次的搶答作好準(zhǔn)備。電路中的蜂鳴器FM是一只帶有助音腔的壓電陶瓷蜂鳴器,用于模擬發(fā)出報警聲的功率放大器和喇叭。在FM發(fā)聲的同時,燈D6也在發(fā)光。FM可以看作是一個電容性負(fù)載,本身不能流過直流電流。發(fā)聲的原理是,作用在兩個電極極板的電位在發(fā)生變化時,陶瓷材料就發(fā)生彎曲,從而振動空氣發(fā)出聲音。FM和4只按鈕開關(guān)SWa~SWd以及4只電阻Ra~Rd都是在演示板的基礎(chǔ)上額外添加的。由于RB端口內(nèi)部具有上拉電阻,只要用軟件設(shè)置其有效,即可省略在4只端口引腳上外接上拉電阻。2系統(tǒng)主要硬件電路設(shè)計為使硬件電路設(shè)計盡可能合理,應(yīng)注意以下幾方面:(1)盡可能采用功能強的芯片,以簡化電路,功能強的芯片可以代替若干普通芯片,隨著生產(chǎn)工藝的提高,新型芯片的的價格不斷下降,并不一定比若干普通芯片價格的總和高。(2)留有設(shè)計余地。在設(shè)計硬件電路時,要考慮到將來修改擴(kuò)展的方便。因為很少有一錘定音的電路設(shè)計,如果現(xiàn)在不留余地,將來可能要為一點小小的修改或擴(kuò)展而被迫進(jìn)行全面返工。(3)程序空間,選用片內(nèi)程序空間足夠大的單片機(jī),本設(shè)計采用AT89C51單片機(jī)。(4)I/O端口,在樣機(jī)研制出來后進(jìn)行現(xiàn)場試用時,往往會發(fā)現(xiàn)一些被忽視的問題,而這些問題不是靠單純的軟件措施來解決的。如有些新的信號需要采集,就必須增加輸入檢測端;有些物理量需要控制,就必須增加輸出端。如果在硬件電路設(shè)計就預(yù)留出一些I/O端口,雖然當(dāng)時空著沒用,那么用的時候就派上用場了。2.1單片機(jī)控制系統(tǒng)原理圖如圖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)原理圖2.2單片機(jī)主機(jī)系統(tǒng)電路該六路搶答器的設(shè)計細(xì)分為時鐘頻率電路的設(shè)計,復(fù)位電路的設(shè)計,顯示電路的設(shè)計和鍵盤掃描電路的設(shè)計等。2.2.1時鐘頻率電路的設(shè)計單片機(jī)必須在時鐘的驅(qū)動下才能工作.在單片機(jī)內(nèi)部有一個時鐘振蕩電路,只需要外接一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機(jī)內(nèi)部的各個單元,決定單片機(jī)的工作速度。圖2.2外部振蕩源電路一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容C1,C2的作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進(jìn)行微調(diào)。C1,C2的典型值為30PF。單片機(jī)在工作時,由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時鐘信號的周期稱為時鐘周期。其大小是時鐘信號頻率的倒數(shù),常用fosc表示。如時鐘頻率為12MHz,即fosc=12MHz,則時鐘周期為1/12μs。2.2.2復(fù)位電路的設(shè)計單片機(jī)的第9腳RST為硬件復(fù)位端,只要將該端持續(xù)4個機(jī)器周期的高電平即可實現(xiàn)復(fù)位,復(fù)位后單片機(jī)的各狀態(tài)都恢復(fù)到初始化狀態(tài),其電路圖如圖2.3所示。圖2.3復(fù)位電路值得注意的是,在設(shè)計當(dāng)中使用到了硬件復(fù)位和軟件復(fù)位兩種功能,由上面的硬件復(fù)位后的各狀態(tài)可知寄存器及存儲器的值都恢復(fù)到了初始值,而前面的功能介紹中提到了倒計時時間的記憶功能,該功能的實現(xiàn)的前提條件就是不能對單片機(jī)進(jìn)行硬件復(fù)位,所以設(shè)定了軟復(fù)位功能。軟復(fù)位實際上就是當(dāng)程序執(zhí)行完畢之后,將程序指針通過一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到程序執(zhí)行的起始地址。2.2.3顯示電路的設(shè)計顯示功能與硬件關(guān)系極大,當(dāng)硬件固定后,如何在不引起操作者誤解的前提下提供盡可能豐富的信息,全靠軟件來解決。2.2.4鍵盤掃描電路的設(shè)計鍵盤是人與微機(jī)系統(tǒng)打交道的主要設(shè)備。關(guān)于鍵盤硬件電路的設(shè)計方法也可以在文獻(xiàn)和書籍中找到,配合各種不同的硬件電路,這些書籍中一般也提供了相應(yīng)的鍵盤掃描程序。站在系統(tǒng)監(jiān)控軟件設(shè)計的立場上來看,僅僅完成鍵盤掃描,讀取當(dāng)前時刻的鍵盤狀態(tài)是不夠的,還有不少問題需要妥善解決,否則,人們在操作鍵盤就容易引起誤操作和操作失控現(xiàn)象。在單片機(jī)應(yīng)用中鍵盤用得最多的形式是獨立鍵盤及矩陣鍵盤。它們各有自己的特點,其中獨立鍵盤硬件電路簡單,而且在程序設(shè)計上也不復(fù)雜,一般用在對硬件電路要求不高的簡單電路中;矩陣鍵盤與獨立鍵盤有很大區(qū)別。圖2.4獨立鍵盤首先在硬件電路上它要比獨立鍵盤復(fù)雜得多,而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢得多,因此它更適合于多按鍵電路。其次就是消除在按鍵過程中產(chǎn)生的“毛刺”現(xiàn)象。這里采用最常用的方法,即延時重復(fù)掃描法,延時法的原理為:因為“毛刺”脈沖一般持續(xù)時間短,約為幾ms,而我們按鍵的時間一般遠(yuǎn)遠(yuǎn)大于這個時間,所以當(dāng)單片機(jī)檢測到有按鍵動靜后再延時一段時間(這里我們?nèi)?0ms)后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無效。2.3發(fā)聲我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單片機(jī)某個口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時程序控制“高”“低”電平的持續(xù)時間,就能改變輸出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。2.4系統(tǒng)復(fù)位使CPU進(jìn)入初始狀態(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ù)位[2]。硬件復(fù)位后,各專用寄存器的狀態(tài)均被初始化,且對片內(nèi)通用寄存器的內(nèi)容沒有影響。但是,硬件復(fù)位還能自動清除中斷激活標(biāo)志,使中斷系統(tǒng)能夠正常工作,這樣一個事實卻容易為不少編碼人員所忽視。軟件復(fù)位就是用一系列指令來模擬硬件復(fù)位功能,最后通過轉(zhuǎn)移指令使程序從0000H地址開始執(zhí)行。對各專用寄存器的復(fù)位操作是容易的,也沒有必要完全模擬,可根據(jù)實際需要去主程序初始化過程中完成。而對中斷激活標(biāo)志的清除工作常被遺忘,因為它沒有明確的位地址可供編程。有的編程人員用020000(LJMP0000H)作為軟件陷阱,認(rèn)為直接轉(zhuǎn)向0000H地址就完成了軟件復(fù)位,就是這類錯誤的典型代表。軟件復(fù)位是使用軟件陷阱和軟件看門狗后必須進(jìn)行的工作,這時程序出錯完全有可能發(fā)生在中斷子程序中,中斷激活標(biāo)志已置位,它將阻止同級中斷響應(yīng)。由于軟件看門是高級中斷,它將阻止說要中斷響應(yīng),由此可見清除中斷激活標(biāo)志的重要性[2]。在所有的指令中,只有RETI指令能夠清除中斷激活標(biāo)志。前文各處提案到的出錯處理程序ERR主要完成這一功能,其他的善后工作交由復(fù)位后的系統(tǒng)去完成。這部分程序如下:POWERDATA67H;上電標(biāo)志存放單元ERR:CLREA;關(guān)中斷MOVDPTR,#ERR1;準(zhǔn)備返回地址PUSHDPLPUSHDPHRETI;清除高級中斷激活標(biāo)志ERR1:MOVPOWER,#0AAH;重建上電標(biāo)志CLRA;準(zhǔn)備復(fù)位地址PUSHACC;壓入復(fù)位地址0000HPUSHACCRETI;清除低級中斷激活標(biāo)志,從程序0000H開始執(zhí)行這段程序先關(guān)中斷,以便后續(xù)處理能順利進(jìn)行,然后用兩個RETI指令代替兩個LJMP指令,從而清除了兩級中斷激活標(biāo)志。有相應(yīng)軟件陷阱捕捉來的程序可能沒有全部激活兩個標(biāo)志,這也無妨。3系統(tǒng)軟件設(shè)計軟件任務(wù)分析和硬件電路設(shè)計結(jié)合進(jìn)行,哪些功能由硬件完成,哪些任務(wù)由軟件完成,在硬件電路設(shè)計基本定型后,也就基本上決定下來了。3.1主程序系統(tǒng)結(jié)構(gòu)圖調(diào)整回答時間調(diào)整回答時間數(shù)碼顯示模塊數(shù)碼顯示模塊非法搶答模塊正確搶答模塊調(diào)整搶答時間按鍵模塊系統(tǒng)初始化模塊圖3.1軟件系統(tǒng)結(jié)構(gòu)圖3.2程序流程圖在本設(shè)計中包括了以下八個主要的程序:主程序、非法搶答序、搶答時間調(diào)整程序、回答時間調(diào)整程序、倒計時程序、正常搶答處理程序、犯規(guī)處理程序、顯示及發(fā)聲程序[3]。主流程圖如3.2所示。開始鍵按下?開始鍵按下?加一鍵按下?減一鍵按下?正常搶答回答時間非法搶答處理調(diào)整搶答時間顯示犯規(guī)顯示搶答號并倒計時顯示FFF初值始化YY圖3.2程序設(shè)計流程圖3.3系統(tǒng)程序P1.0為開始搶答,P1.7為停止,p1.1-p1.6為六路搶答輸入數(shù)碼管段選P0口,位選P2口,蜂鳴器輸出為P3.6口。程序代碼如下:OKEQU20H;搶答開始標(biāo)志位RINGEQU22H;響鈴標(biāo)志位ORG0000HAJMPMAINORG0003HAJMPINT0SUBORG000BHAJMPT0INTORG0013HAJMPINT1SUBORG001BHAJMPT1INTORG0040HMAIN:MOVR1,#0FH;初設(shè)搶答時間為15sMOVR2,#0AH;初設(shè)答題時間為10sMOVTMOD,#11H;設(shè)置未定時器/模式1MOVTH0,#0F0HMOVTL0,#0FFH;越高發(fā)聲頻率越高,越尖MOVTH1,#3CHMOVTL1,#0B0H;50ms為一次溢出中斷SETBEASETBET0SETBET1SETBEX0SETBEX1;允許四個中斷T0/T1/INT0/INT1CLROKCLRRINGSETBTR1SETBTR0;一開始就運行定時器,以開始顯示FFF;果想重新計數(shù)重置TH1/TL1就可以了查詢程序:START:MOVR5,#0BHMOVR4,#0BHMOVR3,#0BHACALLDISPLAY;未開始搶答時候顯示FFFJBP1.0,NEXTACALLDELAYJBP1.0,NEXT;去抖動,如果"開始鍵"按下就向下執(zhí)行;否者跳到非法搶答查詢ACALLBARK;按鍵發(fā)聲MOVA,R1MOVR6,A;送R1->R6,因為R1中保存了搶答時間SETBOK;搶答標(biāo)志位,用于COUNT只程序中判斷;是否查詢搶答MOVR3,0AH;搶答只顯示計時,滅號數(shù)AJMPCOUNT;進(jìn)入倒計時程序,"查詢有效搶答的程序";在COUNT里面NEXT:JNBP1.1,FALSE1JNBP1.2,FALSE2JNBP1.3,FALSE3JNBP1.4,FALSE4JNBP1.5,FALSE5JNBP1.6,FALSE6AJMPSTART非法搶答處理程序:FALSE1:ACALLBARK;按鍵發(fā)聲MOVR3,#01HAJMPERRORFALSE2:ACALLBARKMOVR3,#02HAJMPERRORFALSE3:ACALLBARKMOVR3,#03HAJMPERRORFALSE4:ACALLBARKMOVR3,#04HAJMPERRORFALSE5:ACALLBARKMOVR3,#05HAJMPERRORFALSE6:ACALLBARKMOVR3,#06HAJMPERRORINT0(搶答時間R1調(diào)整程序):INT0SUB:MOVA,R1MOVB,#0AHDIVABMOVR5,AMOVR4,BMOVR3,#0AHACALLDISPLAY;先在兩個時間LED上顯示R1JNBP3.2,INC0JNBP3.3,DEC0JNBP1.7,BACK0AJMPINT0SUBINC0:MOVA,R1CJNEA,#4BH,ADD0;如果不是59,R2加1,如果加到59了;R1就置0新加起MOVR1,#00HACALLDELAY1AJMPINT0SUBADD0:INCR1ACALLDELAY1AJMPINT0SUBDEC0:MOVA,R1JZSETR1;如果R1為0,R1就置59DECR1ACALLDELAY1AJMPINT0SUBSETR1:MOVR1,#4BHACALLDELAY1AJMPINT0SUBBACK0:RETIINT1(回答時間R2調(diào)整程序):INT1SUB:MOVA,R2MOVB,#0AHDIVABMOVR5,AMOVR4,BMOVR3,#0AHACALLDISPLAYJNBP3.2,INC1JNBP3.3,DEC1JNBP1.7,BACK1AJMPINT1SUBINC1:MOVA,R2CJNEA,#63H,ADD1MOVR2,#00HACALLDELAY1AJMPINT1SUBADD1:INCR2ACALLDELAY1AJMPINT1SUBDEC1:MOVA,R2JZSETR2DECR2ACALLDELAY1AJMPINT1SUBSETR2:MOVR2,#4BHACALLDELAY1AJMPINT1SUBBACK1:RETI倒計時程序(搶答倒計時和回答倒計時都跳到該程序):COUNT:MOVR0,#00H;重置定時器中斷次數(shù)MOVTH1,#3CHMOVTL1,#0B0H;重置定時器RECOUNT:MOVA,R6;R6保存了倒計時的時間之前;先將搶答時間或回答時間給R6MOVB,#0AHDIVAB;除十分出個位/十位MOV30H,A;十位存于(30H)MOV31H,B;個位存于(31H)MOVR5,30H;取十位MOVR4,31H;取個位MOVA,R6SUBBA,#07HJNCLARGER;大于5s跳到LARGER;小于等于5s會提醒MOVA,R0CJNEA,#0AH,FULL;1s中0.5s向下運行CLRRINGAJMPCHECKFULL:CJNEA,#14H,CHECK;下面系1s的情況,響并顯示號數(shù);并清R0,重新計時SETBRINGMOVA,R6JZQUIT;計時完畢MOVR0,#00HDECR6;一秒標(biāo)志減1AJMPCHECKLARGER:MOVA,R0CJNEA,#14H,CHECKDECR6;計時一秒R6自動減1MOVR0,#00HCHECK:JNBP1.7,QUIT;如按下停止鍵退出ACALLDISPLAYJBOK,ACCOUNT;如果是搶答倒計時,如是則查詢;搶答,否者跳過查詢繼續(xù)倒數(shù)AJMPRECOUNTACCOUNT:JNBP1.1,TRUE1JNBP1.2,TRUE2JNBP1.3,TRUE3JNBP1.4,TRUE4JNBP1.5,TRUE5JNBP1.6,TRUE6AJMPRECOUNTQUIT:CLROK;如果按下了"停止鍵"執(zhí)行的程序CLRRINGAJMPSTART正常搶答處理程序:TRUE1:ACALLBARK;按鍵發(fā)聲MOVA,R2MOVR6,A;搶答時間R2送R6MOVR3,#01HCLROK;因為答題的計時不再查詢搶答;所以就鎖了搶答AJMPCOUNTTRUE2:ACALLBARK;MOVA,R2MOVR6,AMOVR3,#02HCLROKAJMPCOUNTTRUE3:ACALLBARK;MOVA,R2MOVR6,AMOVR3,#03HCLROKAJMPCOUNTTRUE4:ACALLBARK;MOVA,R2MOVR6,AMOVR3,#04HCLROKAJMPCOUNTTRUE5:ACALLBARK;MOVA,R2MOVR6,AMOVR3,#05HCLROKAJMPCOUNTTRUE6:ACALLBARK;MOVA,R2MOVR6,AMOVR3,#06HCLROKAJMPCOUNT犯規(guī)搶答程序:ERROR:MOVR0,#00HMOVTH1,#3CHMOVTL1,#0B0HMOV34H,R3;犯規(guī)號數(shù)暫存與(34H)HERE:MOVA,R0CJNEA,#0AH,FLASH;0.5s向下運行->滅并停響CLRRINGMOVR3,#0AHMOVR4,#0AHMOVR5,#0AH;三燈全滅AJMPCHECK1FLASH:CJNEA,#14H,CHECK1;下面系1s的情況,響并顯示號數(shù);并清R0,重新計算SETBRINGMOVR0,#00HMOVR3,34H;取回號數(shù)MOVR5,#0BHMOVR4,#0BH;顯示FF和號數(shù)AJMPCHECK1CHECK1:JNBP1.7,QUIT1ACALLDISPLAYAJMPHEREQUIT1:CLRRINGCLROKAJMPSTART顯示程序:入口參數(shù):R5,R4,R3存入的分別為第一,二,三為數(shù)碼所顯示的位碼[3]出口參數(shù):無DISPLAY:MOVDPTR,#DAT1;查表顯示程序,利用P0口做段選碼口;輸出/P2低三位做位選碼輸出MOVA,R5MOVCA,@A+DPTRMOVP2,#01HMOVP0,AACALLDELAYMOVDPTR,#DAT2MOVA,R4MOVCA,@A+DPTRMOVP2,#02HMOVP0,AACALLDELAYMOVA,R3MOVCA,@A+DPTRMOVP2,#04HMOVP0,AACALLDELAYRETDAT1:DB00H,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,71H;"滅","1","2","3","4","5","6","7","8","9","滅","F"DAT2:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,71H;第一個為零,其他與上相同,因為十位如果為零顯示熄滅加減時間延時(起到不會按下就加N個數(shù)):DELAY1:MOV35H,#08HLOOP0:ACALLDISPLAYDJNZ35H,LOOP0RET延時(顯示和去抖動用到):DELAY:MOV32H,#12HLOOP:MOV33H,#0AFHLOOP1:DJNZ33H,LOOP1DJNZ32H,LOOPRET發(fā)聲程序:BARK:SETBRINGACALLDELAY1ACALLDELAY1CLRRING;按鍵發(fā)聲RETTO溢出中斷(響鈴程序):T0INT:MOVTH0,#0ECHMOVTL0,#0FFHJNBRING,OUTCPLP3.6;RING標(biāo)志位為1時候P3.6口不短;取反使喇叭發(fā)出一定頻率的聲音OUT:RETIT1溢出中斷(計時程序):T1INT:MOVTH1,#3CHMOVTL1,#0B0HINCR0RETIEND4調(diào)試及性能分析(1)具有清零裝置和搶答控制,可由主持人操縱避免有人在主持人說“開始”前提前搶答違反規(guī)則。(2)具有定時功能,在30秒內(nèi)無人搶答表示所有參賽選手獲參賽隊對本題棄權(quán)。(3)30秒時仍無人搶答其報警電路工作表示搶答時間耗盡并禁止搶答。(4)如果想調(diào)節(jié)搶答時間或答題時間,按"搶答時間調(diào)節(jié)"鍵或"答題時間調(diào)節(jié)"鍵進(jìn)入調(diào)節(jié)狀態(tài),此時會顯示現(xiàn)在設(shè)定的搶答時間或回答時間值,如想加一秒按一下"加1s"鍵,如果想減一秒按一下"-1s"鍵,時間LED上會顯示改變后的時間,調(diào)整范圍為0s~59s,0s時再減1s會跳到59,59s時再加1s會變到0s。(5)主持人按"搶答開始"鍵,會有提示音,并立刻進(jìn)入搶答倒計時(預(yù)設(shè)15s搶答時間),如有選手搶答,會有提示音,并會顯示其號數(shù)并立刻進(jìn)入回答倒計時(預(yù)設(shè)10s搶答時間),不進(jìn)行搶答查詢,所以只有第一個按搶答的選手有效。倒數(shù)時間到小于5s會每秒響一下提示音。(6)如倒計時期間,主持人想停止倒計時可以隨時按"停止"按鍵,系統(tǒng)會自動進(jìn)入準(zhǔn)備狀態(tài),等待主持人按"搶答開始"進(jìn)入下次搶答計時。(7)如果主持人未按"搶答開始"鍵,而有人按了搶答按鍵,犯規(guī)搶答,LED上不斷閃爍FF和犯規(guī)號數(shù)并響個不停,直到按下"停止"鍵為止[4]。圖4.1正常搶答狀態(tài)圖4.2違規(guī)搶答狀態(tài)圖4.3沒人搶答狀態(tài)圖4.4復(fù)位狀態(tài)圖片分析如下。圖4.1表示正常搶答狀態(tài)下,主持人按下“OK”鍵后,2號選手開始搶答,26s為回答時間。圖4.2表示違規(guī)搶答狀態(tài)下,主持人沒按下“OK”鍵,5號選手違規(guī)搶答。圖4.3表示沒人搶答狀態(tài)下,主持人按下“OK”鍵后,沒人搶答。圖4.4表示復(fù)位狀態(tài)下,有電源,主持人沒按下“OK”鍵時的狀態(tài)??偨Y(jié)通過本次課程設(shè)計使我對Proteus仿真軟件的使用和匯編語言有了更進(jìn)一步的了解和掌握。并且在老師的耐心指導(dǎo)和自己的不懈努力下,我終于順利的完成了這次科研實踐。在最初編寫過程中,我也曾經(jīng)因為實踐經(jīng)驗的缺乏失落過,也曾經(jīng)因仿真成功而熱情高漲。特別是Proteus仿真軟件的使用,一開始因為對軟件不熟悉,要慢慢摸索,后來差不多會了以后,畫仿真圖又浪費了我大量的時間,最后在不斷努力中終于把仿真圖畫出來了,最后要把寫好的程序?qū)胄酒?。其實這也是一大難事,由于對于書本上的很多知識還不能靈活運用,尤其是對程序語言的理解和運用,不能夠充分理解每個語句的具體含義,導(dǎo)致編程的程序過于復(fù)雜。但后來通過自己和同學(xué)的仔細(xì)的分析,并認(rèn)真分析了原來已有的代碼和應(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é)作的過程中增進(jìn)同學(xué)友誼,使我對團(tuán)隊精神的積極性和重要性有了更加充分的理解,為以后進(jìn)入社會奠定了一些基礎(chǔ)。參考文獻(xiàn)[1]李光飛.單片機(jī)課程設(shè)計實例指導(dǎo).北京航天航空大學(xué)出版社,2004.[2]李朝青.單片機(jī)原理及接口技術(shù)(第3版).北京航空航天大學(xué)出版社,2002.[3]胡偉.單片機(jī)C程序設(shè)計及應(yīng)用實例.人民郵電出版社,2003.[4]馮育長.單片機(jī)系統(tǒng)設(shè)計與實例指導(dǎo).西安電子科技大學(xué)出版社,2007.基于C8051F單片機(jī)直流電動機(jī)反饋控制系統(tǒng)的設(shè)計與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機(jī)控制的二級倒立擺系統(tǒng)的研究基于增強型51系列單片機(jī)的TCP/IP協(xié)議棧的實現(xiàn)基于單片機(jī)的蓄電池自動監(jiān)測系統(tǒng)基于32位嵌入式單片機(jī)系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機(jī)的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機(jī)的交流伺服電機(jī)運動控制系統(tǒng)研究與開發(fā)基于單片機(jī)的泵管內(nèi)壁硬度測試儀的研制基于單片機(jī)的自動找平控制系統(tǒng)研究基于C8051F040單片機(jī)的嵌入式系統(tǒng)開發(fā)基于單片機(jī)的液壓動力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機(jī)實現(xiàn)一種基于單片機(jī)的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機(jī)的在線間歇式濁度儀的研制基于單片機(jī)的噴油泵試驗臺控制器的研制基于單片機(jī)的軟起動器的研究和設(shè)計基于單片機(jī)控制的高速快走絲電火花線切割機(jī)床短循環(huán)走絲方式研究基于單片機(jī)的機(jī)電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機(jī)的智能手機(jī)充電器基于單片機(jī)的實時內(nèi)核設(shè)計及其應(yīng)用研究基于單片機(jī)的遠(yuǎn)程抄表系統(tǒng)的設(shè)計與研究基于單片機(jī)的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機(jī)系統(tǒng)單片機(jī)系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機(jī)的液體點滴速度自動檢測儀的研制基于單片機(jī)系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機(jī)的電能采集終端的設(shè)計和應(yīng)用基于單片機(jī)的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機(jī)單片機(jī)控制系統(tǒng)的研制基于單片機(jī)的數(shù)字磁通門傳感器基于單片機(jī)的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機(jī)的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機(jī)控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機(jī)的多生理信號檢測儀基于單片機(jī)的電機(jī)運動控制系統(tǒng)設(shè)計Pico專用單片機(jī)核的可測性設(shè)計研究基于MCS-51單片機(jī)的熱量計基于雙單片機(jī)的智能遙測微型氣象站MCS-51單片機(jī)構(gòu)建機(jī)器人的實踐研究基于單片機(jī)的輪軌力檢測基于單片機(jī)的GPS定位儀的研究與實現(xiàn)基于單片機(jī)的電液伺服控制系統(tǒng)用于單片機(jī)系統(tǒng)的

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論