找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4265|回復(fù): 1
收起左側(cè)

51單片機(jī)八路智能搶答器設(shè)計思路

[復(fù)制鏈接]
ID:984260 發(fā)表于 2021-11-24 16:11 | 顯示全部樓層 |閱讀模式
此 次設(shè)計提出了用AT80C51單片機(jī)為核心控制元件,設(shè)計一個簡易的搶答器,本方案以AT80C51單片機(jī)作為主控核心,與數(shù)碼管、蜂鳴器等構(gòu)成八路搶答 器,利用了單片機(jī)的延時電路、按鍵復(fù)位電路、時鐘電路、定時/中斷等電路,設(shè)計的八路搶答器具有倒計時和實時顯示搶答選手的號碼的特點,還有復(fù)位電路,使 其再開始新的一輪的答題和比賽。



一、功能要求

  • 比賽開始,主持人讀完題之后按下“開始鍵”,即搶答開始,蜂鳴器提示一次,此時數(shù)碼管開始顯示30s的倒計時;
  • 直到有一個選手按下?lián)尨疰I,對應(yīng)的會在數(shù)碼管上顯示出該選手的編號和回答剩余的時間,同時蜂鳴器也會發(fā)出一次提示音,以示有人搶答本題;
  • 如果在規(guī)定的30s時間內(nèi)沒有人做出搶答,則此題作廢,開始新一輪的搶答。
  • 在搶答和回答時間的最后5s,蜂鳴器都會給予報警提示。
  • 在倒計時過程中,主持人可以隨時按“停止鍵”結(jié)束本次回答或者搶答。
  • 在主持未按下開始鍵,若果有人按下?lián)尨疰I,則屬于犯規(guī)搶答,此時,數(shù)碼管上會顯示違規(guī)選手的編號,同時蜂鳴器會以1s一次的頻率發(fā)出警告。
  • 在每次搶答前后,主持人都可以按下復(fù)位鍵讓系統(tǒng)清零,此時數(shù)碼管上會顯示“FFF”



二、總體方案設(shè)計

2.1顯示模塊的選擇

顯示模塊主要是顯示時間和編號?紤]有以下兩種顯示方案。

方 案一:使用液晶屏顯示時間。液晶顯示屏(LCD )具有輕薄短小、低耗電量、影像穩(wěn)定不閃爍,分辨率高,抗干擾能力強(qiáng)的特點。但由于液晶屏是以點陣的模式顯示各種符號,需要利用控制芯片創(chuàng)建字符庫,編程 工作量大,控制器的資源占用較多,其成本也偏高。在使用時,不能有靜電干擾,否則易燒壞液晶顯示芯片,不易維護(hù)

方案二:使用傳統(tǒng)的數(shù)碼管顯示。數(shù)碼管具有低能耗、低損耗、低壓、耐老化、防曬、防潮、防火、防高(低)溫,對外界環(huán)境要求低,易于維護(hù)的優(yōu)點,同時其精度高,稱量快,精確可靠,操作簡單。數(shù)碼顯示是采用BCD編碼顯示數(shù)字,程序編譯容易,資源占用較少庫

2.2鍵盤的選擇

鍵盤是人機(jī)交互的主要設(shè)備,鍵盤電路分為獨立式和矩陣式。其中,獨立式鍵盤硬件電路簡單,而且在程序設(shè)計.上也不復(fù)雜,一般用在對硬件電路要求不高的簡單電路中;矩陣式鍵盤硬件電路比獨立式鍵盤電路復(fù)雜,而且程序設(shè)計繁瑣,但它節(jié)省端口,適合于多按鍵

本設(shè)計基于簡單硬件電路要求的基礎(chǔ)上,采用的是獨立鍵盤的方式。




三、主要器件介紹

采用AT89C51作為系統(tǒng)控制器的CPU方案。單片機(jī)算術(shù)運(yùn)算功能強(qiáng)、軟件編程靈活、自由度大,可以用軟件編程實現(xiàn)各種算法和邏輯控制,并且由于其功耗低、體積小、技術(shù)成熟和成本低等優(yōu)點,使其在各個領(lǐng)域應(yīng)用廣泛。




