畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)AT89C51的數(shù)字搶答器設(shè)計(jì)_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)AT89C51的數(shù)字搶答器設(shè)計(jì)_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)AT89C51的數(shù)字搶答器設(shè)計(jì)_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)AT89C51的數(shù)字搶答器設(shè)計(jì)_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)AT89C51的數(shù)字搶答器設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、畢業(yè)設(shè)計(jì)說(shuō)明書基于單片機(jī)at89c51的數(shù)字搶答器設(shè)計(jì)專業(yè)電氣工程及其自動(dòng)化學(xué)生姓名班級(jí)學(xué)號(hào)指導(dǎo)教師完成日期2010年6月5日基于單片機(jī)at89c51的數(shù)字搶答器設(shè)計(jì)摘 要:搶答器作為一種電子產(chǎn)品已廣泛應(yīng)用于各種智力和知識(shí)競(jìng)賽場(chǎng)合。一個(gè)八路數(shù)字搶答器的設(shè)計(jì)需要考慮到可更改回答及搶答時(shí)間功能,利用at89c51單片機(jī)及外圍接口實(shí)現(xiàn)的搶答系統(tǒng),利用單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,將軟硬件有機(jī)地結(jié)合起來(lái),使得系統(tǒng)能夠正確地進(jìn)行計(jì)時(shí),同時(shí)使數(shù)碼管能夠正確地顯示時(shí)間。用開關(guān)做鍵盤輸出,揚(yáng)聲器發(fā)聲提示。同時(shí)系統(tǒng)能夠?qū)崿F(xiàn)在搶答中只有開始后搶答才有效,如果在開始搶答前搶答為無(wú)效;搶答限定時(shí)間和回答問(wèn)題

2、的時(shí)間可在1-99s設(shè)定,可以顯示是哪位選手有效搶答和無(wú)效搶答,正確按鍵后有音樂(lè)提示,搶答時(shí)間和回答問(wèn)題時(shí)間倒記時(shí)顯示,滿時(shí)后系統(tǒng)計(jì)時(shí)自動(dòng)復(fù)位及主控強(qiáng)制復(fù)位,按鍵鎖定,在有效狀態(tài)下,按鍵無(wú)效非法?;趩纹瑱C(jī)at89c51的數(shù)字搶答器設(shè)計(jì), 首先完成總體方案的論證制定,繪制控制臺(tái)的總體框圖,然后分析系統(tǒng)的工作原理,在此基礎(chǔ)上設(shè)計(jì)出各部分單元電路原理圖,分析其工作原理,進(jìn)一步完成對(duì)系統(tǒng)電路的設(shè)計(jì)。在對(duì)系統(tǒng)工作原理充分研究的基礎(chǔ)上,選擇合適的元件型號(hào)和參數(shù),再用protel繪圖軟件畫出電路原理圖。關(guān)鍵詞:at89c51; led數(shù)碼管; 搶答器; 計(jì)時(shí)器鹽城工學(xué)院本科生畢業(yè)設(shè)計(jì)說(shuō)明書( 2010)e

3、ight-way first answer device based on at89c51abstract: responder as an electronic products have been widely used in intelligence and knowledge competitions occasions. an eight-way digital answering device designed to take into account to answer and answer in time to change the function, using at89c5

4、1 microcontroller and external interface of the answer system, using single chip timer / counter the principle of timing and counting, will organically combine hardware and software , allows the system to correctly time, while the digital control to correctly display the time. switching to do with t

5、he keyboard output, speaker voice prompts. at the same time the system can be achieved only after the beginning of the responder responder only effective if started before the responder responder to be invalid; answer in a limited time and the time to answer questions can be set in 1-99s, which play

6、ers can display is effective and ineffective responder responder , the correct button prompt after the music, answer in time and answer the questions of time countdown display, the system time after the expiration of the master force automatic reset and reset, the keys are locked in an effective sta

7、te, the button is not illegal.at89c51 microcontroller based digital answering device design, the first complete demonstration of the overall program development, rendering the overall block diagram of the console, and then analyze the working principle, based on the design of this unit of each part

8、of the circuit schematic, and its working principle, further complete the system circuit design. the system works in full on the basis, select the appropriate component models and parameters, and then draw protel schematic drawing software. key words: at89c51; led digital tubes; the first answer dev

9、ice; time37目 錄1. 概 述11.1 課題的相關(guān)背景11.2 選題的目的和意義11.3 課題研究的內(nèi)容11.4 課題的優(yōu)點(diǎn)及組成12. 方案論證23. 搶答器的系統(tǒng)概述33.1 國(guó)內(nèi)外的研究現(xiàn)狀33.2 搶答器的簡(jiǎn)介33.3 系統(tǒng)需求分析43.4 搶答器運(yùn)行的流程圖43.5 搶答器的工作過(guò)程63.6 at89c51的功能及簡(jiǎn)介63.7 at89c51特殊功能寄存器94. 硬件設(shè)計(jì)模塊104.1 硬件電路的設(shè)計(jì)104.2 穩(wěn)壓電源電路設(shè)計(jì)114.3 時(shí)鐘頻率電路的設(shè)計(jì)124.4 復(fù)位電路的設(shè)計(jì)124.5 顯示電路的設(shè)計(jì)134.6 鍵盤掃描電路的設(shè)計(jì)144.7 發(fā)聲電路的設(shè)計(jì)164.8

10、 系統(tǒng)復(fù)位165. 軟件設(shè)計(jì)模塊195.1 主程序系統(tǒng)結(jié)構(gòu)圖195.2 軟件任務(wù)分析195.3 程序流程圖205.4 proteus軟件仿真系列組圖216. 結(jié)束語(yǔ)23參考文獻(xiàn)24致 謝25附 錄26附錄1:八路搶答器程序清單26附錄2:設(shè)計(jì)圖紙37附錄3:元器件目錄表38基于單片機(jī)at89c51的數(shù)字搶答器設(shè)計(jì)1. 概 述1.1 課題的相關(guān)背景隨著計(jì)算機(jī)技術(shù)的發(fā)展和在控制系統(tǒng)中的廣泛應(yīng)用,以及設(shè)備向小型化、智能化發(fā)展,作為高新技術(shù)之一的單片機(jī)以其體積小、功能強(qiáng)、價(jià)格低廉、使用靈活等優(yōu)勢(shì),顯示出了很強(qiáng)的生命力。進(jìn)入21世紀(jì)以來(lái),開發(fā)推出單片機(jī)的公司很多,各種高性能單片機(jī)芯片市場(chǎng)也異?;钴S,新技

