基于AT89C51控制的搶答器設(shè)計與制作_第1頁
基于AT89C51控制的搶答器設(shè)計與制作_第2頁
基于AT89C51控制的搶答器設(shè)計與制作_第3頁
基于AT89C51控制的搶答器設(shè)計與制作_第4頁
基于AT89C51控制的搶答器設(shè)計與制作_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

目錄

1項目簡介............................................................................................................1

2核心元器件選擇................................................................................................1

2.1主控芯片.................................................................................................1

2.2顯示器件.................................................................................................2

2.3設(shè)計方案.................................................................................................2

3產(chǎn)品硬件設(shè)計....................................................................................................3

3.1系統(tǒng)方框圖............................................................................................3

3.2主要功能電路的設(shè)計............................................................................4

3.3焊接.........................................................................................................9

3.4調(diào)試.......................................................................................................11

5系統(tǒng)軟件設(shè)計..................................................................................................12

5.1軟件設(shè)計環(huán)境.......................................................................................12

5.2程序流程圖...........................................................................................13

6產(chǎn)品使用說明..................................................................................................16

7設(shè)計小結(jié)..........................................................................................................16

附錄1電路原理圖.............................................................................................18

附錄2PCB設(shè)計圖.............................................................................................18

附錄3作品實物照.............................................................................................19

附錄4程序代碼.................................................................................................20

參考資料.............................................................................................................28

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

基于單片機控制的搶答器設(shè)計與制作

1項目簡介

項目產(chǎn)品所實現(xiàn)的功能是:設(shè)計由主持人控制具有優(yōu)先搶答、定時搶答、

搶答報警功能的多路搶答器電路,利用數(shù)碼管分別顯示搶答者的編號及搶答時

間??赏瑫r供8名選手進行搶答的多路搶答器,設(shè)置主持人控制開關(guān),用來控

制電路清零和搶答開始。搶答器的定時搶答功能,其時間可由節(jié)目主持人自行

設(shè)定。當(dāng)主持人啟動“開始”鍵后,蜂鳴器報警,并立即進行倒計時顯示;若

有選手搶答,則倒計時停止,數(shù)碼管分別顯示搶答選手的編號和當(dāng)前時間,并

且保持不變直至主持人將系統(tǒng)清零為止,同時電路發(fā)出聲響表示搶答完成。此

外,電路禁止其他選手繼續(xù)搶答;搶答開始后,如果搶答時間到,卻無選手搶

答,則電路進行報警,表示搶答時間結(jié)束。

根據(jù)研究和設(shè)計驗證的結(jié)果,采用單圖技術(shù)設(shè)計的應(yīng)答器與目前市面上銷

售的搶答器進行了比較。第一,電路連接簡單。因為幾乎所有的功能單元都是

在單片機內(nèi)部編程的。第二,工作性能可靠,抗干擾能力優(yōu)于目前的應(yīng)答器。

本設(shè)計主要采用一般的單片機系統(tǒng),對各部分的功能塊進行分割設(shè)計。最終完

成了8路響應(yīng)器的設(shè)計,根據(jù)電路設(shè)計進行了焊接,并制作了相應(yīng)的實物進行

演示,得到了預(yù)期的結(jié)果。

2核心元器件選擇

2.1主控芯片

采用AT89C51做主控制芯片。AT89C51是美國ATMEL公司生產(chǎn)的低電壓,

高性能CMOS8位單片機,片內(nèi)含4kbytes的可反復(fù)擦寫的只讀程序存儲器

(PEROM)和128bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的

高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8

位中央處理器(CPU)和Flash存儲單元,功能強大AT89C51單片機可為您提

供許多高性價比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。AT89C51具體參數(shù)及

引腳如圖2-1所示。

1

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

圖2-1:AT89C51芯片參數(shù)及引腳

AT89C51提供以下標(biāo)準(zhǔn)功能:4k字節(jié)Flash閃速存儲器,128字節(jié)內(nèi)部RA

M,32個I/O口線,兩個16位定時/計數(shù)器,一個5向量兩級中斷結(jié)構(gòu),

一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,AT89C51可降至0Hz

的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。空閑方式停止CPU的

工作,但允許RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式

保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬

件復(fù)位。

2.2顯示器件

使用LCD12864LCD顯示屏。具有中文字符庫的128X64為4位/8位并行,

2線或3線串行接口模式,顯示分辨率為128×64,內(nèi)置819216*16漢字和12816*

8ASCII字符。通過該模塊靈活的界面模式和簡單方便的操作說明,可以形成完

整的中文人機交互圖形界面。它可以顯示8×4行的16×16點矩陣漢字,并且

還可以完成圖形顯示。低電壓和低功耗是另一個突出的特點。盡管LCD12864LCD

功能強大,但顯示內(nèi)容太大,造成顯示空間的浪費,并且LCD的成本很高。結(jié)

