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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

湖南商務職業(yè)技術學院畢業(yè)設計

目錄

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

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

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

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

2.3設計方案.................................................................................................2

3產品硬件設計....................................................................................................3

3.1系統方框圖............................................................................................3

3.2主要功能電路的設計............................................................................4

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

3.4調試.......................................................................................................11

5系統軟件設計..................................................................................................12

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

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

6產品使用說明..................................................................................................16

7設計小結..........................................................................................................16

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

附錄2PCB設計圖.............................................................................................18

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

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

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

湖南商務職業(yè)技術學院畢業(yè)設計

基于單片機控制的搶答器設計與制作

1項目簡介

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

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

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

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

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

有選手搶答,則倒計時停止,數碼管分別顯示搶答選手的編號和當前時間,并

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

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

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

根據研究和設計驗證的結果,采用單圖技術設計的應答器與目前市面上銷

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

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

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

成了8路響應器的設計,根據電路設計進行了焊接,并制作了相應的實物進行

演示,得到了預期的結果。

2核心元器件選擇

2.1主控芯片

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

高性能CMOS8位單片機,片內含4kbytes的可反復擦寫的只讀程序存儲器

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

高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片內置通用8

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

供許多高性價比的應用場合,可靈活應用于各種控制領域。AT89C51具體參數及

引腳如圖2-1所示。

1

湖南商務職業(yè)技術學院畢業(yè)設計

圖2-1:AT89C51芯片參數及引腳

AT89C51提供以下標準功能:4k字節(jié)Flash閃速存儲器,128字節(jié)內部RA

M,32個I/O口線,兩個16位定時/計數器,一個5向量兩級中斷結構,

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

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

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

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

件復位。

2.2顯示器件

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

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

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

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

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

功能強大,但顯示內容太大,造成顯示空間的浪費,并且LCD的成本很高。結

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

示器的選擇更加合理。

2.3設計方案

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

2

湖南商務職業(yè)技術學院畢業(yè)設計

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

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

始之前,主持人可以先設置搶奪時間,當然,系統還會預置時間設置。當比賽

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

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

3產品硬件設計

為使硬件電路設計盡可能合理,應注意以下幾方面:

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

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

總和。

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

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

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

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

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

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

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

口,即使當時空著,該用的時候也能用。

3.1系統方框圖

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

設計產品的系統方框圖如圖3-1所示。

3

湖南商務職業(yè)技術學院畢業(yè)設計

圖3-1系統方框圖

3.2主要功能電路

3.2.1時鐘頻率電路

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

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

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

圖3-2外部震蕩源電路

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

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

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

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

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

4

湖南商務職業(yè)技術學院畢業(yè)設計

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

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

3.2.3復位電路

復位電路由電容串聯電阻構成,由圖并結合"電容電壓不能突變"的性質,可

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

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

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

3-3)

圖3-3復位電路

圖3-4復位原理分析圖

上電復位是利用電容充電來實現的,即上電瞬間RST端的電位與VCC相同,

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

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

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

5

湖南商務職業(yè)技術學院畢業(yè)設計

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

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

分析見圖5)

上電按鍵復位2(b)所示。當按下復位按鍵時,RST端產生高電平,使單

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

3.2.4顯示電路

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

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

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

極管,用于顯示小數點。結構圖如圖6所示。

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

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

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

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

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

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

會使數碼管過亮導致損壞,需接一個100~300Ω的限流電阻。

圖3-5顯示電路

3.2.5鍵盤掃描電路

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

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

在單片機應用系統中,除復位按鈕具有特殊的復位電路和特定的復位功能

6

湖南商務職業(yè)技術學院畢業(yè)設計

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

字鍵時,計算機應用系統應完成按鍵設定的功能。關鍵信息的輸入是一個與軟

件結構密切相關的過程。

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

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

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

圖3-6鍵盤掃描電路

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

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

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

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

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

作鍵盤是合理的。

3.2.6功放電路

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

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

7

湖南商務職業(yè)技術學院畢業(yè)設計

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

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

圈),并產生磁場反應。而通過線圈的電流是交變電流,它的正負極是不斷變

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

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

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

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

3.2.7復位電路

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

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

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

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

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

變差。左側電路為高電平有效復位,右側電路為低電平Sm,手動復位開關Ch可

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

8

湖南商務職業(yè)技術學院畢業(yè)設計

圖3-8復位電路圖

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

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

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

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

圖,當VCC低于Vt(Vz+0.7V)時電路令系統復位。

3.3焊接

(1)焊前準備:

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

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

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

1、準備施焊:左手拿焊絲,右手拿烙鐵。烙鐵頭應保持清潔,無焊渣等氧

化物,表面應涂一層焊料。

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

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

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

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

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

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

下烙鐵,即可完成焊接。

9

湖南商務職業(yè)技術學院畢業(yè)設計

(3)注意事項

A.首先檢測各元件

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

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

3.3.1對PCB板進行排版及連線

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

剝下膠布看內部配線的結構,有不知道內部配線的錯誤電路的情況。當然,最

好的方法是使用測試電路來回插孔,驗證其內部構造。

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

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

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

3.3.2焊接的技巧和注意事項

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

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

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

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

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

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

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

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

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

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

焊牢,不容易出現虛焊現象。焊接的溫度和焊接的時間焊接時應使電烙鐵的溫

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

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

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

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

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

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

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

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

