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

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

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

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

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

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

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

本 設(shè)計(jì)采用4位一體的七段共陰極數(shù)碼管7SEG-MPX4-CC,它是共陰極的,由高電平點(diǎn)亮,其中A-G段分別接到單片機(jī)的P0口,由單片機(jī)輸出的PO口 數(shù)據(jù)來決定段碼值,位選碼COM1, COM3, COM4分別接到單片機(jī)的P2.0,P2.1,P2.2,由單片機(jī)來決定當(dāng)前該顯示的是哪一位。在電路圖中還有8個(gè)220歐姆的電阻分別連接在PO口上, 用作P0口的上拉電阻,保證P0口沒有數(shù)據(jù)輸出時(shí)處于高電平狀態(tài)。
5、鍵盤掃描電路的設(shè)計(jì)
鍵盤掃描電路由兩部分組成:(5)定時(shí)電路和(6)搶答電路。
本設(shè)計(jì)基于簡(jiǎn)單硬件電路要求的基礎(chǔ)上,采用的是獨(dú)立鍵盤的方式。
在 定時(shí)電路的設(shè)計(jì)中,有1個(gè)搶答時(shí)間調(diào)整按鍵、1個(gè)回答時(shí)間調(diào)整按鍵、加一按鍵、減一按鍵和1個(gè)開始按鍵、1個(gè)結(jié)束按鍵。電路圖如圖2-7所示。圖中和 AT89C51芯片的12管腳連接的為搶答時(shí)間30s的調(diào)整按鍵,和13管腳連接的為回答時(shí)間60s的調(diào)整按鍵,與14管腳連接的為加一按鍵,與15管腳 連接的為減一按鍵。這四個(gè)按鍵用于主持人對(duì)回答時(shí)間和搶答時(shí)間的調(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)主持人按下開始鍵,搶答電路和定時(shí)電路將進(jìn)入正常搶答狀態(tài);當(dāng)回答完 畢,主持人可以按下結(jié)束鍵停止計(jì)時(shí)。

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

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

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