合以上描述,根據(jù)顯示器的設(shè)計大多是數(shù)字和簡單的字母,因此數(shù)字電子管顯

示器的選擇更加合理。

2.3設(shè)計方案

通過上述對各個模塊介紹,本設(shè)計最終選擇了AT89C51作為本設(shè)計的主控

2

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

芯片,通過四位數(shù)碼管實時顯示搶答信息包括倒計時及選手編號等內(nèi)容,搶答器

一共設(shè)置有8個選手按鍵,以及3個主持人按鍵(包括確定、加、減)。在游戲開

始之前,主持人可以先設(shè)置搶奪時間,當(dāng)然,系統(tǒng)還會預(yù)置時間設(shè)置。當(dāng)比賽

是正式比賽時,蜂鳴器會發(fā)出嗶嗶聲提示玩家開始比賽,當(dāng)比賽持續(xù)到最后5

秒鐘時,如果沒有選手回答,蜂鳴器會發(fā)出嗶嗶聲提示答案將結(jié)束。

3產(chǎn)品硬件設(shè)計

為使硬件電路設(shè)計盡可能合理,應(yīng)注意以下幾方面:

(1)盡可能采用高性能芯片,簡化電路,高性能芯片取代一些普通芯片。隨

著生產(chǎn)工藝的提高,新芯片的價格會不斷下降,不一定會高于普通芯片的價格

總和。

(2)給設(shè)計留有空間,在設(shè)計硬件電路時,考慮到將來修改擴展的方便性。

因為很少有通用的電路設(shè)計,現(xiàn)在不留下任何空間可能會迫使完全的返工,以

便在未來進行小的修改或擴展。

(3)序空間,選擇空間足夠大的單片機芯片,本設(shè)計采用AT89C51單片機。

(4)關(guān)于I/O端口,我們制作了樣機,在現(xiàn)場進行了試驗,發(fā)現(xiàn)了一個簡單

的軟件對策無法解決的問題。如果需要采集一些新的信號,就要增加輸入的檢

測端;需要控制的物理量必須增加輸出。如果在硬件的電路設(shè)計中準(zhǔn)備好I/O端

口,即使當(dāng)時空著,該用的時候也能用。

3.1系統(tǒng)方框圖

控制系統(tǒng)方框圖即控制系統(tǒng)各部分的相對位置和功能的一種圖解描述。本

設(shè)計產(chǎn)品的系統(tǒng)方框圖如圖3-1所示。

3

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

圖3-1系統(tǒng)方框圖

3.2主要功能電路

3.2.1時鐘頻率電路

單片機必須由時鐘驅(qū)動才能工作。在單片機中有一個時鐘振蕩電路,只需要

連接一個外部振蕩源就可以向單片機內(nèi)部單元產(chǎn)生一定的時鐘信號,確定單片

機的工作速度。(外部震蕩源電路見圖3-2)

圖3-2外部震蕩源電路

一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在

XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振

的頻率確定。電路中兩個電容C1,C2的作用有兩個:一是幫助振蕩器起振;二是

對振蕩器的頻率進行微調(diào)。C1,C2的典型值為30PF。

單片機在工作時,由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單

4

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

元的時鐘信號的周期稱為時鐘周期。其大小是時鐘信號頻率的倒數(shù),常用fosc

表示。如時鐘頻率為12MHz,即fosc=12MHz,則時鐘周期為1/12μs。

3.2.3復(fù)位電路

復(fù)位電路由電容串聯(lián)電阻構(gòu)成,由圖并結(jié)合"電容電壓不能突變"的性質(zhì),可

以知道,當(dāng)系統(tǒng)一上電,RST腳將會出現(xiàn)高電平,并且,這個高電平持續(xù)的時間由

電路的RC值來決定.典型的51單片機當(dāng)RST腳的高電平持續(xù)兩個機器周期以

上就將復(fù)位,所以,適當(dāng)組合RC的取值就可以保證可靠的復(fù)位。(實際電路見圖

3-3)

圖3-3復(fù)位電路

圖3-4復(fù)位原理分析圖

上電復(fù)位是利用電容充電來實現(xiàn)的,即上電瞬間RST端的電位與VCC相同,

隨著充電電流的減少,RST的電位逐漸下降。圖2(a)中的R是施密特觸發(fā)器

輸入端的一個10K?下拉電阻,時間常數(shù)為10×10-6×10×103=100ms。只要VCC

的上升時間不超過1ms,振蕩器建立時間不超過10ms,這個時間常數(shù)足以保證

5

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

完成復(fù)位操作。上電復(fù)位所需的最短時間是振蕩周期建立時間加上2個機器周

期時間,在這個時間內(nèi)RST的電平應(yīng)維持高于施密特觸發(fā)器的下閾值。(原理

分析見圖5)

