智能搶答器的設計-畢業(yè)論文-_第1頁
智能搶答器的設計-畢業(yè)論文-_第2頁
智能搶答器的設計-畢業(yè)論文-_第3頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、摘要 摘 要 搶答器作為一種工具,已廣泛應用于各種智力和知識競賽場合。但搶答器的使用頻 率較低,且有的要么制作復雜,要么可靠性低。作為一個單位,如果專門購一臺搶答器 雖然在經濟上可以承受,但每年使用的次數極少,往往因長期存放使(電子器件的)搶 答器損壞,再購置的麻煩和及時性就會影響活動的開展,因此設計了本搶答器。 本設計是以八路搶答為基本理念??紤]到依需設定限時回答的功能,利用 80C51 單 片機及外圍接口實現的搶答系統(tǒng),利用單片機的定時器/計數器定時和計數的原理,將 軟、硬件有機地結合起來,使得系統(tǒng)能夠正確地進行計時,同時使數碼管能夠正確地顯 示時間。用開關做鍵盤輸出,揚聲器發(fā)聲提示。同時

2、系統(tǒng)能夠實現:在搶答中,只有開 始后搶答才有效,如果在開始搶答前搶答為無效;搶答限定時間和回答問題的時間可在 1-99s 設定;可以顯示是哪位選手有效搶答和無效搶答,正確按鍵后有音樂提示;搶答 時間和回答問題時間倒記時顯示,滿時后系統(tǒng)計時自動復位及主控強制復位;按鍵鎖定, 在有效狀態(tài)下,按鍵無效非法。 關鍵詞:80C51,LED 數碼管,搶答器,計時 目 錄 第一章 緒 論.1 1.1課題研究的相關背景.1 1.2選題的目的和意義.1 1.3課題研究的內容.1 1.4國內外研究現狀.2 1.5搶答器目前存在的主要問題.2 第二章搶答器的系統(tǒng)概述.3 2.1 系統(tǒng)的主要功能 .3 2.2 系統(tǒng)需

3、求分析 .4 2.3 搶答器的工作流程 .4 2.4 搶答器的工作過程 .5 2.5 80C51 特殊功能寄存器.6 2.6 80C51 的功能及簡介.7 2.7 搶答器的優(yōu)點及組成 .8 2.8 本章小結 .8 第三章系統(tǒng)總體方案的設計.9 3.1 硬件電路的設計 .9 3.2 總體原理圖 .10 3.3 時鐘頻率電路的設計 .10 3.4 復位電路的設計 .11 3.5 顯示電路的設計 .12 3.6 鍵盤掃描電路的設計 .13 3.7 發(fā)聲電路 .15 3.8 本章小結 .15 第四章軟件設計.16 4.1 主程序系統(tǒng)結構圖 .16 4.2 軟件任務分析 .16 4.3 程序流程圖 .1

4、7 4.4 主要程序分析 .18 4.5 本章小結 .28 第五章 PROTEUS 7 PROFESSIONAL 仿真系列組圖.29 目錄 I 5.1 復位圖 .29 5.2 設置計時時間 .29 5.3 非法搶答并顯示座號 .29 5.4 搶答成功并顯示倒計時 .30 5.5 本章小結 .30 第六章總結與展望.31 6.1 總結 .31 6.2 展望 .31 參 考 文 獻.32 致 謝.33 貴州航天職業(yè)技術學院畢業(yè)論文 0 第一章 緒 論 1.1課題研究的相關背景 搶答器是一種應用非常廣泛的設備,在各種競賽、搶答場合中,它能迅速、客觀地 分辨出最先獲得發(fā)言權的選手。早期的搶答器只由幾個

5、三極管、可控硅、發(fā)光管等組成, 能通過發(fā)光管的指示辯認出選手號碼。現在大多數搶答器均使用單片機(如MCS-51型) 和數字集成電路,并增加了許多新功能,如選手號碼顯示、搶按前或搶按后的計時、選 手得分顯示等功能。 本課題利用80C51單片機及外圍接口實現的搶答系統(tǒng),利用單片機的定時器/計數器 定時和計數的原理,將軟、硬件有機地結合起來,使得系統(tǒng)能夠正確地進行計時,同時 使數碼管能夠正確地顯示時間和選手號碼。用開關做鍵盤輸出,揚聲器發(fā)聲提示。系統(tǒng) 達到要求:在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效;搶答限 定時間和回答問題的時間可設在1-99s設定;可以顯示是哪位選手有效搶答和

6、無效搶答, 正確按鍵后有音樂提示;搶答時間和回答問題時間倒記時顯示,時間完后系統(tǒng)自動復位; 按鍵鎖定,在有效狀態(tài)下,按鍵無效非法1。 1.2選題的目的和意義 通過這次設計,掌握 80C51 單片機的原理,了解簡單多功能搶答器組成原理,初步 掌握多功能搶答器的調整及測試方法,提高動手能力和排除故障的能力。同時通過本課 題設計與仿真進行調試,提高自己的動手能力,鞏固已學的理論知識,建立單片機理論 和實踐的結合,了解多功能搶答器各單元電路之間的關系及相互影響,從而能正確設計、 計算定時計數的各個單元電路。 1.3課題研究的內容 本系統(tǒng)采用模塊化設計智能搶答器,在搶答比賽中廣泛應用,各組分別有一個搶答

