




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、八路多功能智力競賽搶答器 摘要:摘要:現(xiàn)在開展的競賽搶答活動越來越多,而多數(shù)比賽中都采用搶答器進行, 本設計正是以單片機AT89C51為核心,來實現(xiàn)八路搶答和時鐘顯示功能的。搶 答器在程序控制下完成以下功能:搶答有效高頻鈴聲并顯示組別,進入倒計時 狀態(tài),搶答無效報警并閃爍顯示組別,同時具有計分功能,答對加分,答錯減 分。 關鍵詞:搶答 單片機 倒計時 記分 Multi-purpose Intellective Selector for Competition of Eight Groups Abstract:More and more vie to answer first actives a
2、re developed. In most of the competitions vie for answer machine will be used. The design uses the single chip to realize the function of multi-purpose intellective selector and the clocks display. The selector has those functions: if the player vies to answer first successfully, there will be high
3、frequency and display the size of the group. At the same time, it will come into the estate of count down. However, if the player vies to answer first unsuccessfully, it will be given an alarm and display the size of the group sparklingly. Simultaneity, this vie for answer machine have the function
4、of registering the point, if the groups answer is right, this group will be awarded marks. Contrarily, he will be reduced marks. Keywords: Vie for Answer Signal Chip Microcomputer Count Down Recording Score 目目 錄錄 1 1 緒論緒論.3 3 1.1 課題的意義 .3 1.2 搶答器研究的現(xiàn)狀 .3 1.3 搶答器的功能要求 .4 1.4 搶答器總體介紹 .4 2 2 核心元件核心元件 A
5、T89C51AT89C51 介紹介紹.6 6 2.1 AT89C51 芯片主要性能參數(shù).6 2.2 功能特性概述 .6 3 3 系統(tǒng)硬件設計系統(tǒng)硬件設計.7 7 3.1 總體原理圖 .7 3.2 AT89C51 工作外圍電路.8 3.2.1 供電電源 .8 3.2.2 時鐘頻率 .8 3.2.3 復位 .9 4 4 基本原理及關鍵技術基本原理及關鍵技術.9 9 4.1 基本原理 .9 4.2 電路設計總體框圖 .10 4.3 關鍵技術 .11 4.3.1 鍵盤掃描 .11 4.3.2 顯示 .12 4.3.3 發(fā)聲 .13 5 5 程序設計程序設計.1515 5.1 程序介紹 .15 5.2
6、主要程序分析 .15 5.2.1 程序總體設計框圖 .15 5.2.2 搶答時間調(diào)整與查分模塊 .16 5.2.3 答題時間調(diào)整與預加減分設置模塊 .17 5.2.4 倒計時程序與加減分數(shù)模塊 .18 6 6 設計總結設計總結.2020 6.1 設計過程出現(xiàn)問題及解決 .20 6.2 系統(tǒng)存在不足 .20 6.3 設計心得 .20 致致 謝謝.2222 參考文獻參考文獻.2323 附錄附錄 1 1 主要元器件引腳功能主要元器件引腳功能 .2424 附錄附錄 2 2 元件列表元件列表 .2626 附錄附錄 3 3 程序代碼程序代碼 .2727 1 緒論 1.1 課題的意義 隨著我國經(jīng)濟和文化事業(yè)
7、的發(fā)展,現(xiàn)在人們消遣休閑時間的方式也越來越 多,如參加各種業(yè)余活動、社團等等,其中參加各種知識競賽也是一種很好的 消遣方式,既娛樂了自己又對各種知識有了了解,而且如法律,環(huán)境等知識競 賽是提高人們認識的一個很好的途徑。現(xiàn)在開展的競賽搶答活動越來越多,而 在大多數(shù)比賽當中都是采用搶答器進行搶答的,雖然市面上的搶答器功能較為 齊全,但價錢也相對較貴,在一些小型的比賽當中難以普及,這就給廣大的普 通知識競賽愛好者帶來了不便,特別是在像學校這樣開展活動比較頻繁的場所 更是需要一款這樣的搶答器,本設計正是一款專為此而設計且非常實用的多功 能多路的搶答器。 本設計的核心是使用 AT89C51 單片機來對信
8、號進行鎖存、顯示等功能。搶 答器在程序控制下工作,在比賽當中有按鍵被按下,在程序的控制下就可以判 斷是那個按鍵被按下,并對該按鍵進行鎖定,同時輸出是那一位選手搶答成功。 當完成了一次搶答的時候,主持人可以通過控制鍵對上一次的搶答結果進行記 分,之后使程序回到初始狀態(tài)并同時開始下一輪的搶答。 此搶答器電路設計原理簡單、功耗低、穩(wěn)定性好、反應速度快和安裝方便。 在條件的允許下還可以進行擴展成 16 路。由于實現(xiàn)此搶答器所需的硬件只是一 塊 AT89C51 單片機芯片、六個數(shù)碼管和一些按鍵等,所以成本比較低,適用于 許多場合。 1.2 搶答器研究的現(xiàn)狀 1設計的不專業(yè)化; 2成本的高端化; 3功能的
9、單一化; 4操作的復雜化; 5研究目的不明確性; 6消費者的需求強烈性。 1.3 搶答器的功能要求 1可實現(xiàn)調(diào)整顯示當前時間; 2能允許 8 路搶答或可以擴展為 16 位; 3顯示搶答組號及搶答組分數(shù); 4報警閃爍顯示犯規(guī)組號; 5限時搶答,限時答題; 6后 5S 倒計時每秒聲音提示與報警; 7查詢組號分數(shù)、對答題結果進行加減指定分數(shù); 8實現(xiàn)時鐘和搶答器功能相互切換。 1.4 搶答器總體介紹 1接通電源后,顯示時間,調(diào)節(jié)時鐘調(diào)節(jié)按鍵可以設定為當前時間,按功 能轉(zhuǎn)換鍵進入搶答器功能,同時也可以進入時鐘顯示狀態(tài)。 2如果想調(diào)節(jié)搶答時間或答題時間,按搶答時間調(diào)節(jié)“鍵”或“答題時 間調(diào)節(jié)”鍵進入調(diào)節(jié)
10、狀態(tài),此時會顯示現(xiàn)在設定的搶答時間或回答時間值,如 想加一秒按一下加 1s鍵,如果想減一秒按一下-1s鍵,時間 LED 上會顯示改 變后的時間,調(diào)整范圍為 0s99s, 0s 時再減 1s 會跳到 99,99s 時再加 1s 會變 到 0s,調(diào)節(jié)完成后按確認鍵。 3如果想對下一個題目的答題結果加減一定分數(shù),按“答題分數(shù)調(diào)節(jié)鍵” ,此時可以分別調(diào)節(jié)下一個題目答對加的分數(shù),以及答錯要扣除的分數(shù),然后 按確認鍵。 4主持人按開始鍵后,會有一聲提示,并立刻進入搶答倒計時(預設 15s 搶答時間)狀態(tài),如有選手搶答,會有一聲提示音,同時顯示其組號和當 前分數(shù),立刻進入回答倒計時(預設 10s 搶答時間)
11、 ,不進行搶答查詢,所以只 有第一個按搶答的選手有效。倒記時的后 5s 內(nèi)每秒鐘會有一聲提示。 5如倒計時期間,主持人想停止倒計時可以隨時按停止按鍵,系統(tǒng)會自 動進入記錄選手分數(shù)狀態(tài),等待主持人給選手加減指定的分數(shù),同時顯示答題 后選手的分數(shù)。然后按“確定”鍵,等待主持人再次按開始鍵進入下次搶答 計時。 6如果主持人未按搶答開始鍵,而有人按了搶答按鍵,屬于犯規(guī)搶答, LED 會不斷閃爍犯規(guī)組號數(shù)并響個不停,直到按下停止 鍵為止。 7初設每位選手的分數(shù)為 5,在選手答題時會在顯示倒計時的同時顯示其 分數(shù),按“加分”或“減分”鍵對其答題結果給予指定的分數(shù),按“確定”鍵 后,可進入等待下次搶答狀態(tài)。
12、 8如果想查詢選手的分數(shù),先進入查分狀態(tài),然后每位選手按自己的搶答 鍵,將顯示選手的號數(shù)和分數(shù),最后按“確定”鍵退出。 9P3.0 為開始搶答,P3.1 為停止或確認,p1.0-p1.7 為八路搶答器輸入端口, 數(shù)碼管段選 P0 口,位選 P2 口低 6 位,蜂鳴器輸出為 P3.6 口。P3.2 搶答時間調(diào) 整和查分,P3.3 回答時間調(diào)整及加、減分數(shù)調(diào)節(jié),P3.4 為時間加 1 調(diào)整,P3.5 為時間減 1 調(diào)整。P3.7 為時鐘功能與搶答器功能相互轉(zhuǎn)換鍵,P3.1、P3.4、P3.5 分別作為時、分、秒的調(diào)整鍵,P3.0 為時間調(diào)整確認鍵。 2 核心元件 AT89C51 介紹 在本設計中使
13、用的是 AT89C51 單片機,它是一種低電壓低功耗的高性能 8 位單片機,它采用了 CMOS 工藝和 ATMEL 公司的高密度非易失性存儲器 (NURAM)技術,而且輸出引腳和指令系統(tǒng)完全與 MS-51 單片機兼容。 2.1 AT89C51 芯片主要性能參數(shù) 14k 字節(jié)可重擦寫 Flash 閃速存儲器(可經(jīng)受 1000 次的寫入/擦除周期) 2全靜態(tài)工作,0Hz 24MHz 3三級加密程序存儲器 41288 字節(jié)內(nèi)部 RAM 56 個中斷源、4 個中斷優(yōu)先級、4 個 8 位 I/O 口 62 個 16 位定時/計數(shù)器 T0、 T1 標準 80C51 和增加的 T2 捕獲和比較 7存儲器尋址
14、范圍:64K 字節(jié) ROM 和 64K 字節(jié) RAM 8電源控制模式:時鐘可停止和恢復,空閑模式,掉電模式 9 2 個工作頻率范圍 10 時鐘模式時為 0 到 20MHz,12 時鐘模式時為 0 到 33MHz 11雙數(shù)據(jù)指針 12可編程串行 UART 通道、編程時鐘輸出 13掉電模式可通過外部中斷喚醒 2.2 功能特性概述 AT89C51 提供以下標準功能:4k 字節(jié) Flash 閃速存儲器,128 字節(jié)內(nèi)部 RAM,32 個 I/O 口線,兩個 16 位定時/計數(shù)器,一個 5 向量兩級中斷結構,一 個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,AT89C51 可降至 0Hz 的 靜態(tài)邏輯
15、操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止 CPU 的工 作,但允許 RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式 保存 RAM 中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個 硬件復位。 3 系統(tǒng)硬件設計 3.1 總體原理圖 此設計的主要部分為單片機最小系統(tǒng),設計的總體原理圖如圖 3.1 所示,P3.0 為開始搶答,P3.1 為停止或確認,p1.0-p1.7 為八路搶答輸入,數(shù)碼管段選 P0 口,位選 P2 口低 6 位,蜂鳴器輸出為 P3.6 口,P3.2 搶答時間調(diào)整,P3.3 回答 時間調(diào)整,P3.4 為時間加 1 調(diào)整,P3.5 為時間減 1 調(diào)
16、整。 EA /VP 31 X1 19 X2 18 RE SET 9 RD 17 WR 16 INT 0 12 INT 1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSE N 29 AL E/P 30 TX D 11 RX D 10 U1 AT 89S51 P31 P31 C130p F G
17、N D P30 C230p F VC C S11 R14 1K S12 S10 2 位位位位位位位 1 2 3 4 5 6 J2 D1 02 S13 P30 S14 GN D 1 2 3 4 5 6 7 8 J1 S15 VC C S16 R13 1K S17 S10 1 位位位位 S18 D1 01 S21 S22 S23 S24 S1 位位 GN D GN D Y1 12M GN D + C3 22u F R1 4.7 K GN D U2 BU ZZER VC C VC C GN D R15 1K VC C R16 1K Q4 PN P R2 1K R3 1K R4 1K R5 1K R6
18、 1K R7 1K R8 1K R9 1K VC C 圖 3.1 設計總體原理圖 3.2 AT89C51 工作外圍電路 3.2.1 供電電源 AT89C51 單片機為+5v 直流供電,如圖 3.2 所示,普通電源通過 7805 穩(wěn)壓 管后將 9V 電壓轉(zhuǎn)換成+5V,會有 1A 的直流穩(wěn)定電壓輸出。 Vin 1 GND 2 Vo ut 3 U1780 5 1uF 1 2 J1 位位 +10u F GN D GN D GN D GN D 位位VC C 圖 3.2 5V 直流供電 3.2.2 時鐘頻率 單片機必須在時鐘的驅(qū)動下才能工作。在單片機內(nèi)部有一個時鐘振蕩電路, 只需要外接一個振蕩源就能產(chǎn)生一
19、定的時鐘信號送到單片機內(nèi)部的各個單元, 決定單片機的工作速度,圖 3.3 為外部振蕩源電路。 C1 30p F C2 30p F Y112M GN D Rf Rs PDAT 89C5 2 VC C 位位位位位位位 圖 3.3 外部振蕩源電路 一般選用石英晶體振蕩器。此電路在加電大約延遲 10MS 后振蕩器起振,在 XTAL2 引腳產(chǎn)生幅度為 3V 左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振 的頻率確定。電路中兩個電容 C1,C2 的作用有兩個:一是幫助振蕩器起振; 二是對振蕩器的頻率進行微調(diào)。C1,C2 的典型值為 30PF。 單片機在工作時,由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏
20、輯 單元的時鐘信號的周期稱為時鐘周期。起大小是時鐘信號頻率的倒數(shù),常用 fosc 表示。如時鐘頻率為 12MHz,即 fosc=12MHz,則時鐘周期為 1/12s。 3.2.3 復位 單片機的第 9 腳 RST 為硬件復位端,當振蕩器起振以后,在 RST 引腳上輸 入 2 個周期以上的高電平,器件便進入復位狀態(tài),此時 ALE、PSEN、P0、P1、P2、P3 輸出高電平,RST 上輸入返回低電平以后,便 退出復位狀態(tài)開始工作。其電路圖如圖 3.4 所示: R C +5V 89C 52 Vss RST C 2OO 位 R +5V 89C 52 RST Vss (a) 上電自動復位 (b)上電復
21、位和人工開關復位 圖 3.4 89C52 等單片機的復位電路 值得注意的是,在設計當中使用到了硬件復位和軟件復位兩種功能,由上 面的硬件復位后的各狀態(tài)可知寄存器及存儲器的值都恢復到了初始值,而前面 的功能介紹中提到了倒計時時間的記憶功能,該功能的實現(xiàn)的前提條件就是不 能對單片機進行硬件復位,所以設定了軟復位功能。軟復位實際上就是當程序 執(zhí)行完畢之后,將程序指針通過一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到程序執(zhí)行的起始地址。 4 基本原理及關鍵技術 4.1 基本原理 整個流程過程主要四大塊:時間顯示部分、計時部分、預置部分、控制部 分。電源用+5V,AT89C51 為主控制器,當主持人按下復位鍵后,定時器開始 計
22、時,切換在搶答器功能的狀態(tài)下,如果在搶答時間內(nèi)沒有人搶答則為棄權, 如果有人按鍵定時器停止計時,自動進入答題倒計時狀態(tài),同時顯示組別和對 應分數(shù)并發(fā)出高頻鈴聲,如果答對主持人按鍵加給定分數(shù),答錯則減給定分數(shù), 然后按復位鍵開始下一輪搶答。具體分析如下: 1 采用內(nèi)部定時器定時,定時調(diào)用動態(tài)顯示程序,實現(xiàn)時間的顯示; 2 采用獨立式鍵盤,可實現(xiàn) 8 路搶答,稍微改動也可實現(xiàn) 16 路搶答; 3 可實行搶答時間和回答問題時間加 1,減 1 的調(diào)整,調(diào)整范圍為 0S-99S 的調(diào)整; 4 有查分、記分功能,未搶答時且在查分狀態(tài)下,按每位組的搶答按鍵, 可顯示組號及其分數(shù),搶答完畢后,同時顯示選手目前
23、的分數(shù),主持人 可以對選手本次搶答情況進行加減分數(shù)。 5 有記時、記分的記憶功能,一次倒計時時間、加減分數(shù)設置完,如果不 需更改,復位后不需重新進行設定; 6 其掃描顯示基本原理為:通過鍵盤掃描輸出按鍵信息,再通過單片機將它 轉(zhuǎn)換成能在七段數(shù)碼管上顯示字型碼; 7 非常規(guī)報警為:為主控制端未起動時對其他按鍵端進行監(jiān)控; 8 按鍵端的提示為:當搶答完畢時,會在數(shù)碼管上顯示搶答者號碼提示以 表示搶答成功; 9 其中倒計時功能基本原理為:通過鍵盤設定時間 ,將顯示時間數(shù)值逐一 遞減,直到零,完成設定時間的倒計時。 4.2 電路設計總體框圖 八路多功能智力競賽搶答器設計電路主要包括主持人控制電路、選手
24、搶答 電路、報警與顯示電路。其總體框圖如圖 4.1 所示: 圖 4.1 搶答器總體框圖 4.3 關鍵技術 4.3.1 鍵盤掃描 在單片機應用中鍵盤用得最多的形式是獨立鍵盤(圖 4.2)及矩陣鍵盤(圖 4.3): S0 S1 S2 S3 S4 S5 S6 S7 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 圖 4.2 獨立鍵盤 S1S2S3S4 S5S6S7S8 S9S10S11S12 S13S14S15S16 P1.4 P1.5 P1.6 P1.7 4.7K 4.7K 4.7K 4.7K VC C P1.0P1.1P1.2P13 圖 4.3 矩陣鍵盤 它們各有
25、自己的特點,其中獨立鍵盤硬件電路簡單,而且在程序設計上也 不復雜,一般用在對硬件電路要求不高的簡單電路中;矩陣鍵盤與獨立鍵盤有 很大區(qū)別,首先在硬件電路上它要比獨立鍵盤復雜得多,而且在程序算法上比 它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢得多,因此它更適合于多按鍵電路; 其次就是消除在按鍵過程中產(chǎn)生的“毛刺”現(xiàn)象。 本設計中采用最常用的方法,即延時重復掃描法,延時法的原理為:因為 “毛刺”脈沖一般持續(xù)時間短,約為幾 ms,而我們按鍵的時間一般遠遠大于這 個時間,所以當單片機檢測到有按鍵動靜后再延時一段時間(這里我們?nèi)?10ms) 后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無效。 4.3
26、.2 顯示 通常情況下顯示方法一般包括兩種:一種是靜態(tài)顯示,一種是動態(tài)顯示。 其中靜態(tài)顯示的優(yōu)點是顯示穩(wěn)定,在發(fā)光二極管導通電流一定的情況下顯示器 的亮度大,程序編寫簡單,但缺點是占用端口資源多;動態(tài)顯示的特點是顯示 穩(wěn)定性沒靜態(tài)好,程序編寫復雜,但是相對靜態(tài)顯示而言占用端口資源少。 在本設計中根據(jù)實際情況采用的了動態(tài)顯示的方法(電路如圖 4.4 所示) , 并通過查表法將其在數(shù)碼管上顯示出來,其中 P0 口為字型碼輸入端,P2 口低 6 位為字選段輸入端。在這里我們通過查表將字型碼送給 7 段數(shù)碼管顯示的數(shù) 字,數(shù)碼管顯示原理如下: MOV A,R5 MOVC A,A+DPTR ;查字型碼
27、MOV P2,#01H ;送位選碼 MOV P0,A ;送字型碼 ACALL DELAY ;調(diào)延時,去閃爍 1 2 3 4 5 6 7 a b c d e f g 8 dp 9 GN D a bf c g d e dp DS 1 1 2 3 4 5 6 7 a b c d e f g 8 dp 9 GN D a bf c g d e dp DS 2 1 2 3 4 5 6 7 a b c d e f g 8 dp 9 GN D a bf c g d e dp DS 3 1 2 3 4 5 6 7 a b c d e f g 8 dp 9 GN D a bf c g d e dp DS 4 1
28、2 3 4 5 6 7 a b c d e f g 8 dp 9 GN D a bf c g d e dp DS 5 1 2 3 4 5 6 7 a b c d e f g 8 dp 9 GN D a bf c g d e dp DS 6 1 2 3 4 5 6 7 8 P0 Q1 PN P Q2 PN P Q3 PN P Q4 PN P Q5 PN P Q6 PN P R1 4.7 K R2 4.7 K R3 4.7 K R4 4.7 K R5 4.7 K R6 4.7 K GN DGN DGN DGN DGN DGN D 1 2 3 4 5 6 J2 圖 4.4 動態(tài)顯示電路 在七段數(shù)碼管
29、顯示中可分為共陽極和共陰極兩種類型,本設計中采用共陰數(shù) 碼管,當數(shù)碼管共陰極接地時,如想數(shù)碼管的 a 段亮,則向 a 段送“1” ,反之 送“0” 。 4.3.3 發(fā)聲 我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單 處機某個口線的高電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波, 接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時程序控制“高” 、 “低”電平 的持續(xù)時間,就能改變輸出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。 發(fā)聲電路如圖 4.5 所示,該電路由一個作為驅(qū)動作用的三極管,一個電阻和 一個喇叭組成。 GN D U2 BU ZZER VC C R15 1K R1
30、6 1K Q4 PN PP3.6 圖 4.5 發(fā)聲電路 5 程序設計 5.1 程序介紹 1時間顯示與搶答狀態(tài)切換由按鍵 P3.7 控制,P3.7=1 時,執(zhí)行時間顯示, P3.7=0 時進入搶答器狀態(tài),不再顯示時間,進入此狀態(tài)標志為:數(shù)碼管顯示字 符“FFFFFF” 。 2倒計時時間儲存:將初始的時間存在寄存器 R1,R2 中,如需對搶答時 間和答題時間進行調(diào)整,則通過按鍵進入外中斷程序,分別對其進行調(diào)整,然 后再將數(shù)據(jù)存于 R1,R2 中。 3選手號顯示:當有選手按鍵按下時,程序進行鍵盤掃描,鎖定第一個按 鍵的選手,并將其組號送于 53H,同時調(diào)用顯示程序顯示該組號。 4加減分程序:先預置每
31、位選手初始分數(shù)為 5 分,分別存于 41H48H, 一次成功搶答結束后,調(diào)用原來分數(shù),再通過按鍵對其搶答結果進行加減合適 的分數(shù),并存在對應的地址空間內(nèi)。 5報警:對 P3.6 端口不斷取反使蜂鳴器發(fā)出一定頻率的聲音。 5.2 主要程序分析 5.2.1 程序總體設計框圖 整個程序設計主要在于按鍵控制,程序掃描判斷相關功能按鍵是否閉合來 執(zhí)行相對應的程序模塊,本電路設計的總體程序框圖為圖 5.1 所示: 圖 5.1 總體程序框圖 5.2.2 搶答時間調(diào)整與查分模塊 初設搶答時間為 15S,根據(jù)題目類型可以調(diào)整搶答時間,搶答時間的調(diào)整是 采用外中斷 0,當 P3.2=0 時,進入外中斷程序,通過加
32、減按鍵分別進行加 1 或 減 1,然后將最后的數(shù)據(jù)存入 R1 中。時間調(diào)整確認后,可以查詢每組目前的分 數(shù),每組按下自己的搶答鍵后將會把對應組號和分數(shù)分別送入數(shù)碼管顯示,即 可查看其分數(shù)。該過程的程序框圖如圖 5.2 所示。 圖 5.2 搶答時間調(diào)整與查分框圖 5.2.3 答題時間調(diào)整與預加減分設置模塊 搶答器初設答題時間為 10S,根據(jù)題目的難易程度可以調(diào)整該時間,搶答時 間采用外中斷 1,調(diào)整程序與搶答時間調(diào)整相似。時間調(diào)整后,進入欲加減分 數(shù)設置,初設加減分數(shù)都為 1,再次利用按鍵進行設置,每次按鍵按下,對應 的數(shù)據(jù)將會加 1。這一設置過程的如圖 5.3 所示。 圖 5.3 答題時間調(diào)整
33、與預加減分設置框圖 5.2.4 倒計時程序與加減分數(shù)模塊 當搶答開始鍵 P3.0=0 時,進入搶答倒計時狀態(tài),將倒計時時間存入寄存器 R6,當 R65 時,每 1S 調(diào)用一次報警程序,如果在倒計時的時間內(nèi)有搶答組 別鍵按下,判斷組別后,顯示組號及當前分數(shù),鎖定其他按鍵,再次進入倒計 時狀態(tài)。答題結束后,根據(jù)答題情況,加減預設分數(shù),然后退出進入下一輪搶 答狀態(tài)。 程序分析過程如圖 5.4 所示。 圖 5.4 倒計時程序與加減分數(shù)模塊 6 設計總結 6.1 設計過程出現(xiàn)問題及解決 在整體的設計過程中硬件電路的設計比較成熟,花費時間較少,主要的設 計在于軟件設計上,遇到的問題及解決方法有: 1使用條
34、件轉(zhuǎn)移指令,如:JNB bit,rel,編譯時不能進行,出現(xiàn)跳出范圍 錯誤,該錯誤是由于該指令的轉(zhuǎn)移范圍為 256 字節(jié)(-128+127B) ,而無條件 轉(zhuǎn)移指令的轉(zhuǎn)移范圍相對條件轉(zhuǎn)移指令要大的多,如:AJMP addr11 指令的轉(zhuǎn) 移范圍在 2K 字節(jié)范圍內(nèi),指令 LJMP addr16 的轉(zhuǎn)移范圍為 64KB。這樣通過適 當?shù)恼Z句轉(zhuǎn)換使用無條件轉(zhuǎn)移指令就避免了轉(zhuǎn)移跳出范圍的現(xiàn)象。 2單片機的兩個定時器分別用于響鈴程序和計時程序,所以實時時間顯示 和倒計時時間只能使用同一個定時方式,設計中卻需要成品工作在不同的狀態(tài) 時,實時時間不能中斷,即在搶答工作結束后不需要再次調(diào)整時間。對于這一 問
35、題可以將兩者用不同的寄存器存儲時間,同時調(diào)用不同的顯示程序來實現(xiàn)。 6.2 系統(tǒng)存在不足 1在一次搶答過程中,當出現(xiàn)超前違規(guī)搶答時,只能處理違規(guī)搶答信號, 而對沒有違規(guī)的有效搶答信號不能進行處理,因而使該次搶答過程變?yōu)闊o效。 2當有多個違規(guī)搶答時,普通搶答器或采用優(yōu)先編碼電路選擇其中一個, 或利用搶答電路電子元件的“競爭”選擇其中一個。對于后者由于搶答電路制 作完畢后電子元件被固定。各路搶答信號的“競爭”能力也被固定,因而本質(zhì) 上也有優(yōu)先權。只能“抓住”其中一個而出現(xiàn)“漏洞” 。 6.3 設計心得 經(jīng)過這幾周的努力,設計終于圓滿結束。在這次設計中我感受到平時多學 習,多看資料的重要性。設計的本
36、身并不太難,只是知識的廣度與深度不夠。 通過查閱資料,學習到了許多知識,同時讓我感受到了,書本上的理論知識和 實際應用還是有許多的差別,有些知識是要通過實踐在能領會到的。對于單片 機的設計總體上硬件部分比較簡單,主要解決的就是軟件部分的設計,如果說 有了一個較完整的程序讓我畫電路是件簡單的事,但反過來就不是件容易的事 情了。因而程序的設計是一個設計的主題,它反映了一個人解決問題的思路, 這才是最重要的東西。 我在設計的過程中查閱了不同書籍中完成同一功能的子程序,通過比較選 擇最適合的程序。整個設計通過軟件與硬件的調(diào)試與仿真,使我懂得了學習的 重要性,這對我以后的學習和工作將會有很大的幫助。 致
37、 謝 本文從課題的選定到系統(tǒng)設計方案的確立,我的導師都一直地、不斷地給 予我指導和幫助。在真正的設計過程中不時地問我有哪些困難,引導我順利地 去解決。在我遇到苦難時,他能夠用簡短的語句讓我明白問題的所在。在論文 的撰寫上也給了我好多的意見。他廣博的知識面和豐富的實踐經(jīng)驗,使我十分 佩服,這也將激勵我在今后的工作和學習中不斷的進取。在此,向您表示由衷 地感謝和真誠的敬意。 同時,還感謝在整個過程中曾經(jīng)幫助過我、支持我的老師、同學。謝謝你 們對我的幫助與支持。 參考文獻 1張友德 主編.MCS-51單片微型機原、應用與實驗. 第四版.復旦大學出版社. 2003. 2薛鈞義 武自芳 主編.微機控制系
38、統(tǒng)及其應用. 第一版.西安交通大學出版社. 2002 3陳光東 主編. 單片微型機原理. 第一版.華中科技大學出版社.2003 附錄 1 主要元器件引腳功能 1、AT89C52 引腳圖 2、AT89C51 主要引腳功能 VCC:供電電壓。 GND:接地。 P0 口:P0 口為一個 8 位漏級開路雙向 I/O 口,每腳可吸收 8TTL 門電流。 當 P1 口的管腳第一次寫 1 時,被定義為高阻輸入。P0 能夠用于外部程序數(shù)據(jù) 存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在 FIASH 編程時,P0 口作為原 碼輸入口,當 FIASH 進行校驗時,P0 輸出原碼,此時 P0 外部必須被拉高。 P1
39、口:P1 口是一個內(nèi)部提供上拉電阻的 8 位雙向 I/O 口,P1 口緩沖器能 接收輸出 4TTL 門電流。P1 口管腳寫入 1 后,被內(nèi)部上拉為高,可用作輸入, P1 口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在 FLASH 編程和校驗時,P1 口作為第八位地址接收。 P2 口:P2 口為一個內(nèi)部上拉電阻的 8 位雙向 I/O 口,P2 口緩沖器可接收, 輸出 4 個 TTL 門電流,當 P2 口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且 作為輸入。并因此作為輸入時,P2 口的管腳被外部拉低,將輸出電流。這是由 于內(nèi)部上拉的緣故。P2 口當用于外部程序存儲器或 16 位地址
40、外部數(shù)據(jù)存儲器 進行存取時,P2 口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉 優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2 口輸出其特殊功能寄存器 的內(nèi)容。P2 口在 FLASH 編程和校驗時接收高八位地址信號和控制信號。 P3 口:P3 口管腳是 8 個帶內(nèi)部上拉電阻的雙向 I/O 口,可接收輸出 4 個 TTL 門電流。當 P3 口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。 作為輸入,由于外部下拉為低電平,P3 口將輸出電流(ILL)這是由于上拉的 緣故。 P3 口也可作為 AT89C51 的一些特殊功能口,如下所示: P3.0 RXD(串行輸入口) P3.1 TX
41、D(串行輸出口) P3.2 /INT0(外部中斷 0) P3.3 /INT1(外部中斷 1) P3.4 T0(記時器 0 外部輸入) P3.5 T1(記時器 1 外部輸入) P3.6 /WR(外部數(shù)據(jù)存儲器寫選通) P3.7 /RD(外部數(shù)據(jù)存儲器讀選通) P3 口同時為閃爍編程和編程校驗接收一些控制信號。 RST:復位輸入。當振蕩器復位器件時,要保持 RST 腳兩個機器周期的高電 平時間。 /EA/VPP:當/EA 保持低電平時,則在此期間外部程序存儲器(0000H- FFFFH) ,不管是否有內(nèi)部程序存儲器。注意加密方式 1 時,/EA 將內(nèi)部鎖定為 RESET;當/EA 端保持高電平時,
42、此間內(nèi)部程序存儲器。在 FLASH 編程期間,此 引腳也用于施加 12V 編程電源(VPP) 。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。 3、七段數(shù)碼管引腳圖 (a)外觀圖(b)等效電路 附錄 2 元件列表 AT89C51 1 片 12M 晶振 1 個 9V 變壓器 1 個 L7805 1 個 4700F 電解電容 2 個 001F 瓷片電容 2 個 30PF 瓷片電容 2 個 1K 排阻 1 個 按鍵 15 個 4.7K 電阻 9 個 1K 電阻 5 個 7 段 LED 數(shù)碼管 6 個 電源開關 1 個 附錄 3 程序代碼 OK EQU
43、 20H;搶答開始標志位 RING EQU 22H;響鈴標志位 ORG 0000H AJMP MAIN ORG 0003H AJMP INT0SUB ORG 000BH AJMP T0INT ORG 0013H AJMP INT1SUB ORG 001BH AJMP T1INT ORG 0040 ;=初始化程序= MAIN: MOV R1,#0FH;初設搶答時間為 15s MOV R2,#0AH;初設答題時間為 10s MOV TMOD,#11H;設置未定時器/模式 1 MOV TH0,#0ECH MOV TL0,#0FFH;越高發(fā)聲頻率越高,越尖 MOV TH1,#3CH MOV TL1,#
44、0B0H;50ms 為一次溢出中斷 MOV IE,#88H;允許四個中斷,T0/T1/INT0/INT1 CLR OK CLR RING SETB TR1 SETB TR0;一開始就運行定時器,以開始顯示 FFF.如果想重新計數(shù),重置 TH1/TL1 MOV 4AH,#00H MOV R6,#8 ;初設 8 位選手的分數(shù)為 5 分 MOV R0,#41H MOV A,#5 CL1: MOV R0,A INC R0 DJNZ R6 ,CL1 MOV R3,#1 ;初設每次答題加 1 分 MOV R4,#1 ;初設每次答題減 1 分 MOV R5,#0 MOV 50H,#0 ;50H55H 存放搶
45、答顯示內(nèi)容 MOV 51H,#0 MOV 52H,#0 MOV 53H,#0 MOV 54H,#0 MOV 55H,#0 MOV 60H,#0 ;60H65H 存放實時時間顯示內(nèi)容 MOV 61H,#0 MOV 62H,#0 MOV 63H,#0 MOV 64H,#0 MOV 64H,#0 MOV 66H,#0 ;存儲秒 MOV 67H,#0 ;存儲分 MOV 68H,#0 ;存儲時 ACALL DISPLAY2 ;=時間顯示程序= JS: CLR RING SETB TR1 MOV R5,#0 MOV TH1,#3CH MOV TL1,#0B0H X1:JB P3.7,PLAY ;P3.7=
46、0,進入搶答狀態(tài),P3.7=1 為實時是時間顯示 LJMP START PLAY: JNB P3.0,JISHI ACALL DISPLAY2 AJMP X1 ;=時間調(diào)整程序= JISHI: CLR TR1 ACALL DISPLAY2 JNB P3.1,SHI JNB P3.4,FEN JNB P3.5,MIAO JNB P3.0,$+6 LJMP JS AJMP JISHI SHI: INC 68H MOV A,68H CJNE A,#24,X2 MOV 68H,#0 MOV A,#0 X2: MOV B,#0AH DIV AB MOV 60H,A MOV 61H,B ACALL DEL
47、AY2 AJMP JISHI FEN: INC 67H MOV A,67H CJNE A,#60,X3 MOV 67H,#0 MOV A,#0 X3: MOV B,#0AH DIV AB MOV 62H,A MOV 63H,B ACALL DELAY2 AJMP JISHI MIAO: INC 66H MOV A,66H CJNE A,#60,X4 MOV 66H,#0 MOV A,#0 X4: MOV B,#0AH DIV AB MOV 64H,A MOV 65H,B ACALL DELAY2 AJMP JISHI ;=搶答查詢程序= START: MOV IE,#8FH MOV 50H,#
48、0BH MOV 51H,#0BH MOV 52H,#0BH MOV 53H,#0BH MOV 54H,#0BH MOV 55H,#0BH ACALL DISPLAY;未開始搶答時候顯示 FFFFFF ACALL DISPLAY2 JB P3.0,NEXT;ddddddd ACALL DELAY JB P3.0,NEXT ;去抖動,如果開始鍵按下就向下執(zhí)行,否者跳到非法 搶答查詢 ACALL BARK;按鍵發(fā)聲 MOV A,R1 MOV R6,A;送 R1-R6,因為 R1 中保存了搶答時間 SETB OK;搶答標志位,用于 COUNT 只程序中判斷是否查詢搶答 MOV 52H,#0AH;搶答只
49、顯示計時,滅號數(shù) MOV 53H,#0AH MOV 54H,#0AH MOV 55H,#0AH AJMP COUNT;進入倒計時程序,查詢有效搶答的程序在 COUNT 里面 NEXT: JNB P1.0,FALSE0 JNB P1.1,FALSE1 JNB P1.2,FALSE2 JNB P1.3,FALSE3 JNB P1.4,FALSE4 JNB P1.5,FALSE5 JNB P1.6,FALSE6 JNB P1.7,FALSE7 JB P3.7,NO AJMP START NO: LJMP JS ;=非法搶答處理程序= FALSE0: ACALL BARK;按鍵發(fā)聲 MOV 53H,#
50、01H AJMP ERROR FALSE1: ACALL BARK;按鍵發(fā)聲 MOV 53H,#02H AJMP ERROR FALSE2: ACALL BARK MOV 53H,#03H AJMP ERROR FALSE3: ACALL BARK MOV 53H,#04H AJMP ERROR FALSE4: ACALL BARK MOV 53H,#05H AJMP ERROR FALSE5: ACALL BARK MOV 53H,#06H AJMP ERROR FALSE6: ACALL BARK MOV 53H,#07H AJMP ERROR FALSE7: ACALL BARK MOV
51、 53H,#08H AJMP ERROR ;=INT0(搶答時間 R1 調(diào)整程序,選手分數(shù)查詢)= INT0SUB:MOV A,R1 MOV B,#0AH DIV AB MOV 50H,A MOV 51H,B MOV 52H,#0AH MOV 53H,#0AH MOV 54H,#0AH MOV 55H,#0AH ACALL DISPLAY;先在兩個時間 LED 上顯示 R1 JNB P3.4,INC0;P3.4 為+1s 鍵,如按下跳到 INCO JNB P3.5,DEC0;P3.5 為-1s 鍵,如按下跳到 DECO JNB P3.1 , INTB0 AJMP INT0SUB INTB0:
52、JNB P3.1, $ INTBB0: ACALL DISPLAY ;JB 占 3 個字節(jié),LJMP 占 3 個字節(jié) JB P1.0, $+6 lJMP J0 ;查 1 號選手分數(shù) JB P1.1, $+6 lJMP J1 ;查 2 號選手分數(shù) JB P1.2, $+6 lJMP J2 ;查 3 號選手分數(shù) JB P1.3, $+6 lJMP J3 ;查 4 號選手分數(shù) JB P1.4,$+6 lJMP J4 ;查 5 號選手分數(shù) JB P1.5, $+6 lJMP J5 ;查 6 號選手分數(shù) JB P1.6, $+6 lJMP J6 ;查 7 號選手分數(shù) JB P1.7, $+6 lJMP
53、J7 ;查 8 號選手分數(shù) JB P3.1,$+6 LJMP BACK0;P3.1 為確定鍵,如按下跳到 BACKO AJMP INTBB0 INC0: MOV A,R1 CJNE A,#63H,ADD0 ;如果不是 99,R2 加 1,如果加到 99,R1 就置 0, 重新加起。 MOV R1,#00H ACALL DELAY1 AJMP INT0SUB ADD0: INC R1 ACALL DELAY1 AJMP INT0SUB DEC0: MOV A,R1 JZ SETR1;如果 R1 為 0, R1 就置 99, DEC R1 ACALL DELAY1 AJMP INT0SUB SET
54、R1: MOV R1,#63H ACALL DELAY1 AJMP INT0SUB J0: MOV 53H,#01H MOV A,41H MOV B,#10 DIV AB MOV 54H,A MOV 55H,B AJMP INTBB0 J1: MOV 53H,#02H MOV A,42H MOV B,#10 DIV AB MOV 54H,A MOV 55H,B AJMP INTBB0 J2: MOV 53H,#03H MOV A,43H MOV B,#10 DIV AB MOV 54H,A MOV 55H,B AJMP INTBB0 J3: MOV 53H,#04H MOV A,44H MOV
55、 B,#10 DIV AB MOV 54H,A MOV 55H,B AJMP INTBB0 J4: MOV 53H,#05H MOV A,45H MOV B,#10 DIV AB MOV 54H,A MOV 55H,B AJMP INTBB0 J5: MOV 53H,#06H MOV A,46H MOV B,#10 DIV AB MOV 54H,A MOV 55H,B LJMP INTBB0 J6: MOV 53H,#07H MOV A,47H MOV B,#10 DIV AB MOV 54H,A MOV 55H,B LJMP INTBB0 J7: MOV 53H,#08H MOV A,48H
56、 MOV B,#10 DIV AB MOV 54H,A MOV 55H,B LJMP INTBB0 BACK0: RETI ;-=INT1(回答時間 R2 調(diào)整程序)= INT1SUB:MOV A,R2 MOV B,#0AH DIV AB MOV 50H,A MOV 51H,B MOV 52H,#0AH MOV 53H,#0AH MOV 54H,#0AH MOV 55H,#0AH ACALL DISPLAY JNB P3.4,INC1 JNB P3.5,DEC1 JNB p3.1 ,INTB1 AJMP INT1SUB INTB1: JNB P3.1, $ MOV R3,#1 MOV R4,#
57、1 MOV 50H,#0 MOV 51H,#1 MOV 52H,#0 MOV 53H,#1 INTBB1: ACALL DISPLAY JNB P3.4,JIA1 ;指定每次答題加減的分數(shù) JNB P3.5,JIAN1 JNB P3.1,BACK1 AJMP INTBB1 INC1: MOV A,R2 CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY1 AJMP INT1SUB ADD1: INC R2 ACALL DELAY1 AJMP INT1SUB DEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP INT1S
58、UB SETR2: MOV R2,#63H ACALL DELAY1 AJMP INT1SUB JIA1: INC R3 MOV A,R3 MOV B,#0AH DIV AB MOV 50H,A MOV 51H,B ACALL DELAY1 AJMP INTBB1 JIAN1: INC R4 MOV A,R4 MOV B,#0AH DIV AB MOV 52H,A MOV 53H,B ACALL DELAY1 AJMP INTBB1 BACK1: RETI ;=.倒計時程序(搶答倒計時和回答倒計時都跳到此程序)= COUNT: MOV R7,#00H;重置定時器中斷次數(shù) MOV TH1,#3C
59、H MOV TL1,#0B0H;重置定時器 MOV 52H,#0 RECOUNT:MOV A,R6 ;R6 保存了倒計時的時間,之前先將搶答 ;時間或回答時間給 R6 MOV B,#0AH DIV AB;除十分出個位/十位 MOV 50H,A;取十位 MOV 51H,B;取個位 MOV A,R6 CJNE A,#07H,$+3 JNC LARGER;大于 5s 跳到 LARGER,小于等于 5s 會提醒 MOV A,R7 CJNE A,#0AH,FULL;1s 中 0.5s 向下運行 CLR RING AJMP CHECK FULL: CJNE A,#14H,CHECK;下面系 1s 的情況,
60、響并顯示號數(shù)并清 R0,重新計 SETB RING MOV A,R6 JZ QUIT;計時完畢 MOV R7,#00H DEC R6;一秒標志減 1 AJMP CHECK LARGER: MOV A,R7 CJNE A,#14H,CHECK;如果 1s 向下運行,否者跳到查停/顯示 DEC R6;計時一秒 R6 自動減 1 MOV R7,#00H CHECK: JNB P3.1,QUIT1;如按下停止鍵退出 ACALL DISPLAY JB OK,ACCOUT; 是否為搶答倒計時,如是則查詢搶答,否則跳過查詢繼 續(xù)倒數(shù)(這里起到鎖搶答作用) AJMP RECOUNT ACCOUT: JB P1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年貨運從業(yè)資格證考試模擬題庫及答案
- 《營銷視覺設計》課件
- 《初中主題班會課件:熱愛生活茁壯成長》
- 延續(xù)文化精髓點亮中華未來
- 抗過敏藥的3大關鍵點
- 星空下的村莊課件
- 心臟驟停與心肺復蘇教學課件
- 《違約責任》課件-法律后果與救濟手段
- 《物業(yè)管理規(guī)范》課件
- 創(chuàng)意靈感的來源與應用試題及答案
- 華為管理面試題及答案
- 2024-2025學年統(tǒng)編版小學道德與法治三年級下冊期中考試測試卷附答案
- 智能垃圾桶設計方案資料
- 2025陜西漢中漢源電力(集團)限公司招聘56人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年北京市西城區(qū)中考一模道德與法治試卷(含答案)
- 新聞報道的寫作及范例課件
- 2025-2030中國CAD-CAM牙科系統(tǒng)行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 【9數(shù)一模】2025年安徽省合肥市第四十五中學九年級中考數(shù)學一模試卷
- 年產(chǎn)30萬噸生物航煤項目可行性研究報告(僅供參考)
- 南京師范大學自主招生個人陳述范文與撰寫要點
- 浙江省A9協(xié)作體2024-2025學年高二下學期4月期中聯(lián)考語文試卷(含答案 )
評論
0/150
提交評論