11、術(shù)的不斷采用,更加使單片機(jī)的種類、性能以及應(yīng)用領(lǐng)域不斷擴(kuò)大和提高。因其功耗低,超高型,低成本,功能完整,在國(guó)內(nèi)越來(lái)越受到用戶的重視和廣泛使用。1.2 選題的目的和意義通過(guò)這次設(shè)計(jì),掌握51單片機(jī)的原理,了解簡(jiǎn)單多功能搶答器組成原理,初步掌握多功能搶答器的調(diào)整及測(cè)試方法,提高獨(dú)立思考能力和排除故障的能力。同時(shí)通過(guò)本課題設(shè)計(jì)與調(diào)試,提高自己的動(dòng)手能力,鞏固已學(xué)的理論知識(shí),建立單片機(jī)理論和實(shí)踐的結(jié)合,了解多功能搶答器各單元電路之間的關(guān)系及相互影響,從而能正確設(shè)計(jì)、計(jì)算定時(shí)計(jì)數(shù)的各個(gè)單元電路。初步掌握多功能搶答器的調(diào)整及測(cè)試方法。無(wú)論是軍隊(duì)還是電視節(jié)目中,都可能會(huì)舉辦各種各樣的智力競(jìng)賽,都會(huì)用到搶答器

12、。如果要是讓搶答者用舉手等方法,主持人很容易誤判,會(huì)造成搶答的不公平,比賽中為了準(zhǔn)確、公正、直觀地判斷出第一搶答者,所設(shè)計(jì)的搶答器通常由數(shù)碼顯示、燈光、音響等多種手段指示出第一搶答者。為了使這種不公平不發(fā)生,只有靠電子產(chǎn)品的高準(zhǔn)確性來(lái)保障搶答的公平性。1.3 課題研究的內(nèi)容系統(tǒng)采用模塊化設(shè)計(jì)智能搶答器,在搶答比賽中廣泛應(yīng)用,各組分別有一個(gè)搶答按鈕。主持人有開始和結(jié)束、復(fù)位鍵。在后臺(tái)主持人可以修改,搶答時(shí)間和選手回答問(wèn)題的時(shí)間設(shè)置,原始狀態(tài)下?lián)尨饡r(shí)間為30s,回答問(wèn)題時(shí)間為30s。通過(guò)加鍵和減鍵修改上述時(shí)間,改完后結(jié)束鍵確定。新時(shí)間開始有效,主持人按鍵開始后,選手開始搶答為有效,數(shù)碼顯示屏顯示搶

13、答時(shí)間倒計(jì)時(shí)和選手號(hào),在最后五秒揚(yáng)聲器發(fā)生提示。如果主持人沒(méi)有按下開始鍵而選手就搶答視為犯規(guī),數(shù)碼顯示屏顯示犯規(guī)者的代號(hào),揚(yáng)聲器持續(xù)發(fā)生。主持人可按鍵結(jié)束,新一輪搶答開始。1.4 課題的優(yōu)點(diǎn)及組成在知識(shí)比賽中,特別是做搶答題目的時(shí)候,在搶答過(guò)程中,為了知道哪一組或哪一位選手先答題,必須要設(shè)計(jì)一個(gè)系統(tǒng)來(lái)完成這個(gè)任務(wù)。如果在搶答中,靠視覺(jué)是很難判斷出哪組先答題。利用單片機(jī)系統(tǒng)來(lái)設(shè)計(jì)搶答器,使以上問(wèn)題得以解決,即使兩組的搶答時(shí)間相差幾微秒,也可分辨出哪組優(yōu)先答題。課題中主要介紹了單片機(jī)搶答器設(shè)計(jì)及工作原理,以及它的實(shí)際用途。本系統(tǒng)采用at89c51單片機(jī)作為核心??刂葡到y(tǒng)的四個(gè)模塊分別為:存儲(chǔ)模塊、

14、顯示模塊、聲音模塊、搶答開關(guān)模塊。該搶答器系統(tǒng)通過(guò)八個(gè)個(gè)按鍵輸入搶答信號(hào);利用存儲(chǔ)程序來(lái)完成軟件的設(shè)計(jì);利用一個(gè)4位七段共陰數(shù)碼管來(lái)完成顯示功能。工作時(shí),用按鍵通過(guò)開關(guān)電路輸入各路的搶答信號(hào),經(jīng)單片機(jī)的處理,輸出控制信號(hào),控制4位七段共陰數(shù)碼管和喇叭工作。在數(shù)碼管上顯示哪一組先答題,從而實(shí)現(xiàn)整個(gè)搶答過(guò)程。2. 方案論證方案一: 八路搶答器可以利用硬件電子元器件實(shí)現(xiàn),系統(tǒng)各部分采用中小規(guī)模集成數(shù)字電路,用機(jī)械開關(guān)按鈕作為控制開關(guān),完成搶答輸入信號(hào)的觸發(fā)。該方案的特點(diǎn)是中小規(guī)模集成電路應(yīng)用技術(shù)成熟,性能可靠,能方便地完成選手搶答的基本功能,但是電路結(jié)構(gòu)復(fù)雜,調(diào)試?yán)щy,涉及到外圍元件多,并且制作過(guò)程

15、工序比較煩瑣,不便于安裝,實(shí)驗(yàn)給實(shí)際操作帶來(lái)很大的麻煩。方案二: 該系統(tǒng)采用mcs-51系列單片機(jī)at89c51作為控制核心,其片內(nèi)帶有4kflashrom,128的ram,以及15根i/o口線能滿足設(shè)計(jì)要求。該系統(tǒng)可以完成運(yùn)算控制、信號(hào)識(shí)別以及顯示功能的實(shí)現(xiàn)。利用單片機(jī)程序判斷選手按鍵是否有效,但是選手違規(guī)搶答,利用簡(jiǎn)答程序顯示,啟動(dòng)蜂鳴器報(bào)警,告訴主持人有人違規(guī)操作,搶答無(wú)效。給出相應(yīng)的延時(shí),選手按正常的操作搶答,軟件倒計(jì)時(shí),利用at89c51移位寄存7段數(shù)碼管,實(shí)現(xiàn)倒計(jì)時(shí)顯示時(shí)間,到5秒相應(yīng)時(shí)間提醒選手時(shí)間快到了,要及時(shí)作答,并啟動(dòng)蜂鳴器。由于用了單片機(jī),使其技術(shù)比較成熟,應(yīng)用起來(lái)方便、

16、簡(jiǎn)單并且單片機(jī)周圍的輔助電路也比較少,便于控制和實(shí)現(xiàn)。整個(gè)系統(tǒng)具有極其靈活的可編程性,能方便地對(duì)系統(tǒng)進(jìn)行功能的擴(kuò)張和更改性。 方案比較分析:從第一個(gè)方案我們可以看出,這個(gè)搶答器是由搶答電路,定時(shí)電路,報(bào)警電路,時(shí)序控制電路四個(gè)電路組成。擴(kuò)展電路是由秒鐘脈沖信號(hào)產(chǎn)生電路,譯碼電路,顯示電路等,它的功能很齊全,設(shè)計(jì)的電路也很穩(wěn)定。但是它的造價(jià)卻很高,僅僅是集成電路他就用了八個(gè),這個(gè)跟我們當(dāng)初的設(shè)計(jì)理念是相沖突的。我們要的是功能齊全,但是造價(jià)比較低的設(shè)計(jì)。所以我們放棄這個(gè)方案。而方案二采用單片機(jī),可靠性好,結(jié)構(gòu)簡(jiǎn)單,具有顯示出臺(tái)號(hào),倒計(jì)時(shí)功能等。該模式充分體現(xiàn)了原有系統(tǒng)性能的改進(jìn),功能的擴(kuò)展及其他同