7、 按鈕。主持人有開始和結束、復位鍵。在后臺主持人可以修改,搶答時間和選手回答問 題的時間設置,原始狀態(tài)下搶答時間為 20s,回答問題時間為 30s。通過加鍵和減鍵修 改 貴州航天職業(yè)技術學院畢業(yè)論文 1 上述時間,改完后結束鍵確定。新時間開始有效,主持人按鍵開始后,選手開始搶 答為有效,數碼顯示屏顯示搶答時間倒計時和選手號,在最后五秒揚聲器發(fā)聲提示。如 果主持人沒有按下開始鍵而選手就搶答視為犯規(guī),數碼顯示屏顯示犯規(guī)者的代號,揚聲 器持續(xù)發(fā)聲。主持人可按鍵結束,新一輪搶答開始。 通過研究并在設計驗證后發(fā)現,采用單片機技術設計的搶答器與目前常用的搶答器 相比,首先,電路連接簡單,因為大多數功能單元

8、都通過程序設計在單片機內部,第二, 工作性能可靠,抗干擾能力優(yōu)于目前搶答器。所以本研究是一個實用的工程設計,具有 創(chuàng)新性。 1.4國內外研究現狀 搶答器作為一種電子產品,早已廣泛應用于各種智力和知識競賽場合,但目前所使 用的搶答器有的電路較復雜不便于制作,可靠性低,實現起來很困難;有的則用一些專 用的集成塊,而專用集成塊的購買又很困難。為適應高校等多代表隊單位活動的需要而 設計一個多功能搶答器,這種搶答器具有電路簡單,元件普通,易于購買等優(yōu)點,很好 地解決了制作者制作困難和難于購買的問題。在國內外已經開始了普遍的應用。 1.5搶答器目前存在的主要問題 隨著改革開放事業(yè)的不斷深入,促使人們學科學

9、、學技術、學知識的手段多種多樣, 搶答器作為一種工具,已廣泛應用于各種智力和知識競賽場合。但搶答器的使用頻率校 低,且有的要么制作復雜,要么可靠性低,減少興致。作為一個單位若專購一臺搶答器 雖然在經濟上可以承受,但每年使用的次數極少,往往因長期存放使(電子器件的)搶 答器損壞,再購置的麻煩和及時性就會影響活動的開展。 而且目前多數搶答器存在 3 個不足之處2:第一,現場線路連接復雜。因為每個選 手位于搶答現場的不同位置,每個選手與控制臺之間要有長長的連接線。選手越多,連 接線就越多、越亂,這些連接線不僅影響了現場的美觀,而且降低了搶答器的可靠性, 增加了安裝的難度,甚至影響了現場人員的走動。第

10、二,電路復雜。因為單片機只完成 號碼處理、計時、數據運算等功能,其它功能如選手號碼的識別、譯碼、計分顯示等仍 只能通過數字集成電路完成。采用單片機掃描技術識別選手搶按號碼時,電路的延遲時 間較大。第三,選手搶按成功,但出現沒有搶答被記錄的問題。 貴州航天職業(yè)技術學院畢業(yè)論文 2 第二章 搶答器的系統(tǒng)概述 2.1 系統(tǒng)的主要功能 本系統(tǒng)是借用單片機采用模塊化設計的八路搶答器,包括 8 路搶答按紐、計時顯示、 提示功能等、開始與結束控制按鈕、時限設定、各種相關顯示調控功能等。 參賽者系統(tǒng),除享有搶答按紐的權利功能外,還有人性化的提示功能和時間提示功 能,也可設定由主控控制在參賽者終端表現的趣味性功

11、能等;主控系統(tǒng)的控制按鈕做開 始與結束控制,根據活動參賽者的層次,對提前搶答者的行為設定為非法或阻隔,若設 有非法搶答控制功能時,在主控處帶有公示性顯示的非法掄答者的臺位號,對搶答限時 及回答問題限時設為倒計時,并有顯示提示。 系統(tǒng)的主要功能模塊方框圖如圖 1 所示。 80C51 單片機 4 位 七段 數碼 管顯 示 聲音電路 = 8 路搶答 按鍵輸入 復位電路 開始、結束 按鍵輸入 加一、減一 按鍵輸入 時鐘 圖 1 系統(tǒng)主要功能模塊 本系統(tǒng)采用模塊化設計的八路搶答器,在搶答比賽中廣泛應用,各組分別有一個搶 答按鈕。一共有 8 個按鍵輸入,分別對應 8 路選手的搶答按鍵。 主持人有開始和結束

12、鍵。在后臺主持人可以修改,搶答時間和選手回答問題的時間 設置,原始狀態(tài)下搶答時間為 20s,回答問題時間為 30s。通過加鍵和減鍵修改上述時 第二章 搶答器的系統(tǒng)概述 3 間, 改完后結束鍵確定。新時間開始有效,主持人按鍵開始后,選手開始搶答為有效,數碼 顯示屏顯示搶答時間倒計時和選手號,在最后五秒揚聲器發(fā)聲提示。如果主持人沒有按 下開始鍵而選手就搶答視為犯規(guī),數碼顯示屏顯示犯規(guī)者的代號,揚聲器持續(xù)發(fā)聲。主 持人可按鍵結束,新一輪搶答開始。 單片機是整個搶答器的核心,內部電路設計用匯編語言編寫。它完成了時間參數的 設定,搶按號碼的譯碼,保存;顯示;輸出,搶按及答題倒計時功能等。 本設計中,有一

