![基于單片機(jī)的六路搶答器_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/4/f5d4a2b8-0fad-4987-97a0-69d41f826dc0/f5d4a2b8-0fad-4987-97a0-69d41f826dc01.gif)
![基于單片機(jī)的六路搶答器_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/4/f5d4a2b8-0fad-4987-97a0-69d41f826dc0/f5d4a2b8-0fad-4987-97a0-69d41f826dc02.gif)
![基于單片機(jī)的六路搶答器_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/4/f5d4a2b8-0fad-4987-97a0-69d41f826dc0/f5d4a2b8-0fad-4987-97a0-69d41f826dc03.gif)
![基于單片機(jī)的六路搶答器_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/4/f5d4a2b8-0fad-4987-97a0-69d41f826dc0/f5d4a2b8-0fad-4987-97a0-69d41f826dc04.gif)
![基于單片機(jī)的六路搶答器_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/4/f5d4a2b8-0fad-4987-97a0-69d41f826dc0/f5d4a2b8-0fad-4987-97a0-69d41f826dc05.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計(論文)題目名稱 基于單片機(jī)的六路搶答器課程名稱單片機(jī)原理及應(yīng)在電氣測控學(xué)科中的應(yīng)用學(xué)生姓名田政宇學(xué)號 1041202040系、專業(yè) 電氣工程系10自動化指導(dǎo)教師朱群峰邵陽學(xué)院課程設(shè)計(論文)任務(wù)書年級專業(yè)10自動化學(xué)生姓名田政宇學(xué)號1041202040題目名稱基于單片機(jī)的六路搶答器設(shè)計設(shè)計時間2012年6月4日2012年6月15日課程名稱單片機(jī)原理及在電氣測控學(xué)科中的應(yīng)用課程編號121200105設(shè)計地點數(shù)字控制與PLC實驗室創(chuàng)新實驗室(214)(305)一、 課程設(shè)計(論文)目的課程設(shè)計是在校學(xué)生素質(zhì)教育的重要環(huán)節(jié),是理論與實踐相結(jié)合的橋梁和紐帶。單片機(jī)課程設(shè)計,要求學(xué)生更多的完成
2、軟硬結(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、電源、電阻,導(dǎo)線,LED7段數(shù)碼顯示,發(fā)光二極管等3、KEIL 軟件;Wave軟件4、THKSCM-1型單片機(jī)實驗系統(tǒng)。三、 任務(wù)和要求設(shè)計要求掌握六路搶答器的基本原理;掌握六路搶答器硬件電路的設(shè)計;掌握六路搶答器軟
3、件程序設(shè)計。設(shè)計一個可供6人進(jìn)行的搶答器;系統(tǒng)設(shè)置復(fù)位按鈕,按動后,重新開始搶答;搶答器開始時數(shù)碼管顯示序號0,選手搶答實行優(yōu)先鎖存,優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清除為止。搶答后顯示優(yōu)先搶答者序號,同時發(fā)出音響,并且不出現(xiàn)其他強(qiáng)打著的序號;搶答器具有定時搶答功能,且一次搶答的時間由主持人設(shè)定,本搶答器的時間設(shè)定為60秒,當(dāng)主持人啟動“開始”開關(guān)后,定時器開始減計時,同時音樂盒有短暫的聲響;設(shè)定的搶答時間內(nèi)選手可以搶答,這時定時器停止工作,顯示器上顯示選手的號碼盒搶答時間,并保持到主持人按復(fù)位鍵;當(dāng)設(shè)定的時間到,而無人搶答時,本次搶答無效,揚聲器報警發(fā)出聲音,并禁止搶答,定時器上顯示
4、00。a) 要求設(shè)計出電氣原理圖;b) 要求設(shè)計出程序流程圖; 3、要求設(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月3、THKSCM-1型單片機(jī)實驗系統(tǒng)實驗指導(dǎo)書、KEIL 軟件,WAVE 軟件4、數(shù)字控制與PLC實驗室”THKSCM-1型單片機(jī)實驗系統(tǒng)”。五、進(jìn)度安排2012年6月4日-5日:收集和課程設(shè)計有關(guān)的資料,熟悉
5、課題任務(wù)何要求總體方案設(shè)計2012年6月6日8日:硬件電路設(shè)計2012年6月9日-11日:軟件設(shè)計2012年6月12日-13日:系統(tǒng)調(diào)試改進(jìn)2012年6月14日:整理書寫設(shè)計說明書2012年6月15日:答辯并現(xiàn)場考核六、教研室審批意見教研室主任(簽字):年月日七|、主管教學(xué)主任意見主管主任(簽字):年月日八、備注指導(dǎo)教師(簽字):學(xué)生(簽字):邵陽學(xué)院課程設(shè)計(論文)評閱表學(xué)生姓名田政宇 學(xué) 號1041202040系電氣工程系專業(yè)班級10級自動化題目名稱基于單片機(jī)的六路搶答器設(shè)計課程名稱單片機(jī)一、學(xué)生自我總結(jié)完成本次課程設(shè)計的過程,是一個從無到有的過程,經(jīng)歷了興奮、自信、失落、奮發(fā)、所悟、完成
6、幾個過程。剛做做課程設(shè)計時,仔細(xì)閱讀設(shè)計的題目和要求,以為沒什么困難的,所用的知識書上都有。可是當(dāng)我動手開始做的時候,才發(fā)現(xiàn)其中的繁瑣。經(jīng)過一天的努力,毫無結(jié)果。失落的心情油然而生。于是, 再到圖書館和網(wǎng)上查找資料,在經(jīng)過借鑒很多類似的資料,文獻(xiàn)后,總算是有 點 眉目了。埋頭苦干的過程是痛苦的,迷茫,煩躁,特別是當(dāng)苦思出來一個結(jié)果,又被自己推翻,心痛的無法言繪。在痛苦中掙扎,建立,推翻,參考別人的思 路, 建立,再次在推翻,在這不斷循環(huán)中,終于最后完善了程序。其中的煎熬是很痛苦的,深刻明白攻克自己“未知領(lǐng)域”的困難。但當(dāng)課程設(shè)計完成時, 那感覺是甜蜜的,沒有耕耘,哪來得收獲的喜悅,不懂付出怎么
7、能知道回報的 快樂,一分耕耘一分收獲,有付出才會有回報,就在這樣的痛與快樂的交換中,我學(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è)計是六路智力搶答器。使用52系列單片機(jī)芯片,編寫應(yīng)用程序來實現(xiàn)智力搶答功能。硬件設(shè)計使用的是52系列中的STC89C52,硬件設(shè)計利用其中中斷控制程序進(jìn)行強(qiáng)大部分的處理
8、,通過多輸入與門的控制去申請單片內(nèi)部的中斷,以達(dá)到顯示搶答的目的??紤]到需要設(shè)定顯示回答的功能,利用STC89C52單片機(jī)及外圍接口實現(xiàn)的搶答系統(tǒng),利用單片機(jī)的定時/計數(shù)器定時和技術(shù)的原理,將軟、硬件有機(jī)地結(jié)合起來,似的系統(tǒng)能過正確的計時,同時是數(shù)碼管能夠正確地顯示時間。利用按鍵開關(guān)進(jìn)行信號輸入以及搶答和回答時間的設(shè)定,搶答時間和答題時間可在1-99s之間設(shè)定。在搶答中,只有當(dāng)主持人按開始之后才可以搶答。如果有選手在開始之前就搶答了,程序?qū)⒁暺錇闊o效搶答,并且在LED數(shù)碼管上顯示是哪位選手無效。無效搶答時,蜂鳴器將發(fā)出滴滴的警報聲。正確搶答時,數(shù)碼管上顯示出搶答選手的號碼,并顯示答題時間倒計時
9、,到倒計時最后5s時,蜂鳴器發(fā)出蜂鳴提示選手答題時間將到,滿時后,數(shù)碼管顯示000,到主持人再次按開始鍵后,顯示才能進(jìn)行再次搶答。關(guān)鍵字:STC89C52LED數(shù)碼管 搶答器 計時 蜂鳴器目錄中文摘要第一章 系統(tǒng)概述與原理圖 1.1 系統(tǒng)的主要功能 1.2 系統(tǒng)需求分析 1.3 搶答器的工作流程 1.4 搶答器的優(yōu)點及組成 第二章系統(tǒng)總體方案的設(shè)計 2.1 硬件電路的設(shè)計 2.2 總體原理圖 2.3 時針頻率電路的設(shè)計 2.4 復(fù)位電路的設(shè)計 2.5 顯示模塊在系統(tǒng)軟件中的安排 2.6 鍵盤電路的設(shè)計 2.7 系統(tǒng)復(fù)位 第三章 搶答器的軟件設(shè)計 3.1 程序任務(wù)分析 3.2 主程序結(jié)構(gòu)圖 3.
10、3 程序流程圖設(shè)計 3.4 程序設(shè)計 第四章 仿真組圖及實物圖 4.1 仿真系統(tǒng)原理圖 4.2 設(shè)置計時時間 4.3 搶答成功倒計時 4.4 調(diào)試及性能分析及實物第五章 設(shè)計小結(jié) 參考文獻(xiàn) 第一章 系統(tǒng)概述與原理圖1.1系統(tǒng)的主要功能本系統(tǒng)是借用單片機(jī)采用模塊化設(shè)計的智能搶答器,主控與參與者設(shè)為終端分系統(tǒng)。參賽者分系統(tǒng)設(shè)有:搶答按鈕、計時顯示、提示功能等(根據(jù)需要可另設(shè)或多設(shè)相關(guān)功能);主控分系統(tǒng)有:開始與結(jié)束控制按鈕、時限設(shè)定、各種相關(guān)顯示調(diào)控功能等(根據(jù)需要也可另設(shè)或多設(shè)相關(guān)功能)。參賽者系統(tǒng),除享有搶答按鈕的權(quán)力功能外,還有人性化的提示功能和時間提示功能,也可設(shè)定由主控控制在參賽者終端表
11、現(xiàn)的趣味性功能等;主控系統(tǒng)的控制按鈕做開始與結(jié)束控制,根據(jù)活動參賽者的層次,對提前搶答者的行為設(shè)定為非法或阻隔,若設(shè)有非法搶答控制功能時,在主控處帶有公示性顯示的非法搶答者的臺位號,對搶答限時和回答問題限時設(shè)為倒計時式,并有公示性顯示。如圖1.1所示。初始化聲生器主控制器時鐘頻率復(fù)位電路鍵盤顯示 圖1.1 系統(tǒng)主要功能模塊本系統(tǒng)采用模塊化設(shè)計智能搶答器,在搶答比賽中廣泛應(yīng)用,各組分別有一個搶答按鈕。主持人有開始和復(fù)位鍵。在后臺主持人可以修改搶答時間和選手回答時間的設(shè)置,原始狀態(tài)下?lián)尨饡r間為60s,回答時間為60s。通過加減鍵可對上述時間進(jìn)行修改,改完后結(jié)束鍵確定。新時間開始有效,主持人按鍵開始
12、后,選手開始搶答為有效,數(shù)碼管顯示搶答時間倒計時和選手號,在最后五秒蜂鳴器發(fā)聲提示。如果主持人沒有按下開始鍵,而選手就搶答了視為犯規(guī),數(shù)碼管顯示犯規(guī)者的號碼,蜂鳴器持續(xù)發(fā)聲。主持人可按鍵結(jié)束,新一輪搶答開始。系統(tǒng)的主要功能模塊方框圖如圖1.2所示。搶答主板:搶答主板是整個搶答器的核心,其關(guān)鍵是單片機(jī)STC89C52。內(nèi)部電路設(shè)計用匯編語言編寫。他完成了時間參數(shù)的設(shè)定,搶按號碼的譯碼,保存,顯示,輸出,搶答及答題倒計時功能等。 顯示及指示:本設(shè)計中,有一個共陰極的四位數(shù)碼管,其中兩個顯示時間,一個空位,一個顯示搶答者的號碼。主持人依次按下復(fù)位鍵,開始鍵后開始搶答。超時數(shù)碼管顯示000,當(dāng)搶按超過
13、規(guī)定時間或答題超過規(guī)定時間,數(shù)碼管顯示000.若有選手在規(guī)定的時間內(nèi)搶按成功,則可以大體,數(shù)碼管顯示搶答時間的同時也顯示選手號碼。若在按開始鍵前搶答便是違規(guī),數(shù)碼管顯示00并顯示選手號。1.2 系統(tǒng)需求分析 1、在搶答中,只有開始后搶答才有效,如果在開始前搶答為無效。 2、搶答限定時間和回答問題的時間可在1-99s設(shè)定。 3、可以顯示是哪位選手有效搶答和無效搶答,正確按鍵后有音樂提示。 4、搶答時間和回答問題時間倒計時顯示,時間完后系統(tǒng)自動復(fù)位。 5、按鍵鎖定,在有效狀態(tài)下,按鍵無效非法。1.3 搶答器工作流程搶答器的基本工作原理:在搶答競賽獲呼叫時,有多個信號同時送入主電路中,搶答器內(nèi)部的寄
14、存器工作,并識別、記錄第一個號碼,同時內(nèi)部的定時器開始工作,記錄有關(guān)時間并產(chǎn)生超時信號。在整個搶答器工作過程中,顯示電路、語音電路等還要根據(jù)現(xiàn)場的實際情況向外電路輸出相應(yīng)的信號。搶答器的工作流程分為:系統(tǒng)復(fù)位、正常流程、位列流程等幾部分,如圖1.2所示。加載程序運 行行開始開始數(shù)碼管顯示000開始搶按時間倒計時開始前有選手搶按顯示違例選手號碼并伴有語音報警倒計時結(jié)束,超時有選手搶按顯示000顯示選手號碼,倒計時時間,語音報警,答題,答題時間倒計時正常流程違規(guī)流程若超過答題時間,則數(shù)碼管顯示000答題完畢根據(jù)選手表現(xiàn),規(guī)則由主持人減分圖1.2 搶答器工作流程1.4 搶答器的優(yōu)點及組成在知識比賽中
15、,特別是做搶答題目的時候,在搶答過程中,為了知道哪一組或哪一位選手先答題,必須要設(shè)計一個系統(tǒng)來完成這個任務(wù)。如果在搶答中,靠視覺是很難判斷出哪組先答題。利用單片機(jī)系統(tǒng)來設(shè)計搶答器,使以上問題得以解決,即使兩組的搶答時間相差幾微秒,也可分辨出哪組優(yōu)先答題。本文主要介紹了單片機(jī)搶答器設(shè)計及工作原理,以及它的實際用途。系統(tǒng)工作原理本系統(tǒng)采用STC89C52單片機(jī)作為核心??刂葡到y(tǒng)的四個模塊分別為:存儲模塊、顯示模塊、語音模塊、搶答開關(guān)模塊。該搶答器系統(tǒng)通過開關(guān)電路六個按鍵輸入搶答信號;利用存儲程序來完成軟件的設(shè)計;利用一個數(shù)碼管來完成顯示功能。工作時,用按鍵通過開關(guān)電路輸入各路的搶答信號,經(jīng)單片機(jī)的
16、處理,輸出控制信號,控制數(shù)碼管和語音芯片工作。在數(shù)碼管上顯示哪一組先答題,并通過語音系統(tǒng)讀出第N組請答題,從而實現(xiàn)整個搶答過程。第二章 單片機(jī)的功能簡介2.1硬件電路設(shè)計本設(shè)計分為硬件設(shè)計和軟件設(shè)計5,這兩者相互結(jié)合,不可分離;從時間上看,硬件設(shè)計的絕大部分工作量是在最初階段,到后期往往還要做一些修改。只要技術(shù)準(zhǔn)備充分,硬件設(shè)計的大返工是比較少的,軟件設(shè)計的任務(wù)貫徹始終,到中后期基本上都是軟件設(shè)計任務(wù),隨著集成電路技術(shù)的飛速發(fā)展,各種功能很強(qiáng)的芯片不斷出現(xiàn),使硬件電路的集成度越來越高,硬件設(shè)計的工作量在整個項目中的所占的比重逐漸下降。為使硬件電路設(shè)計盡可能合理,應(yīng)注意以下幾方面:(1) 盡可能
17、采用功能強(qiáng)的芯片,以簡化電路,功能強(qiáng)的芯片可以代替若干普通芯片,隨著生產(chǎn)工藝的提高,新型芯片的的價格不斷下降,并不一定比若干普通芯片價格的總和高。(2) 留有設(shè)計余地。在設(shè)計硬件電路時,要考慮到將來修改擴(kuò)展的方便。因為很少有一錘定音的電路設(shè)計,如果現(xiàn)在不留余地,將來可能要為一點小小的修改或擴(kuò)展而被迫進(jìn)行全面返工。(3) 程序空間,選用片內(nèi)程序空間足夠大的單片機(jī),本設(shè)計采用STC89C52單片機(jī)。(4) RAM空間,STC89C52內(nèi)部RAM不多,當(dāng)要增強(qiáng)軟件數(shù)據(jù)處理功能時,往往覺得不足。如果系統(tǒng)配置了外部RAM,則建議多留一些空間。如選用8155作I/O接口,就可以增強(qiáng)256字節(jié)RAM.如果有
18、大批數(shù)據(jù)需要處理,則應(yīng)配置足夠的RAM,如6264,62256等。隨著軟件設(shè)計水平的提高,往往只要改變或增加軟件中的數(shù)據(jù)處理算法,就可以使系統(tǒng)功能提高很多,而系統(tǒng)的硬件不必做任何更換就使系統(tǒng)升級換代。只要在硬件電路設(shè)計初期考慮到這一點,就應(yīng)該為系統(tǒng)將來升級留足夠的RAM空間,哪怕多設(shè)計一個RAM的插座,暫不插芯片也好。(5) I/O端口:在樣機(jī)研制出來后進(jìn)行現(xiàn)場試用時,往往會發(fā)現(xiàn)一些被忽視的問題,而這些問題不是靠單純的軟件措施來解決的。如有些新的信號需要采集,就必須增加輸入檢測端;有些物理量需要控制,就必須增加輸出端。如果在硬件電路設(shè)計就預(yù)留出一些I/O端口,雖然當(dāng)時空著沒用,那么用的時候就派
19、上用場了。2.2 總體原理圖S15S14LS1¿ªÊ¼½áÊø123456+5VS4S3S9S5S7S6S2Y1R1C2C3C1abfcgdeDPYdpabfcgdeDPYdpabfcgdeDPYdpabfcgdeDPYdpA1B2C3D4E5F6G71234DS1R2R3R4R13R14R15R16P0.039P0.138P0.237P0.336P0.435P0.534P0.633P0.732P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728P3.010P3.111P
20、3.212P3.313P3.414P3.515P3.616P3.717XTAL119XTAL218RST9/RSEN29ALE30/EA31P1.88P1.77P1.56P1.45P1.34P1.23P1.12P1.01U1+5V圖2.1系統(tǒng)原理圖P1.0為開始搶答,P1.7為停止,為六路搶答輸入,數(shù)碼管段選P0口,位選P2口低3位,蜂鳴器輸出為P3.6口。P3.2為時間加1調(diào)整,P3.3為時間減1調(diào)整。2.3 時針頻率電路的設(shè)計單片機(jī)必須在時鐘的驅(qū)動下才能工作.在單片機(jī)內(nèi)部有一個時鐘振蕩電路,只需要外接一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機(jī)內(nèi)部的各個單元,決定單片機(jī)的工作速度。如圖2.2
21、所示。圖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.4 復(fù)位電路的設(shè)計單片機(jī)的第9腳RST為硬件復(fù)位端,只要將該端持續(xù)
22、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.5 顯示電路在系統(tǒng)軟件中的安排操作者主要設(shè)計從顯示設(shè)備上獲取微機(jī)系統(tǒng)的信息的,因此,操作者每操作一下,顯示設(shè)備商都應(yīng)該有一定的反應(yīng)。這說明,顯示
23、模塊與操作有關(guān),即監(jiān)控程序是需要調(diào)用顯示模塊。不同的操作需要顯示不同的內(nèi)容,這又說明各執(zhí)行模塊對顯示模塊的驅(qū)動方式是不同的。另一方面,在操作者沒有進(jìn)行操作時,顯示內(nèi)容也是變化的,如顯示現(xiàn)場各物理量的變化情況。這時顯示模塊不是由操作者通過命令鍵來驅(qū)動,而是由各類自動執(zhí)行的功能模塊來驅(qū)動。自動執(zhí)行的各類模塊在安排在各種中斷子程序中,這就是說,各種中斷子程序也要調(diào)用顯示模塊。如果監(jiān)控安排在中斷子程序中,兩者的要求就統(tǒng)一了,問題比較好解決,如果監(jiān)控程序安排在主程序中,在監(jiān)控程序調(diào)用顯示模塊的過程中發(fā)生了中斷,中斷子程序也調(diào)用顯示模塊,這時就容易出問題。一種比較妥善的辦法是只讓一處調(diào)用顯示模塊,其他各處
24、均不得直接調(diào)用顯示模塊,但有權(quán)申請顯示。這就要設(shè)置一個顯示申請標(biāo)志,當(dāng)某模塊需要顯示時,將申請標(biāo)志置位,同時設(shè)定有關(guān)顯示內(nèi)容(或指針)。由于一處調(diào)用顯示模塊,故不會發(fā)生沖突。為了使顯示模塊能及時反應(yīng)系統(tǒng)需要,應(yīng)將顯示模塊安排在一個重復(fù)執(zhí)行的循環(huán)(如監(jiān)控循環(huán)或時鐘中斷子程序)中。當(dāng)監(jiān)控程序(鍵盤解釋程序)安排在時鐘中斷子程序中時,處理比較方便,只要在監(jiān)控程序的匯合處調(diào)用顯示模塊就可以了。例如用DISP作顯示申請標(biāo)志,就可以這樣安排顯示模塊的調(diào)用,即DISP BIT 2DH.4 ;顯示申請標(biāo)志SKEYEND:JNB DISP,RETI0 ;有顯示申請否? LCALL DISPLAY ;調(diào)用顯示模塊
25、,更新顯示內(nèi)容 CLR DISP ;清除申請 RETI ;中斷返回KEYEND為鍵盤解釋程序的最后匯集點,這時如果發(fā)現(xiàn)有顯示申請,就進(jìn)行集中操作,更新顯示內(nèi)容,否則就跳過這一步。這里將顯示功能集中到一起,作為一個功能模塊,就要求它的功能全面,能根據(jù)系統(tǒng)軟件提供的信息自動完成顯示內(nèi)容的查找,變換和輸出驅(qū)動。這樣設(shè)計使得各功能模塊都不必考慮顯示問題,只要給出一個簡單的信息(如顯示格式編碼)甚至不用再提供額外信息,直接利用當(dāng)前狀態(tài)變量和軟件標(biāo)志就可以完成所需的顯示要求。如果編寫這樣一個集中顯示模塊有困難,也可以將顯示模塊編小一些,只完成顯示緩沖區(qū)的內(nèi)容輸出到顯示器件上的工作。這時各功能模塊在提出顯示
26、申請時,還需要將顯示內(nèi)容按需要的格式送入顯示緩沖區(qū)中。這樣分而治之比較容易編程,但要小心出現(xiàn)顯示混亂。例如后臺程序需要調(diào)用顯示,將有關(guān)信息送入到現(xiàn)實緩沖區(qū)進(jìn)行顯示;中斷返回后,后臺程序繼續(xù)送完后半部分顯示內(nèi)容,但前半部分內(nèi)容已經(jīng)變了,這樣就出現(xiàn)了顯示錯誤。解決的辦法是,在申請顯示前,先檢查是否已經(jīng)有顯示申請,如果有,就不再申請,等待下次機(jī)會;如果沒有,則先申請標(biāo)志位,再將顯示內(nèi)容送入顯示緩沖區(qū)。這時就不必?fù)?dān)心其他前臺模塊來打擾了,就可以得到一次完整的顯示機(jī)會。在這里我們使用的是七段數(shù)碼管顯示,通常在顯示6上我們采用的方法一般包括兩種:一種是靜態(tài)顯示,一種是動態(tài)顯示。其中靜態(tài)顯示的特點是顯示穩(wěn)定
27、不閃爍,程序編寫簡單,但占用端口資源多;動態(tài)顯示的特點是顯示穩(wěn)定性沒靜態(tài)好,程序編寫復(fù)雜,但是相對靜態(tài)顯示而言占用端口資源少。在本設(shè)計中根據(jù)實際情況采用的是動態(tài)顯示方法。并通過查表法,將其在數(shù)碼管上顯示出來,其中P0口為字型碼輸入端,P2口低3位為字選段輸入端。在這里我們通過查表將字型碼送給7段數(shù)碼管顯示的數(shù)字,如圖2.4所示 。MOV A,R5 MOVC A,A+DPTR ;查字型碼 MOV P2,#01H ;送位選碼 MOV P0,A ;送字型碼ACALL DELAY ;調(diào)延時,去閃爍圖2.4共陰極數(shù)碼管在七段數(shù)碼管顯示中可分為共陽極和共陰極兩種類型極。以共陰為例,要想a段亮,向a段送1就
28、是,返之送0,共陽剛好相反。2.6 鍵盤電路設(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)用中鍵盤用得最多的形式是獨立鍵盤及矩陣鍵盤。如圖2.5所示。 圖2.5獨立鍵盤它們各有自己的特點,其中獨立鍵盤硬件電路簡單,而且在程序設(shè)計上也不復(fù)雜,一般用在對硬件電路要求不高的簡單電路中;矩陣鍵盤與獨立鍵盤有很大區(qū)別,首先在
29、硬件電路上它要比獨立鍵盤復(fù)雜得多,而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢得多,因此它更適合于多按鍵電路。其次就是消除在按鍵過程中產(chǎn)生的“毛刺” 現(xiàn)象。這里采用最常用的方法,即延時重復(fù)掃描法,延時法的原理為:因為“毛刺”脈沖一般持續(xù)時間短,約為幾毫秒,而我們按鍵的時間一般遠(yuǎn)遠(yuǎn)大于這個時間,所以當(dāng)單片機(jī)檢測到有按鍵動靜后再延時一段時間(這里我們?nèi)?0ms)后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無效。2.7 系統(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外部
30、的硬件電路給CPU的RESET端加上足夠時間的高電位才能實現(xiàn)。上電復(fù)位,人工按鈕復(fù)位和硬件看門狗復(fù)位均為硬件復(fù)位。硬件復(fù)位后,各專用寄存器的狀態(tài)均被初始化,且對片內(nèi)通用寄存器的內(nèi)容沒有影響。但是,硬件復(fù)位還能自動清除中斷激活標(biāo)志,使中斷系統(tǒng)能夠正常工作,這樣一個事實卻容易為不少編碼人員所忽視。軟件復(fù)位就是用一系列指令來模擬硬件復(fù)位功能,最后通過轉(zhuǎn)移指令使程序從0000H地址開始執(zhí)行。對各專用寄存器的復(fù)位操作是容易的,也沒有必要完全模擬,可根據(jù)實際需要去主程序初始化過程中完成。而對中斷激活標(biāo)志的清除工作常被遺忘,因為它沒有明確的位地址可供編程。有的編程人員用020000(LJMP 0000H)作
31、為軟件陷阱,認(rèn)為直接轉(zhuǎn)向0000H地址就完成了軟件復(fù)位,就是這類錯誤的典型代表。軟件復(fù)位是使用軟件陷阱和軟件看門狗后必須進(jìn)行的工作,這時程序出錯完全有可能發(fā)生在中斷子程序中,中斷激活標(biāo)志已置位,它將阻止同級中斷響應(yīng)。由于軟件看門是高級中斷,它將阻止說要中斷響應(yīng),由此可見清除中斷激活標(biāo)志的重要性。在所有的指令中,只有RETI指令能夠清除中斷激活標(biāo)志。前文各處提案到的出錯處理程序ERR主要完成這一功能,其他的善后工作交由復(fù)位后的系統(tǒng)去完成。這部分程序如下:POWER DATA 67H ;上電標(biāo)志存放單元 ERR: CLR EA ;關(guān)中斷 MOV DPTR,#ERR1 ;準(zhǔn)備返回地址PUSH DPL
32、PUSH 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ù)處理能順利進(jìn)行,然后用兩個RETI指令代替兩個LJMP指令,從而清除了兩級中斷激活標(biāo)志。有相應(yīng)軟件陷阱捕捉來的程序可能沒有全部激活兩個標(biāo)志,這也無妨。第三章 搶答器的軟件設(shè)計3.1 軟件任務(wù)分析軟件任務(wù)分析和硬件電路設(shè)計結(jié)合進(jìn)行,哪些功能由硬件完成,哪些任務(wù)由軟件完成,在硬件電路設(shè)計基本定型后,也就基本上決定下來了。軟件
33、任務(wù)分析環(huán)節(jié)是為軟件設(shè)計做一個總體規(guī)劃。從軟件的功能來看可分為兩大類:一類是執(zhí)行軟件,它能完成各種實質(zhì)性的功能,如測量,計算,顯示,打印,輸出控制和通信等,另一類是監(jiān)控軟件,它是專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系,在系統(tǒng)軟件中充當(dāng)組織調(diào)度角色的軟件。這兩類軟件的設(shè)計方法各有特色,執(zhí)行軟件的設(shè)計偏重算法效率,與硬件關(guān)系密切,千變?nèi)f化。軟件任務(wù)分析時,應(yīng)將各執(zhí)行模塊一一列出,并為每一個執(zhí)行模塊進(jìn)行功能定義和接口定義(輸入輸出定義)。在各執(zhí)行模塊進(jìn)行定義時,將要牽扯到的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類型問題也一并規(guī)劃好。各執(zhí)行模塊規(guī)劃好后,就可以監(jiān)控程序了。首先根據(jù)系統(tǒng)功能和鍵盤設(shè)置選擇一種最適合的監(jiān)控程序結(jié)構(gòu)。
34、相對來講,執(zhí)行模塊任務(wù)明確單純,比較容易編程,而監(jiān)控程序較易出問題。這如同當(dāng)一名操作工人比較容易,而當(dāng)一個廠長就比較難了。軟件任務(wù)分析的另一個內(nèi)容是如何安排監(jiān)控軟件和各執(zhí)行模塊。整個系統(tǒng)軟件可分為后臺程序(背景程序)和前臺程序。后臺程序指主程序及其調(diào)用的子程序,這類程序?qū)崟r性要求不是太高,延誤幾十ms甚至幾百ms也沒關(guān)系,故通常將監(jiān)控程序(鍵盤解釋程序),顯示程序和打印程序等與操作者打交道的程序放在后臺程序中執(zhí)行;而前臺程序安排一些實時性要求較高的內(nèi)容,如定時系統(tǒng)和外部中斷(如掉電中斷)。也可以將全部程序均安排在前臺,后臺程序為“使系統(tǒng)進(jìn)入睡眠狀態(tài)”,以利于系統(tǒng)節(jié)電和抗干擾。3.2 主程序機(jī)
35、構(gòu)圖 如圖3.1所示為總體原理方框圖。其工作原理為:接通電源后,主持人按復(fù)位按鈕是系統(tǒng)復(fù)位,如想調(diào)節(jié)搶答時間和回答時間,主持人需按加一和減一鍵調(diào)節(jié),在按停止鍵確定。先按加一健調(diào)節(jié)的是搶答時間,反之則調(diào)節(jié)的是答題時間。當(dāng)主持人按下開始鍵后,顯示60s倒計時(系統(tǒng)程序搶答時間初值為60s)。蜂鳴器發(fā)出警報提示選手搶答,有選手搶答成功后,顯示60s答題倒計時(系統(tǒng)程序答題時間初值為60s),到倒計時5s是,蜂鳴器發(fā)聲提示選手快點做答。當(dāng)一輪搶答之后,定時器停止、禁止二次搶答,主持人按停止鍵,顯示000。如果要再次搶答,主持人再次按開始鍵后選手即可開始再次搶答。系統(tǒng)初始化模塊按鍵模塊非法搶答模塊正確搶
36、答模塊調(diào)整搶答時間調(diào)整回答時間數(shù)碼顯示模塊圖3.1 軟件系統(tǒng)結(jié)構(gòu)圖3.3 程序流程圖設(shè)計在本設(shè)計中包括了以下八個主要的程序:主程序;非法搶答序;搶答時間調(diào)整程序;回答時間調(diào)整程序;倒計時程序;正常搶答處理程序;犯規(guī)處理程序;顯示及發(fā)聲程序。主流程圖如圖3.2所示。顯示000開始鍵按下?加一鍵按下?減一鍵按下?回答時間 調(diào)整搶答時間去抖動非法搶答處理顯示犯規(guī)正常搶答 顯示搶答號并倒計時Y YY 初始化初始化Y YY 顯示搶答號并倒計時正常搶答 顯示非法搶答處理去抖動調(diào)整搶答時間回答時間 減一鍵按下?加一鍵按下? 開始鍵按下?LED顯示調(diào)整搶答時間圖3.2 程序設(shè)計流程圖3.4 程序設(shè)計程序代碼如
37、下:OK EQU 20H ;搶答開始標(biāo)志位 RING EQU 22H ;響鈴標(biāo)志位 ORG 0000H AJMP MAIN ORG 0003H AJMP INT0SUB ORG 000BH AJMP T0INT ORG 0013H AJMP INT1SUB ORG 001BH AJMP T1INT ORG 0040HMAIN: MOV R1,#60 ;初設(shè)搶答時間為60s MOV R2,#60 ;初設(shè)答題時間為60s MOV TMOD,#11H MOV TH0,#0F0H MOV TL0,#0FFH MOV TH1,#3CH MOV TL1,#0B0H ;50ms為一次溢出中斷 SETB EA
38、 SETB ET0 SETB ET1 SETB EX0 SETB EX1 ;允許四個中斷T0/T1/INT0/INT1 CLR OK CLR RING SETB TR1 SETB TR0 ;一開始就運行定時器,以開始顯示000查詢程序:START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY ;未開始搶答時候顯示000 JB P1.0,NEXT ACALL DELAY JB P1.0,NEXT ;去抖動,如果"開始鍵"按下就向下執(zhí)行 ACALL BARK ;按鍵發(fā)聲 MOV A,R1 MOV R6,A ;送R1->
39、;R6,因為R1中保存了搶答時間 SETB OK ;搶答標(biāo)志位,用于COUNT只程序中判斷 MOV R3,0AH ;搶答只顯示計時AJMP COUNT NEXT: JNB P1.1,FALSE1 JNB P1.2,FALSE2 JNB P1.3,FALSE3 JNB P1.4,FALSE4 JNB P1.5,FALSE5 JNB P1.6,FALSE6 AJMP START非法搶答處理程序:FALSE1: ACALL BARK ;按鍵發(fā)聲 MOV R3,#01H AJMP ERRORFALSE2: ACALL BARK MOV R3,#02H AJMP ERRORFALSE3: ACALL B
40、ARK 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,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY ;先在兩個時間LED上顯示R1 JNB P3.2,INC0 JNB P3.3,DEC0 JNB P1.7,BA
41、CK0 AJMP INT0SUBINC0: MOV A,R1 CJNE A,#63H,ADD0 ;如果不是99,R2加1 MOV R1,#00H ACALL DELAY1 AJMP 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: RETIINT1(回答時間R2調(diào)整程序):INT1SUB:MOV A,R2 MOV
42、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 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
43、 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 MOV 31H,B MOV R5,30H MOV R4,31H MOV A,R6 SUBB A,#07H JNC LARGER MOV A,R0 CJNE A,#0AH,FULL CLR RING AJMP CH
44、ECKFULL: CJNE A,#14H,CHECK SETB RING MOV A,R6 JZ QUIT MOV R0,#00H DEC R6 AJMP CHECKLARGER: MOV A,R0 CJNE A,#14H,CHECK DEC R6 ;計時一秒R6自動減1 MOV R0,#00HCHECK: JNB P1.7,QUIT ;如按下停止鍵退出 ACALL DISPLAYJB OK,ACCOUNT ;如果是搶答倒計時,如是則查詢,搶答,否者跳過查詢繼續(xù)倒數(shù) AJMP RECOUNTACCOUNT: JNB P1.1,TRUE1 JNB P1.2,TRUE2 JNB P1.3,TRUE
45、3 JNB P1.4,TRUE4 JNB P1.5,TRUE5 JNB P1.6,TRUE6 AJMP RECOUNTQUIT: CLR OK 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 R3,#03H CLR OK AJMP COUNTTRUE4: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#04H CLR OK AJMP COUNTTRUE5: ACA
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代餐飲業(yè)革新發(fā)展現(xiàn)狀與未來趨勢
- 2025年度國際貿(mào)易實務(wù)實訓(xùn)報告標(biāo)準(zhǔn)合同范本
- 滬教版(上海)七年級地理第一學(xué)中國區(qū)域篇(上)2《自主學(xué)習(xí) 認(rèn)識區(qū)域-浙江省》聽課評課記錄
- 環(huán)境科學(xué)在醫(yī)療環(huán)境改善中的作用
- 現(xiàn)代物流業(yè)中的信息安全與隱私保護(hù)
- 2025年度環(huán)保設(shè)備購置及污染賠償合同
- 電商平臺在金融行業(yè)的應(yīng)用及創(chuàng)新研究
- 生物科技行業(yè)發(fā)展趨勢及投資策略分析
- 電力安全監(jiān)管的科技創(chuàng)新與發(fā)展趨勢
- 現(xiàn)代建筑設(shè)計與聲學(xué)技術(shù)的結(jié)合應(yīng)用
- 2025版職業(yè)院校與企業(yè)合作育人合同3篇
- 自動化設(shè)備項目評估報告模板范文
- 商標(biāo)法基礎(chǔ)知識
- 2025年高考物理一輪復(fù)習(xí)之機(jī)械振動
- 《道路交通安全法》課件完整版
- 初中2025教學(xué)工作計劃
- 2024年度市政工程項目三方合作協(xié)議3篇
- 【大學(xué)課件】機(jī)電設(shè)備管理技術(shù)概論
- (2024)甘肅省公務(wù)員考試《行測》真題及答案解析
- 《STP營銷戰(zhàn)略概述》課件
- 醫(yī)院醫(yī)務(wù)人員醫(yī)德考評標(biāo)準(zhǔn)
評論
0/150
提交評論