此 次設計提出了用AT80C51單片機為核心控制元件,設計一個簡易的搶答器,本方案以AT80C51單片機作為主控核心,與數碼管、蜂鳴器等構成八路搶答 器,利用了單片機的延時電路、按鍵復位電路、時鐘電路、定時/中斷等電路,設計的八路搶答器具有倒計時和實時顯示搶答選手的號碼的特點,還有復位電路,使 其再開始新的一輪的答題和比賽。
一、功能要求
- 比賽開始,主持人讀完題之后按下“開始鍵”,即搶答開始,蜂鳴器提示一次,此時數碼管開始顯示30s的倒計時;
- 直到有一個選手按下搶答鍵,對應的會在數碼管上顯示出該選手的編號和回答剩余的時間,同時蜂鳴器也會發出一次提示音,以示有人搶答本題;
- 如果在規定的30s時間內沒有人做出搶答,則此題作廢,開始新一輪的搶答。
- 在搶答和回答時間的最后5s,蜂鳴器都會給予報警提示。
- 在倒計時過程中,主持人可以隨時按“停止鍵”結束本次回答或者搶答。
- 在主持未按下開始鍵,若果有人按下搶答鍵,則屬于犯規搶答,此時,數碼管上會顯示違規選手的編號,同時蜂鳴器會以1s一次的頻率發出警告。
- 在每次搶答前后,主持人都可以按下復位鍵讓系統清零,此時數碼管上會顯示“FFF”
二、總體方案設計
2.1顯示模塊的選擇
顯示模塊主要是顯示時間和編號。考慮有以下兩種顯示方案。
方 案一:使用液晶屏顯示時間。液晶顯示屏(LCD )具有輕薄短小、低耗電量、影像穩定不閃爍,分辨率高,抗干擾能力強的特點。但由于液晶屏是以點陣的模式顯示各種符號,需要利用控制芯片創建字符庫,編程 工作量大,控制器的資源占用較多,其成本也偏高。在使用時,不能有靜電干擾,否則易燒壞液晶顯示芯片,不易維護
方案二:使用傳統的數碼管顯示。數碼管具有低能耗、低損耗、低壓、耐老化、防曬、防潮、防火、防高(低)溫,對外界環境要求低,易于維護的優點,同時其精度高,稱量快,精確可靠,操作簡單。數碼顯示是采用BCD編碼顯示數字,程序編譯容易,資源占用較少庫
2.2鍵盤的選擇
鍵盤是人機交互的主要設備,鍵盤電路分為獨立式和矩陣式。其中,獨立式鍵盤硬件電路簡單,而且在程序設計.上也不復雜,一般用在對硬件電路要求不高的簡單電路中;矩陣式鍵盤硬件電路比獨立式鍵盤電路復雜,而且程序設計繁瑣,但它節省端口,適合于多按鍵
本設計基于簡單硬件電路要求的基礎上,采用的是獨立鍵盤的方式。

三、主要器件介紹
采用AT89C51作為系統控制器的CPU方案。單片機算術運算功能強、軟件編程靈活、自由度大,可以用軟件編程實現各種算法和邏輯控制,并且由于其功耗低、體積小、技術成熟和成本低等優點,使其在各個領域應用廣泛。

四、系統硬件設計