13、個共陰的數碼管組,四個數碼管。其中兩個顯示時間,一個空位, 一個顯示搶答號碼。主持人依次按下復位鍵(RESET) ,開始鍵后開始搶答??梢該尠矗?超時數碼管顯示“FFF” ,當搶按超過規(guī)定時間或答題超過規(guī)定時間后數碼管顯示 “FFF” 。若有選手在規(guī)定時間內搶按成功,則可以答題,數碼管顯示搶答時間的同時也 顯示選手號碼。若在按開始鍵前搶答表示違規(guī),數碼管顯示“FF”并顯示選手號碼。 2.2 系統(tǒng)需求分析 1、在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效。 2、搶答限定時間和回答問題的時間可以在 199s 設定。 3、可以顯示是哪位選手有效搶答和無效搶答,正確按鍵后有音樂提示。 4

14、、搶答時間和回答問題時間倒記時顯示,時間完后系統(tǒng)自動復位。 5、搶答限定時間內使用錦囊回答時間將加到 60s。 6、按鍵鎖定,在有效狀態(tài)下,按鍵無效非法。 2.3 搶答器的工作流程 搶答器的基本工作原理:在搶答競賽或呼叫時,有多個信號同時或不同時送入主電 路中,搶答器內部的寄存器工作,并識別、記錄第一個號碼,同時內部的定時器開始工 作,記錄有關時間并產生超時信號。在整個搶答器工作過程中,顯示電路、聲音電路等 還要根據現場的實際情況向外電路輸出相應信號。搶答器的工作流程分為:系統(tǒng)復位、 正常流程、違例流程等幾部分,如圖2所示,下面分別予以介紹。 貴州航天職業(yè)技術學院畢業(yè)論文 4 加載程序 運 行

15、 行 開始 開始數碼管顯 示 FFF 開始搶 按時間倒計時 開始前有選手搶按 顯示違例選手號 碼并伴有語音報 警 倒計時結 束,超時 有選手 搶按 顯示 FFF顯示選手號碼,倒計 時時間,語音報警,答 題,答題時間倒計時 正常流程違規(guī)流程 若超過答題 時間,則數 碼管顯示 FFF 答題完畢 根據選手表現, 規(guī) 則由主持人減分 圖2 搶答器工作流程 2.4 搶答器的工作過程 1、如果想調節(jié)搶答時間或答題時間,按“加一”鍵或“減一”鍵進入調節(jié)狀態(tài), 此時會顯示現在設定的搶答時間或回答時間值,如想加一秒按一下加 1s鍵,如果想減 一秒按一下“減 1s”鍵,時間 LED 上會顯示改變后的時間,調整范圍

16、為 099s, 0s 時 再減 1s 會跳到 99,99s 時再加 1s 會變到 0s。 第二章 搶答器的系統(tǒng)概述 5 2、主持人按搶答開始鍵,會有提示音,并立刻進入搶答倒計時(預設 20s 搶答時 間) ,如有選手搶答,會有提示音,并會顯示其號數并立刻進入回答倒計時(預設 30s 搶答時間) ,不進行搶答查詢,所以只有第一個按搶答的選手有效。倒數時間到小于 5s 會每秒響一下提示音。 3、如倒計時期間,主持人想停止倒計時可以隨時按“停止”按鍵,系統(tǒng)會自動進 入準備狀態(tài),等待主持人按“搶答開始”進入下次搶答計時。 4、如果主持人未按“搶答開始”鍵,而有人按了搶答按鍵,犯規(guī)搶答,LED 上不 斷

17、閃爍 FF 和犯規(guī)號數并響個不停,直到按下“停止” 鍵為止。 總而言之,本課題利用80C51單片機及外圍接口實現的搶答系統(tǒng)設計了搶答器,該 搶答器增加了新功能、提高了系統(tǒng)的可靠性、簡化了電路結構、節(jié)約了成本,是一個實 用的工程設計。 2.5 80C51 特殊功能寄存器 特殊功能寄存器也稱專用寄存器3,是具有特殊功能的所有寄存器的集合,簡稱 SFR(Special Function Register) 。特殊功能寄存器共含有 21 個不同寄存器。它們的地址 分配在 80HFFH 中,即在 RAM 地址中。這些寄存器的名稱和地址見表 2。 表 2 80C51 特殊功能寄存器列表 符號地址注釋 *A

18、CCE0H累加器 *BF0H乘法寄存器 *PSWD0H程序狀態(tài)字 SP81H堆棧指針 DPL82H數據存儲器指針低 8 位 DPH83H數據存儲器指針高 8 位 *IEA8H中斷允許控制器 *IPD8H中斷優(yōu)先控制器 *P080H端口 0 *P190H端口 1 *P2A0H端口 2 *P3B0H端口 3 PCON87H電源控制及波特率選擇 *SCON98H串行口控制器 SBUF99H串行數據緩沖器 *TCON88H定時器控制 TMOD89H定時器方式選擇 TL08AH定時器 0 低 8 位 TL18BH定時器 1 低 8 位 TH08CH定時器 0 低 8 位 TH18DH定時器 1 高 8