17、類系統(tǒng)的不同之處,它包括硬件邏輯圖與軟件流程圖,比較經(jīng)濟(jì)實(shí)用,所以我們選用單片機(jī)的方案。3. 搶答器的系統(tǒng)概述3.1 國(guó)內(nèi)外的研究現(xiàn)狀搶答器作為一種電子產(chǎn)品,早已廣泛應(yīng)用于各種智力和知識(shí)競(jìng)賽場(chǎng)合,但目前所使用的搶答器有的電路較復(fù)雜不便于制作,可靠性低,實(shí)現(xiàn)起來(lái)很困難;有的則用一些專用的集成塊,而專用集成塊的購(gòu)買又很困難。為適應(yīng)高校等多代表隊(duì)單位活動(dòng)的需要而設(shè)計(jì)一個(gè)多功能搶答器,這種搶答器具有電路簡(jiǎn)單,元件普通,易于購(gòu)買等優(yōu)點(diǎn),很好地解決了制作者制作困難和難于購(gòu)買的問(wèn)題。在國(guó)內(nèi)外已經(jīng)開始了普遍的應(yīng)用。3.2 搶答器的簡(jiǎn)介數(shù)字搶答器系統(tǒng)設(shè)計(jì)是借用單片機(jī)采用模塊化設(shè)計(jì)的八路搶答器,包括8路搶答按紐、

18、計(jì)時(shí)顯示、提示功能、開始與結(jié)束控制按鈕、時(shí)限設(shè)定、各種相關(guān)顯示調(diào)控功能等。參賽者系統(tǒng),除享有搶答按紐的權(quán)利功能外,還有人性化的提示功能和時(shí)間提示功能,也可設(shè)定由主控控制在參賽者終端表現(xiàn)的趣味性功能等;主控系統(tǒng)的控制按鈕做開始與結(jié)束控制,根據(jù)活動(dòng)參賽者的層次,對(duì)提前掄答者的行為設(shè)定為非法或阻隔,若設(shè)有非法搶答控制功能時(shí),在主控處帶有公示性顯示的非法掄答者的臺(tái)位號(hào),對(duì)搶答限時(shí)及回答問(wèn)題限時(shí)設(shè)為倒計(jì)時(shí),并有顯示提示。系統(tǒng)的主要功能模塊方框圖如圖3-1所示。 at89c51單片機(jī)4位七段數(shù)碼管顯示聲音電路=8路搶答按鍵輸入復(fù)位電路開始、結(jié)束按鍵輸入加一、減一按鍵輸入時(shí)鐘圖3-1 系統(tǒng)主要功能模塊數(shù)字搶

19、答器采用模塊化設(shè)計(jì),在搶答比賽中廣泛應(yīng)用,各組分別有一個(gè)搶答按鈕。一共有8個(gè)按鍵輸入,分別對(duì)應(yīng)8路選手的搶答按鍵。主持人有開始和結(jié)束鍵。在后臺(tái)主持人可以修改,搶答時(shí)間和選手回答問(wèn)題的時(shí)間設(shè)置,原始狀態(tài)下?lián)尨饡r(shí)間為30s,回答問(wèn)題時(shí)間為30s。通過(guò)加鍵和減鍵修改上述時(shí)間,改完后結(jié)束鍵確定。新時(shí)間開始有效,主持人按鍵開始后,選手開始搶答為有效,數(shù)碼顯示屏顯示搶答時(shí)間倒計(jì)時(shí)和選手號(hào),在最后五秒揚(yáng)聲器發(fā)生提示。如果主持人沒(méi)有按下開始鍵而選手就搶答視為犯規(guī),數(shù)碼顯示屏顯示犯規(guī)者的代號(hào),揚(yáng)聲器持續(xù)發(fā)生。主持人可按鍵結(jié)束,新一輪搶答開始。單片機(jī)是整個(gè)搶答器的核心,內(nèi)部電路設(shè)計(jì)用匯編語(yǔ)言編寫。它完成了時(shí)間參數(shù)

20、的設(shè)定,搶按號(hào)碼的譯碼,保存;顯示;輸出,搶按及答題倒計(jì)時(shí)功能等。數(shù)字搶答器設(shè)計(jì)中,有一個(gè)共陰的數(shù)碼管組,四個(gè)數(shù)碼管。其中兩個(gè)顯示時(shí)間,一個(gè)空位,一個(gè)顯示搶答號(hào)碼。主持人依次按下復(fù)位鍵,開始鍵后開始搶答??梢該尠矗撼瑫r(shí)數(shù)碼管顯示“fff”,當(dāng)搶按超過(guò)規(guī)定時(shí)間或答題超過(guò)規(guī)定時(shí)間后數(shù)碼管顯示“fff”。若有選手在規(guī)定時(shí)間內(nèi)搶按成功,則可以答題,數(shù)碼管顯示搶答時(shí)間的同時(shí)也顯示選手號(hào)碼。若在按開始鍵前搶答表示違規(guī),數(shù)碼管顯示“ff”并顯示選手號(hào)碼。3.3 系統(tǒng)需求分析a.在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無(wú)效。b.搶答限定時(shí)間和回答問(wèn)題的時(shí)間可以在199s設(shè)定。c.可以顯示是哪位選

21、手有效搶答和無(wú)效搶答,正確按鍵后有蜂鳴器提示。d.搶答時(shí)間和回答問(wèn)題時(shí)間倒記時(shí)顯示,時(shí)間完后系統(tǒng)自動(dòng)復(fù)位。e.搶答限定時(shí)間內(nèi)使用錦囊回答時(shí)間將加到60s。f.按鍵鎖定,在有效狀態(tài)下,按鍵無(wú)效非法。3.4 搶答器運(yùn)行的流程圖搶答器的基本工作原理:在搶答競(jìng)賽或呼叫時(shí),有多個(gè)信號(hào)同時(shí)或不同時(shí)送入主電路中,搶答器內(nèi)部的寄存器工作,并識(shí)別、記錄第一個(gè)號(hào)碼,同時(shí)內(nèi)部的定時(shí)器開始工作,記錄有關(guān)時(shí)間并產(chǎn)生超時(shí)信號(hào)。在整個(gè)搶答器工作過(guò)程中,顯示電路、聲音電路等還要根據(jù)現(xiàn)場(chǎng)的實(shí)際情況向外電路輸出相應(yīng)信號(hào)。搶答器的工作流程分為:系統(tǒng)復(fù)位、正常流程、違例流程等幾部分,如圖3-2所示,下面分別予以介紹。加載程序運(yùn) 行行

