版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 畢業(yè)設(shè)計(jì)(論文)任務(wù)書</p><p> 備注:任務(wù)書由指導(dǎo)教師填寫,一式二份。其中學(xué)生一份,指導(dǎo)教師一份</p><p> 學(xué) 生姓 名學(xué)號(hào)班級(jí)應(yīng)電094專業(yè)電子信息工程</p><p> 設(shè)計(jì)(或論文)題目基于單片機(jī)的搶答器設(shè)計(jì)</p><p> 指導(dǎo)教師姓名職 稱工作單位及所從事專業(yè)聯(lián)系方式備 注</p&
2、gt;<p> 講師</p><p> 設(shè)計(jì)(論文)內(nèi)容:運(yùn)用電子技術(shù)知識(shí)、技能設(shè)計(jì)8路搶答器。功能要求如下:1.采用11個(gè)按鍵控制搶答器功能。2.主持人按下開始鍵后,發(fā)出一聲聲響,表示競賽搶答開始,數(shù)碼管顯示倒計(jì)時(shí)。3.最先按鍵的小組搶答成功,顯示對應(yīng)的小組編號(hào)。4.用2位數(shù)碼管指示搶答結(jié)束時(shí)間,初值可用鍵盤設(shè)置;采用倒計(jì)時(shí)方式,當(dāng)規(guī)定時(shí)間到后,發(fā)出長鳴指示,表示此輪搶答結(jié)束。</p>
3、<p> 進(jìn)度安排:第2~4周:查找資料,選擇參考方案; 第5~6周:確定方案第7~10周:查找資料,進(jìn)行單元電路的設(shè)計(jì); 第11~13周:整機(jī)電路整機(jī)與分析.</p><p> 主要參考文獻(xiàn)、資料(寫清楚參考文獻(xiàn)名稱、作者、出版單位):[1]張立科編著 《單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航》北京:人民郵電出版社,2004.[2]李金利編著 《單片機(jī)原理及應(yīng)用技術(shù)》北京:高等教育出版社,200
4、4.[3]董曉紅編著 《單片機(jī)原理及接口技術(shù)》西安:電子工業(yè)出版社,2007.[4]王振紅編著 《數(shù)字電路設(shè)計(jì)與應(yīng)用實(shí)踐教程》北京:機(jī)械工業(yè)出版社,2003.[5]張靖武編著 《單片機(jī)系統(tǒng)的proteus設(shè)計(jì)及仿真》北京:清華大學(xué)出版社,2003.</p><p> 審批意見教研室負(fù)責(zé)人:年 月 日</p><p><b> 摘要</b></p>
5、<p> 此次設(shè)計(jì)提出了用AT89C52單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)簡易的8路搶答器,本方案以AT89C52單片機(jī)作為主控核心,與數(shù)碼管、蜂鳴器等構(gòu)成8路搶答器,利用了單片機(jī)的延時(shí)電路、按鍵復(fù)位電路、時(shí)鐘電路、定時(shí)/中斷等電路,設(shè)計(jì)的搶答器具有實(shí)時(shí)顯示搶答選手的號(hào)碼和搶答時(shí)間的特點(diǎn),還有復(fù)位電路,使其再開始新的一輪的答題和比賽,同時(shí)還利用C語言編程,使其實(shí)現(xiàn)一些基本的功能。</p><p>
6、本設(shè)計(jì)的系統(tǒng)實(shí)用性強(qiáng)、判斷精確、操作簡單、擴(kuò)展功能強(qiáng)。它的功能實(shí)現(xiàn)是比賽開始,主持人讀完題之后按下開始開關(guān),即計(jì)時(shí)開始,此時(shí)數(shù)碼管開始進(jìn)行30秒倒計(jì)時(shí),直到有一個(gè)選手搶答時(shí),對應(yīng)的會(huì)在數(shù)碼管上顯示出該選手的編號(hào)以及剩余時(shí)間,同時(shí)蜂鳴器也會(huì)發(fā)出聲音,以提示有人搶答本題,在規(guī)定的最后5秒時(shí)間內(nèi)還沒有做出搶答,蜂鳴器發(fā)出報(bào)警,提示選手盡快作答,如果30秒內(nèi)無人作答則此題作廢,即開始重新一輪的搶答。</p><p>
7、關(guān)鍵詞: 單片機(jī);數(shù)碼管;搶答器</p><p><b> 目 錄</b></p><p><b> 第1章 緒論9</b></p><p> 第2章 整體設(shè)計(jì)方案10</p><p> 2.1 方案設(shè)計(jì)10</p><p> 2.2 方案論證11</
8、p><p> 第3章 硬件設(shè)計(jì)12</p><p> 3.1 單片機(jī)介紹12</p><p> 3.2 時(shí)鐘電路和復(fù)位電路14</p><p> 3.2.1時(shí)鐘電路14</p><p> 3.2.2 復(fù)位電路:14</p><p> 3.3 搶答電路15</p>
9、<p> 3.4 顯示電路15</p><p> 3.5 控制電路16</p><p> 3.6 報(bào)警電路17</p><p> 3.7 整機(jī)工作原理17</p><p> 第4章 軟件設(shè)計(jì)19</p><p> 4.1主程序模塊19</p><p> 4
10、.2外部中斷模塊20</p><p> 4.3定時(shí)中斷模塊23</p><p> 4.4報(bào)警模塊24</p><p> 4.5控制模塊25</p><p> 第5章 系統(tǒng)的調(diào)試與仿真27</p><p> 5.1 Keil的安裝調(diào)試27</p><p> 5.1.1Kei
11、l簡介27</p><p> 5.1.2LIB51庫管理器與模擬調(diào)試器27</p><p> 5.1.3Keil C操作界面及應(yīng)用27</p><p> 5.1.4編譯鏈接調(diào)試29</p><p> 5.2搶答器Keil軟件的仿真30</p><p> 5.3 調(diào)試與運(yùn)行31</p>
12、<p><b> 結(jié) 論32</b></p><p><b> 參考文獻(xiàn)33</b></p><p> 附錄1 電路原理圖34</p><p><b> 第1章 緒論</b></p><p> 二十世紀(jì)跨越了三個(gè)“電”的時(shí)代,即電氣時(shí)代、電子時(shí)代和現(xiàn)
13、已進(jìn)入的電腦時(shí)代。不過,這種電腦,通常是指個(gè)人計(jì)算機(jī),簡稱PC機(jī)。它由主機(jī)、鍵盤、顯示器等組成。還有一類計(jì)算機(jī),大多數(shù)人卻不怎么熟悉。這種計(jì)算機(jī)就是把智能賦予各種機(jī)械的單片機(jī)(亦稱微控制器)。顧名思義,這種計(jì)算機(jī)的最小系統(tǒng)只用了一片集成電路,即可進(jìn)行簡單運(yùn)算和控制。因?yàn)樗w積小,通常都藏在被控機(jī)械的“肚子”里。它在整個(gè)裝置中,起著有如人類頭腦的作用,它出了毛病,整個(gè)裝置就癱瘓了。現(xiàn)在,這種單片機(jī)的使用領(lǐng)域已十分廣泛,如智能儀表、實(shí)時(shí)工控
14、、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器等。各種產(chǎn)品一旦用上了單片機(jī),就能起到使產(chǎn)品升級(jí)換代的功效,常在產(chǎn)品名稱前冠以形容詞“智能型”。</p><p> 隨著單片機(jī)技術(shù)的發(fā)展人們越來越依賴對它的使用,從了在搶答器的設(shè)計(jì)上也有最初的邏輯電路控制到現(xiàn)在的單片機(jī)智能控制。實(shí)現(xiàn)了更多的功能,讓電路越來越簡單減小了它的體積加快了它的反應(yīng)速度。</p><p> 本次設(shè)計(jì)是基于單片機(jī)51系列的理論知識(shí),綜
15、合運(yùn)用AT89S52單片機(jī)設(shè)計(jì)四路搶答器。隨著科技技術(shù)和經(jīng)濟(jì)的發(fā)展,先進(jìn),娛樂節(jié)目正處在一個(gè)發(fā)揮在那的活躍階段,搶答器對于各種關(guān)于知識(shí)競賽等娛樂節(jié)目是必不可少的,搶答器規(guī)范著競賽程序的運(yùn)行。此吃設(shè)計(jì)提出了以AT89S52單片機(jī)為主控核心,與發(fā)光二極管、數(shù)碼管、蜂鳴器等構(gòu)成四路搶答器,利用了單片機(jī)的掩飾電路、按鍵復(fù)位電路、按鍵搶答電路、時(shí)鐘電路、定時(shí)、中斷等電路,設(shè)計(jì)的搶答器具有實(shí)時(shí)顯示搶答選手的號(hào)碼和搶答時(shí)間的特點(diǎn),還有復(fù)位電路,時(shí)期在
16、開始新的一輪答題和比賽,同時(shí)還利用C語言編程,時(shí)期實(shí)現(xiàn)搶答器的功能。此次程序運(yùn)用了查表、中斷定時(shí)等知識(shí)設(shè)計(jì)出C程序。</p><p> 第2章 整體設(shè)計(jì)方案</p><p><b> 2.1 方案設(shè)計(jì)</b></p><p><b> 方案一:</b></p><p> 采用模數(shù)電設(shè)計(jì),包括
17、優(yōu)先編碼電路、鎖存器、譯碼電路將參賽隊(duì)的輸入信號(hào)在顯示器上輸出;用控制電路和主持人開關(guān)啟動(dòng)報(bào)警電路,以上兩部分組成主體電路。通過定時(shí)電路和譯碼電路將秒脈沖產(chǎn)生的信號(hào)在顯示器上輸出實(shí)現(xiàn)計(jì)時(shí)功能,構(gòu)成擴(kuò)展電路。經(jīng)過布線、焊接、調(diào)試等工作后數(shù)字搶答器成形。如圖2-1所示。</p><p><b> 方案二:</b></p><p> 采用AT89C52單片機(jī)為核心控制元
18、件,發(fā)光二極管、數(shù)碼管、蜂鳴器等構(gòu)成8路搶答器,利用了單片機(jī)的延時(shí)電路、按鍵時(shí)鐘電路、復(fù)位電路、報(bào)警電路、顯示電路、控制電路、搶答電路,設(shè)計(jì)的搶答器具有實(shí)時(shí)顯示搶答選手的號(hào)碼和搶答時(shí)間的特點(diǎn),還有復(fù)位電路,使其再開始新的一輪的答題和比賽,同時(shí)還利用C語言編程,使其實(shí)現(xiàn)一些基本的功能。如圖2-2所示。</p><p><b> 2.2 方案論證</b></p><p>
19、; 搶答器又稱為第一信號(hào)鑒別器,其主要應(yīng)用于各種知識(shí)競賽、文藝活動(dòng)、證券、股票交易及各種智力競賽等場合。在很多公開競爭場合要求有公正的競爭裁決,因此出現(xiàn)了搶答器。</p><p> 方案一由很多電路組成的,線路復(fù)雜,可靠性不高,功能也比較簡單,特別是當(dāng)搶答路數(shù)很多時(shí),實(shí)現(xiàn)起來就更為困難。因此我們設(shè)計(jì)采用方案二以單片機(jī)為核心的新型智能的搶答器,在保留原始搶答器的基本功能的同時(shí)又增加了數(shù)碼管顯示電路實(shí)現(xiàn)了其它功能
20、。</p><p><b> 第3章 硬件設(shè)計(jì)</b></p><p><b> 3.1 單片機(jī)介紹</b></p><p> 單片機(jī)AT89C52具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)可用二節(jié)電池供電。</p><p>
21、; AT89C52是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含4k bytes的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器和128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元,內(nèi)置功能強(qiáng)大的微型計(jì)算機(jī)的AT89C52提供了高性價(jià)比的解決方案。</p><p> AT89C52是一個(gè)低功
22、耗高性能單片機(jī),40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,AT89C52可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲(chǔ)器可有效地降低開發(fā)成本。</p><p> 圖3-1 AT89C52引腳圖</p><p> 主要功能特性如表3
23、-2所示:</p><p> 表3-2 AT89C52功能特性表</p><p> AT89C52單片機(jī)的管腳功能:</p><p><b> VCC:供電電壓。</b></p><p><b> GND:接地。</b></p><p> P0口:P0口為一個(gè)8位漏
24、級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。</p><p> P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可
25、用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。</p><p> P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地
26、址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。</p><p> P3口:P3口是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P
27、3口將輸出電流(ILL)這是由于上拉的緣故。</p><p> P3口也可作為AT89C51的一些特殊功能口,如下表所示:</p><p><b> P3口管腳備選功能</b></p><p> P3.0RXD(串行輸入口)</p><p> P3.1TXD(串行輸出口)</p><p>
28、 P3.2(外部中斷0)</p><p> P3.3(外部中斷1)</p><p> P3.4T0(記時(shí)器0外部輸入)</p><p> P3.5T1(記時(shí)器1外部輸入)</p><p> P3.6(外部數(shù)據(jù)存儲(chǔ)器寫選通)</p><p> P3.7(外部數(shù)據(jù)存儲(chǔ)器讀選通)</p><p
29、> P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。</p><p> RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><p> :外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的信號(hào)將不出現(xiàn)。</p><p> VPP:當(dāng)保持低電平時(shí),則在此期間
30、外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),將內(nèi)部鎖定為RESET;當(dāng)端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p> XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。</p><p> XTAL2:來自反向振蕩器的輸出。</p><p>
31、 3.2 時(shí)鐘電路和復(fù)位電路</p><p><b> A,時(shí)鐘電路</b></p><p> 單片機(jī)的時(shí)鐘信號(hào)用來提供單片機(jī)內(nèi)各種微操作的時(shí)間基準(zhǔn),時(shí)鐘電路用于產(chǎn)生單片機(jī)工作所需要的時(shí)鐘信號(hào)。</p><p> 單片機(jī)的時(shí)鐘信號(hào)用來提供單片機(jī)片內(nèi)各種微操作的時(shí)間基準(zhǔn),時(shí)鐘信號(hào)通常用兩種電路形式得到:內(nèi)部振蕩和外部振蕩。本系統(tǒng)設(shè)計(jì)采用內(nèi)部
32、振蕩方式。</p><p><b> B, 復(fù)位電路:</b></p><p> 復(fù)位電路是必不可少的一部分,復(fù)位電路的第一功能是上電復(fù)位。一般電路正常工作需要供電電源為5V±5%,即4.75~5.25V。</p><p> RST端的外部復(fù)位電路有兩種操作方式:上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位。按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種,
33、本系統(tǒng)設(shè)計(jì)采用上電復(fù)位,上電復(fù)位是直接將RST端通過電阻接高電平來實(shí)現(xiàn)單片機(jī)的復(fù)位。如圖3-2所示。</p><p> 圖3-2 復(fù)位、時(shí)鐘電路</p><p><b> 3.3 搶答電路</b></p><p> 按照鍵盤與單片機(jī)的連接方式可分為獨(dú)立式鍵盤與矩陣式鍵盤。獨(dú)立式鍵盤是一種常見的輸入裝置,但是獨(dú)立式鍵盤局限于個(gè)數(shù),以及占用較
34、多I/O口,所以本次設(shè)計(jì)采用的是矩陣式鍵盤。如圖3-3所示。</p><p><b> 圖3-3 搶答電路</b></p><p> 矩陣鍵盤行掃描實(shí)現(xiàn)原理:</p><p> 判斷鍵盤中有無鍵按下</p><p> 將全部行線P1.0和P1.1置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵
35、被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個(gè)按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。</p><p> 判斷閉合鍵所在的位置</p><p> 在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時(shí),其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處
36、的按鍵就是閉合的按鍵。</p><p><b> 3.4 顯示電路</b></p><p> 在單片機(jī)應(yīng)用系統(tǒng)中,對于系統(tǒng)的運(yùn)行狀態(tài)和運(yùn)行結(jié)果,通常都需要直觀交互顯示出來。單片機(jī)應(yīng)用系統(tǒng)中最常用的顯示器有LED和LCD兩種。這兩種顯示器都可以顯示數(shù)字、字符及系統(tǒng)的狀態(tài),LED和LCD數(shù)碼顯示最為普遍,本設(shè)計(jì)采用的是更為環(huán)保的4位LED顯示器。如圖3-4所示。<
37、;/p><p><b> 圖3-4 顯示電路</b></p><p> 4位數(shù)碼管動(dòng)態(tài)顯示原理與實(shí)現(xiàn):</p><p> P0.0-P0.6端口接動(dòng)態(tài)數(shù)碼管的字形碼筆段,P2.0-P2.3端口接動(dòng)態(tài)數(shù)碼管的數(shù)位選擇端。4位數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp "的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極C
38、OM增加位選端控制電路,位選端由獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對位選端控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位元就顯示出字形,沒有選通的數(shù)碼管就不會(huì)亮。就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)顯示原理。在輪流顯示過程中,每位元數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極體的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只
39、要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示資料,不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O埠,而且功耗更低。</p><p><b> 3.5 控制電路</b></p><p> 本次設(shè)計(jì)中控制電路采用4個(gè)獨(dú)立按鍵來控制搶答時(shí)間的加減,時(shí)間對搶答器功能的調(diào)節(jié),如圖3-5所示。</p><p><b>
40、; 圖3-5 控制電路</b></p><p> 控制電路的原理與實(shí)現(xiàn):</p><p> 當(dāng)控制電路中K9-K12中有鍵被按下時(shí),對應(yīng)的I/O口被置低電平,聽過中斷程序?qū)崿F(xiàn)相對應(yīng)的功能。該電路采用獨(dú)立式按鍵,其原理簡單明了。</p><p><b> 3.6報(bào)警電路</b></p><p> 因?yàn)?/p>
41、搶答器的報(bào)警比較簡單,只起提示選手的搶答成功信息及時(shí)間警告等少許功能,本次報(bào)警電路核心器件采用一個(gè)蜂鳴器實(shí)現(xiàn)報(bào)警。如圖3-6所示。</p><p><b> 圖3-6 報(bào)警電路</b></p><p> 3.7 整機(jī)工作原理</p><p> 本系統(tǒng)采用單片機(jī)作為整個(gè)控制核心。控制系統(tǒng)的四個(gè)模塊為:顯示模塊、控制模塊、報(bào)警模塊、搶答模塊(
42、原理圖見附錄1)。工作時(shí),該系統(tǒng)通過矩陣鍵盤輸入搶答信號(hào),經(jīng)單片機(jī)的處理,輸出控制信號(hào),利用一個(gè)4位數(shù)碼管來完成顯示功能并伴隨蜂鳴器報(bào)警,用按鍵來讓選手進(jìn)行搶答,在數(shù)碼管上顯示哪一組先答題的,從而實(shí)現(xiàn)整個(gè)搶答過程。</p><p> 當(dāng)主持人按下開始鍵時(shí),向單片機(jī)P3.2引腳輸入一個(gè)低電平信號(hào),表示整個(gè)電路開始工作,此時(shí)數(shù)碼管前兩位顯示選手編號(hào)(無人搶答顯示00),后兩位顯示倒計(jì)時(shí)剩余時(shí)間。若在25秒內(nèi)仍然無人
43、搶答,蜂鳴器在最后5秒發(fā)出連續(xù)報(bào)警,提示搶答時(shí)間快要結(jié)束;若在30秒內(nèi)有人搶答,并且搶答成功,則將選手編號(hào)顯示在數(shù)碼管前兩位上,后兩位顯示搶答剩余時(shí)間,同時(shí)蜂鳴器發(fā)出一聲報(bào)警,提示其他沒有搶答的選手此題已被人搶答成功。若在搶答過程中遇見特殊情況,主持人則可以通過時(shí)間加,時(shí)間減按鍵來進(jìn)行時(shí)間調(diào)節(jié)。若要開始新的一輪搶答,主持人按下復(fù)位鍵再按開始鍵即可。</p><p> 此次用單片機(jī)設(shè)計(jì)的搶答器思路簡單明了,可操作
44、性強(qiáng),可靠性高,擴(kuò)展功能強(qiáng),能夠完全實(shí)現(xiàn)普通搶答器的基本功能。</p><p><b> 第4章 軟件設(shè)計(jì)</b></p><p><b> 4.1主程序模塊</b></p><p> 主程序主要完成硬件初始化,子程序調(diào)用和程序間的切換,由于本設(shè)計(jì)要求搶答器具有開始、復(fù)位、搶答、三種方式切換功能,所以主程序除了要進(jìn)行
45、硬件部分的初始化以外還要進(jìn)行各個(gè)程序之間的調(diào)用和切換。主程序流程圖如圖4-6所示。</p><p><b> 程序:</b></p><p> void main()</p><p><b> {</b></p><p> huang=0;red=0;EA=1;</p><
46、;p> TMOD=0x11;T2CON=0x01;</p><p> TH0=(65536-50000)/256;TL0=(65536-50000)%256;</p><p> TH1=(65536-5000)/256;TL1=(65536-5000)%256;</p><p> TH2=(65536-50000)/256;TL2=(65536-500
47、00)%256;</p><p> ET0=1;TR0=0;ET1=1;TR1=1;ET2=1;TR2=0;IT0=1;EX0=1;IT1=1;</p><p> EX1=1;aa=0;bb=0;shijian=30;</p><p><b> while(1)</b></p><p><b> {&l
48、t;/b></p><p> keyscan();</p><p><b> }</b></p><p> 4.2 外部中斷模塊</p><p> 搶答器主要外部中斷來自于選手們的搶答,當(dāng)選手搶答時(shí),搶答器同時(shí)判斷被按下的鍵號(hào)并顯示在數(shù)碼管之上,然后再數(shù)碼管上顯示剩余時(shí)間,同時(shí)關(guān)閉中斷,表示搶答結(jié)束,此時(shí)再
49、有鍵按下?lián)尨鹌饕膊粫?huì)做出反應(yīng)。外部中斷流程圖如圖4-3所示。</p><p><b> 程序:</b></p><p> void timer_2()interrupt 5</p><p><b> {</b></p><p> TH2=(65536-50000)/256;</p>
50、;<p> TL2=(65536-50000)%256;</p><p><b> P1=0xfe;</b></p><p><b> temp=P1;</b></p><p> temp=temp&0xf0;</p><p> while(temp!=0xf0)&l
51、t;/p><p><b> {</b></p><p><b> delay(5);</b></p><p><b> temp=P1;</b></p><p> temp=temp&0xf0;</p><p> while(temp!=0
52、xf0)</p><p><b> {</b></p><p><b> temp=P1;</b></p><p><b> TR2=0;</b></p><p> switch(temp)</p><p><b> {</b&
53、gt;</p><p> case 0xee:{TR0=0;TF2=0;num=1;bj();red=1;huang=0;}break;</p><p> case 0xde:{TR0=0;TF2=0;num=2;bj();red=1;huang=0;}break;</p><p> case 0xbe:{TR0=0;TF2=0;num=3;bj();red=
54、1;huang=0;}break;</p><p> case 0x7e:{TR0=0;TF2=0;num=4;bj();red=1;huang=0;}break;</p><p><b> }</b></p><p> while(temp!=0xf0)</p><p><b> {</b>
55、;</p><p><b> temp=P1;</b></p><p> temp=temp&0xf0;</p><p><b> }}}</b></p><p><b> P1=0xfd;</b></p><p><b>
56、temp=P1;</b></p><p> temp=temp&0xf0;</p><p> while(temp!=0xf0)</p><p><b> {</b></p><p><b> delay(5);</b></p><p><b
57、> temp=P1;</b></p><p> temp=temp&0xf0;</p><p> while(temp!=0xf0)</p><p><b> {</b></p><p><b> temp=P1;</b></p><p>
58、<b> TR2=0;</b></p><p> switch(temp)</p><p><b> {</b></p><p> case 0xed:{TR0=0;TF2=0;num=5;bj();red=1;huang=0;}break;</p><p> case 0xdd:{TR0
59、=0;TF2=0;num=6;bj();red=1;huang=0;}break;</p><p> case 0xbd:{TR0=0;TF2=0;num=7;bj();red=1;huang=0;}break;</p><p> case 0x7d:{TR0=0;TF2=0;num=8;bj();red=1;huang=0;}break;</p><p>&l
60、t;b> }</b></p><p> while(temp!=0xf0)</p><p><b> {</b></p><p><b> temp=P1;</b></p><p> temp=temp&0xf0;</p><p><
61、b> }}}</b></p><p><b> 4.3定時(shí)中斷模塊</b></p><p> 由于搶答器中需要顯示倒計(jì)時(shí)來提示選手們搶答時(shí)間,在規(guī)定時(shí)間內(nèi)作答,所以需要有定時(shí)中斷模塊,當(dāng)時(shí)間小于6秒時(shí),搶答器需要提供警告,以及當(dāng)搶答時(shí)間結(jié)束時(shí),要關(guān)閉外部中斷,表示搶答結(jié)束,此時(shí)再有鍵按下?lián)尨鹌饕膊粫?huì)做出反應(yīng)。流程圖如圖4-3所示。</p&
62、gt;<p><b> 程序:</b></p><p> EA=1;ET0=1; /*開啟總中斷源*/</p><p> EX0=1; /*啟動(dòng)外部中斷0*/</p><p> if(shiji
63、an==0)</p><p><b> {</b></p><p> TR0=0;TR2=0;TF2=0;</p><p><b> }</b></p><p><b> 4.4報(bào)警模塊</b></p><p> 報(bào)警模塊主要作用有兩個(gè),一是當(dāng)
64、時(shí)間還剩5秒時(shí),蜂鳴器放出報(bào)警,以此提示選手們搶答時(shí)間將要結(jié)束;二是當(dāng)有選手第一時(shí)間搶答成功時(shí)發(fā)出報(bào)警聲,提示其他選手不必再搶答。報(bào)警程序流程圖如圖4-4所示。</p><p><b> 程序:</b></p><p><b> if(bb==1)</b></p><p><b> {</b>&
65、lt;/p><p><b> bb=0;</b></p><p> if(shijian==5)</p><p><b> {</b></p><p> speak=~speak;</p><p><b> }</b></p><
66、;p> if(shijian==4)</p><p><b> {</b></p><p> speak=~speak;</p><p><b> }</b></p><p> if(shijian==3)</p><p><b> {</b
67、></p><p> speak=~speak;</p><p><b> }</b></p><p> if(shijian==2)</p><p><b> {</b></p><p> speak=~speak;</p><p>
68、<b> }</b></p><p> if(shijian==1)</p><p><b> {</b></p><p> speak=~speak;</p><p><b> }</b></p><p><b> 4.5控制模塊
69、</b></p><p> 控制模塊主要作用是對搶答器的開始和復(fù)位功能進(jìn)行控制,主要由主持人來實(shí)現(xiàn)功能。當(dāng)開始鍵被按下時(shí),搶答器開始正常工作;當(dāng)搶答器停止工作是,可以按下復(fù)位鍵使搶答器回答初始化狀態(tài)??刂瞥绦蛄鞒虉D如圖4-5所示。</p><p><b> 程序:</b></p><p> void keyscan()<
70、/p><p><b> {</b></p><p> if(sjia==0)</p><p><b> {</b></p><p><b> delay(5);</b></p><p> if(sjia==0)</p><p&g
71、t;<b> {</b></p><p> shijian=shijian+1;</p><p> if(shijian==99)</p><p><b> {</b></p><p> shijian=0;</p><p><b> }}</b&
72、gt;</p><p> while(!sjia);</p><p><b> }</b></p><p> if(sji==0)</p><p><b> {</b></p><p><b> delay(5);</b></p>
73、<p> if(sji==0)</p><p><b> {</b></p><p> shijian=shijian-1;</p><p> if(shijian==0)</p><p><b> {</b></p><p> hijian=30;&
74、lt;/p><p><b> }}</b></p><p> while(!sji);</p><p><b> }</b></p><p> 第5章 系統(tǒng)的調(diào)試與仿真</p><p> 5.1 Keil的安裝調(diào)試</p><p><b&g
75、t; 1.Keil簡介</b></p><p> Keil C:是德國KEIL公司開發(fā)的單片機(jī)C語言編譯器。其前身是FRANKLIN C51,功能相當(dāng)強(qiáng)大。</p><p> µVision2:是一個(gè)for Windows 的、集成化的C51開發(fā)環(huán)境。集成了文件編輯處理、項(xiàng)目管理、編譯鏈接、軟件仿真調(diào)試等多種功能,是強(qiáng)大的C51開發(fā)工具。</p>
76、<p> 在后面的討論中,對Keil C和µVision2兩個(gè)術(shù)語不做嚴(yán)格的區(qū)分,一般多稱呼為Keil C,包含有µVision2集成開發(fā)環(huán)境之意。 </p><p> Keil C的編譯器和鏈接器包括C51、A51、L51和BL51。</p><p> C51是C語言編譯器,其功能是將C源代碼編譯生成可重新定位的目標(biāo)模塊。</p><
77、;p> A51是匯編語言編譯器,其功能是將匯編源代碼編譯生成可重新定位的目標(biāo)模塊。</p><p> L51是鏈接/定位器,其功能是將匯編源代碼和C源代碼生成的可重定位的目標(biāo)模塊文件(.OBJ),與庫文件鏈接、定位生成絕對目標(biāo)文件。</p><p> BL51也是鏈接/定位器,除了具有L51所有的功能之外, (1)可以鏈接定位大于64KB的程序;(2) 具有代碼域及域切換功能;
78、(3)可用于RTX51實(shí)時(shí)多任務(wù)操作系統(tǒng)</p><p> 2.LIB51庫管理器與模擬調(diào)試器</p><p> LIB51庫管理器可以把由匯編器、編譯器創(chuàng)建的目標(biāo)文件構(gòu)建成目標(biāo)庫(.LIB)。</p><p> 這些庫是按規(guī)定格式排列的目標(biāo)模塊,可在以后被鏈接器所使用。</p><p> Keil C有三個(gè)模擬調(diào)試器:</p
79、><p> 1、模擬程序運(yùn)行與調(diào)試,包括C、匯編、宏匯編程序;(2)模擬CPU及其外圍器件,如串行口、定時(shí)器/計(jì)數(shù)器、I/O口等。</p><p> 2、硬件調(diào)試器tScope51 </p><p> tScope51用于對硬件目標(biāo)板進(jìn)行調(diào)試。</p><p> 3、監(jiān)視程序Monitor51</p><p>
80、 通過串行口,PC機(jī)與目標(biāo)板進(jìn)行通信,利用 Monitor51,在PC機(jī)上顯示程序的運(yùn)行情況 </p><p> 3.Keil C操作界面及應(yīng)用</p><p> 編輯狀態(tài)的操作界面主要由5部分組成:最上面的菜單欄、菜單欄下面的工具欄、左邊的工程管理窗口、中間的編輯窗口、下面的輸出信息窗口。</p><p> 菜單項(xiàng)主要有:文件、編輯、視圖(View)、工程、
81、調(diào)試、片內(nèi)外設(shè)(Peripherals)、工具、軟件版本控制系統(tǒng)(SVCS)、窗口、幫助。 工具都是相應(yīng)菜單項(xiàng)的快捷操作按鈕,所以,下面以介紹菜單項(xiàng)為主線,并指明對應(yīng)的工具按鈕。</p><p> 在Keil C中,文件的管理采用的是項(xiàng)目(也叫工程)方式,而不是以前的單一文件方式。</p><p> 工程管理器的功能:對C51源程序、匯編源程序、頭文件等文件統(tǒng)一管理;可以對文件進(jìn)行分組
82、。如圖4-7所示。</p><p> 工程管理窗口內(nèi)容及分布,與Windows的資源管理器相似</p><p><b> 1、建立項(xiàng)目 </b></p><p> 選擇Project菜單下的New Project命令,創(chuàng)建新工程,在對話框中設(shè)定新工程的位置,輸入新工程名字保存即可。</p><p><b>
83、; 2、選擇CPU</b></p><p> 在出現(xiàn)的為新工程選擇CPU的界面,在“data base”欄下選擇所使用的CPU。確定后,會(huì)彈出一“Copy Standard 8051 Startup Code to Project Folder and Add File to Project”信息, 一般選擇“是”即可。</p><p> 3)移走項(xiàng)目:在欲移走的文件上點(diǎn)
84、擊鼠標(biāo)右鍵,會(huì)彈出一菜單,執(zhí)行其中的“Remove File ‘***’”命令即可。 </p><p> 4)對文件分組:可以按功能對項(xiàng)目管理器中的文件分成組,如圖4-7所示。先使用圖4-9中的“Manage Components”命令建立組,然后用鼠標(biāo)直接在組之間移動(dòng)文件即可。 </p><p> 5.1.4編譯鏈接調(diào)試</p><p> 設(shè)置輸出.hex文
85、件:在Target1上點(diǎn)擊鼠標(biāo)右鍵,出現(xiàn)類似圖4-9所示的菜單,點(diǎn)擊執(zhí)行“Options for Target ‘Target1’”命令,在彈出的會(huì)話界面選擇“Output”標(biāo)簽,選中“Create HEX File”項(xiàng)即可。 </p><p> 編譯鏈接方法:使用Project菜單下的Build target命令或Rebuild all target Files命令,或者直接點(diǎn)擊工具欄中對應(yīng)的按鈕。</
86、p><p> 編譯鏈接結(jié)果:若有錯(cuò)誤則不能通過,并且會(huì)在信息窗口給出相應(yīng)的錯(cuò)誤信息。編譯鏈接通過后,會(huì)產(chǎn)生一.hex目標(biāo)文件。 </p><p> 這一部分介紹怎樣對項(xiàng)目運(yùn)行調(diào)試,怎樣觀察修改各部分的數(shù)據(jù),怎樣觀察修改各片內(nèi)外設(shè)的運(yùn)行狀態(tài)。</p><p> 一、使用不同運(yùn)行方式進(jìn)行調(diào)試 </p><p><b> 1、進(jìn)入調(diào)試
87、狀態(tài)</b></p><p> 點(diǎn)擊Debug菜單下的Start/Stop Debug Session命令或相應(yīng)的按鈕,即可進(jìn)入調(diào)試狀態(tài)。調(diào)試狀態(tài)下的操作界面如圖4-10</p><p><b> 2、各種運(yùn)行方式</b></p><p> 5種運(yùn)行方式:全速運(yùn)行、跟蹤運(yùn)行、單步運(yùn)行、跳出函數(shù)、運(yùn)行到光標(biāo)處。命令分別對應(yīng)為:G
88、o、Step、Step Over、Step out of current function、Run to Cursor line。</p><p> 如果用全速運(yùn)行命令Go,可以使用Stop Running命令停止運(yùn)行。</p><p> 退出調(diào)試狀態(tài):再次點(diǎn)擊Debug菜單下的Start/Stop Debug Session命令或相應(yīng)的按鈕。 </p><p>
89、; 5.2搶答器Keil軟件的仿真</p><p> 運(yùn)行程序,查找語法錯(cuò)誤,按照錯(cuò)誤提示修改程序,直到0錯(cuò)誤0警告為止程序語法調(diào)試成功,生成HEX文件加載進(jìn)電路。如圖5-1所示。</p><p><b> 圖5-1 程序調(diào)試</b></p><p> 5.3 搶答器protenus軟件的仿真</p><p>
90、 繪制搶答器的軟件仿真圖步驟分一下四步:</p><p> (1)查找所需要的元器件;</p><p> ?。?)根據(jù)電路圖進(jìn)行連線;</p><p> ?。?)是用來寫線所對應(yīng)的坐標(biāo);</p><p> ?。?)裝載keil生成和HEX文件進(jìn)行仿真。</p><p> 通過以上步驟,來實(shí)現(xiàn)搶答器設(shè)計(jì)的仿真實(shí)現(xiàn)。仿
91、真如圖5-2所示:</p><p> 圖5-2 搶答器的proteus仿真圖</p><p><b> 5.4 調(diào)試與運(yùn)行</b></p><p> 把編寫好的程序放入仿真軟件中,結(jié)合硬件電路進(jìn)行調(diào)試與運(yùn)行。</p><p> ?。?)在仿真軟件中按下開始按鈕,從而達(dá)到仿真的目的;</p><p
92、> ?。?)LED顯示器顯示當(dāng)前0030初始化;</p><p> ?。?)按照本次實(shí)際任務(wù)要求,逐個(gè)調(diào)試功能是否能實(shí)現(xiàn)。</p><p><b> 結(jié) 論</b></p><p> 通過這次比較完整的搶答器設(shè)計(jì),我擺脫了單純的理論知識(shí)學(xué)習(xí)狀態(tài),和實(shí)際設(shè)計(jì)的結(jié)合鍛煉了我的綜合運(yùn)用所學(xué)的專業(yè)基礎(chǔ)知識(shí),解決實(shí)際工程問題的能力,同時(shí)也提高我
93、查閱文獻(xiàn)資料、設(shè)計(jì)手冊、設(shè)計(jì)規(guī)范以及電腦制圖等其他專業(yè)能力水平,而且通過對整體的掌控,對局部的取舍,以及對細(xì)節(jié)的斟酌處理,都使我的能力得到了鍛煉,經(jīng)驗(yàn)得到了豐富,并且意志品質(zhì)力,抗壓能力及耐力也都得到了不同程度的提升。這是我們都希望看到的也正是我們進(jìn)行畢業(yè)設(shè)計(jì)的目的所在。 </p><p> 雖然畢業(yè)設(shè)計(jì)內(nèi)容繁多,過程繁瑣但我的收獲卻更加豐富。各種系統(tǒng)的適用條件,各種設(shè)備的選用標(biāo)準(zhǔn),各種單片機(jī)的安裝方式,我都是
94、隨著設(shè)計(jì)的不斷深入而不斷熟悉并學(xué)會(huì)應(yīng)用的。和老師的溝通交流更使我從經(jīng)濟(jì)的角度對設(shè)計(jì)有了新的認(rèn)識(shí)也對自己提出了新的要求,這些本是我工作后才會(huì)意識(shí)到的問題,通過這次畢業(yè)設(shè)計(jì)讓我提前了解了這些知識(shí),這是很珍貴的。 </p><p><b> 參考文獻(xiàn)</b></p><p> [1] 張立科編著 《單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航》 北京人民郵電出版社,2004 </p
95、><p> [2] 李金利編著 《單片機(jī)原理及應(yīng)用技術(shù)》 北京高等教育出版社,2004 </p><p> [3] 董曉紅編著 《單片機(jī)原理及接口技術(shù)》 西安電子工業(yè)出版社,2007 </p><p> [4] 王振紅編著 《數(shù)字電路設(shè)計(jì)與應(yīng)用實(shí)踐教程》 北京機(jī)械工業(yè)出版社,2003 </p><p> [5] 張靖武編著 《單片機(jī)系統(tǒng)的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)的搶答器設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的搶答器設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的搶答器設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的搶答器設(shè)計(jì)畢業(yè)論文
- 單片機(jī)搶答器畢業(yè)論文
- 基于單片機(jī)的畢業(yè)論文-- 基于51單片機(jī)的搶答器設(shè)計(jì)
- 畢業(yè)論文--基于單片機(jī)的搶答器的設(shè)計(jì)
- 基于單片機(jī)的畢業(yè)論文-- 基于51單片機(jī)的搶答器設(shè)計(jì)
- 單片機(jī)無線搶答器設(shè)計(jì)畢業(yè)論文
- 基于51單片機(jī)的搶答器設(shè)計(jì)畢業(yè)論文
- 四路搶答器畢業(yè)論文--基于單片機(jī)的四路搶答器設(shè)計(jì)
- 畢業(yè)論文(設(shè)計(jì))-基于51單片機(jī)的搶答器設(shè)計(jì)
- 單片機(jī)搶答器畢業(yè)設(shè)計(jì)---單片機(jī)搶答器設(shè)計(jì)與實(shí)現(xiàn)
- 基于單片機(jī)的搶答器設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 基于單片機(jī)的搶答器設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 基于單片機(jī)的八路搶答器 畢業(yè)論文
- 單片機(jī)六路搶答器【畢業(yè)論文】
- 畢業(yè)設(shè)計(jì)論文----基于單片機(jī)的智能搶答器
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)搶答器設(shè)計(jì)
- 基于51單片機(jī)的搶答器設(shè)計(jì)-畢業(yè)設(shè)計(jì)(論文)
評(píng)論
0/150
提交評(píng)論