上電按鍵復(fù)位2(b)所示。當(dāng)按下復(fù)位按鍵時,RST端產(chǎn)生高電平,使單

片機復(fù)位。復(fù)位后,其片內(nèi)各寄存器狀態(tài)見表,片內(nèi)RAM內(nèi)容不變。

3.2.4顯示電路

LED(LightEmittingDiode發(fā)光二極管)顯示器是由發(fā)光二極管構(gòu)成

的最為常用的顯示器件。數(shù)字LED顯示器利用7個發(fā)光二極管顯示數(shù)字,通常

被稱為七段LED顯示器、或者數(shù)碼管。另外,數(shù)碼管中還有一個圓點型發(fā)光二

極管,用于顯示小數(shù)點。結(jié)構(gòu)圖如圖6所示。

LED顯示器有共陽極接法和共陰極接法。共陽極接法的發(fā)光二極管的陽極連

在一起構(gòu)成公共陽極。使用時,公共陽極接+5V電壓。在陰極端輸入低電平,

發(fā)光二極管就導(dǎo)通發(fā)光。共陰極接法的發(fā)光二極管的陰極連在一起構(gòu)成公共陰

極。使用時,公共陰極接地,在陽極端輸入高電平時,發(fā)光二極管就導(dǎo)通發(fā)光。

使用時要注意區(qū)分這兩種不同接法的LED顯示器。

LED導(dǎo)通電壓在1.5V左右,工作電流每段約為20mA,直接接在+5V電平上

會使數(shù)碼管過亮導(dǎo)致?lián)p壞,需接一個100~300Ω的限流電阻。

圖3-5顯示電路

3.2.5鍵盤掃描電路

鍵盤是由一組規(guī)則排列的按鍵組成,一個按鍵實際上是一個開關(guān)元件,也

就是說鍵盤是一組規(guī)則排列的開關(guān)。

在單片機應(yīng)用系統(tǒng)中,除復(fù)位按鈕具有特殊的復(fù)位電路和特定的復(fù)位功能

6

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

外,其他按鍵都是通過開關(guān)狀態(tài)來設(shè)置控制功能或輸入數(shù)據(jù)。按下功能鍵或數(shù)

字鍵時,計算機應(yīng)用系統(tǒng)應(yīng)完成按鍵設(shè)定的功能。關(guān)鍵信息的輸入是一個與軟

件結(jié)構(gòu)密切相關(guān)的過程。

對于一組鍵或鍵盤,總是有一個接口電路連接到CPU。CPU可以使用查詢或

中斷的方式來知道按鍵是否輸入并檢查按下了哪個按鍵,將按鍵的數(shù)字存入累

加器A,然后通過跳轉(zhuǎn)指令進入實現(xiàn)按鍵功能的程序,之后執(zhí)行主程序。

圖3-6鍵盤掃描電路

為了減少I/O端口的占用,大量的鍵被安排在一個矩陣中。在矩陣鍵盤中,

每條水平線和垂直線在交叉處不是直接相連的,而是通過一個鍵相連的。通過

這種方式,一個港口(如P1端口)可以形成1×8鍵,比直接端口線用于鍵盤的兩

倍多,行數(shù),差異越明顯,例如,添加另一個線可以形成一個20名關(guān)鍵的鍵盤,和

直接使用端口線只是一鍵(9鍵)。因此,在需要多個鍵的情況下,采用矩陣法制

作鍵盤是合理的。

3.2.6功放電路

一般的音箱電路包括:喇叭、功放電路、音量控制電路、輸入信號連接器、

輸出信號連接器、AC-DC降壓整流濾波電路、電源開關(guān)以及電源開啟發(fā)光只是電

7

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

路以及相應(yīng)元器件組成。(分析電路見圖8)

當(dāng)喇叭接收到由音源設(shè)備輸出的電信號時,電流會通過喇叭上的線圈(音

圈),并產(chǎn)生磁場反應(yīng)。而通過線圈的電流是交變電流,它的正負極是不斷變

化的;正極和負極相遇會相互吸引,線圈受到喇叭上磁鐵的吸引向后(箱體內(nèi))

運動;正極和正極相遇則相互排斥,線圈向外(箱體外)運動。這一收一擴的

節(jié)奏會產(chǎn)生聲波和氣流,并發(fā)出聲音,它和我們講話的喉嚨振動是同樣的效果。

圖3-7功放電路原理分析圖.

3.2.7復(fù)位電路

系統(tǒng)上電時提供復(fù)位信號,當(dāng)系統(tǒng)電源穩(wěn)定后,復(fù)位信號被取消。為了可

靠性,復(fù)位信號應(yīng)在電源穩(wěn)定后經(jīng)過一定的延遲后取消,以免因電源開關(guān)抖動

或電源插頭的拆合過程而影響復(fù)位。如圖1所示的RC復(fù)位電路可以實現(xiàn)上述基

