實(shí)訓(xùn)題目:基于單片機(jī)的搶答器的設(shè)計(jì)
1 系統(tǒng)設(shè)計(jì)1.1 設(shè)計(jì)要求
1.1.1設(shè)計(jì)任務(wù)
基于單片機(jī)的搶答器的設(shè)計(jì)
1.1.2性能指標(biāo)要求
① 需要自己設(shè)計(jì)電路并焊接電路板。
② 基本要求:有一個(gè)主持人控制開關(guān)和6路搶答按扭,當(dāng)主持人允許搶答時(shí)才能進(jìn)行搶答操作,并用一個(gè)數(shù)碼管顯示搶答選手的號(hào)碼,同時(shí)其他選手不能再搶答。
③ 當(dāng)主持人允許搶答后倒計(jì)時(shí)5秒時(shí)間,在這5秒內(nèi)搶答有效,過后就不能進(jìn)行搶答了。
④ 電路上要加個(gè)蜂鳴器的電路,當(dāng)有選手搶答時(shí)蜂鳴器響一下。
⑤ 當(dāng)有選手搶答后,進(jìn)行倒計(jì)時(shí)20秒作為選手回答問題時(shí)間,用兩個(gè)數(shù)碼管顯示,倒計(jì)時(shí)時(shí)間到時(shí)有聲光提示。
⑥ 畫電路板時(shí)要增加下載接口,方便調(diào)試程序。
⑦ 擴(kuò)展功能(選做):
用按鍵可設(shè)置倒計(jì)時(shí)的時(shí)間,范圍在5秒到30秒之間。
1.2 設(shè)計(jì)思路及設(shè)計(jì)框圖
1.2.1設(shè)計(jì)思路
設(shè)計(jì)思路如下:
電路通電后,LED閃爍三次,表示電路各功能正常。搶答之前必須由主持人控制,所以在芯片的P1^0腳處接入開始按鍵。搶答時(shí)必須有選手搶答電路,因?yàn)轭}目要求6位選手搶答,所以分別在P1^1~P1^6設(shè)置了從1~6號(hào)選手的搶答按鍵。當(dāng)主持人按下開始搶答鍵時(shí),6位選手連接的單片機(jī)從P1^1~P1^6的任意1位選手都可以進(jìn)行搶答,搶答時(shí)間為5s。主持人按下開始搶答按鍵以后,會(huì)進(jìn)入5s倒計(jì)時(shí)搶答時(shí)間,如若在5s之內(nèi),有選手搶答成功,則數(shù)碼管顯示搶答選手的號(hào)數(shù),搶答成功后燈光提示0.5秒,系統(tǒng)開始自動(dòng)設(shè)定回答問題時(shí)間為20s,倒計(jì)結(jié)束時(shí)LED燈亮,并且蜂鳴器響1s,1秒后重新等待主持人控制。
拓展功能利用三個(gè)按鍵來實(shí)現(xiàn)控制回答問題的時(shí)間的增減,有1號(hào)和6號(hào)選手按鍵同時(shí)按下開啟回答時(shí)間調(diào)整功能,時(shí)間加計(jì)數(shù)的設(shè)置控制鍵為P1^1,每當(dāng)按鍵按下并松開,則倒計(jì)時(shí)加一。時(shí)間減計(jì)數(shù)的設(shè)置控制按鍵為P1^6,每當(dāng)按鍵按下并松開,則倒計(jì)時(shí)減一,主持人按鍵P1^0按下來確定回答問題的時(shí)間,而且加減計(jì)時(shí)時(shí)間的范圍在5s~30s內(nèi),主持人確定時(shí)間后會(huì)有1s的燈光提示,表示調(diào)整完成。P0口接的是一個(gè)四位一體共陰數(shù)碼管,P2.0~P2.3作為數(shù)碼管的位選。三極管8050在電路當(dāng)中起了開關(guān)的作用,當(dāng)控制三極管開關(guān)狀態(tài)的管腳P3^3輸出高電平時(shí),蜂鳴器響,反之蜂鳴器停。