22、開始開始數(shù)碼管顯示fff開始搶按時(shí)間倒計(jì)時(shí)開始前有選手搶按顯示違例選手號(hào)碼并伴有語(yǔ)音報(bào)警倒計(jì)時(shí)結(jié)束,超時(shí)有選手搶按顯示fff顯示選手號(hào)碼,倒計(jì)時(shí)時(shí)間,語(yǔ)音報(bào)警,答題,答題時(shí)間倒計(jì)時(shí)正常流程違規(guī)流程若超過(guò)答題時(shí)間,則數(shù)碼管顯示fff答題完畢根據(jù)選手表現(xiàn),規(guī)則由主持人減分圖3-2 搶答器工作流程3.5 搶答器的工作過(guò)程a.如果想調(diào)節(jié)搶答時(shí)間或答題時(shí)間,按“加一”鍵或“減一”鍵進(jìn)入調(diào)節(jié)狀態(tài),此時(shí)會(huì)顯示現(xiàn)在設(shè)定的搶答時(shí)間或回答時(shí)間值,如想加一秒按一下加1s鍵,如果想減一秒按一下“減1s”鍵,時(shí)間led上會(huì)顯示改變后的時(shí)間,調(diào)整范圍為0-99s, 0s時(shí)再減1s會(huì)跳到99,99s時(shí)再加1s會(huì)變到0s。b

23、.主持人按搶答開始鍵,會(huì)有提示音,并立刻進(jìn)入搶答倒計(jì)時(shí)(預(yù)設(shè)30s搶答時(shí)間),如有選手搶答,會(huì)有提示音,并會(huì)顯示其號(hào)數(shù)并立刻進(jìn)入回答倒計(jì)時(shí)(預(yù)設(shè)30s搶答時(shí)間),不進(jìn)行搶答查詢,所以只有第一個(gè)按搶答的選手有效。倒數(shù)時(shí)間到小于5s會(huì)每秒響一下提示音。c.如倒計(jì)時(shí)期間,主持人想停止倒計(jì)時(shí)可以隨時(shí)按“停止”按鍵,系統(tǒng)會(huì)自動(dòng)進(jìn)入準(zhǔn)備狀態(tài),等待主持人按“搶答開始”進(jìn)入下次搶答計(jì)時(shí)。d.如果主持人未按“搶答開始”鍵,而有人按了搶答按鍵,犯規(guī)搶答,led上不斷閃爍ff和犯規(guī)號(hào)數(shù)并響個(gè)不停,直到按下“停止” 鍵為止??偠灾菊n題利用at89c51單片機(jī)及外圍接口實(shí)現(xiàn)的搶答系統(tǒng)設(shè)計(jì)了搶答器,該搶答器增加了新

24、功能、提高了系統(tǒng)的可靠性、簡(jiǎn)化了電路結(jié)構(gòu)、節(jié)約了成本,是一個(gè)實(shí)用的工程設(shè)計(jì)。3.6 at89c51的功能及簡(jiǎn)介at89c51單片機(jī)是atmal公司89系列單片機(jī)的一種8位flash單片機(jī)。它最大特點(diǎn)是片內(nèi)含有flash存儲(chǔ)器,用途十分廣泛,特別是在生產(chǎn)便攜式商品,手提式儀器等方面,有著十分廣泛的應(yīng)用。at89c51單片機(jī)內(nèi)部主要有以下部件:8031cpu、振蕩電路、總線控制部件、中斷控制部件、片內(nèi)flash存儲(chǔ)器、片內(nèi)ram、并行i/o接口、定時(shí)器和串行i/o接口。at89c51單片機(jī)內(nèi)部由cpu、4kb的fperom ,128b的ram,兩個(gè)16位的定時(shí)/計(jì)數(shù)器t0和t1,4個(gè)8位的i/o端

25、p0、p1、p2、p3等組成。單片微機(jī)內(nèi)部最核心的部分是cpu。cpu主要功能是產(chǎn)生各種控制信號(hào),控制存儲(chǔ)器、輸入/輸出端口的數(shù)據(jù)傳輸、數(shù)據(jù)的算術(shù)運(yùn)算、邏輯運(yùn)算以及位操作處理等,cpu按其功能可分為運(yùn)算器和控制器兩部分??刂破饔沙绦蛴?jì)數(shù)器pc、指令儲(chǔ)存器、指令譯碼器、實(shí)時(shí)控制與條件轉(zhuǎn)移邏輯電路等組成。它的功能是對(duì)來(lái)自存儲(chǔ)器中的指令進(jìn)行譯碼,通過(guò)實(shí)時(shí)控制電路,在規(guī)定的時(shí)刻發(fā)出各種操作所需的內(nèi)部和外部的控制信號(hào),使各部分協(xié)調(diào)工作,完成指令所規(guī)定的操作。運(yùn)算器由算術(shù)邏輯器部件alu、累加器acc、暫存器、程序狀態(tài)字寄存器psw,bcd碼運(yùn)算調(diào)整電路等組成。外部定時(shí)元件復(fù)位中斷電源系統(tǒng)時(shí)鐘romcpu

26、定時(shí)/計(jì)數(shù)器串行i/o口并行i/o口ram圖3-3 at89c51單片機(jī)的內(nèi)部結(jié)構(gòu)圖為了提高數(shù)據(jù)處理和位操作功能,片內(nèi)增加了一個(gè)通用寄存器b和一些專用寄存器,還增加了位處理邏輯電路的功能。其內(nèi)部結(jié)構(gòu)如圖3所示。at89c51的主要性能包括:at89c51與mcs51控制器系列產(chǎn)品兼容,片內(nèi)有4k可在線重復(fù)編程閃速電擦除存儲(chǔ)器(flash memory),存儲(chǔ)器可循環(huán)寫入/擦除1000次;存儲(chǔ)器數(shù)據(jù)保存時(shí)間可達(dá)10年;工作電壓范圍寬:vcc可由2.7v到6v;全靜態(tài)工作可由0hz到16mhz;程序存儲(chǔ)器具有3級(jí)鎖存保護(hù);128*8位內(nèi)部ram;32條可編程i/o線;兩個(gè)16位定時(shí)器/計(jì)數(shù)器;中斷

27、結(jié)構(gòu)具有5個(gè)中斷源和2個(gè)中斷優(yōu)先級(jí);可編程全雙工串行通信;空閑狀態(tài)維持低功耗和掉電狀態(tài)保存存儲(chǔ)內(nèi)容。管腳說(shuō)明: 圖3-4 at89c51引腳圖vcc:供電電壓。gnd:接地。p0口:p0口為一個(gè)8位漏級(jí)開路雙向i/o口,每腳可吸收8ttl門電流。當(dāng)p1口的管腳第一次寫1時(shí),被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時(shí),p0 口作為原碼輸入口,當(dāng)fiash進(jìn)行校驗(yàn)時(shí),p0輸出原碼,此時(shí)p0外部必須被拉高。p1口:p1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作

28、輸入,p1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗(yàn)時(shí),p1口作為第八位地址接收。p2口:p2口為一個(gè)內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個(gè)ttl門電流,當(dāng)p2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗(yàn)時(shí)接收高八位地址信

29、號(hào)和控制信號(hào)p3口:p3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個(gè)ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。p3口也可作為at89c51的一些特殊功能口,如下表所示:接口管腳 備選功能p3.0 rxd(串行輸入口)p3.1 txd(串行輸出口)p3.2 0(外部中斷0)p3.3 1(外部中斷1)p3.4 t0(記時(shí)器0外部輸入)p3.5 t1(記時(shí)器1外部輸入)p3.6 (外部數(shù)據(jù)存儲(chǔ)器寫選通)p3.7 (外部數(shù)據(jù)存儲(chǔ)器讀選通)p3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)