10

湖南商務職業(yè)技術學院畢業(yè)設計

3.4調試

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

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

3.4.1系統的調試

嵌入式系統是以應用為中心,基于計算機技術,可以對軟件和硬件進行定

制,適用于應用系統,對功能、可靠性、成本、體積、功耗有嚴格要求的特殊

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

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

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

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

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

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

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

作系統或應用程序時。只要硬件抽象層api可以在底層硬件平臺上實現,操作

系統和應用程序代碼就可以移植。

3.4.2具體調試

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

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

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

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

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

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

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

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

題的選手才是有效的。

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

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

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

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

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

11

湖南商務職業(yè)技術學院畢業(yè)設計

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

元件,引腳間距比較大。

主機密鑰控制主開關,按下開關然后開始,數碼管為0到60,和球員們必須

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

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

5系統軟件設計

軟件任務分析與硬件電路設計相結合,硬件完成功能,軟件完成任務。硬

件電路設計基本定稿后,就基本確定了。

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

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

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

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

uVision4界面如圖5-1所示。

圖5-1KeiluVision4界面

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

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

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

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

對對象文件(.abs)。Abs文件由OH51轉換為標準十六進制文件,用于源級調試,

12

湖南商務職業(yè)技術學院畢業(yè)設計

調試器dScope51或tScope51。模擬器也可以直接使用它們來調試目標板,或者

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

KeiluVision提供用于創(chuàng)建應用程序的構建模式和用于調試應用程序的調

試模式你可以使用集成。的KeiluVision模擬器或直接在硬件上調試應用程序,如Keil

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

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

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

圖5-2燒錄程序界面

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

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

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

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

5.2程序流程圖

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

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

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

13

湖南商務職業(yè)技術學院畢業(yè)設計

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

圖5-4總程序流程圖

14

湖南商務職業(yè)技術學院畢業(yè)設計

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

15

湖南商務職業(yè)技術學院畢業(yè)設計

6產品使用說明

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

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

動電路。

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

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

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

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

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

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

現即時暫停,當再次按下時搶答恢復。

正常搶答開始,選手通過按下對應編號的按鈕進行搶答,數碼顯示管會顯

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

7設計小結

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

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

答器設計過程中,發(fā)現了很多細節(jié)性的問題,也出現了很多錯誤,經過和同學

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

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

要的!通過此次的搶答器的設計,讓我重新拾起了以前所學習的電路基礎知識

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

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

學的批評和指正。

本系統設計特點:

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

(2)模塊化硬件,調試方便,能夠對單個模塊進行測試,互相獨立。

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

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

本課題綜合了《數字電子技術》、《C語言編程設計》、《單片機原理及應

16

湖南商務職業(yè)技術學院畢業(yè)設計

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

統,以及多參數檢測。具體體現在:搶答器實現功能多樣,可以滿足不同的使

用場景,本設計是在經過本人深入分析比較后得出本系統應用的設計方案;本

設計涉及多方面的技術,綜合應用了單片機、數字電子技術、C語言程序等相關

技術;本系統的設計需要將單片機最小系統和按鈕,蜂鳴器、數碼顯示管、等

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

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

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

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

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

幫忙和關懷表示誠摯的謝意!

同時,還要感謝本校移動互聯應用技術專業(yè)的授課老師們和所有同學們,

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

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

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

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

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

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

17

湖南商務職業(yè)技術學院畢業(yè)設計

附錄1電路原理圖

19移動互聯一班唐濤

附錄2PCB設計圖

19互聯

1班唐濤

18

湖南商務職業(yè)技術學院畢業(yè)設計

附錄3作品實物照

19互聯1班唐濤

19

19互聯1班唐濤

湖南商務職業(yè)技術學院畢業(yè)設計

附錄4程序代碼

1.#include<reg52.h>//調用單片機頭文件

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

0~255

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

0~65535

4.

5.//數碼管段選定義

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;//數碼管位選定義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;//開始搶答標志位

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

19.

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

21.ucharsmg_i=4;//顯示數碼管的個位數

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

23.ucharflag_num;//號碼

24.ucharmenu_1;//菜單設置變量

25.bitflag_200ms=1;//200ms的標志位

26.ucharflag_get;//搶答

27.uchari;

28.

29.

30./***************************數碼管位選函數

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

31.voidsmg_we_switch(uchari)

32.{

20

湖南商務職業(yè)技術學院畢業(yè)設計

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函數

46.*輸入:q

47.*輸出:無

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

*/

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

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

湖南商務職業(yè)技術學院畢業(yè)設計

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

湖南商務職業(yè)技術學院畢業(yè)設計

110.else

111.key_new=1;

112.}

113.

114./******************按鍵處理函數*****************/

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

116.{

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

118.{

119.menu_1++;

120.if(menu_1==1)

121.{

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

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

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

湖南商務職業(yè)技術學院畢業(yè)設計

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;//已經搶答

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++;//設置倒計時加1

176.if(s_time>=99)

177.s_time=99;

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

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

180.}

181.if(key_can==7)

182.{

183.if(s_time>3)

184.s_time--;//設置倒計時減1

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

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

187.}

188.}

189.}

190.

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

24

湖南商務職業(yè)技術學院畢業(yè)設計

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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論