本功能,其輸入輸出特性如圖9所示。但無法解決功率毛刺(點A)、功率下降緩

慢(電池電壓不足)等問題。另外,通過調(diào)整RC常數(shù)來改變延遲會使其行駛性能

變差。左側(cè)電路為高電平有效復(fù)位,右側(cè)電路為低電平Sm,手動復(fù)位開關(guān)Ch可

避免高頻諧波對電路的干擾。

8

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

圖3-8復(fù)位電路圖

使用比較電路,不但可以解決電源毛刺造成系統(tǒng)不穩(wěn)定,而且電源緩慢下

降也能可靠復(fù)位。圖9是一個實例當(dāng)VCCx(R1/(R1+R2))=0.7V時,Q1截止

使系統(tǒng)復(fù)位。Q1的放大作用也能改善電路的負載特性,但跳變門檻電壓Vt受

VCC影響是該電路的突出缺點,使用穩(wěn)壓二極管可使Vt基本不受VCC影響。見

圖,當(dāng)VCC低于Vt(Vz+0.7V)時電路令系統(tǒng)復(fù)位。

3.3焊接

(1)焊前準(zhǔn)備:

焊接前檢查電烙鐵是否處于允許工作溫度。選擇合適的烙鐵頭與焊點的接

觸位置,只有這樣才能得到良好的焊點。

(2)正確的焊接操作的5個步驟

1、準(zhǔn)備施焊:左手拿焊絲,右手拿烙鐵。烙鐵頭應(yīng)保持清潔,無焊渣等氧

化物,表面應(yīng)涂一層焊料。

2、加熱焊件:將烙鐵的尖端壓在兩個焊縫的接頭上,整個焊接部分加熱1-2

秒左右。在印制板上焊接元件時,要注意烙鐵頭接觸元件的焊盤和引線。

3、送入焊絲:當(dāng)焊件的焊接表面加熱到一定溫度時,焊錫絲從烙鐵的對面

接觸焊件。注意:不要將焊錫絲送到烙鐵頭上。

4、移開焊絲:當(dāng)焊絲充分熔化后,向左移去45度。

5、移開烙鐵:待焊料母豬進入焊盤和焊接部位后,向右上方45度方向取

下烙鐵,即可完成焊接。

9

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

(3)注意事項

A.首先檢測各元件

B.提前對PCB板進行排版及布線,為電路拓展留出足夠空間

C.完成A、B兩步后再進行焊接

3.3.1對PCB板進行排版及連線

在本實驗中使用的面包板的內(nèi)部鏈接,如果破壞了背面的絕緣膠布,可以

剝下膠布看內(nèi)部配線的結(jié)構(gòu),有不知道內(nèi)部配線的錯誤電路的情況。當(dāng)然,最

好的方法是使用測試電路來回插孔,驗證其內(nèi)部構(gòu)造。

1)首先了解面包板在連線和焊接的注意事項。

2)了解實驗原件及器材后,按照原理圖在面包板上連接電路;

3)焊接要注意,電子電路在焊接時,應(yīng)遵循的規(guī)則。

3.3.2焊接的技巧和注意事項

(1)烙鐵在焊接前應(yīng)插上電源,加熱烙鐵。

(2)焊接時,焊錫與線路板、電烙鐵與線路板的角度最好成45度,所以焊

錫與電烙鐵的角度最好成90度。

(3)焊接時,焊錫與烙鐵接觸的時間不宜過長,以免焊錫太多或造成漏錫;

也不要太短,以免造成虛焊。

(4)構(gòu)件支腿應(yīng)盡量伸直,且不要伸得太長,以1mm為好,多余的可以剪掉。

(5)焊完時,焊錫最好呈圓滑的圓錐狀,而且還要有金屬光澤。

元件必須清潔和鍍錫,電子元件在保存中,由于空氣氧化的作用,元件引

腳上附有一層氧化膜,同時還有其它污垢,焊接前可用小刀刮掉氧化膜,并且

立即涂上一層焊錫(俗稱搪錫),然后再進行焊接。經(jīng)過上述處理后元件容易

焊牢,不容易出現(xiàn)虛焊現(xiàn)象。焊接的溫度和焊接的時間焊接時應(yīng)使電烙鐵的溫

度高于焊錫的溫度,但也不能太高,以烙鐵頭接觸松香剛剛冒煙為好。焊接時

間太短,焊點的溫度過低,焊點融化不充分,焊點粗糙容易造成虛焊,反之焊

接時間過長,焊錫容易流淌,并且容易使元件過熱損壞元件。焊接點的上錫數(shù)

量焊接點上的焊錫數(shù)量不能太少,太少了焊接不牢,機械強度也太差。而過多

則容易造成大量的外部與內(nèi)部的脫節(jié)。焊料應(yīng)浸泡在焊點上的所有元件引腳上,