19、位 貴州航天職業(yè)技術學院畢業(yè)論文 6 注:帶*號的特殊功能寄存器都是可以位尋址的寄存器 雖然特殊功能寄存器地址在 80HFFH 之中,但在 80HFFH 的地址單元中,不是所 有的單元都被特殊功能寄存器占用,未被占用的單元,其內容是不確定的,如果對這些 單元進行操作,得到的是一些隨機數,而寫入則無效。所以,用戶編程時不應該將數據 寫入這些未確定的地址單元,它們是公司留待將來開發(fā)新產品時使用的。 2.6 80C51 的功能及簡介 80C51 單片機是 Philips 公司 MC51 系列單片機的一種 8 位單片機。它最大特點是片 內含有存儲器,用途十分廣泛,特別是在生產便攜式商品,手提式儀器等方

20、面,有著十 分廣泛的應用4。 80C51 單片機內部主要有以下部件:80C51CPU、振蕩電路、總線控制部件、中斷 控制部件、片內 ROM、片內 RAM、并行 I/O 接口、定時器和串行 I/O 接口 80C51 單片機內部由 CPU、4KB 的 ROM ,256B 的 RAM,兩個 16 位的定時/計數 器 T0 和 T1,4 個 8 位的 I/O 端 P0、P1、P2、P3,一個全雙工串行 I/O 接口,5 個中斷 源等組成。單片微機內部最核心的部分是 CPU。CPU 主要功能是產生各種控制信號, 控制存儲器、輸入/輸出端口的數據傳輸、數據的算術運算、邏輯運算以及位操作處理 等,CPU 按

21、其功能可分為運算器和控制器兩部分。控制器由程序計數器 PC、指令儲存 器、指令譯碼器、實時控制與條件轉移邏輯電路等組成。它的功能是對來自存儲器中的 指令進行譯碼,通過實時控制電路,在規(guī)定的時刻發(fā)出各種操作所需的內部和外部的控 制信號,使各部分協調工作,完成指令所規(guī)定的操作。運算器由算術邏輯器部件 ALU、累加器 ACC、暫存器、程序狀態(tài)字寄存器 PSW,BCD 碼運算調整電路等組成。 為了提高數據處理和位操作功能,片內增加了一個通用寄存器 B 和一些專用寄存 器,還增加了位處理邏輯電路的功能。其內部結構如上圖 3 所示。 第二章 搶答器的系統(tǒng)概述 7 外部定 時元件 復位 中斷 電源 系統(tǒng)時鐘

22、 ROM CPU 定時/計數器 串行 I/O 口 并行 I/O 口 RAM 圖 3 80C51 單片機的內部結構圖 2.7 搶答器的優(yōu)點及組成 在知識比賽中,特別是做搶答題目的時候,在搶答過程中,為了知道哪一組或哪一 位選手先答題,必須要設計一個系統(tǒng)來完成這個任務。如果在搶答中,靠視覺是很難判 斷出哪組先答題。利用單片機系統(tǒng)來設計搶答器,使以上問題得以解決,即使兩組的搶 答時間相差幾微秒,也可分辨出哪組優(yōu)先答題。本文主要介紹了單片機搶答器設計及工 作原理,以及它的實際用途。系統(tǒng)工作原理本系統(tǒng)采用 80C51 單片機作為核心。控制系 統(tǒng)的四個模塊分別為:存儲模塊、顯示模塊、聲音模塊、搶答開關模塊

23、。該搶答器系統(tǒng) 通過八個個按鍵輸入搶答信號;利用存儲程序來完成軟件的設計;利用一個 4 位七段共 陰數碼管來完成顯示功能。工作時,用按鍵通過開關電路輸入各路的搶答信號,經單片 機的處理,輸出控制信號,控制 4 位七段共陰數碼管和喇叭工作。在數碼管上顯示哪一 組先答題,從而實現整個搶答過程。 2.8 本章小結 本章主要講述了搶答器的工作原理和本設計系統(tǒng)的工作流程。在說明工作原理的過 程中,突出了電路的組成單元以及這些單元如何實現搶答功能;在說明系統(tǒng)的流程時, 結合本設計的內容,指出了參數設置的方法和意義。搶答正常流程與違例流程的實現, 以及如何進行搶答控制。同時也說明了搶答器的優(yōu)點和 80C51

24、 的功能及簡介。 貴州航天職業(yè)技術學院畢業(yè)論文 8 第三章 系統(tǒng)總體方案的設計 3.1 硬件電路的設計 本設計分為硬件設計和軟件設計,這兩者相互結合,不可分離;從時間上看,硬件 設計的絕大部分工作量是在最初階段,到后期往往還要做一些修改。只要技術準備充分, 硬件設計的大返工是比較少的,軟件設計的任務貫徹始終,到中后期基本上都是軟件設 計任務,隨著集成電路技術的飛速發(fā)展,各種功能很強的芯片不斷出現,使硬件電路的 集成度越來越高,硬件設計的工作量在整個項目中的所占的比重逐漸下降。為使硬件電 路設計盡可能合理,應注意以下幾方面: (1) 盡可能采用功能強的芯片,以簡化電路,功能強的芯片可以代替若干普