30、。 rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持rst腳兩個(gè)機(jī)器周期的高電平時(shí)間。ale/:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時(shí),ale端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的信號(hào)將不出現(xiàn)。/vpp:當(dāng)保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000h-ffffh),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),將內(nèi)部鎖定為reset;

31、當(dāng)端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。xtal2:來(lái)自反向振蕩器的輸出。3.7 at89c51特殊功能寄存器特殊功能寄存器也稱專用寄存器,是具有特殊功能的所有寄存器的集合,簡(jiǎn)稱sfr(special function register)。特殊功能寄存器共含有22個(gè)不同寄存器。它們的地址分配在80hffh中,即在ram地址中。這些寄存器的名稱和地址見表3-1。表3-1 at89c51特殊功能寄存器列表符號(hào)地址注釋*acce0h累加器*bf0h乘法寄存器*pswd0h程序狀態(tài)字

32、sp81h堆棧指針dpl82h數(shù)據(jù)存儲(chǔ)器指針低8位dph83h數(shù)據(jù)存儲(chǔ)器指針高8位*iea8h中斷允許控制器*ipd8h中斷優(yōu)先控制器*p080h端口0*p190h端口1*p2a0h端口2*p3b0h端口3pcon87h電源控制及波特率選擇*scon98h串行口控制器sbuf99h串行數(shù)據(jù)緩沖器*tcon88h定時(shí)器控制tmod89h定時(shí)器方式選擇tl08ah定時(shí)器0低8位tl18bh定時(shí)器1低8位th08ch定時(shí)器0低8位th18dh定時(shí)器1高8位注:帶*號(hào)的特殊功能寄存器都是可以位尋址的寄存器雖然特殊功能寄存器地址在80hffh之中,但在80hffh的地址單元中,不是所有的單元都被特殊功能

33、寄存器占用,未被占用的單元,其內(nèi)容是不確定的,如果對(duì)這些單元進(jìn)行操作,得到的是一些隨機(jī)數(shù),而寫入則無(wú)效。所以,用戶編程時(shí)不應(yīng)該將數(shù)據(jù)寫入這些未確定的地址單元,它們是公司留待將來(lái)開發(fā)新產(chǎn)品時(shí)使用的。4. 硬件設(shè)計(jì)模塊4.1 硬件電路的設(shè)計(jì)數(shù)字搶答器設(shè)計(jì)分為硬件設(shè)計(jì)和軟件設(shè)計(jì),這兩者相互結(jié)合,不可分離;從時(shí)間上看,硬件設(shè)計(jì)的絕大部分工作量是在最初階段,到后期往往還要做一些修改。只要技術(shù)準(zhǔn)備充分,硬件設(shè)計(jì)的大返工是比較少的,軟件設(shè)計(jì)的任務(wù)貫徹始終,到中后期基本上都是軟件設(shè)計(jì)任務(wù),隨著集成電路技術(shù)的飛速發(fā)展,各種功能很強(qiáng)的芯片不斷出現(xiàn),使硬件電路的集成度越來(lái)越高,硬件設(shè)計(jì)的工作量在整個(gè)項(xiàng)目中的所占的比

34、重逐漸下降。為使硬件電路設(shè)計(jì)盡可能合理,應(yīng)注意以下幾方面:a.盡可能采用功能強(qiáng)的芯片,以簡(jiǎn)化電路,功能強(qiáng)的芯片可以代替若干普通芯片,隨著生產(chǎn)工藝的提高,新型芯片的的價(jià)格不斷下降,并不一定比若干普通芯片價(jià)格的總和高。b.留有設(shè)計(jì)余地。在設(shè)計(jì)硬件電路時(shí),要考慮到將來(lái)修改擴(kuò)展的方便。因?yàn)楹苌儆幸诲N定音的電路設(shè)計(jì),如果現(xiàn)在不留余地,將來(lái)可能要為一點(diǎn)小小的修改或擴(kuò)展而被迫進(jìn)行全面返工。c.程序空間,選用片內(nèi)程序空間足夠大的單片機(jī),本設(shè)計(jì)采用at89c51單片機(jī)。d.ram空間,at89c51內(nèi)部ram不多,當(dāng)要增強(qiáng)軟件數(shù)據(jù)處理功能時(shí),往往覺(jué)得不足。如果系統(tǒng)配置了外部ram,則建議多留一些空間。如選用81

35、55作i/o接口,就可以增強(qiáng)256字節(jié)ram。如果有大批數(shù)據(jù)需要處理,則應(yīng)配置足夠的ram,如6264,62256等。隨著軟件設(shè)計(jì)水平的提高,往往只要改變或增加軟件中的數(shù)據(jù)處理算法,就可以使系統(tǒng)功能提高很多,而系統(tǒng)的硬件不必做任何更換就使系統(tǒng)升級(jí)換代。只要在硬件電路設(shè)計(jì)初期考慮到這一點(diǎn),就應(yīng)該為系統(tǒng)將來(lái)升級(jí)留足夠的ram空間,哪怕多設(shè)計(jì)一個(gè)ram的插座,暫不插芯片也好。e.i/o端口:在樣機(jī)研制出來(lái)后進(jìn)行現(xiàn)場(chǎng)試用時(shí),往往會(huì)發(fā)現(xiàn)一些被忽視的問(wèn)題,而這些問(wèn)題不是靠單純的軟件措施來(lái)解決的。如有些新的信號(hào)需要采集,就必須增加輸入檢測(cè)端;有些物理量需要控制,就必須增加輸出端。如果在硬件電路設(shè)計(jì)就預(yù)留出一

36、些i/o端口,雖然當(dāng)時(shí)空著沒(méi)用,那么用的時(shí)候就派上用場(chǎng)了。系統(tǒng)原理圖如下圖4-1所示:圖4-1 系統(tǒng)原理圖圖中u2為單片機(jī)at89c51,u3為芯片74ls04,u4為芯片74hc30。k1-k8分別為8路搶答按鍵,分別接到單片機(jī)的p1.0-p1.7中。開始按鍵與結(jié)束按鍵分別接到單片機(jī)的10、11腳,由于單片機(jī)的10、11腳既有串行接口rxd、txd功能,又有p3.0、p3.1的io端口功能,此處按鍵用到單片機(jī)10、11腳的io端口功能。搶答時(shí)間調(diào)整按鍵和回答時(shí)間調(diào)整按鍵分別接到單片機(jī)的13、14管腳,加一按鍵和減一按鍵分別接到單片機(jī)的15、16管腳。4位七段數(shù)碼管段選p0口。4位七段數(shù)碼管的

37、位選接p2口低3位,蜂鳴器輸出為p3.7口。4.2 穩(wěn)壓電源電路設(shè)計(jì)首先利用220v用220v12v的變壓器降壓,再用橋式整流。在電源電路中,整流電路將交流變成脈動(dòng)的直流,而在整流電路之后接入一個(gè)較大容量的電解電容(470uf),利用其充放電特性,使整流后的脈動(dòng)直流電壓變成相對(duì)比較穩(wěn)定的直流電壓。在實(shí)際中,為了防止電路各部分供電電壓因負(fù)載變化而產(chǎn)生變化,所以在電源的輸出端及負(fù)載的電源輸入端一般接有數(shù)十至數(shù)百微法的電解電容由于大容量的電解電容一般具有一定的電感,對(duì)高頻及脈沖干擾信號(hào)不能有效地濾除,故在其兩端并聯(lián)了一只容量為0.001-0.lpf的電容,以濾除高頻及脈沖干擾然后并接一個(gè)0.1uf的

