版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 基于EDA技術(shù)的搶答器設(shè)計(jì)與實(shí)現(xiàn)</p><p> 摘 要:本設(shè)計(jì)基于常用的EDA工具Proteus軟件,以ATmega16A單片機(jī)為核心芯片的八路數(shù)字搶答器系統(tǒng),該系統(tǒng)滿足了來(lái)自三方面的需求和解決了一個(gè)核心問(wèn)題,這三個(gè)方面分別是搶答計(jì)時(shí)模式、表決模式,計(jì)分查詢模式;核心問(wèn)題是解決了8 個(gè)搶答選手按鍵的“自鎖”與“互鎖”操作,即系統(tǒng)要保存好成功實(shí)現(xiàn)搶答操作的第一按鍵信息,與此同時(shí)要屏蔽搶答
2、期間其他搶答按鍵操作,以保證每一輪的搶答操作只有一名選手能夠成功實(shí)現(xiàn)搶答。經(jīng)過(guò)調(diào)試和運(yùn)行使該系統(tǒng)達(dá)到預(yù)期目標(biāo),具有反應(yīng)快、功能齊全、實(shí)用性和擴(kuò)展性強(qiáng)的等特點(diǎn)。</p><p> 關(guān)鍵詞:EDA技術(shù);Proteus;搶答器;ATmega16A;</p><p> Abstract:This design is based on commonly used EDA tools Proteu
3、s software, eight digital Responder system to ATmega16A microcontroller core chip, the system to meet the demand from the three aspects and resolve a core issue in these three areas are the answer in timing mode Mode of
4、voting, scoring query mode; the core problem is to solve the 8 Responder player button "self-locking "and" inter-lock "operation, the system you want to save the successful answer in the operation of
5、the first key inf</p><p> Keyword:EDA technology; the Proteus; Responder; ATmega16A;</p><p><b> 1 引言</b></p><p> 對(duì)于8路智能搶答器目前主要的的設(shè)計(jì)方法有模擬電路設(shè)計(jì)、數(shù)字電路設(shè)計(jì)、模擬電路和數(shù)字電路相結(jié)合設(shè)計(jì)、單片機(jī)設(shè)
6、計(jì)、硬件描述語(yǔ)言VHDL設(shè)計(jì)。20世紀(jì)90年代,計(jì)算機(jī)和電子技術(shù)較為先進(jìn)的國(guó)家,一直在積極探索新的電子電路設(shè)計(jì)方法,并在設(shè)計(jì)方法、工具等方面進(jìn)行了徹底的變革,取得了巨大的成功。在電子設(shè)計(jì)領(lǐng)域、可編程邏輯器件(如FPGA)的廣泛普及給數(shù)字系統(tǒng)的設(shè)計(jì)帶來(lái)了極大地靈活性。對(duì)于可編程邏輯器件,設(shè)計(jì)人員可利用價(jià)格低廉的軟件工具快速開(kāi)發(fā)、仿真和測(cè)試其設(shè)計(jì)。然后,可快速將設(shè)計(jì)編程到器件中,并立即在實(shí)際運(yùn)行的電路中對(duì)設(shè)計(jì)進(jìn)行測(cè)試??删幊踢壿嬈骷某霈F(xiàn)極
7、大地改變了傳統(tǒng)的數(shù)字電路系統(tǒng)的設(shè)計(jì)理念,提高了電路設(shè)計(jì)的效率和可操作性,減輕了設(shè)計(jì)者的勞動(dòng)強(qiáng)度?;诳删幊踢壿嬈骷O(shè)計(jì)的系統(tǒng)在克服了使用數(shù)字電路和模擬電路設(shè)計(jì)系統(tǒng)硬件電路復(fù)雜、成本較高的問(wèn)題的同時(shí),也克服了單片機(jī)I/O端口不足的問(wèn)題,最終本設(shè)計(jì)已做成實(shí)物。</p><p><b> 2 系統(tǒng)概述</b></p><p><b> 2.1設(shè)計(jì)要求</
8、b></p><p> 1)系統(tǒng)要具有鑒別鎖存,搶答計(jì)時(shí),計(jì)分電路,掃描顯示四個(gè)方面的功能;</p><p> 2)方案成本低,軟件編寫(xiě)簡(jiǎn)易,可擴(kuò)展性強(qiáng)。</p><p> 3)核心芯片型號(hào)種類多、可靠性較高、靈敏可靠</p><p> 2.2系統(tǒng)的主要功能</p><p> 本設(shè)計(jì)主要實(shí)現(xiàn)三個(gè)功能搶答
9、計(jì)時(shí)模式、表決模式,計(jì)分查詢模式。單片機(jī)啟動(dòng)以后首先進(jìn)入30秒倒計(jì)時(shí),LED按1秒速度流動(dòng)閃亮30秒,每秒響一短嘀,可用于檢查計(jì)時(shí)器以及各位選手的指示燈是否正常。當(dāng)主持人按下?lián)尨疰I后搶答才有效,否則視為違規(guī)。超過(guò)30秒未搶答,此輪搶答作廢:聲響四長(zhǎng)聲。解決的主要功能有鑒別鎖存,答題計(jì)時(shí),計(jì)分電路,掃描顯示四個(gè)方面。:</p><p> 1)鑒別鎖存的關(guān)鍵是準(zhǔn)確判斷出第一搶答者并將其鎖存,實(shí)現(xiàn)的方法是通過(guò)軟件的方
10、式,解決8 個(gè)搶答選手按鍵的“自鎖”與“互鎖”操作;</p><p> 2)搶答計(jì)時(shí)模塊的任務(wù)是當(dāng)主持人啟動(dòng)這個(gè)計(jì)時(shí)開(kāi)關(guān)時(shí)開(kāi)始計(jì)時(shí);如果在主持人按下啟動(dòng)鍵后搶答則搶答有效,如果主持人未按下啟動(dòng)鍵,則搶答無(wú)效。計(jì)時(shí)器從規(guī)定的時(shí)間倒計(jì)時(shí),計(jì)時(shí)為零時(shí)計(jì)時(shí)結(jié)束。</p><p> 3)計(jì)分電路主持人判定答題有效則加分,如無(wú)效則按照設(shè)定不加分或者扣分。并將分?jǐn)?shù)顯示在計(jì)分屏幕上。</p>
11、;<p> 4)掃描顯示是計(jì)分結(jié)果通過(guò)掃描并顯示出來(lái)于屏幕上,搶答者和觀眾則通過(guò)顯示屏幕上的分?jǐn)?shù)來(lái)判別競(jìng)賽都之間的成績(jī)。</p><p> 系統(tǒng)的主要的功能模塊方框圖如下:</p><p> 圖1 系統(tǒng)的主要的功能模塊方框圖</p><p> 單片機(jī)是整個(gè)搶答器的核心,內(nèi)部程序設(shè)計(jì)采用C語(yǔ)言編寫(xiě)。它完成搶答號(hào)碼的譯碼、保存、輸出顯示;選手計(jì)分、
12、保存、查詢、輸出顯示;搶答第一信號(hào)的識(shí)別,違規(guī)報(bào)警;搶答計(jì)時(shí)等功能。本設(shè)計(jì)中,有一個(gè)共陽(yáng)的數(shù)碼管組。其中有兩個(gè)顯示時(shí)間,一個(gè)空著,一個(gè)顯示搶答號(hào)。</p><p> 2.3系統(tǒng)的工作流程</p><p> 系統(tǒng)的工作原理:整個(gè)系統(tǒng)實(shí)現(xiàn)三種功能,即搶答模式、表決模式、計(jì)分查詢模式。每種模式有不同的工作流程,系統(tǒng)初始化以后首先進(jìn)入搶答模式,倒計(jì)時(shí)30秒 整個(gè)工作流程</p>
13、<p><b> 如下圖所示</b></p><p><b> 圖2系統(tǒng)的工作流程</b></p><p><b> 3 硬件系統(tǒng)的設(shè)計(jì)</b></p><p> 硬件系統(tǒng)與軟件系統(tǒng)的設(shè)計(jì),兩者相互結(jié)合,不可分離,隨著EDA技術(shù)的不斷發(fā)展,使軟硬件協(xié)同設(shè)計(jì)[ 3 ]思想解決上述問(wèn)題成
14、為可能。本系統(tǒng)就是基于Proteus軟件采用該思想進(jìn)行硬件系統(tǒng)的設(shè)計(jì)。當(dāng)然我們?cè)谟布娐烦醪皆O(shè)計(jì)時(shí)也應(yīng)該考慮以下幾個(gè)方面:</p><p> (1) 盡可能采用功能強(qiáng)的芯片, </p><p> (2) 留有設(shè)計(jì)余地。在設(shè)計(jì)硬件電路時(shí),要考慮到將來(lái)修改擴(kuò)展的方便。</p><p> (3) 程序空間,選用片內(nèi)程序空間足夠大的單片機(jī),本設(shè)計(jì)采用Atmega16A
15、單片機(jī)。</p><p> (4) 多留一些空間RAM空間,增強(qiáng)軟件數(shù)據(jù)處理功能。</p><p> (5) I/O端口沉余:預(yù)留出一些I/O端口,雖然當(dāng)時(shí)空著沒(méi)用,那么用的時(shí)候就派上用場(chǎng)了。</p><p> 3.1硬件系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)方法</p><p> 本系統(tǒng)劃分為6個(gè)模塊,每個(gè)模塊負(fù)責(zé)的功能相對(duì)專一。整個(gè)搶答器的硬件系
16、統(tǒng)如下圖示:</p><p> 圖3 搶答器的硬件系統(tǒng)</p><p> 3.2.1 搶答電路的設(shè)計(jì)</p><p> 獨(dú)立鍵盤(pán)的接法是單片機(jī)測(cè)控系統(tǒng)中最常用的,它是指直接用I/O線構(gòu)成的單個(gè)按鍵電路。相對(duì)于矩陣鍵盤(pán),獨(dú)立鍵盤(pán)每個(gè)按鍵占一個(gè)I/O口線,所以每根I/O口工作狀態(tài)不受其它I/O口影響其次是消除在按鍵過(guò)程中產(chǎn)生的“毛刺”現(xiàn)象。這里采用最常用的方法,即
17、延時(shí)重復(fù)掃描法,延時(shí)法的原理為:因?yàn)椤懊獭泵}沖一般持續(xù)時(shí)間短,約為幾ms,而我們按鍵的時(shí)間一般遠(yuǎn)遠(yuǎn)大于這個(gè)時(shí)間,所以當(dāng)單片機(jī)檢測(cè)到有按鍵動(dòng)靜后再延時(shí)一段時(shí)間(這里我們?nèi)?0ms)后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無(wú)效。</p><p> 本設(shè)計(jì)的按鍵主要有:搶答按鈕0~7 八個(gè)按鍵,一個(gè)啟動(dòng)/錯(cuò)誤鍵、一個(gè)正確鍵鍵、一個(gè)表決鍵、一個(gè)計(jì)分查詢鍵/表決復(fù)位鍵。按鍵的觸點(diǎn)在閉合和斷開(kāi)時(shí)都會(huì)產(chǎn)生抖動(dòng)
18、,這時(shí)觸點(diǎn)的邏輯電平是不穩(wěn)定的,不妥善處理將會(huì)引起按鍵命令的重復(fù)執(zhí)行或錯(cuò)誤執(zhí)行?,F(xiàn)在常用采用軟件延時(shí)的方法消除抖動(dòng)影響,這一延時(shí)時(shí)間通常要大于5ms,可取10-20ms之間。當(dāng)監(jiān)控程序中的讀鍵操作是在主程序(后臺(tái)程序)或鍵盤(pán)中斷(外部中斷)子程序中時(shí),那該延時(shí)子程序可直接插入讀鍵過(guò)程之中。</p><p> 3.2.2 顯示電路的設(shè)計(jì)</p><p> 顯示功能與硬件關(guān)系極大,當(dāng)硬件固
19、定后,如何在不引起操作者誤解的前提下提供盡可能豐富的信息,全靠軟件來(lái)解決。根據(jù)驅(qū)動(dòng)方式,數(shù)碼管分為靜態(tài)顯示和動(dòng)態(tài)顯示兩類。</p><p> 靜態(tài)顯示:靜態(tài)驅(qū)動(dòng)又叫直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管段碼都要一個(gè)單片機(jī)的I/O端口進(jìn)行驅(qū)動(dòng),或者二-十進(jìn)制譯碼器譯碼驅(qū)動(dòng)。它的優(yōu)點(diǎn)在于編程簡(jiǎn)單,顯示亮度高,但不足之處是占用I/O端口多。動(dòng)態(tài)顯示驅(qū)動(dòng):?jiǎn)纹瑱C(jī)中應(yīng)用較多的一種顯示方式之一就是數(shù)碼管動(dòng)態(tài)顯示,動(dòng)態(tài)驅(qū)動(dòng)是把數(shù)碼
20、管的"a,b,c,d,e,f,g,dp"8個(gè)顯示碼的同名端被組合一起,且每一個(gè)數(shù)碼管的公共極增加控制位選通電路,位選通由各自相互獨(dú)立的I/O線控制,當(dāng)字形碼由單片機(jī)輸出時(shí),所有數(shù)碼管接收到相同的字形碼,那個(gè)數(shù)碼管會(huì)顯示出字形取決于單片機(jī)對(duì)位選通電路的控制。</p><p> 通過(guò)查表法,將其在數(shù)碼管上顯示出來(lái),其中P0口為字型碼輸入端,P2口低3位為字選段輸入端。在這里我們通過(guò)查表將字型碼送
21、給7段數(shù)碼管顯示的數(shù)字,電路圖如下所示:段碼端口連接PC(0~7)口,第一個(gè)顯示器位碼連接到PD.5口,最后兩個(gè)分別連接到PD.2、PD.1口</p><p><b> 圖 4 數(shù)碼管顯示</b></p><p> 3.2.3 LED顯示電路的設(shè)計(jì)</p><p> LED彩燈顯示電路(如圖所示)實(shí)際上是由8個(gè)發(fā)光二極管和8個(gè)電阻構(gòu)成的電
22、路。發(fā)光二極管與電阻對(duì)應(yīng)串聯(lián),然后接在與之相對(duì)應(yīng)的P2口上。通過(guò)軟件編程對(duì)P2口輸出高低電平來(lái)實(shí)現(xiàn)不同的閃爍花型。由于發(fā)光二極管的導(dǎo)通電壓一般為1.7V以上,另外,他的工作電流根據(jù)型號(hào)不同一般為1mA到30mA,電阻選擇范圍100歐姆~3千歐姆在此我們這里選用470歐姆的電阻。</p><p> 3.2.4 復(fù)位電路的設(shè)計(jì)</p><p> 使CPU進(jìn)入初始狀態(tài)以后,將從0000H地址
23、開(kāi)始執(zhí)行程序的過(guò)程叫系統(tǒng)復(fù)位。從實(shí)現(xiàn)系統(tǒng)復(fù)位的方法來(lái)看,系統(tǒng)復(fù)位可分為硬件復(fù)位和軟件復(fù)位[10]。硬件復(fù)位必須通過(guò)CPU外部的硬件電路給CPU的RESET端加上足夠時(shí)間的高電位才能實(shí)現(xiàn)。在8路智能搶答器中復(fù)位電路主要完成復(fù)位操作,當(dāng)程序運(yùn)行出現(xiàn)錯(cuò)誤或者需要返回到初始狀態(tài)時(shí)就要用到復(fù)位鍵。本設(shè)計(jì)采用自動(dòng)、手動(dòng)復(fù)位組合電路,手動(dòng)復(fù)位一般采用按鈕的方法使得AVR單片機(jī)發(fā)生復(fù)位。當(dāng)按下按鈕復(fù)位鍵后,電容迅速放電,電容兩端被短路,REST為低電平
24、有效,向REST引腳是加一定的寬度的復(fù)位脈沖,從而實(shí)現(xiàn)單片機(jī)的復(fù)位。</p><p> 3.2.5時(shí)鐘頻率電路的設(shè)計(jì)</p><p> 選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時(shí)鐘信號(hào),其振蕩頻率主要由石英晶振的頻率確定。電路中兩個(gè)電容 C1,C2的作用有兩個(gè):一是幫助振蕩器起振;二是對(duì)振蕩器的頻率進(jìn)行微調(diào)。C1,C2的典
25、型值為22PF。</p><p> 單片機(jī)在工作時(shí),由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時(shí)鐘信號(hào)的周期稱為時(shí)鐘周期。其大小是時(shí)鐘信號(hào)頻率的倒數(shù),常用fosc表示。圖中時(shí)鐘頻率為1MHz,即fosc=1MHz,則時(shí)鐘周期為1µs。</p><p> 3.2.6響聲電路的設(shè)計(jì)</p><p> 聲音的頻譜范圍約在幾十到幾千赫茲,若能利用
26、程序來(lái)控制單片機(jī)某個(gè)口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音[11]。若再利用延時(shí)程序控制“高”“低”電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。在軟件設(shè)計(jì)中設(shè)計(jì)了兩種發(fā)聲子程序,用于控制揚(yáng)聲器發(fā)出不同的聲音。</p><p><b> 4 軟件系統(tǒng)的設(shè)計(jì)</b></p><p><
27、;b> 4.1軟件分析</b></p><p> 軟件任務(wù)分析環(huán)節(jié)的目的是為軟件設(shè)計(jì)做一個(gè)總體上的規(guī)劃??筛鶕?jù)軟件的功能將其分為兩大類:一類是稱為監(jiān)控軟件,它是專門(mén)用來(lái)協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系,在系統(tǒng)軟件中充當(dāng)組織調(diào)度角色的軟件:另一類是執(zhí)行軟件,它能完成各種實(shí)質(zhì)性的功能,如測(cè)量,計(jì)算,顯示,打印,輸出控制和通信等,這兩類軟件的設(shè)計(jì)方法各有特色。執(zhí)行軟件的設(shè)計(jì)側(cè)重于算法效率,與硬件關(guān)系密
28、切,軟件任務(wù)分析就是將各執(zhí)行模塊一一列出,并為每一個(gè)執(zhí)行模塊進(jìn)行功能定義和接口定義(輸入輸出定義),執(zhí)行模塊任務(wù)明確單純,比較容易編程;對(duì)于監(jiān)控程序,它較易出問(wèn)題,一般來(lái)講在設(shè)計(jì)完執(zhí)行程序后應(yīng)根據(jù)系統(tǒng)功能和鍵盤(pán)設(shè)置選擇一種最適合的監(jiān)控程序結(jié)構(gòu),其主要作用是協(xié)調(diào)各執(zhí)行模塊與操作之間關(guān)系。</p><p> 4.2主程序系統(tǒng)結(jié)構(gòu)圖</p><p> 圖6 主程序系統(tǒng)結(jié)構(gòu)圖</p>
29、;<p> 4.3 主程序流程圖</p><p><b> 圖7 主程序流程圖</b></p><p> 4.4軟件系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)方法</p><p> 本搶答器的軟件系統(tǒng)主要包括主程序設(shè)計(jì),按鍵掃描程序的設(shè)計(jì),表決模式程序的設(shè)計(jì),計(jì)分查詢程序的設(shè)計(jì),時(shí)鐘程序設(shè)計(jì),顯示程序的設(shè)計(jì)</p><p&g
30、t; 4.4.1主程序設(shè)計(jì)</p><p> 主程序的功能主要是完成內(nèi)部各寄存單元的初始化 ,內(nèi)部定時(shí)器的初始化,中斷的初始化及調(diào)用顯示程序?qū)Τ跏紶顟B(tài)的顯示以及對(duì)外部信號(hào)的等待處理,也就是說(shuō)完成前期的準(zhǔn)備工作等待隨時(shí)對(duì)外部信號(hào)進(jìn)行響應(yīng)。初始化主程序進(jìn)入30秒倒計(jì)時(shí),開(kāi)始鍵盤(pán)掃描,當(dāng)啟動(dòng)鍵未按下時(shí)有人搶答視為違規(guī),違規(guī)的搶答者相應(yīng)的燈亮,違規(guī)搶答響2短聲,有效搶答響一長(zhǎng)聲;當(dāng)啟動(dòng)鍵按下時(shí),重新30秒計(jì)時(shí),有搶答
31、鍵按下視為正常搶答,顯示選手號(hào)等待判斷對(duì)錯(cuò),主程序初始化代碼如下:</p><p> CLI(); //關(guān)總中斷</p><p> port_init(); //初始化輸出端口</p><p> timer1_init();
32、 //定時(shí)器1初始化</p><p> MCUCR=0x00;</p><p> GICR=0x80; //允許外部1中斷 </p><p> TIMSK=0x05; //允許定時(shí)器1中斷</p><p> SEI
33、(); //開(kāi)總中斷</p><p> 4.4.2 時(shí)鐘程序設(shè)計(jì)</p><p> 時(shí)鐘電路要控制系統(tǒng)的時(shí)序,也有消除鍵盤(pán)抖動(dòng)的功能,所以本程序通過(guò)軟件延時(shí)的方法編寫(xiě)了兩個(gè)延時(shí)子程序,延時(shí)單位分別為1ms和1us,從而實(shí)現(xiàn)消除抖動(dòng)和動(dòng)態(tài)掃描等程序?qū)r(shí)鐘的要求。此外本程序也通過(guò)定時(shí)計(jì)數(shù)器中斷設(shè)定30秒搶答時(shí)間</p&
34、gt;<p> 延時(shí)函數(shù)1:入口i,單位mS,最大65536mS</p><p> void delay_ms(uint i)</p><p><b> {</b></p><p><b> uchar a;</b></p><p> for(;I;i--)</p>
35、;<p> {for(a=1141;a;a--) {;}</p><p><b> }</b></p><p> 延時(shí)函數(shù)2:入口i,單位uS,最大65536uS</p><p> void delay_us(uint i)</p><p><b> {</b
36、></p><p> for(;I;i--)</p><p><b> {;}</b></p><p><b> }</b></p><p> 4.4.3顯示程序的設(shè)計(jì)</p><p> 顯示程序包含數(shù)據(jù)的動(dòng)態(tài)顯示和控制LED燈的亮滅。數(shù)據(jù)的動(dòng)態(tài)顯示中顯示碼定
37、義成數(shù)組采用查表的方式進(jìn)行顯示;LED的顯示是通過(guò)軟件按位操作來(lái)實(shí)現(xiàn)的,顯示子程序代碼如下:</p><p> void display(uchar x) //LED數(shù)碼管顯示函數(shù)</p><p><b> {</b></p><p> PORTD|=0x02; //顯示LED數(shù)碼管的個(gè)位</p
38、><p> PORTC=dm[x%10]; //送個(gè)位的段碼值到PORTC</p><p> delay_ms(100); //保持一定時(shí)間</p><p> PORTD^=0x02; </p><p> PORTD|=0x01; //顯示LED數(shù)碼管的十位</p><p&
39、gt; PORTC=dm[x/10]; //送十位的段碼值到PORTC</p><p> delay_ms(100); //保持一定時(shí)間 </p><p> PORTD^=0x01;</p><p><b> } </b></p><p> 4.4.4響聲函數(shù)的設(shè)計(jì)</p>&
40、lt;p> 本次設(shè)計(jì)中多次用到揚(yáng)聲器發(fā)聲用于報(bào)警或者提示,所以要求不同的模式下?lián)P聲器發(fā)出的聲音不同,為了便于控制在本設(shè)計(jì)中一共定義了三響聲函數(shù),分別是響正確聲函數(shù)和響錯(cuò)誤聲函數(shù),程序代碼如下:</p><p> 響聲函數(shù):入口i:響聲長(zhǎng)度i*10ms,n:響聲次數(shù)</p><p> ******************************************/ &
41、lt;/p><p> void sound1(uchar I,uchar n)</p><p><b> {</b></p><p> for(;n;n--)</p><p><b> {</b></p><p> uint a=i*10;</p><
42、;p> for(;a;a--)</p><p><b> {</b></p><p> on_spk; //開(kāi)蜂鳴器</p><p> delay_us(100);</p><p> off_spk; //關(guān)蜂鳴器</p><p> del
43、ay_us(100);</p><p><b> }</b></p><p> delay_ms(200);</p><p><b> }</b></p><p><b> }</b></p><p> 響正確音函數(shù)**************
44、************** </p><p> void sound_ok(void)</p><p><b> {</b></p><p> uchar a,b;</p><p> for(a=4;a;a--)</p><p><b> {</b>&
45、lt;/p><p> for(b=250;b;b--)</p><p><b> {</b></p><p> on_spk;//開(kāi)蜂鳴器</p><p> delay_us((a+10)*10);</p><p> off_spk;//關(guān)蜂鳴器</p><p>
46、delay_us((a+10)*10);</p><p><b> }</b></p><p> delay_ms(20);</p><p><b> }</b></p><p><b> }</b></p><p> 4.4.5表決模式程序的
47、設(shè)計(jì)</p><p> 表決功能的實(shí)現(xiàn)是通過(guò)外部中斷1來(lái)實(shí)現(xiàn)的,在主程序初始化時(shí)打開(kāi)外部中斷1,打開(kāi)總中斷。當(dāng)表決模式鍵按下是進(jìn)入外部中斷1服務(wù)程序;在表決模式下,按下表決復(fù)位鍵,LED燈以流水燈閃爍,LED流水燈結(jié)束后進(jìn)入下一輪表決,當(dāng)按下?lián)尨饐?dòng)建時(shí),將進(jìn)入搶答模式倒計(jì)時(shí)30秒。</p><p> 外部中斷1程序流程圖:</p><p> 圖8 外部中斷1
48、程序流程圖</p><p> 4.4.6計(jì)分查詢模式程序的設(shè)計(jì)</p><p> 計(jì)分查詢模式的實(shí)現(xiàn)主要是通過(guò)標(biāo)志位實(shí)現(xiàn),在程序開(kāi)頭定義了許多標(biāo)志位,當(dāng)進(jìn)入表決模式時(shí),停止定時(shí)計(jì)數(shù)器計(jì)時(shí),使搶答標(biāo)志位清零,當(dāng)有按鍵按下時(shí) 先顯示選手號(hào) 后顯示所得分?jǐn)?shù)。</p><p> 計(jì)分查詢模式的程序流程圖如下:</p><p> 圖9 計(jì)分查詢
49、模式的程序流程圖</p><p><b> 5 系統(tǒng)仿真調(diào)試</b></p><p> 5.1系統(tǒng)軟件的仿真</p><p> 本設(shè)計(jì)主要使用的ICCAVR軟件進(jìn)行編程。系統(tǒng)的軟件仿真主要是在Proteus軟件中進(jìn)行,Proteus中的ISIS(智能原理圖輸入軟件)是Labcenter開(kāi)發(fā)的電路分析實(shí)物仿真系統(tǒng),是常用的EDA工具。它不僅
50、是數(shù)字電路、模擬電路、數(shù)/?;旌想娐返脑O(shè)計(jì)和仿真平臺(tái),更具特色的是它是目前世界上最完整、最先進(jìn)的多型號(hào)微處理器的設(shè)計(jì)和仿真平臺(tái),它的出現(xiàn)實(shí)現(xiàn)了在計(jì)算機(jī)上完成原理圖設(shè)計(jì)、微處理器的設(shè)計(jì)與仿真、電路的設(shè)計(jì)與仿真、系統(tǒng)的測(cè)試與功能驗(yàn)證到電路板的完整電子設(shè)計(jì)過(guò)程。</p><p> 5.1.1搶答成功與搶答犯規(guī)仿真</p><p> 當(dāng)按下啟動(dòng)鍵時(shí),如有選手按下時(shí),程序?qū)?huì)檢測(cè)第一信號(hào)鎖存并送
51、給數(shù)碼管顯示選手號(hào)碼,同時(shí)揚(yáng)聲器會(huì)發(fā)出一聲短響提示搶答成功,搶答成功以后選手再按下?lián)尨疰I無(wú)效,然后進(jìn)入等待狀態(tài);如果此時(shí)正確鍵被按下,揚(yáng)聲器將會(huì)升調(diào)提示答題,同時(shí)給相應(yīng)的選手加十分,接著數(shù)碼管將顯示30;如果錯(cuò)誤鍵按下,揚(yáng)聲器將會(huì)降調(diào)提示答案錯(cuò)誤,相應(yīng)的選手將不加分,接著數(shù)碼管將顯示30</p><p> 當(dāng)未按下啟動(dòng)鍵時(shí),如有選手按下時(shí),數(shù)碼管會(huì)顯示違規(guī)選手號(hào)碼,同時(shí)揚(yáng)聲器會(huì)發(fā)出兩聲短響報(bào)警提示,報(bào)警之后將繼
52、續(xù)倒計(jì)時(shí),30秒倒計(jì)時(shí)結(jié)束時(shí)啟動(dòng)鍵仍未按下則進(jìn)行搶答結(jié)束報(bào)警四聲長(zhǎng)響,提示主持人和選手搶答結(jié)束。而后顯示30程序進(jìn)入等待狀態(tài),等待下次按下啟動(dòng)鍵進(jìn)入下一次搶答</p><p> 5.1.2表決模式和計(jì)分查詢模式的仿真</p><p> 圖11 表決模式led燈</p><p> 圖12 表決模式數(shù)碼管顯示</p><p> 5.2系統(tǒng)
53、硬件的調(diào)試</p><p> 系統(tǒng)的硬件調(diào)試過(guò)程,是在軟件仿真結(jié)束后進(jìn)行的。到現(xiàn)在為止,我們完成了系統(tǒng)的簡(jiǎn)單的硬件測(cè)試。因?yàn)闇y(cè)試計(jì)劃,測(cè)試方案和測(cè)試結(jié)果是硬件配置的重要部分,他們對(duì)硬件的可維護(hù)性影響很大,因此我們?nèi)砸龃罅康臏y(cè)試工作。為使硬件電路設(shè)計(jì)盡可能合理,應(yīng)注意:盡可能采用功能強(qiáng)的芯片,以簡(jiǎn)化電路; 留有設(shè)計(jì)余地,在設(shè)計(jì)硬件電路時(shí),要考慮到將來(lái)修改擴(kuò)展的方便;程序空間,選用片內(nèi)程序空間足夠大的單片機(jī);RA
54、M空間 不僅要滿足一般場(chǎng)合的使用,同時(shí)也有效支持使用高級(jí)語(yǔ)言開(kāi)發(fā)系統(tǒng)程序 AVR片內(nèi)漢高質(zhì)量的Flash程序存儲(chǔ)器,并具有高保密性,擦寫(xiě)方便,支持ISP和IAP,YE 可擴(kuò)展外部RAM。</p><p> 單片機(jī)目標(biāo)程序的下載和聯(lián)合調(diào)試:</p><p> 源程序的編譯是在ICCAVR軟件平臺(tái)下進(jìn)行的,通過(guò)軟件仿真后,就可以將ICCAVR編譯產(chǎn)生的目標(biāo)程序通過(guò)通用編程器燒寫(xiě)到Amega
55、16A內(nèi)部的程序存儲(chǔ)器中。程序燒寫(xiě)到Atmega16A中之后,就要綜合調(diào)試整個(gè)硬件部分,包括顯示電路、流水燈電路、響聲電路、按鍵電路 實(shí)物圖如下:</p><p><b> 圖13 硬件實(shí)物圖</b></p><p> 總的說(shuō)來(lái),該系統(tǒng)運(yùn)行穩(wěn)定,但一些功能還有待完善</p><p><b> 6 總結(jié)</b><
56、/p><p> 本文通過(guò)了解智能搶答器的設(shè)計(jì)方案,分析了搶答信號(hào)存在競(jìng)爭(zhēng)的原因,在整個(gè)設(shè)計(jì)過(guò)程中,依據(jù)軟硬件協(xié)同設(shè)計(jì)思想,將整個(gè)系統(tǒng)分為硬件設(shè)計(jì)和軟件設(shè)計(jì)兩部分。其中硬件設(shè)計(jì)部分由搶答電路、數(shù)碼管顯示電路、LED顯示電路、復(fù)位電路、時(shí)鐘信號(hào)電路以及響聲電路共六部分組成;軟件部分由主程序設(shè)計(jì)、時(shí)鐘程序設(shè)計(jì)顯示程序設(shè)計(jì)、響聲函數(shù)設(shè)計(jì)、表決模式程序設(shè)計(jì)、計(jì)分查詢模式程序設(shè)計(jì)共五部分組成。系統(tǒng)的軟件仿真主要是在Proteu
57、s軟件中進(jìn)行的,同時(shí)在硬件調(diào)試方面,考慮到系統(tǒng)的維護(hù)性以及可擴(kuò)展性,器材的選取傾向于模塊化,線路的設(shè)計(jì)也傾向于杜邦線,并且這種設(shè)計(jì)理念的優(yōu)越性在后續(xù)的調(diào)試得到了體現(xiàn)。</p><p> 本系統(tǒng)的大部分模塊已經(jīng)實(shí)現(xiàn),并且也符合設(shè)計(jì)要求。但是,一個(gè)完整的系統(tǒng)僅僅靠?jī)稍碌姆治?、設(shè)計(jì)來(lái)開(kāi)發(fā)是遠(yuǎn)遠(yuǎn)不夠的,它需要更長(zhǎng)的時(shí)間來(lái)測(cè)試并完善。因此,本系統(tǒng)仍然存在著一些需要改進(jìn)和不足的問(wèn)題。比如動(dòng)態(tài)掃描顯示時(shí)數(shù)碼管有些閃爍;設(shè)計(jì)中
58、倒計(jì)時(shí)時(shí)間不能由用戶自己設(shè)定;部分子程序的設(shè)計(jì)存在一定的冗余,有待進(jìn)一步優(yōu)化。隨著研究的進(jìn)行,可能還會(huì)出現(xiàn)其他一些問(wèn)題,我會(huì)繼續(xù)努力,逐步改善和不斷完善本系統(tǒng)。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 樓苗然,李光飛.單片機(jī)課程設(shè)計(jì)指導(dǎo).北京航天航空大學(xué)出版社,2010:43-55.</p><p> [2]
59、 王傳新.電子技術(shù)基礎(chǔ)實(shí)驗(yàn).高等教育出版社,2010:27-45.</p><p> [3] 張軍.AVR單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)典型實(shí)例.中國(guó)電力出版社:30-39.</p><p> [4] 陳桂友,柴遠(yuǎn)斌.單片機(jī)應(yīng)用技術(shù).機(jī)械工業(yè)出版社:69-72.</p><p> [5] 李銀華.電子線路設(shè)計(jì)指導(dǎo).北京:北京航空航天大學(xué)出版社:11-27.</p&g
60、t;<p> [6] 何小艇.電子系統(tǒng)設(shè)計(jì).浙江:浙江大學(xué)出版社:22-29</p><p> [7] 張 睿.Altium Designer 6.0 原理圖與PCB設(shè)計(jì).電子工業(yè)出版社.</p><p> [8] 林凌,李剛,丁茹.新型單片機(jī)接口器件與技術(shù)【M】.西安:西安電子科技大學(xué)出版社,2005</p><p> [9] 胡學(xué)海.單片機(jī)
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于eda技術(shù)的電子搶答器設(shè)計(jì)與實(shí)現(xiàn)
- 基于eda技術(shù)的多路搶答器設(shè)計(jì)
- 基于eda的多路搶答器設(shè)計(jì)
- eda畢業(yè)課程設(shè)計(jì)--搶答器
- eda搶答器設(shè)計(jì)報(bào)告
- 搶答器畢業(yè)設(shè)計(jì)
- 單片機(jī)搶答器畢業(yè)設(shè)計(jì)---單片機(jī)搶答器設(shè)計(jì)與實(shí)現(xiàn)
- 基于plc搶答器畢業(yè)設(shè)計(jì)
- 基于plc搶答器畢業(yè)設(shè)計(jì)
- eda課程設(shè)計(jì)-搶答器
- 畢業(yè)設(shè)計(jì)---搶答器的設(shè)計(jì)
- eda課程設(shè)計(jì)---搶答器
- 單片機(jī)搶答器設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- 八路搶答器設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)------單片機(jī)搶答器設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)---單片機(jī)搶答器設(shè)計(jì)與實(shí)現(xiàn)
- plc知識(shí)搶答器畢業(yè)設(shè)計(jì)--知識(shí)競(jìng)賽搶答器設(shè)計(jì)
- 數(shù)字搶答器畢業(yè)設(shè)計(jì)
- eda課程設(shè)計(jì)---競(jìng)賽搶答器
- eda數(shù)字搶答器課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論