且外形不可區(qū)分。初學(xué)者在焊接時注意烙鐵的位置和焊點,一般電烙鐵在焊接

的地方來回移動或強行擠壓,這種方法是錯誤的。正確的方法是用電烙鐵的錫

襯表面接觸焊點,這樣傳熱面積大,焊接速度快。

10

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

3.4調(diào)試

將電路板焊接好后,在檢查電路板是否能正常工作時,通常不是直接給電

路板上電,而是按照以下步驟確保每個步驟都沒有問題,然后再上電。

3.4.1系統(tǒng)的調(diào)試

嵌入式系統(tǒng)是以應(yīng)用為中心,基于計算機技術(shù),可以對軟件和硬件進行定

制,適用于應(yīng)用系統(tǒng),對功能、可靠性、成本、體積、功耗有嚴(yán)格要求的特殊

計算機系統(tǒng)。一般情況下,嵌入式微型處理器,周邊硬件設(shè)備、嵌入式操作系統(tǒng)

及嵌入式操作系統(tǒng)上運行的特定的功能,實行各種各樣的應(yīng)用軟件的4個部分

組成。嵌入式系統(tǒng)通常包括對硬件的直接控制,并且限于特定功能。

嵌入式系統(tǒng)自底向上包括四個主要部分:硬件環(huán)境、硬件抽象層、嵌入式

操作系統(tǒng)和嵌入式應(yīng)用程序。硬件抽象層將上層軟件從下層硬件中分離出來。

系統(tǒng)的底層驅(qū)動與硬件無關(guān),上層軟件開發(fā)人員不需要關(guān)心底層硬件的具體情

況,可以根據(jù)硬件抽象層提供的接口進行開發(fā)。當(dāng)使用硬件抽象層API設(shè)計操

作系統(tǒng)或應(yīng)用程序時。只要硬件抽象層api可以在底層硬件平臺上實現(xiàn),操作

系統(tǒng)和應(yīng)用程序代碼就可以移植。

3.4.2具體調(diào)試

(1)具備通關(guān)裝置和搶答控制,主持人操作后有人對主持人說

“開始”前搶答是違反規(guī)則的。

(2)具有計時功能,在60秒內(nèi)沒有回答即表示所有隊員在此情況下棄權(quán)。

(3)60秒時仍無人搶答其報警電路工作表示搶答時間耗盡并禁止搶答。

(4)要顯示響應(yīng)時間,按下按鈕減少1秒,按下“-1s”按鈕,時間LED會

顯示變化時間,調(diào)節(jié)范圍為0s~60s。

(5)當(dāng)主機按下“開始”鍵時,會有提示音,并立即進入倒計時(預(yù)設(shè)60秒

時間)。如果有選手回答問題,將會有提示音,并顯示號碼。只有第一個回答問

題的選手才是有效的。

(6)如果在倒計時過程中,主機想要停止倒計時可以隨時按下“停止”鍵,

系統(tǒng)會自動進入準(zhǔn)備狀態(tài),等待主機按下“開始”鍵進入下一次。

我遇到的問題:有時候在自己創(chuàng)建的元器件的管腳上無法實現(xiàn)連線該怎么辦?

分析回答:應(yīng)該是管腳的間距太小了。因為在ISIS中,每個元器件的管腳

都要占據(jù)一塊區(qū)域,該區(qū)域會排斥外部的走線。解決這個問題的方法是按住

11

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

“CTRL”鍵,行走線,直到線繞過狹窄的保護區(qū)。當(dāng)然,最基本的方法是編輯

元件,引腳間距比較大。

主機密鑰控制主開關(guān),按下開關(guān)然后開始,數(shù)碼管為0到60,和球員們必須

在規(guī)定的時間內(nèi)進行搶答,如果我們沒有60秒搶答搶答,如果玩家有一個規(guī)定

的時間內(nèi)搶答成功,其余選手不能再爭先回答,即選手爭先回答成功。

5系統(tǒng)軟件設(shè)計

軟件任務(wù)分析與硬件電路設(shè)計相結(jié)合,硬件完成功能,軟件完成任務(wù)。硬

件電路設(shè)計基本定稿后,就基本確定了。

5.1軟件設(shè)計環(huán)境

設(shè)計軟件在KeiluVision4環(huán)境下進行設(shè)計。KeiluVision4軟件提供了豐

富的庫功能和強大的集成開發(fā)調(diào)試工具,完整的Windows界面。另一個重要的

一點是,您只需要查看編譯后的匯編代碼就可以看到Keil的優(yōu)勢。Keil

uVision4界面如圖5-1所示。

圖5-1KeiluVision4界面

μVision和Ishell分別是針對Windows和Dos的C51集成開發(fā)環(huán)境(IDE),

可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)過程。開發(fā)人員可以使用IDE

本身或其他編輯器編輯C或匯編源文件。然后分別用C51和C51編譯器編譯目