四、系統(tǒng)硬件設(shè)計


1、時鐘頻率控制電路

單片機(jī)必須在AT89C51`的驅(qū)動下才能工作。AT89C51中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。只需要外接一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機(jī)內(nèi)部的各個單元,決定單片機(jī)的工作速度。


此 電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容 C1、C2選用30PF大小,其作用有兩個:一是 幫助振蕩器起振;二是對振蕩器的頻率進(jìn)行微調(diào)。該設(shè)計中時鐘頻率選為12MHz。

2、復(fù)位電路的設(shè)計

在搶答器中復(fù)位是為定時做鋪墊的,在搶答之前要復(fù)位,搶答完畢要復(fù)位,按了復(fù)位鍵之后LED顯示F。單片機(jī)的復(fù)位引腳RST出現(xiàn)2個機(jī)器周期以上的高電平時即可實現(xiàn)復(fù)位,復(fù)位后單片機(jī)的各狀態(tài)都恢復(fù)到初始化狀態(tài),其電路圖如圖所示。


圖 中復(fù)位電路由按鍵和電解電容C3、電阻R9構(gòu)成的按鍵及上電復(fù)位電路。由于單片機(jī)是高電平復(fù)位,所以當(dāng)按鍵按下時,單片機(jī)的9腳RESET管腳處于高電 平,此時單片機(jī)處于復(fù)位狀態(tài)。當(dāng)上電后由于電容緩慢充電,單片機(jī)的9腳電壓逐步由高向低轉(zhuǎn)化,經(jīng)過一段時間后,單片機(jī)的9腳處于穩(wěn)定的低電平狀態(tài),此時單 片機(jī)上電復(fù)位完畢,系統(tǒng)程序從0000H開始執(zhí)行。

在此設(shè)計中使用了硬件復(fù)位和軟件復(fù)位兩種。硬件復(fù)位可將寄存器及存儲器的值都恢復(fù)到初始值。而在設(shè)計中,倒計時時間存在記憶功能,因此還設(shè)計了軟復(fù)位功能。軟復(fù)位實際上就是當(dāng)程序執(zhí)行完畢后,講程序指針通過一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到該段程序的起始地址。

3、報警電路的設(shè)計

我 們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單片機(jī)某個管腳的高低電平,則在該管腳上就能產(chǎn)生一定頻率的矩形波,接上蜂鳴器就能發(fā)出一 定頻率的聲音,若利用延時程序控制高低電平的持續(xù)時間,就能改變輸出頻率,從而改變蜂鳴器發(fā)出的音調(diào)。在本設(shè)計中此電路起到報警功能。它會在第一位選手按 下?lián)尨鸢粹o時響一次,以提示有人搶答本題,并且在該選手的60秒搶答過程中或30秒等待過程中剩余最后5秒時響起,以提示到此題結(jié)束還有5秒鐘。


本次設(shè)計如圖用到單片機(jī)的10、11和16管腳。10管腳具有讀入功能,11管腳具有輸出功能,而16管腳具有外部數(shù)據(jù)寫功能,單片機(jī)通過內(nèi)部定時器的操作實現(xiàn)交替變換的波形輸出驅(qū)動蜂鳴器發(fā)生。




4、顯示電路的設(shè)計

本 設(shè)計中采用的是4位七段數(shù)碼管顯示。數(shù)碼管顯示通常顯示分為動態(tài)顯示和靜態(tài)顯示。其中,靜態(tài)顯示的特點是顯示穩(wěn)定不閃爍,編程簡單,顯示亮度高,但占用 l/0口多,實際應(yīng)用時必須增加譯碼驅(qū)動器進(jìn)行驅(qū)動,增加了硬件電路的復(fù)雜性。而動態(tài)顯示的穩(wěn)定性雖沒靜態(tài)顯示的好,編程復(fù)雜,但是相對靜態(tài)顯示而言占用 的端口資源少。本設(shè)計采用的是動態(tài)顯示方法。通過查表法將值在數(shù)碼管上顯示出來。其中單片機(jī)的P0口為字型碼輸入端,P2口的低三位為字選段輸入端。


本 設(shè)計采用4位一體的七段共陰極數(shù)碼管7SEG-MPX4-CC,它是共陰極的,由高電平點亮,其中A-G段分別接到單片機(jī)的P0口,由單片機(jī)輸出的PO口 數(shù)據(jù)來決定段碼值,位選碼COM1, COM3, COM4分別接到單片機(jī)的P2.0,P2.1,P2.2,由單片機(jī)來決定當(dāng)前該顯示的是哪一位。在電路圖中還有8個220歐姆的電阻分別連接在PO口上, 用作P0口的上拉電阻,保證P0口沒有數(shù)據(jù)輸出時處于高電平狀態(tài)。




5、鍵盤掃描電路的設(shè)計

鍵盤掃描電路由兩部分組成:(5)定時電路和(6)搶答電路。

本設(shè)計基于簡單硬件電路要求的基礎(chǔ)上,采用的是獨立鍵盤的方式。

在 定時電路的設(shè)計中,有1個搶答時間調(diào)整按鍵、1個回答時間調(diào)整按鍵、加一按鍵、減一按鍵和1個開始按鍵、1個結(jié)束按鍵。電路圖如圖2-7所示。圖中和 AT89C51芯片的12管腳連接的為搶答時間30s的調(diào)整按鍵,和13管腳連接的為回答時間60s的調(diào)整按鍵,與14管腳連接的為加一按鍵,與15管腳 連接的為減一按鍵。這四個按鍵用于主持人對回答時間和搶答時間的調(diào)整。

開 始按鍵與單片機(jī)的10管腳連接,停止按鍵與11管腳連接。這里用到了單片機(jī)10、11管腳復(fù)合功能中的IO端口功能,單片機(jī)通過讀取10、11腳的 P3.0、P3.1的I0端口值來判斷當(dāng)前是否處于搶答開始狀態(tài)或搶答結(jié)束狀態(tài)。當(dāng)主持人按下開始鍵,搶答電路和定時電路將進(jìn)入正常搶答狀態(tài);當(dāng)回答完 畢,主持人可以按下結(jié)束鍵停止計時。


                      圖2-7定時電路                                                                    圖2-8搶答電路

       搶答電路完成兩個功能:一是分辨出選手按鍵先后,并鎖存優(yōu)先搶答者的編號,同時譯碼顯示電路顯示編號;二是其他選手操作無效。搶答電路如圖2-8所示,圖 中8個搶答按鍵分別接入單片機(jī)的P1.0-P1.7端口,單片機(jī)通過讀取P1.0-P1.7的值來判斷當(dāng)前輸入的是8個搶答按鍵中的哪一個。如果主持人未 按下開始按鍵判斷到有人違規(guī)操作,蜂鳴器會發(fā)出警報聲,并且數(shù)碼管會顯示出犯規(guī)者的編號。

  • 五、系統(tǒng)軟件設(shè)計
  • 5.1、系統(tǒng)主程序設(shè)計思路:為了能達(dá)到公 平、公正、合理的設(shè)計理念,應(yīng)該在主持人發(fā)布搶答命令之前設(shè)定好搶答時間。當(dāng)時間設(shè)定好了之后,主持人發(fā)布搶答命令。按下開始按鍵后,程序開始打開,定時 中斷開始倒計時,然后調(diào)用鍵盤掃描子程序,當(dāng)掃描到有人按下了搶答鍵,馬上關(guān)閉搶答中斷計時器T1,調(diào)用顯示程序,此時封鎖搶答鍵盤,啟動計時器T0。





                                                    主程序框圖

5.2鍵盤掃描程序設(shè)計 搶答選手的搶答程序設(shè)計是本設(shè)計的關(guān)鍵。鍵盤掃描流程圖如圖所示。



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

評分

參與人數(shù) 1黑幣 +10 收起 理由
admin + 10 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:276663 發(fā)表于 2021-11-25 12:50 | 顯示全部樓層
好資料,可以學(xué)習(xí)學(xué)習(xí)大家的思路
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表