25、通芯片, 隨著生產工藝的提高,新型芯片的的價格不斷下降,并不一定比若干普通芯片價格的總 和高。 (2) 留有設計余地。在設計硬件電路時,要考慮到將來修改擴展的方便。因為很少 有一錘定音的電路設計,如果現在不留余地,將來可能要為一點小小的修改或擴展而被 迫進行全面返工。 (3) 程序空間,選用片內程序空間足夠大的單片機,本設計采用 80C51 單片機。 (4) RAM 空間,80C51 內部 RAM 不多,當要增強軟件數據處理功能時,往往覺 得不足。如果系統(tǒng)配置了外部 RAM,則建議多留一些空間。如選用 8155 作 I/O 接口, 就可以增強 256 字節(jié) RAM。隨著軟件設計水平的提高,往往

26、只要改變或增加軟件中的 數據處理算法,就可以使系統(tǒng)功能提高很多,而系統(tǒng)的硬件不必做任何更換就使系統(tǒng)升 級換代。 (5) I/O 端口:在樣機研制出來后進行現場試用時,往往會發(fā)現一些被忽視的問題, 而這些問題不是靠單純的軟件措施來解決的。如有些新的信號需要采集,就必須增加輸 入檢測端;有些物理量需要控制,就必須增加輸出端。如果在硬件電路設計就預留出一 些 I/O 端口,雖然當時空著沒用,那么用的時候就派上用場了。 第三章 系統(tǒng)總體方案的設計 9 3.2 總體原理圖 圖 4 系統(tǒng)原理圖 圖中 U1 為單片機 80C51,U2 為芯片 74HC30,U3 為芯片 74LS04。K1K8 分別為 8

27、路搶答按鍵,分別接到單片機的 P1.0P1.7 中。開始按鍵與結束按鍵分別接到單片機 的 10、11 腳,由于單片機的 10、11 腳既有串行接口 RXD、TXD 功能,又有 P3.0、P3.1 的 IO 端口功能,此處按鍵用到單片機 10、11 腳的 IO 端口功能。搶答時間 調整按鍵和回答時間調整按鍵分別接到單片機的 13、14 管腳,加一按鍵和減一按鍵分 別接到單片機的 15、16 管腳。4 位七段數碼管段選 P0 口。4 位七段數碼管的位選接 P2 口低 3 位,蜂鳴器輸出為 P3.7 口。 3.3 時鐘頻率電路的設計 單片機必須在時鐘的驅動下才能工作。在單片機內部有一個時鐘振蕩電路,

28、只需要 外接一個振蕩源就能產生一定的時鐘信號送到單片機內部的各個單元,決定單片機的工 作速度。時鐘電路如圖 5 所示。 貴州航天職業(yè)技術學院畢業(yè)論文 10 圖 5 外部振蕩源電路 一般選用石英晶體振蕩器。此電路在加電大約延遲 10ms 后振蕩器起振,在 XTAL2 引腳產生幅度為 3V 左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。 電路中兩個電容 C1,C2 的作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進 行微調。C1,C2 的典型值為 30PF。 單片機在工作時,由內部振蕩器產生或由外直接輸入的送至內部控制邏輯單元的時 鐘信號的周期稱為時鐘周期。其大小是時鐘信號頻率的倒

29、數,常用 fosc表示。圖中時鐘 頻率為 12MHz,即 fosc=12MHz,則機器周期為 1s。 3.4 復位電路的設計 單片機的第 9 腳 RST 為硬件復位端,只要將該端持續(xù) 4 個機器周期的高電平即可 實現復位,復位后單片機的各狀態(tài)都恢復到初始化狀態(tài),其電路圖如圖 6 所示: 圖 6 復位電路 圖 6 中由復位鍵以及電解電容 C3、電阻 R2 構成按鍵及上電復位電路。由于單片機 是高電平復位,所以當復位鍵按下的時候,單片機的 9 腳 RESET 管腳將處于高電平,此 時單片機就處于復位狀態(tài)。當上電后,由于電容的緩慢充電,單片機的 9 腳電壓會逐步 由高向低轉化,經過一段時間后,單片機

30、的 9 腳處于穩(wěn)定的低電平狀態(tài),此時單片機上 電就復位完畢,系統(tǒng)程序從 0000H 開始執(zhí)行。 值得注意的是,在設計當中使用到了硬件復位和軟件復位這兩種功能,由上面的硬 件復位后的各狀態(tài)可知寄存器及存儲器的值都恢復到了初始值,而前面的功能介紹中提 到了倒計時時間的記憶功能,該功能的實現的前提條件就是不能對單片機進行硬件復位, 第三章 系統(tǒng)總體方案的設計 11 所以設定了軟件復位功能。軟件復位實際上就是當程序執(zhí)行完畢之后,將程序指針通過 一條跳轉指令讓它跳轉到程序執(zhí)行的起始地址。 3.5 顯示電路的設計 顯示功能與硬件關系極大,當硬件固定后,如何在不引起操作者誤解的前提下提供 盡可能豐富的信息,