標(biāo)文件(.obj)。對象文件可以由LIB51生成,也可以由L51連接庫文件生成絕

對對象文件(.abs)。Abs文件由OH51轉(zhuǎn)換為標(biāo)準(zhǔn)十六進制文件,用于源級調(diào)試,

12

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

調(diào)試器dScope51或tScope51。模擬器也可以直接使用它們來調(diào)試目標(biāo)板,或者

直接將它們寫入程序內(nèi)存(如EPROM)。

KeiluVision提供用于創(chuàng)建應(yīng)用程序的構(gòu)建模式和用于調(diào)試應(yīng)用程序的調(diào)

試模式你可以使用集成。的KeiluVision模擬器或直接在硬件上調(diào)試應(yīng)用程序,如Keil

ULINKUSB-JTAG系列適配器。開發(fā)人員還可以使用其他AGDI適配器或外部第三

方工具來分析應(yīng)用程序。我們可以很容易地區(qū)分菜單欄、工具欄、項目管理

區(qū)、程序代碼區(qū)和信息輸出窗口。

圖5-2燒錄程序界面

在菜單Edit-->Configuration-->Colors&Fonts里邊,可以進行字體類型、

顏色、大小的設(shè)置。本設(shè)計采用的C語言編程,所以我們在Window欄中選擇

8051:EditorCFiles,OUTPUT選擇勾選輸出HEX文件,這個文件將在接下來的

調(diào)試過程與最終系統(tǒng)運行用到。(燒錄界面見圖5-2)

5.2程序流程圖

在本設(shè)計中包括了以下八個主要的程序:主程序;非法搶答序;搶答時間

調(diào)整程序;倒計時程序;正常搶答處理程序;犯規(guī)處理程序;顯示及發(fā)聲程序。

主流程圖如圖5-3,5-4,5-5所示:

13

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

圖5-3定時器程序流程圖

圖5-4總程序流程圖

14

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

圖5-5外部中斷的程序流程圖

15

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

6產(chǎn)品使用說明

外觀介紹:搶答器包含單片機最小系統(tǒng),共設(shè)有8個選手按鍵,1個主持人

按鍵(包含確定/加/減)以及1個復(fù)位按鈕,蜂鳴器和數(shù)碼顯示器及其配套驅(qū)

動電路。

在比賽開始前主持人可以先對搶到的時間進行設(shè)置,通過主持人+-鍵調(diào)節(jié)

時間長短,按主持人鍵確定。比賽開始蜂鳴器會鳴叫一聲提示比賽開始,數(shù)碼

顯示管開始倒計時,正式進入搶答環(huán)節(jié)。在比賽進入倒計時最后5s時如果還未

有人搶答,蜂鳴器會發(fā)出鳴叫提示搶答即將結(jié)束。如果有人在搶答未開始就進

行了搶答數(shù)碼管上會顯示犯規(guī)的選手編號。除此之外,還額外設(shè)計了臨時出現(xiàn)

突發(fā)狀況時的解決方案需要暫停計時,主持人只需要按下“主持人”鍵即可實

現(xiàn)即時暫停,當(dāng)再次按下時搶答恢復(fù)。

正常搶答開始,選手通過按下對應(yīng)編號的按鈕進行搶答,數(shù)碼顯示管會顯

示最快按下按鈕選手的編號,表示搶答成功。

7設(shè)計小結(jié)

經(jīng)過近兩個星期的努力,在老師和同學(xué)的討論和幫助下,我成功地完成了八

路搶答器的設(shè)計,通過此次課程設(shè)計,我重新認識到了對書本上的知識。在搶

答器設(shè)計過程中,發(fā)現(xiàn)了很多細節(jié)性的問題,也出現(xiàn)了很多錯誤,經(jīng)過和同學(xué)

們研究、以及和指導(dǎo)老師的商討最后都得到了圓滿的解決,測試各個功能搶答、

暫停、報警等功能正常,和預(yù)期中的結(jié)果一致。感覺團隊協(xié)作能力是非常有必

要的!通過此次的搶答器的設(shè)計,讓我重新拾起了以前所學(xué)習(xí)的電路基礎(chǔ)知識

和C語言程序編程,也使我加深了對單片機及接口技術(shù)的理解和應(yīng)用,但由于

知識儲備的局限,設(shè)計產(chǎn)品中可能會存在著一些不足,我真誠的接受老師和同

學(xué)的批評和指正。

本系統(tǒng)設(shè)計特點:

(1)電路采用模塊化設(shè)計方案,硬件電路比較簡單,制作方便。

(2)模塊化硬件,調(diào)試方便,能夠?qū)蝹€模塊進行測試,互相獨立。

(3)C語言編程,可讀性強,可移植性好。

(4)得益于單片機微處理器,系統(tǒng)穩(wěn)定,高效節(jié)能。