1.2.2總體設(shè)計(jì)框圖
2 各個(gè)模塊程序的設(shè)計(jì)2.1 單片機(jī)
STC89C52RC是以51為內(nèi)核的8位單片機(jī),芯片總共有40個(gè)引腳。
P0~P3:總共占32個(gè)引腳,其中P0是低8位地址線/數(shù)據(jù)線的端口,P1是數(shù)據(jù)線端口,P2是高8位地址線/數(shù)據(jù)線端口,P3是數(shù)據(jù)線/第二功能線端口。P0口內(nèi)部沒有上拉電阻,所以在P0用作輸出時(shí)必須外加上拉電阻。
EA~ /VPP:片外程序ROM有效編程電源,作EA~用時(shí)為輸出信號(hào),EA~=0片外程序ROM有效,EA~=1片內(nèi)ROM有效,作VPP用時(shí)為電源輸入。
XTAL1和XTAL2:外部時(shí)鐘震蕩輸入端
RST/VPD:復(fù)位/備用電源接入。正常工作時(shí)作復(fù)位信號(hào)引入,當(dāng)VCC失電時(shí),此腳接入備用電源,使片內(nèi)RAM中的數(shù)據(jù)處于底功能保護(hù)。
2.2 最小系統(tǒng)
這兩部分電路分別為晶振電路和復(fù)位電路,這兩塊電路與單片機(jī)的電源電路共同組成了單片機(jī)的最小系統(tǒng)。
晶振電路由晶振和兩個(gè)瓷片電容組成,本實(shí)訓(xùn)采用晶振為12MHZ,瓷片電容的容量為22PF,瓷片電容是沒有正負(fù)極之分的。
本次實(shí)訓(xùn)采用的復(fù)位電路是手動(dòng)復(fù)位方式,當(dāng)復(fù)位鍵按下,RST由低電平變?yōu)楦唠娖剑琑ST引腳獲得2個(gè)機(jī)器周期的脈沖后,實(shí)現(xiàn)手動(dòng)硬件復(fù)位,使單片機(jī)重新開始執(zhí)行程序。
2.3 按鍵模塊電路
按鍵一端接地,一端接單片機(jī)I/O口。當(dāng)按鍵按下時(shí),電平狀態(tài)因一端接地被拉低。
2.4 數(shù)碼管顯示模塊電路
本次實(shí)訓(xùn)用的是四位共陰數(shù)碼管,A,B,C,D,E,F,G,DP控制段選;1,2,3,4控制位選。
2.5 蜂鳴器與LED燈模塊電路
在本次實(shí)訓(xùn)中,蜂鳴器電路材料有8050(NPN)三極管,一個(gè)限流電阻,一個(gè)蜂鳴器,此時(shí)電路中的三極管充當(dāng)開關(guān)作用,當(dāng)P3^3=1時(shí)三極管導(dǎo)通,則蜂鳴器響,反之不響。
LED負(fù)極端通過限流電阻接地,正極接入I/O口,當(dāng)P3^4=1時(shí),LED亮,反之滅。
3 調(diào)試過程焊完板子后用下載線接通電源,觀察電源指示燈是否正常,指示燈閃爍后停止工作,斷電檢查電路,發(fā)現(xiàn)有一接地端未聯(lián)通,接通后發(fā)現(xiàn)電源指示燈不在工作。
軟件燒錄時(shí)一直在檢測(cè)單片機(jī),在嘗試斷電重連,讀寫反接后燒錄成功。
在驗(yàn)證功能期間發(fā)現(xiàn)“選手回答問題結(jié)束”后,蜂鳴器和LED一直處在開啟狀態(tài),需要復(fù)位按鍵復(fù)位后才能使用;電源指示燈不工作(可能燒壞了),無法判斷電路是否正常;修改代碼將聲光提醒改為1s,1s后自動(dòng)恢復(fù)等待主持人操作;通電后LED閃爍三次,閃爍結(jié)束后等待主持人操作。
在硬件不改變的前提增加擴(kuò)展功能,使用1號(hào)和6號(hào)選手按鍵同時(shí)按下開啟回答時(shí)間調(diào)整功能,時(shí)間加計(jì)數(shù)的設(shè)置控制鍵為P1^1,每當(dāng)按鍵按下并松開,則倒計(jì)時(shí)減1。時(shí)間減計(jì)數(shù)的設(shè)置控制按鍵為P1^6,每當(dāng)按鍵按下并松開,則倒計(jì)時(shí)加1,或者一直按著加(減)按鍵,倒計(jì)時(shí)會(huì)每個(gè)0.5s實(shí)現(xiàn)自加(減)1,主持人按鍵P1^0按下來確定回答問題的時(shí)間,加減計(jì)時(shí)時(shí)間的調(diào)整范圍在5s~30s內(nèi),主持人確定時(shí)間后會(huì)有1s的燈光提示,表示調(diào)整完成。
4 功能測(cè)試4.1 測(cè)試儀器與設(shè)備
電腦 :一臺(tái)
萬用表 :一臺(tái)
燒錄器 :一個(gè)
4.2 性能指標(biāo)測(cè)試
1.總共有六路搶答,在主持人允許搶答才可以開始搶答,倒計(jì)時(shí)5秒。
2.一個(gè)搶答后,其他選手不能再搶答,可以設(shè)定時(shí)間來限制回答問題的時(shí)間。
3.當(dāng)有選手開始搶答時(shí),蜂鳴器響一聲。
4.選手回答時(shí)間結(jié)束時(shí)有聲光顯示
5.可以通過按鍵來設(shè)置回答問題時(shí)間(5-30秒)。
4.3 誤差分析
有時(shí)候按鍵不防抖或無反應(yīng)
5 實(shí)訓(xùn)心得體會(huì)經(jīng)過這一周的單片機(jī)實(shí)訓(xùn),結(jié)合之前的單片機(jī)理論課和實(shí)驗(yàn)課,各個(gè)書本與老師的答疑解惑下,我終于完成了本次實(shí)訓(xùn),在單片機(jī)電路連接中只需要把單片機(jī)最小系統(tǒng)做出來然后把IO口接各個(gè)外圍器件,寫好程序進(jìn)行操控就可以了,但是也非常考察人的細(xì)心和焊功是否牢固。
在這學(xué)習(xí)的過程中,我通過網(wǎng)上查了許多單片機(jī)的資料,讓我明白了51單片機(jī)的I/0的作用,由于P0口與P1\P2\P3口不同,因?yàn)槠鋬?nèi)部沒有上拉電阻,如果不加上拉電阻,會(huì)呈現(xiàn)高阻狀態(tài),所以當(dāng)我們需要用P0口給數(shù)碼管進(jìn)行段選時(shí),P0口必須外加上拉電阻,通常為10K的排阻。通過分析網(wǎng)上列出的幾種不同的蜂鳴器控制電路,我懂得了本次實(shí)訓(xùn)蜂鳴器控制電路中的三極管在電路中充當(dāng)著開關(guān)作用,電阻充當(dāng)著限流作用,保護(hù)電路。51單片機(jī)I/O口充當(dāng)控制作用。
在此,我感謝指導(dǎo)我的老師們,通過本次實(shí)訓(xùn)學(xué)習(xí)到的知識(shí)是從理論課本上獲取不到的,這些調(diào)試電路的經(jīng)驗(yàn),調(diào)試代碼的經(jīng)驗(yàn),51單片機(jī)的原理,統(tǒng)統(tǒng)需要實(shí)踐的積累。在今后遇到使用單片機(jī)所做的項(xiàng)目,我都會(huì)通過這次的實(shí)訓(xùn)的經(jīng)驗(yàn)來擬定好一個(gè)方案,并能夠設(shè)計(jì)基礎(chǔ)電路,在軟件方面還需多加練習(xí),多寫程序,吸收別人的思維方式,腦海中要構(gòu)造好流程圖,流程圖做好,每一步需要怎么寫怎么做就一目了然了。
附錄1:仿真圖
附錄2:程序