31、全靠軟件來解決。 在這里我們使用的是七段數碼管顯示,通常在顯示上我們采用的方法一般包括兩種: 一種是靜態(tài)顯示,一種是動態(tài)顯示。其中靜態(tài)顯示的特點是顯示穩(wěn)定不閃爍,程序編寫 簡單,但占用端口資源多;動態(tài)顯示的特點是顯示穩(wěn)定性沒靜態(tài)好,程序編寫復雜,但 是相對靜態(tài)顯示而言占用端口資源少。在本設計中根據實際情況采用的是動態(tài)顯示方法。 通過查表法,將其在數碼管上顯示出來,其中 P0 口為字型碼輸入端,P2 口低 3 位為字選段輸入端。在這里我們通過查表將字型碼送給 7 段數碼管顯示的數字。 4 位七段數碼管顯示電路如圖 7 所示。 圖 7 共陰極數碼管 圖 7 中數碼管采用的是 4 位七段共陰數碼管,

32、其中 AH 段分別接到單片機的 P0 口, 由單片機輸出的 P0 口數據來決定段碼值,位選碼 COM1、COM3、COM4 分別接到單 片機的 P2.0、P2.1、P2.2,由單片機來決定當前該顯示的是哪一位。在圖中還有八個 1K 的電阻,連接在 P0 口上,用作 P0 口的上拉電阻,保證 P0 口沒有數據輸出時候處于高 電平狀態(tài)。 3.6 鍵盤掃描電路的設計 鍵盤是人與單片機打交道的主要設備。關于鍵盤硬件電路的設計方法也可以在文獻 和書籍中找到,配合各種不同的硬件電路,這些書籍中一般也會提供相應的鍵盤掃描程 貴州航天職業(yè)技術學院畢業(yè)論文 12 序。站在系統(tǒng)監(jiān)控軟件設計的立場上來看,僅僅完成鍵

33、盤掃描,讀取當前時刻的鍵盤狀 態(tài)是不夠的,還有不少問題需要得到妥善解決,否則,人們在操作鍵盤時就容易引起誤 操作和操作失控的現象。在單片機應用中鍵盤用得最多的形式是獨立鍵盤和矩陣鍵盤。 它們都有各自的特點,其中獨立鍵盤的硬件電路簡單,而且在程序設計上也不復雜, 一般都用在對硬件電路要求不高的簡單電路中;矩陣鍵盤與獨立鍵盤有很大區(qū)別,首先 在硬件電路上它要比獨立鍵盤復雜很多,而且在程序算法上要比它煩瑣,而且在觸點抖 動按鍵同與斷過程中可能會出現判斷錯誤。應該采用軟件去抖方法,即延時重復掃描法, 延時法的原理為:在檢測到有按鍵被按下時,執(zhí)行一個 10ms 左右(具體時間應該視所 使用的按鍵進行調整

34、)的延時程序,再確認該鍵電平是否仍保持閉合狀態(tài)的電平,若仍 保持閉合狀態(tài)電平,則確認該鍵處于閉合狀態(tài);同理,在檢測到該鍵釋放后,也應該采 用相同的步驟進行確認,從而消除去抖的影響。 在本文設計中采用了獨立鍵盤的方式,本設計中有 8 個搶答按鍵輸入,一個開始按 鍵、一個結束按鍵,此外還有搶答時間調整鍵、回答時間調整鍵,加一按鍵、減一按鍵 各一個。如圖 8 所示。 圖 8 搶答按鍵及調整按鍵 在圖 8 中 8 個搶答按鍵分別接入單片機的 P1.0P1.7 端口,單片機通過讀取 P1.0P1.7 的值來判斷當前輸入的是 8 個搶答按鍵中的哪一個。搶答時間調整和回答時間調整接到 單片機的 P3.3 和

35、 P3.4 接口,加一及減一按鍵接到單片機的 P3.5 和 P3.6 接口。 圖 9 開始、結束按鍵 在圖 9 中,開始及結束按鍵接到單片機的 10、11 腳,這里用到了單片機 10、11 腳 第三章 系統(tǒng)總體方案的設計 13 復合功能中的 IO 端口功能,單片機通過讀取 10、11 腳的 P3.0、P3.1 的 IO 端口值來判 斷當前是否處于搶答開始狀態(tài)或搶答結束狀態(tài)。 按鍵的觸點在閉合和斷開時均會產生抖動,這時觸點的邏輯電平是不穩(wěn)定的,如不 妥善處理,將會引起按鍵命令的錯誤執(zhí)行或重復執(zhí)行。現在一般均用軟件延時的方法來 避開抖動階段,這一延時過程一般大于 5ms,例如取 10-20ms。如

36、果監(jiān)控程序中的讀鍵 操作安排在主程序(后臺程序)或鍵盤中斷(外部中斷)子程序中,則該延時子程序便 可直接插入讀鍵過程中。如果讀鍵過程安排在定時中斷子程序中,就可省去專門的延時 子程序,利用兩次定時中斷的時間間隔來完成抖動處理。 K1K8 八個按鍵的輸入電平靠 74HC30 輸入與非門和 74LS04 反向器組成的電路改變 輸入電平。圖 10 中電路就是由一個 74HC30 輸入與非門和 74LS04 反向器組成的去抖電 路。 圖 10 去抖電路 3.7 發(fā)聲電路 我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單片機某個 口線的“高”電平或低電平,則在該口線上就能產生一定頻率的矩