本課題綜合了《數(shù)字電子技術(shù)》、《C語言編程設(shè)計》、《單片機原理及應(yīng)

16

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

用》等課程相關(guān)知識,完成了基于單片機一個搶答器設(shè)計,具有完善的報警系

統(tǒng),以及多參數(shù)檢測。具體體現(xiàn)在:搶答器實現(xiàn)功能多樣,可以滿足不同的使

用場景,本設(shè)計是在經(jīng)過本人深入分析比較后得出本系統(tǒng)應(yīng)用的設(shè)計方案;本

設(shè)計涉及多方面的技術(shù),綜合應(yīng)用了單片機、數(shù)字電子技術(shù)、C語言程序等相關(guān)

技術(shù);本系統(tǒng)的設(shè)計需要將單片機最小系統(tǒng)和按鈕,蜂鳴器、數(shù)碼顯示管、等

進行綜合利用,具有較高綜合性;系統(tǒng)設(shè)計中存在成本與可靠性之間的沖突,

該課題結(jié)合工程實際,設(shè)計了基于AT89C51單片機的搶答器。

我首先要感謝我的畢業(yè)設(shè)計指導(dǎo)老師。老師對我的設(shè)計方向做出了指導(dǎo)性

的意見和推薦,在論文撰寫過程中及時對我遇到的困難和疑惑給予悉心指點,

提出了許多有益的改善性意見,投入了超多的心血和精力。蔣望金老師對我的

幫忙和關(guān)懷表示誠摯的謝意!

同時,還要感謝本校移動互聯(lián)應(yīng)用技術(shù)專業(yè)的授課老師們和所有同學(xué)們,

大家在畢業(yè)設(shè)計中互相學(xué)習(xí),互相幫忙,共同度過了一段完美難忘的時光。

此外,還要感謝朋友以及同學(xué)們在論文編寫中帶給的大力支持和幫忙,給

我?guī)順O大的啟發(fā)。也要感謝參考文獻中的作者們,透過他們的研究文章,使

我對研究課題有了很好的出發(fā)點。

最后,謝謝論文評閱老師們的辛苦工作。衷心感謝我的家人、朋友,以及

同學(xué)們,正是在他們的鼓勵和支持下我才得以順利完成此次畢業(yè)設(shè)計。

17

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

附錄1電路原理圖

19移動互聯(lián)一班唐濤

附錄2PCB設(shè)計圖

19互聯(lián)

1班唐濤

18

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

附錄3作品實物照

19互聯(lián)1班唐濤

19

19互聯(lián)1班唐濤

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

附錄4程序代碼

1.#include<reg52.h>//調(diào)用單片機頭文件

2.#defineucharunsignedchar//無符號字符型宏定義變量范圍

0~255

3.#defineuintunsignedint//無符號整型宏定義變量范圍

0~65535

4.

5.//數(shù)碼管段選定義

012345678

9

6.ucharcodesmg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x

90,

7.//ABCDEF不顯示

8.0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};//斷碼

9.

10.sbitsmg_w1=P3^3;//數(shù)碼管位選定義8

11.sbitsmg_w2=P3^4;

12.sbitsmg_w3=P3^5;

13.sbitsmg_w4=P3^6;

14.sbitbeep=P3^7;//蜂鳴器IO口定義

15.

16.

17.ucharflag_start;//開始搶答標(biāo)志位

18.ucharflag_stop;//搶答違規(guī)標(biāo)志位

19.

20.uchardis_smg[4]={0xc0,0xbf,0xa4,0xb0};//數(shù)碼管顯示緩沖區(qū)

21.ucharsmg_i=4;//顯示數(shù)碼管的個位數(shù)

22.uchars,s_time=30;//時間

23.ucharflag_num;//號碼

24.ucharmenu_1;//菜單設(shè)置變量

25.bitflag_200ms=1;//200ms的標(biāo)志位

26.ucharflag_get;//搶答

27.uchari;

28.

29.

30./***************************數(shù)碼管位選函數(shù)

****************************/

31.voidsmg_we_switch(uchari)

32.{

20

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

33.switch(i)

34.{

35.case0:smg_w1=0;smg_w2=1;smg_w3=1;smg_w4

=1;break;

36.case1:smg_w1=1;smg_w2=0;smg_w3=1;smg_w4

=1;break;

37.case2:smg_w1=1;smg_w2=1;smg_w3=0;smg_w4

=1;break;

38.case3:smg_w1=1;smg_w2=1;smg_w3=1;smg_w4

=0;break;

39.}

40.}

41.

42.

43./********************************************************************

44.*名稱:delay_1ms()

45.*功能:延時1ms函數(shù)

46.*輸入:q

47.*輸出:無

48.**********************************************************************

*/

49.voiddelay_1ms(uintq)//延時1ms函數(shù)

50.{

51.uinti,j;

52.for(i=0;i<q;i++)

53.for(j=0;j<120;j++);

54.}