38、小電容然后輸入的7805的1腳、7805的2腳接地、78l05的3腳輸出,加一個(gè)0.1uf的電容到地。這就可以了。如下圖4-2圖4-2 電源電路4.3 時(shí)鐘頻率電路的設(shè)計(jì)單片機(jī)必須在時(shí)鐘的驅(qū)動(dòng)下才能工作。在單片機(jī)內(nèi)部有一個(gè)時(shí)鐘振蕩電路,只需要外接一個(gè)振蕩源就能產(chǎn)生一定的時(shí)鐘信號(hào)送到單片機(jī)內(nèi)部的各個(gè)單元,決定單片機(jī)的工作速度。時(shí)鐘電路如圖4-3所示。圖4-3 外部振蕩源電路一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在xtal2引腳產(chǎn)生幅度為3v左右的正弦波時(shí)鐘信號(hào),其振蕩頻率主要由石英晶振的頻率確定。電路中兩個(gè)電容 c1,c2的作用有兩個(gè):一是幫助振蕩器起振;二是對(duì)振蕩器

39、的頻率進(jìn)行微調(diào)。c1,c2的典型值為30uf。單片機(jī)在工作時(shí),由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時(shí)鐘信號(hào)的周期稱為時(shí)鐘周期。其大小是時(shí)鐘信號(hào)頻率的倒數(shù),常用fosc表示。圖中時(shí)鐘頻率為12mhz,即fosc=12mhz,則時(shí)鐘周期為1/12s。4.4 復(fù)位電路的設(shè)計(jì)單片機(jī)的第9腳rst為硬件復(fù)位端,只要將該端持續(xù)4個(gè)機(jī)器周期的高電平即可實(shí)現(xiàn)復(fù)位,復(fù)位后單片機(jī)的各狀態(tài)都恢復(fù)到初始化狀態(tài),其電路圖如圖4-4所示:圖4-4 復(fù)位電路圖4-4中由按鍵reset1以及電解電容c3、電阻r8構(gòu)成按鍵及上電復(fù)位電路。由于單片機(jī)是高電平復(fù)位,所以當(dāng)按鍵reset1按下時(shí)候,單片機(jī)的9腳re

40、set管腳處于高電平,此時(shí)單片機(jī)處于復(fù)位狀態(tài)。當(dāng)上電后,由于電容的緩慢充電,單片機(jī)的9腳電壓逐步由高向低轉(zhuǎn)化,經(jīng)過(guò)一段時(shí)間后,單片機(jī)的9腳處于穩(wěn)定的低電平狀態(tài),此時(shí)單片機(jī)上電復(fù)位完畢,系統(tǒng)程序從0000h開始執(zhí)行。值得注意的是,在設(shè)計(jì)當(dāng)中使用到了硬件復(fù)位和軟件復(fù)位兩種功能,由上面的硬件復(fù)位后的各狀態(tài)可知寄存器及存儲(chǔ)器的值都恢復(fù)到了初始值,而前面的功能介紹中提到了倒計(jì)時(shí)時(shí)間的記憶功能,該功能的實(shí)現(xiàn)的前提條件就是不能對(duì)單片機(jī)進(jìn)行硬件復(fù)位,所以設(shè)定了軟復(fù)位功能。軟復(fù)位實(shí)際上就是當(dāng)程序執(zhí)行完畢之后,將程序指針通過(guò)一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到程序執(zhí)行的起始地址。4.5 顯示電路的設(shè)計(jì)顯示功能與硬件關(guān)系極大,當(dāng)

41、硬件固定后,如何在不引起操作者誤解的前提下提供盡可能豐富的信息,全靠軟件來(lái)解決。在這里我們使用的是七段數(shù)碼管顯示,通常在顯示上我們采用的方法一般包括兩種:一種是靜態(tài)顯示,一種是動(dòng)態(tài)顯示。其中靜態(tài)顯示的特點(diǎn)是顯示穩(wěn)定不閃爍,程序編寫簡(jiǎn)單,但占用端口資源多;動(dòng)態(tài)顯示的特點(diǎn)是顯示穩(wěn)定性沒(méi)靜態(tài)好,程序編寫復(fù)雜,但是相對(duì)靜態(tài)顯示而言占用端口資源少。在本設(shè)計(jì)中根據(jù)實(shí)際情況采用的是動(dòng)態(tài)顯示方法。通過(guò)查表法,將其在數(shù)碼管上顯示出來(lái),其中p0口為字型碼輸入端,p2口低3位為字選段輸入端。在這里我們通過(guò)查表將字型碼送給7段數(shù)碼管顯示的數(shù)字,數(shù)碼管顯示原理如下: mov a,r3 movc a,a+dptr mov

42、 p2,#0feh mov p0,a acall delay mov dptr,#dat2 mov a,r5 movc a,a+dptr mov p2,#0fdh mov p0,a acall delay mov a,r4 movc a,a+dptr mov p2,#0fbh mov p0,a acall delay ret4位七段數(shù)碼管顯示電路如圖4-5所示。圖4-5 共陰極數(shù)碼管圖4-5中數(shù)碼管采用的是4位七段共陰數(shù)碼管,其中a-h段分別接到單片機(jī)的p0口,由單片機(jī)輸出的p0口數(shù)據(jù)來(lái)決定段碼值,位選碼com1、com3、com4分別接到單片機(jī)的p2.0、p2.1、p2.2,由單片機(jī)來(lái)決定當(dāng)

43、前該顯示的是哪一位。在圖中還有八個(gè)10k的電阻,連接在p0口上,用作p0口的上拉電阻,保證p0口沒(méi)有數(shù)據(jù)輸出時(shí)候處于高電平狀態(tài)。4.6 鍵盤掃描電路的設(shè)計(jì)鍵盤是人與單片機(jī)打交道的主要設(shè)備。關(guān)于鍵盤硬件電路的設(shè)計(jì)方法也可以在文獻(xiàn)和書籍中找到,配合各種不同的硬件電路,這些書籍中一般也提供了相應(yīng)的鍵盤掃描程序。站在系統(tǒng)監(jiān)控軟件設(shè)計(jì)的立場(chǎng)上來(lái)看,僅僅完成鍵盤掃描,讀取當(dāng)前時(shí)刻的鍵盤狀態(tài)是不夠的,還有不少問(wèn)題需要妥善解決,否則,人們?cè)诓僮麈I盤就容易引起誤操作和操作失控現(xiàn)象。在單片機(jī)應(yīng)用中鍵盤用得最多的形式是獨(dú)立鍵盤及矩陣鍵盤。它們各有自己的特點(diǎn),其中獨(dú)立鍵盤硬件電路簡(jiǎn)單,而且在程序設(shè)計(jì)上也不復(fù)雜,一般用