37、形波,接上喇叭就能 發(fā)出一定頻率的聲音,若再利用延時程序控制“高” “低”電平的持續(xù)時間,就能改變 輸出頻率,從而改變音調,使喇叭發(fā)出不同的聲音。 本文設計如圖 11 所示。圖中單片機的 14 腳輸出具有復合功能,此處用到了單片機 17 腳的 IO 端口功能,單片機通過內部定時器的操作實現交替變換的波形輸出驅動揚聲 器發(fā)聲。 貴州航天職業(yè)技術學院畢業(yè)論文 14 圖 11 發(fā)聲電路 3.8 本章小結 本章詳細講述了以 80C51 為核心元件的搶答器的硬件電路具體設計過程,分析了具 體電路。在設計過程中,實現搶答功能的是通過編寫程序的方法集成在 80C51 內部。接 著將程序下載到硬件電路中,配合

38、周邊的時鐘電路,復位電路等,制作出符合設計要求 的搶答器。 第四章 軟件設計 15 第四章 軟件設計 4.1 主程序系統(tǒng)結構圖 系統(tǒng)初始化模塊 按鍵模塊 非 法 搶 答 模 塊 正 確 搶 答 模 塊 調 整 搶 答 時 間 調 整 回 答 時 間 模 塊 數碼顯示模塊 圖 13 軟件系統(tǒng)結構圖 4.2 軟件任務分析 軟件任務分析和硬件電路設計結合進行,哪些功能由硬件完成,哪些任務由軟件完 成,在硬件電路設計基本定型后,也就基本上決定下來了5。 軟件任務分析環(huán)節(jié)是為軟件設計做一個總體規(guī)劃。從軟件的功能來看可分為兩大類: 一類是執(zhí)行軟件,它能完成各種實質性的功能,如測量,計算,顯示,打印,輸出控

39、制 和通信等,另一類是監(jiān)控軟件,它是專門用來協調各執(zhí)行模塊和操作者的關系,在系統(tǒng) 軟件中充當組織調度角色的軟件。這兩類軟件的設計方法各有特色,執(zhí)行軟件的設計偏 重算法效率,與硬件關系密切,千變萬化。 軟件任務分析時,應將各執(zhí)行模塊一一列出,并為每一個執(zhí)行模塊進行功能定義和 接口定義(輸入輸出定義) 。在各執(zhí)行模塊進行定義時,將要牽扯到的數據結構和數據 貴州航天職業(yè)技術學院畢業(yè)論文 16 類型問題也一并規(guī)劃好。 各執(zhí)行模塊規(guī)劃好后,就可以監(jiān)控程序了。首先根據系統(tǒng)功能和鍵盤設置選擇一種 最適合的監(jiān)控程序結構。相對來講,執(zhí)行模塊任務明確單純,比較容易編程,而監(jiān)控程 序較易出問題。這如同當一名操作工人

40、比較容易,而當一個廠長就比較難了。 軟件任務分析的另一個內容是如何安排監(jiān)控軟件和各執(zhí)行模塊。整個系統(tǒng)軟件可分 為后臺程序(背景程序)和前臺程序。后臺程序指主程序及其調用的子程序,這類程序 對實時性要求不是太高,延誤幾十 ms 甚至幾百 ms 也沒關系,故通常將監(jiān)控程序(鍵 盤解釋程序) ,顯示程序和打印程序等與操作者打交道的程序放在后臺程序中執(zhí)行;而 前臺程序安排一些實時性要求較高的內容,如定時系統(tǒng)和外部中斷(如掉電中斷) 。也 可以將全部程序均安排在前臺,后臺程序為“使系統(tǒng)進入睡眠狀態(tài)” ,以利于系統(tǒng)節(jié)電 和抗干擾。 4.3 程序流程圖 在本設計中包括了以下主要的程序:主程序,查詢程序,非法

41、搶答程序,搶答時間 調整程序,回答時間調整程序,倒計時程序,正常搶答處理程序,犯規(guī)處理程序,顯示 及發(fā)聲程序。主流程圖如 14 所示: 第四章 軟件設計 17 顯示 FFF 開始鍵 加一鍵 減一鍵 回答 時間 調整搶 答時間 去抖動 非法搶 答處理 顯示 犯規(guī) 正常 搶答 顯示搶答 號并倒計時 Y Y Y 初始化 圖 14 程序設計流程圖 4.4 主要程序分析 #include #define uint unsigned int #define uchar unsigned char sbit warm=P10; /*定義 P10 端口輸出作為控制聲音電路*/ sbit grade_exam=

42、P11; /*定義 P11 端口輸出作為控制查分鍵*/ sbit juge=P12; /*定義 P12 端口輸出作為控制裁判鍵*/ sbit grade_add=P13; /*定義 P13 端口輸出作為控制加分鍵*/ sbit begin=P14; /*定義 P14 端口輸出作為控制開始倒計時鍵*/ sbit Wela=P15; /*定義 P15 端口輸出作為控制數碼管的位選*/ sbit Dula=P16; /*定義 P16 端口輸出作為控制數碼管的段選*/ 貴州航天職業(yè)技術學院畢業(yè)論文 18 uchar grade8; uchar num,num0,num1,num2,count_down