1、時鐘頻率控制電路
單片機必須在AT89C51`的驅動下才能工作。AT89C51中有一個用于構成內部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。只需要外接一個振蕩源就能產生一定的時鐘信號送到單片機內部的各個單元,決定單片機的工作速度。

此 電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容 C1、C2選用30PF大小,其作用有兩個:一是 幫助振蕩器起振;二是對振蕩器的頻率進行微調。該設計中時鐘頻率選為12MHz。
2、復位電路的設計
在搶答器中復位是為定時做鋪墊的,在搶答之前要復位,搶答完畢要復位,按了復位鍵之后LED顯示F。單片機的復位引腳RST出現2個機器周期以上的高電平時即可實現復位,復位后單片機的各狀態都恢復到初始化狀態,其電路圖如圖所示。

圖 中復位電路由按鍵和電解電容C3、電阻R9構成的按鍵及上電復位電路。由于單片機是高電平復位,所以當按鍵按下時,單片機的9腳RESET管腳處于高電 平,此時單片機處于復位狀態。當上電后由于電容緩慢充電,單片機的9腳電壓逐步由高向低轉化,經過一段時間后,單片機的9腳處于穩定的低電平狀態,此時單 片機上電復位完畢,系統程序從0000H開始執行。
在此設計中使用了硬件復位和軟件復位兩種。硬件復位可將寄存器及存儲器的值都恢復到初始值。而在設計中,倒計時時間存在記憶功能,因此還設計了軟復位功能。軟復位實際上就是當程序執行完畢后,講程序指針通過一條跳轉指令讓它跳轉到該段程序的起始地址。
3、報警電路的設計
我 們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單片機某個管腳的高低電平,則在該管腳上就能產生一定頻率的矩形波,接上蜂鳴器就能發出一 定頻率的聲音,若利用延時程序控制高低電平的持續時間,就能改變輸出頻率,從而改變蜂鳴器發出的音調。在本設計中此電路起到報警功能。它會在第一位選手按 下搶答按鈕時響一次,以提示有人搶答本題,并且在該選手的60秒搶答過程中或30秒等待過程中剩余最后5秒時響起,以提示到此題結束還有5秒鐘。

本次設計如圖用到單片機的10、11和16管腳。10管腳具有讀入功能,11管腳具有輸出功能,而16管腳具有外部數據寫功能,單片機通過內部定時器的操作實現交替變換的波形輸出驅動蜂鳴器發生。
4、顯示電路的設計
本 設計中采用的是4位七段數碼管顯示。數碼管顯示通常顯示分為動態顯示和靜態顯示。其中,靜態顯示的特點是顯示穩定不閃爍,編程簡單,顯示亮度高,但占用 l/0口多,實際應用時必須增加譯碼驅動器進行驅動,增加了硬件電路的復雜性。而動態顯示的穩定性雖沒靜態顯示的好,編程復雜,但是相對靜態顯示而言占用 的端口資源少。本設計采用的是動態顯示方法。通過查表法將值在數碼管上顯示出來。其中單片機的P0口為字型碼輸入端,P2口的低三位為字選段輸入端。

本 設計采用4位一體的七段共陰極數碼管7SEG-MPX4-CC,它是共陰極的,由高電平點亮,其中A-G段分別接到單片機的P0口,由單片機輸出的PO口 數據來決定段碼值,位選碼COM1, COM3, COM4分別接到單片機的P2.0,P2.1,P2.2,由單片機來決定當前該顯示的是哪一位。在電路圖中還有8個220歐姆的電阻分別連接在PO口上, 用作P0口的上拉電阻,保證P0口沒有數據輸出時處于高電平狀態。
5、鍵盤掃描電路的設計
鍵盤掃描電路由兩部分組成:(5)定時電路和(6)搶答電路。
本設計基于簡單硬件電路要求的基礎上,采用的是獨立鍵盤的方式。
在 定時電路的設計中,有1個搶答時間調整按鍵、1個回答時間調整按鍵、加一按鍵、減一按鍵和1個開始按鍵、1個結束按鍵。電路圖如圖2-7所示。圖中和 AT89C51芯片的12管腳連接的為搶答時間30s的調整按鍵,和13管腳連接的為回答時間60s的調整按鍵,與14管腳連接的為加一按鍵,與15管腳 連接的為減一按鍵。這四個按鍵用于主持人對回答時間和搶答時間的調整。
開 始按鍵與單片機的10管腳連接,停止按鍵與11管腳連接。這里用到了單片機10、11管腳復合功能中的IO端口功能,單片機通過讀取10、11腳的 P3.0、P3.1的I0端口值來判斷當前是否處于搶答開始狀態或搶答結束狀態。當主持人按下開始鍵,搶答電路和定時電路將進入正常搶答狀態;當回答完 畢,主持人可以按下結束鍵停止計時。

圖2-7定時電路 圖2-8搶答電路
搶答電路完成兩個功能:一是分辨出選手按鍵先后,并鎖存優先搶答者的編號,同時譯碼顯示電路顯示編號;二是其他選手操作無效。搶答電路如圖2-8所示,圖 中8個搶答按鍵分別接入單片機的P1.0-P1.7端口,單片機通過讀取P1.0-P1.7的值來判斷當前輸入的是8個搶答按鍵中的哪一個。如果主持人未 按下開始按鍵判斷到有人違規操作,蜂鳴器會發出警報聲,并且數碼管會顯示出犯規者的編號。
- 五、系統軟件設計
- 5.1、系統主程序設計思路:為了能達到公 平、公正、合理的設計理念,應該在主持人發布搶答命令之前設定好搶答時間。當時間設定好了之后,主持人發布搶答命令。按下開始按鍵后,程序開始打開,定時 中斷開始倒計時,然后調用鍵盤掃描子程序,當掃描到有人按下了搶答鍵,馬上關閉搶答中斷計時器T1,調用顯示程序,此時封鎖搶答鍵盤,啟動計時器T0。

主程序框圖
5.2鍵盤掃描程序設計 搶答選手的搶答程序設計是本設計的關鍵。鍵盤掃描流程圖如圖所示。

5.3、 顯示程序設計 本次設計的顯示部分在按下開始鍵時,后兩個數碼管顯示倒計時間,以1s變換一次,并且調用延時程序,此時定時器采用中斷方式,可以充分利用CPU。在有選 手按下搶答鍵時,第一個數碼管顯示選手號,最后兩個數碼管顯示倒計時,定時器同樣采用中斷方式。 除此之外,本設計數碼管具有閃爍功能,當有違規搶答時,第一個數碼管會顯示選手號,后兩個數碼管會閃爍顯示FF,-一個周期為每秒1次。以示搶答無效,此 時定時器采用定時中斷的工作方式。 連接時段選信號接在PO口的PO.O~P0.6七個I/O口上,P1口是準雙向I/O接口在輸出驅動部分,所以在接電阻時選擇接220Q限流電.阻, 而在位選方面采用P2口的P2.0~P2.2, 用單片機P2.2三個I/O口作為位選信號的輸出口。 |