44、在對(duì)硬件電路要求不高的簡(jiǎn)單電路中;矩陣鍵盤與獨(dú)立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨(dú)立鍵盤復(fù)雜得多,而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢(shì)得多,因此它更適合于多按鍵電路。其次就是消除在按鍵過(guò)程中產(chǎn)生的“毛刺”現(xiàn)象。這里采用最常用的方法,即延時(shí)重復(fù)掃描法,延時(shí)法的原理為:因?yàn)椤懊獭泵}沖一般持續(xù)時(shí)間短,約為幾ms,而我們按鍵的時(shí)間一般遠(yuǎn)遠(yuǎn)大于這個(gè)時(shí)間,所以當(dāng)單片機(jī)檢測(cè)到有按鍵動(dòng)靜后再延時(shí)一段時(shí)間(這里我們?nèi)?0ms)后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無(wú)效。數(shù)字搶答器設(shè)計(jì)中采用了獨(dú)立鍵盤的方式,本設(shè)計(jì)中有8個(gè)搶答按鍵輸入,一個(gè)開始按鍵、一個(gè)結(jié)束按鍵,此外還有

45、搶答時(shí)間調(diào)整鍵、回答時(shí)間調(diào)整鍵,加一按鍵、減一按鍵各一個(gè)。如圖4-6所示。圖4-6 搶答按鍵及調(diào)整按鍵在圖4-6中8個(gè)搶答按鍵分別接入單片機(jī)的p1.0-p1.7端口,單片機(jī)通過(guò)讀取p1.0-p1.7的值來(lái)判斷當(dāng)前輸入的是8個(gè)搶答按鍵中的哪一個(gè)。搶答時(shí)間調(diào)整和回答時(shí)間調(diào)整接到單片機(jī)的p3.3和p3.4接口,加一及減一按鍵接到單片機(jī)的p3.5和p3.6接口。開始及結(jié)束按鍵接到單片機(jī)的10、11腳,這里用到了單片機(jī)10、11腳復(fù)合功能中的io端口功能,單片機(jī)通過(guò)讀取10、11腳的p3.0、p3.1的io端口值來(lái)判斷當(dāng)前是否處于搶答開始狀態(tài)或搶答結(jié)束狀態(tài)。按鍵的觸點(diǎn)在閉合和斷開時(shí)均會(huì)產(chǎn)生抖動(dòng),這時(shí)觸點(diǎn)

46、的邏輯電平是不穩(wěn)定的,如不妥善處理,將會(huì)引起按鍵命令的錯(cuò)誤執(zhí)行或重復(fù)執(zhí)行?,F(xiàn)在一般均用軟件延時(shí)的方法來(lái)避開抖動(dòng)階段,這一延時(shí)過(guò)程一般大于5ms,例如取10-20ms。如果監(jiān)控程序中的讀鍵操作安排在主程序(后臺(tái)程序)或鍵盤中斷(外部中斷)子程序中,則該延時(shí)子程序便可直接插入讀鍵過(guò)程中。如果讀鍵過(guò)程安排在定時(shí)中斷子程序中,就可省去專門的延時(shí)子程序,利用兩次定時(shí)中斷的時(shí)間間隔來(lái)完成抖動(dòng)處理。k1k8八個(gè)按鍵的輸入電平靠74hc30輸入與非門和74ls04反向器組成的電路改變輸入電平。圖10中電路就是由一個(gè)74hc30輸入與非門和74ls04反向器組成的去抖電路。如圖4-7所示。圖4-7 去抖電路4.

47、7 發(fā)聲電路的設(shè)計(jì)我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來(lái)控制單片機(jī)某個(gè)口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭(壓電陶瓷型揚(yáng)聲器)就能發(fā)出一定頻率的聲音,若再利用延時(shí)程序控制“高”“低”電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。數(shù)字搶答器設(shè)計(jì)如圖4-8所示。圖中單片機(jī)的14腳輸出具有復(fù)合功能,此處用到了單片機(jī)17腳的io端口功能,單片機(jī)通過(guò)內(nèi)部定時(shí)器的操作實(shí)現(xiàn)交替變換的波形輸出驅(qū)動(dòng)揚(yáng)聲器發(fā)聲。圖4-8 發(fā)聲電路4.8 系統(tǒng)復(fù)位使cpu進(jìn)入初始狀態(tài),從0000h地址開始執(zhí)行程序的過(guò)程叫系統(tǒng)復(fù)位。從實(shí)現(xiàn)系統(tǒng)復(fù)位的方法來(lái)

48、看,系統(tǒng)復(fù)位可分為硬件復(fù)位和軟件復(fù)位。硬件復(fù)位必須通過(guò)cpu外部的硬件電路給cpu的reset端加上足夠時(shí)間的高電位才能實(shí)現(xiàn)。上電復(fù)位,人工按鈕復(fù)位和硬件看門狗復(fù)位均為硬件復(fù)位。硬件復(fù)位后,各專用寄存器的狀態(tài)均被初始化,且對(duì)片內(nèi)通用寄存器的內(nèi)容沒(méi)有影響。但是,硬件復(fù)位還能自動(dòng)清除中斷激活標(biāo)志,使中斷系統(tǒng)能夠正常工作,這樣一個(gè)事實(shí)卻容易為不少編碼人員所忽視。軟件復(fù)位就是用一系列指令來(lái)模擬硬件復(fù)位功能,最后通過(guò)轉(zhuǎn)移指令使程序從0000h地址開始執(zhí)行。對(duì)各專用寄存器的復(fù)位操作是容易的,也沒(méi)有必要完全模擬,可根據(jù)實(shí)際需要去主程序初始化過(guò)程中完成。而對(duì)中斷激活標(biāo)志的清除工作常被遺忘,因?yàn)樗鼪](méi)有明確的位地

49、址可供編程。有的編程人員用020000(ljmp 0000h)作為軟件陷阱,認(rèn)為直接轉(zhuǎn)向0000h地址就完成了軟件復(fù)位,就是這類錯(cuò)誤的典型代表。軟件復(fù)位是使用軟件陷阱和軟件看門狗后必須進(jìn)行的工作,這時(shí)程序出錯(cuò)完全有可能發(fā)生在中斷子程序中,中斷激活標(biāo)志已置位,它將阻止同級(jí)中斷響應(yīng)。由于軟件看門是高級(jí)中斷,它將阻止說(shuō)要中斷響應(yīng),由此可見清除中斷激活標(biāo)志的重要性。在所有的指令中,只有reti指令能夠清除中斷激活標(biāo)志。出錯(cuò)處理程序err主要完成這一功能,其他的善后工作交由復(fù)位后的系統(tǒng)去完成。程序一般先關(guān)中斷,以便后續(xù)處理能順利進(jìn)行,然后用兩個(gè)reti指令代替兩個(gè)ljmp指令,從而清除了兩級(jí)中斷激活標(biāo)志