55.

56.

57./********************獨立按鍵程序*****************/

58.ucharkey_can;//按鍵值

59.voidkey()//獨立按鍵程序

60.{

61.staticucharkey_new;

62.key_can=20;

63.P2|=0xff;

64.if((P2&0xff)!=0xff)//按鍵按下

65.{

66.delay_1ms(1);//按鍵消抖動

67.if(((P2&0xff)!=0xff)&&(key_new==1))

68.{//確認是按鍵按下

21

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

69.key_new=0;

70.switch(P2&0xff)

71.{

72.case0xfe:key_can=1;break;//得到按鍵值

73.case0xfd:key_can=2;break;//得到按鍵值

74.case0xfb:key_can=3;break;//得到按鍵值

75.case0xf7:key_can=4;break;//得到按鍵值

76.case0xef:key_can=5;break;//得到按鍵值

77.case0xdf:key_can=6;break;//得到按鍵值

78.case0xbf:key_can=7;break;//得到按鍵值

79.case0x7f:key_can=8;break;//得到按鍵值

80.}

81.//dis_smg[0]=smg_du[key_can];//顯示按鍵值

82.}

83.}

84.else

85.key_new=1;

86.}

87.

88.

89./********************獨立按鍵程序*****************/

90.ucharkey_scan;//按鍵值

91.voidkey_1()//主持人獨立按鍵程序

92.{

93.staticucharkey_new;

94.key_scan=20;

95.P3|=0x03;

96.if((P3&0x03)!=0x03)//按鍵按下

97.{

98.delay_1ms(1);//按鍵消抖動

99.if(((P3&0x03)!=0x03)&&(key_new==1))

100.{//確認是按鍵按下

101.key_new=0;

102.switch(P3&0x03)

103.{

104.case0x01:key_scan=9;break;//得到按鍵值

105.case0x02:key_scan=10;break;//得到按鍵值

106.}

107.//dis_smg[0]=smg_du[key_scan];//顯示按鍵值

108.}

109.}

22

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

110.else

111.key_new=1;

112.}

113.

114./******************按鍵處理函數(shù)*****************/

115.voidkey_with()//按鍵處理函數(shù)

116.{

117.if(key_scan==10)//設(shè)置按鍵

118.{

119.menu_1++;

120.if(menu_1==1)

121.{

122.dis_smg[0]=smg_du[s_time%10];//顯示設(shè)置值

123.dis_smg[1]=smg_du[s_time/10%10];//顯示設(shè)置值

124.dis_smg[2]=0xbf;

125.dis_smg[3]=smg_du[10];//顯示A

126.}

127.if(menu_1>1)

128.menu_1=0;

129.}

130.if(key_scan==9)//開始搶答鍵

131.{

132.flag_start=1;

133.for(i=0;i<2;i++)

134.{

135.beep=~beep;

136.delay_1ms(20);

137.}

138.}

139.if(key_can<9)

140.if(menu_1==0)

141.{

142.if(flag_get==0)//沒有搶答

143.{

144.if(key_can==1)

145.flag_num=1;//1號選手

146.if(key_can==2)

147.flag_num=2;//2號選手

148.if(key_can==3)

149.flag_num=3;//3號選手

150.if(key_can==4)

23

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

151.flag_num=4;//4號選手

152.if(key_can==5)

153.flag_num=5;//5號選手

154.if(key_can==6)

155.flag_num=6;//6號選手

156.if(key_can==7)

157.flag_num=7;//7號選手

158.if(key_can==8)

159.flag_num=8;//8號選手

160.}

161.if(flag_start==1)//開始搶答

162.{

163.flag_stop=0;

164.flag_get=1;//已經(jīng)搶答

165.}

166.else

167.{

168.flag_stop=1;//違規(guī)了

169.}

170.}

171.if(menu_1==1)

172.{

173.if(key_can==8)//加鍵

174.{

175.s_time++;//設(shè)置倒計時加1

176.if(s_time>=99)

177.s_time=99;

178.dis_smg[0]=smg_du[s_time%10];//顯示設(shè)置值

179.dis_smg[1]=smg_du[s_time/10%10];//顯示設(shè)置值

180.}

181.if(key_can==7)

182.{

183.if(s_time>3)

184.s_time--;//設(shè)置倒計時減1

185.dis_smg[0]=smg_du[s_time%10];//顯示設(shè)置值

186.dis_smg[1]=smg_du[s_time/10%10];//顯示設(shè)置值

187.}

188.}

189.}

190.

191./******************倒計時處理*****************/

24

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

192.voiddjs_dis()//倒計時處理

193.{

194.staticucharvalue;

195.if((flag_start==1)&&(flag_stop==0))

196.{

197.value++;

198.if(value>=5)//1s

199.{

2

溫馨提示

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

最新文檔

評論

0/150

提交評論