43、; uchar succeed,time,start; uchar disp=0 x03,0 x9f,0 x25,0 x0d,0 x99,0 x49, 0 x41,0 x1f,0 x01,0 x19;/*控制數碼管段選*/ 4.4 延時程序 void delay(uint xms) uint i,j; for(i=xms;i0;i-) for(j=110;j0;j-); 程序分析;每進入一次程序就延時 xms 微秒,只有 i 等于 0 時程序才結束,表示延時結束。 4.5 中斷初始化程序 void init() TMOD=0 x01; TH0=(65536-5000)/256; TL0=(65

44、536-5000)%256; EA=1; ET0=1; 程序分析;此段程序主要提供計時準備。TMOD 主要說明的定時器的工作方式 1,TH0 和 TL0 裝入 初始數據,EA 開總中斷,ET0 表示開定時器的 0 的中斷。 4.6 數碼管顯示程序 void displaynum(uchar num,uchar num1,uchar num2) uchar ge,shi1,ge1,shi2,ge2,bai1; ge=num; bai1=num1/100; shi1=num1%100/10; ge1=num1%10; shi2=num2/10; ge2=num2%10; Wela=1; P2=0

45、x01; Wela=0; Dula=1; P0=dispge; Dula=0; P0=0 x00; delay(5); Wela=1; 第四章 軟件設計 19 P2=0 x02; Wela=0; Dula=1; P0=dispge1; Dula=0; P0=0 x00; delay(5); Wela=1; P2=0 x04; Wela=0; Dula=1; P0=dispshi1; Dula=0; P0=0 x00; delay(5); Wela=1; P2=0 x08; Wela=0; Dula=1; P0=dispbai1; Dula=0; P0=0 x00; delay(5); Wela

46、=1; P2=0 x10; Wela=0; Dula=1; P0=dispge2; Dula=0; P0=0 x00; delay(5); Wela=1; P2=0 x20; Wela=0; Dula=1; P0=dispshi2; Dula=0; P0=0 x00; delay(5); 程序分析;此程序主要是顯示數碼管。num,num1,num2 分別表示的數組,數組的分數,時間的倒 貴州航天職業(yè)技術學院畢業(yè)論文 20 計時。首先 ge=num 就是數碼管左邊第一個顯示數組,bai1=num1/100b 表示分數除 100 取整給 bai1 作為百位,shi1=num1%100/10 表示

47、num1 先取余數然后在除 10 取整作為個位,ge1=num1%100 表示 取余數作為個位,時間倒計時原理一樣。打開位選(位選是控制那個數碼管顯示)裝進數并把它賦 給 P2 端口這樣就能控制數碼管亮,關閉位選。打開段選,利用數組將數賦給 P0 端口這樣能讓相應 的數碼管顯示相應的數,然后關閉數碼管,此后延時。數碼管的顯示主要利用人眼看到的數碼管上 的余光。就這樣反復進行,就達到我們想要的結果。 4.7 按鍵掃描程序 void keyscan() /*檢測裁決鍵*/ if(!juge) start=1; succeed=0; count_down=5; warm=1; delay(30);

48、warm=0; TR0=0; num=0; gradenum=0; /*檢測選手的號碼程序*/ if(start) if(P3!=0 xff) start=0; warm=1; delay(30); warm=0; switch(P3) case 0 x7f: num=8;succeed=1;break; case 0 xbf: num=7;succeed=1;break; case 0 xdf: num=6;succeed=1;break; case 0 xef: num=5;succeed=1;break; case 0 xf7: num=4;succeed=1;break; case 0

49、 xfb: 第四章 軟件設計 21 num=3;succeed=1;break; case 0 xfd: num=2;succeed=1;break; case 0 xfe: num=1;succeed=1;break; default: num=0;succeed=0;break; /*倒計時按鍵程序*/ if(!begin if(!begin) TR0=1; start=1; warm=1; delay(30); warm=0; while(! begin); /*按鍵查分程序*/ if(!grade_exam if(!grade_exam) warm=1; delay(30); warm

50、=0; num+; if(num=9) num=1; while(!grade_exam); /*按鍵加分程序*/ if(!grade_add) / delay(10); if(!grade_add) 貴州航天職業(yè)技術學院畢業(yè)論文 22 warm=1; delay(30); warm=0; gradenum+=5; if(gradenum=250) gradenum=250; while(!grade_add); 程序分析;此程序主要由裁決按鍵程序,檢測選手號碼查程序,倒計時按鍵程序,按鍵查分程序 和按鍵加分程序組成。其中裁決按鍵相當于總開關,如果檢測到裁決鍵按下則清除單片機中以前所 有的數據,succee 賦值為 0,start 賦值為 1,countdown 賦值為 5,蜂鳴器開始發(fā)聲 1 秒鐘停止, TR0=0 表示停止中斷,組數和相應分數分別清零。檢測選手號碼查程序主要是在裁決鍵已經按下那 么便開始檢測是那一組搶答并顯示號碼和蜂鳴器發(fā)出聲音,中斷該程序并且 succeed 賦值為 1, 同時進入下一個程序。倒計時按鍵程序,按下按鍵的時候蜂鳴器發(fā)聲音并且中斷中止。按鍵查分 程序主要

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論