50、。有相應(yīng)軟件陷阱捕捉來(lái)的程序可能沒(méi)有全部激活兩個(gè)標(biāo)志,這也無(wú)妨。有復(fù)位時(shí)系統(tǒng)的歷史狀況,可將復(fù)位分為“冷啟動(dòng)”和“熱啟動(dòng)”。 “冷啟動(dòng)”時(shí),系統(tǒng)的狀態(tài)全部無(wú)效,進(jìn)行徹底的初始化操作;而“熱啟動(dòng)”時(shí),對(duì)系統(tǒng)的當(dāng)前狀態(tài)進(jìn)行修復(fù)和有選擇的初始化。系統(tǒng)初次上電投入運(yùn)行時(shí),必須是“冷啟動(dòng)”,以后由抗干擾措施引起的復(fù)位操作一般均為“熱啟動(dòng)”初次上電投入運(yùn)行時(shí),必須是“冷啟動(dòng)”,以后由抗干擾措施引起的復(fù)位操作一般均為“熱啟動(dòng)”。為了使系統(tǒng)能正確決定采用何種啟動(dòng)方式,常用上電標(biāo)志來(lái)區(qū)分,如圖4-9所示。復(fù)位關(guān)中斷,設(shè)定堆棧上電標(biāo)志冷啟自檢全面初始化熱啟動(dòng)恢復(fù)被破壞的信息部分初始化建立上電標(biāo)志開始運(yùn)轉(zhuǎn)圖4-9

51、系統(tǒng)復(fù)位策略圖5. 軟件設(shè)計(jì)模塊5.1 主程序系統(tǒng)結(jié)構(gòu)圖系統(tǒng)初始化模塊按鍵模塊非法搶答模塊正確搶答模塊調(diào)整搶答時(shí)間調(diào)整回答時(shí)間模塊數(shù)碼顯示模塊圖5-1軟件系統(tǒng)結(jié)構(gòu)圖5.2 軟件任務(wù)分析軟件任務(wù)分析和硬件電路設(shè)計(jì)結(jié)合進(jìn)行,哪些功能由硬件完成,哪些任務(wù)由軟件完成,在硬件電路設(shè)計(jì)基本定型后,也就基本上決定下來(lái)了。軟件任務(wù)分析環(huán)節(jié)是為軟件設(shè)計(jì)做一個(gè)總體規(guī)劃。從軟件的功能來(lái)看可分為兩大類:一類是執(zhí)行軟件,它能完成各種實(shí)質(zhì)性的功能,如測(cè)量,計(jì)算,顯示,打印,輸出控制和通信等,另一類是監(jiān)控軟件,它是專門用來(lái)協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系,在系統(tǒng)軟件中充當(dāng)組織調(diào)度角色的軟件。這兩類軟件的設(shè)計(jì)方法各有特色,執(zhí)行軟

52、件的設(shè)計(jì)偏重算法效率,與硬件關(guān)系密切,千變?nèi)f化。軟件任務(wù)分析時(shí),應(yīng)將各執(zhí)行模塊一一列出,并為每一個(gè)執(zhí)行模塊進(jìn)行功能定義和接口定義(輸入輸出定義)。在各執(zhí)行模塊進(jìn)行定義時(shí),將要牽扯到的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類型問(wèn)題也一并規(guī)劃好。各執(zhí)行模塊規(guī)劃好后,就可以監(jiān)控程序了。首先根據(jù)系統(tǒng)功能和鍵盤設(shè)置選擇一種最適合的監(jiān)控程序結(jié)構(gòu)。相對(duì)來(lái)講,執(zhí)行模塊任務(wù)明確單純,比較容易編程,而監(jiān)控程序較易出問(wèn)題。這如同當(dāng)一名操作工人比較容易,而當(dāng)一個(gè)廠長(zhǎng)就比較難了。軟件任務(wù)分析的另一個(gè)內(nèi)容是如何安排監(jiān)控軟件和各執(zhí)行模塊。整個(gè)系統(tǒng)軟件可分為后臺(tái)程序(背景程序)和前臺(tái)程序。后臺(tái)程序指主程序及其調(diào)用的子程序,這類程序?qū)?shí)時(shí)性要求不是太

53、高,延誤幾十ms甚至幾百ms也沒(méi)關(guān)系,故通常將監(jiān)控程序(鍵盤解釋程序),顯示程序和打印程序等與操作者打交道的程序放在后臺(tái)程序中執(zhí)行;而前臺(tái)程序安排一些實(shí)時(shí)性要求較高的內(nèi)容,如定時(shí)系統(tǒng)和外部中斷(如掉電中斷)。也可以將全部程序均安排在前臺(tái),后臺(tái)程序?yàn)椤笆瓜到y(tǒng)進(jìn)入睡眠狀態(tài)”,以利于系統(tǒng)節(jié)電和抗干擾。5.3 程序流程圖在本設(shè)計(jì)中包括了以下主要的程序:主程序,查詢程序,非法搶答程序,搶答時(shí)間調(diào)整程序,回答時(shí)間調(diào)整程序,倒計(jì)時(shí)程序,正常搶答處理程序,犯規(guī)處理程序,顯示及發(fā)聲程序。主流程圖如5-2所示:顯示fff開始鍵加一鍵減一鍵回答時(shí)間 調(diào)整搶答時(shí)間去抖動(dòng)非法搶答處理顯示犯規(guī)正常搶答 顯示搶答號(hào)并倒計(jì)時(shí)

54、y yy 初始化圖5-2 程序設(shè)計(jì)流程圖5.4 proteus軟件仿真系列組圖a.復(fù)位圖圖5-3 復(fù)位顯示三個(gè)fff該圖顯示當(dāng)單片機(jī)復(fù)位后,在4位七段數(shù)碼管上顯示的初始狀態(tài)“f ff”字符。b.設(shè)置計(jì)時(shí)時(shí)間圖5-4 計(jì)時(shí)時(shí)間為17秒該圖顯示通過(guò)加一按鍵操作后在4位數(shù)碼管上顯示的計(jì)時(shí)時(shí)間為17秒。c.非法搶答并顯示選手號(hào)圖5-5 三號(hào)選手非法搶答該圖顯示的是若三號(hào)選手非法搶答時(shí)候,第一位字符顯示單片機(jī)判定的非法選手“3”號(hào)選手,在4位數(shù)碼管上的后兩位顯示非法搶答字符“ff”。d.搶答成功并顯示倒計(jì)時(shí)圖5-6 六號(hào)選手搶答圖中顯示的是若6號(hào)選手搶答成功的時(shí)候,4位數(shù)碼管的第一顯示是“6”號(hào)選手搶答成功,最后兩位顯示選手答題倒計(jì)時(shí)時(shí)間還有25秒。6. 結(jié)束語(yǔ)本設(shè)計(jì)以at89c51單片機(jī)為核心,根據(jù)燒錄其中的程序控制整個(gè)系統(tǒng)的工作流程。整體性好,人性化強(qiáng)、可靠性高,實(shí)現(xiàn)了數(shù)字顯示控制的智能化,是各個(gè)需要顯示數(shù)字或廣告宣傳的有力工具。通過(guò)該設(shè)計(jì).我不僅加深了對(duì)單片機(jī)理論的理解,將理論很好地應(yīng)用到實(shí)際當(dāng)中去,而且我還學(xué)會(huì)了如何去培養(yǎng)我們的創(chuàng)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論