版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 第一章 緒論</b></p><p><b> 1.1單片機(jī)介紹</b></p><p> 單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換
2、器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。</p><p> 單片微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的縮寫(xiě)MCU表示單片機(jī),它最早是被用在工業(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅有CPU的專用處理器發(fā)展而來(lái)。最早的設(shè)計(jì)理念是通過(guò)將大量外圍設(shè)備和CPU集成在一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對(duì)體積要求嚴(yán)格的控制
3、設(shè)備當(dāng)中。INTEL的Z80是最早按照這種思想設(shè)計(jì)出的處理器,從此以后,單片機(jī)和專用處理器的發(fā)展便分道揚(yáng)鑣。 </p><p> 單片機(jī)比專用處理器更適合應(yīng)用于嵌入式系統(tǒng),因此它得到了最多的應(yīng)用。現(xiàn)代人類生活中所用的幾乎每件電子和機(jī)械產(chǎn)品中都會(huì)集成有單片機(jī)。手機(jī)、電話、計(jì)算器、家用電器、電子玩具、掌上電腦以及鼠標(biāo)等電腦配件中都配有1-2部單片機(jī)。而個(gè)人電腦中也會(huì)有為數(shù)不少的單片機(jī)在工作。汽車上一般配備40多部單
4、片機(jī),復(fù)雜的工業(yè)控制系統(tǒng)上甚至可能有數(shù)百臺(tái)單片機(jī)在同時(shí)工作!單片機(jī)的數(shù)量不僅遠(yuǎn)超過(guò)PC機(jī)和其他計(jì)算的總和,甚至比人類的數(shù)量還要多。 </p><p> 單片機(jī)又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。相當(dāng)于一個(gè)微型的計(jì)算機(jī),和計(jì)算機(jī)相比,單片機(jī)只缺少了I/O設(shè)備。概括的講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開(kāi)發(fā)提供了便利條件。同時(shí)
5、,學(xué)習(xí)使用單片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的最佳選擇。 </p><p> 單片機(jī)內(nèi)部也用和電腦功能類似的模塊,比如CPU,內(nèi)存,并行總線,還有和硬盤(pán)作用相同的存儲(chǔ)器件,不同的是它的這些部件性能都相對(duì)我們的家用電腦弱很多,不過(guò)價(jià)錢(qián)也是低的,一般不超過(guò)10元即可......用它來(lái)做一些控制電器一類不是很復(fù)雜的工作足矣了。我們現(xiàn)在用的全自動(dòng)滾筒洗衣機(jī)、排煙罩、VCD等等的家電里面都可以看到它的身影。它主要是作為控制部分
6、的核心部件。</p><p> 單片機(jī)是靠程序運(yùn)行的,并且可以修改。通過(guò)不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,這是別的器件需要費(fèi)很大力氣才能做到的,有些則是花大力氣也很難做到的。一個(gè)不是很復(fù)雜的功能要是用美國(guó)50年代開(kāi)發(fā)的74系列,或者60年代的CD4000系列這些純硬件來(lái)搞定的話,電路一定是一塊大PCB板!但是如果要是用美國(guó)70年代成功投放市場(chǎng)的系列單片機(jī),結(jié)果就會(huì)有天壤之別!只因?yàn)閱纹瑱C(jī)的通
7、過(guò)你編寫(xiě)的程序可以實(shí)現(xiàn)高智能,高效率,以及高可靠性。 </p><p> 由于單片機(jī)對(duì)成本是敏感的,所以目前占統(tǒng)治地位的軟件還是最低級(jí)匯編語(yǔ)言,它是除了二進(jìn)制機(jī)器碼以上最低級(jí)的語(yǔ)言了,既然這么低級(jí)為什么還要用呢?很多高級(jí)的語(yǔ)言已經(jīng)達(dá)到了可視化編程的水平為什么不用呢?原因很簡(jiǎn)單,就是單片機(jī)沒(méi)有家用計(jì)算機(jī)那樣的CPU,也沒(méi)有像硬盤(pán)那樣的海量存儲(chǔ)設(shè)備。一個(gè)可視化高級(jí)語(yǔ)言編寫(xiě)的小程序里面即使只有一個(gè)按鈕,也會(huì)達(dá)到幾十K
8、的尺寸!對(duì)于家用PC的硬盤(pán)來(lái)講沒(méi)什么,可是對(duì)于單片機(jī)來(lái)講是不能接受的。 單片機(jī)在硬件資源方面的利用率必須很高才行,所以匯編雖然原始卻還是在大量使用。一樣的道理,如果把巨型計(jì)算機(jī)上的操作系統(tǒng)和應(yīng)用軟件拿到家用PC上來(lái)運(yùn)行,家用PC的也是承受不了的。</p><p> 二十世紀(jì)跨越了三個(gè)“電”的時(shí)代,即電氣時(shí)代、電子時(shí)代和現(xiàn)已進(jìn)入的電腦時(shí)代。不過(guò),這種電腦,通常是指?jìng)€(gè)人計(jì)算機(jī),簡(jiǎn)稱PC機(jī)。它由主機(jī)、鍵盤(pán)、顯示器等組
9、成。顧名思義,這種計(jì)算機(jī)的最小系統(tǒng)只用了一片集成電路,即可進(jìn)行簡(jiǎn)單運(yùn)算和控制。因?yàn)樗w積小,通常都藏在被控機(jī)械的“肚子”里。它在整個(gè)裝置中,起著有如人類頭腦的作用,它出了毛病,整個(gè)裝置就癱瘓了?,F(xiàn)在,這種單片機(jī)的使用領(lǐng)域已十分廣泛,如智能儀表、實(shí)時(shí)工控、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器等。各種產(chǎn)品一旦用上了單片機(jī),就能起到使產(chǎn)品升級(jí)換代的功效,常在產(chǎn)品名稱前冠以形容詞——“智能型”,如智能型洗衣機(jī)等。現(xiàn)在有些工廠的技術(shù)人員或其它業(yè)余電子開(kāi)發(fā)
10、者搞出來(lái)的某些產(chǎn)品,不是電路太復(fù)雜,就是功能太簡(jiǎn)單且極易被仿制。</p><p> 1.2單片機(jī)的工作過(guò)程</p><p> 單片機(jī)自動(dòng)完成賦予它的任務(wù)的過(guò)程,也就是單片機(jī)執(zhí)行程序的過(guò)程,即一條條執(zhí)行的指令的過(guò)程,所謂指令就是把要求單片機(jī)執(zhí)行的各種操作用的命令的形式寫(xiě)下來(lái),這是在設(shè)計(jì)人員賦予它的指令系統(tǒng)所決定的,一條指令對(duì)應(yīng)著一種基本操作;單片機(jī)所能執(zhí)行的全部指令,就是該單片機(jī)的指令系
11、統(tǒng),不同種類的單片機(jī),其指令系統(tǒng)亦不同。為使單片機(jī)能自動(dòng)完成某一特定任務(wù),必須把要解決的問(wèn)題編成一系列指令(這些指令必須是選定單片機(jī)能識(shí)別和執(zhí)行的指令),這一系列指令的集合就成為程序,程序需要預(yù)先存放在具有存儲(chǔ)功能的部件——存儲(chǔ)器中。存儲(chǔ)器由許多存儲(chǔ)單元(最小的存儲(chǔ)單位)組成,就像大樓房有許多房間組成一樣,指令就存放在這些單元里,單元里的指令取出并執(zhí)行就像大樓房的每個(gè)房間的被分配到了唯一一個(gè)房間號(hào)一樣,每一個(gè)存儲(chǔ)單元也必須被分配到唯一的
12、地址號(hào),該地址號(hào)稱為存儲(chǔ)單元的地址,這樣只要知道了存儲(chǔ)單元的地址,就可以找到這個(gè)存儲(chǔ)單元,其中存儲(chǔ)的指令就可以被取出,然后再被執(zhí)行。 </p><p> 程序通常是順序執(zhí)行的,所以程序中的指令也是一條條順序存放的,單片機(jī)在執(zhí)行程序時(shí)要能把這些指令一條條取出并加以執(zhí)行,必須有一個(gè)部件能追蹤指令所在的地址,這一部件就是程序計(jì)數(shù)器PC(包含在CPU中),在開(kāi)始執(zhí)行程序時(shí),給PC賦以程序中第一條指令所在的地址,然后取得
13、每一條要執(zhí)行的命令,PC在中的內(nèi)容就會(huì)自動(dòng)增加,增加量由本條指令長(zhǎng)度決定,可能是1、2或3,以指向下一條指令的起始地址,保證指令順序執(zhí)行。</p><p> 1.3 AT89C51</p><p> AT89C51單片機(jī)是采用高性能的靜態(tài)80C51 設(shè)計(jì)由先進(jìn)CMOS 工藝制造并帶有非易失性Flash 程序存儲(chǔ)器,全部支持12 時(shí)鐘和6 時(shí)鐘操作。P89C51X2 和P89C52X2/
14、54X2/58X2 分別包含128 字節(jié)和256 字節(jié)RAM 32 條I/O 口線3 個(gè)16 位定時(shí)/計(jì)數(shù)器6 輸入4 優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)1 個(gè)串行I/O 口可用于多機(jī)通信I/O 擴(kuò)展或全雙工UART以及片內(nèi)振蕩器和時(shí)鐘電路。此外由于器件采用了靜態(tài)設(shè)計(jì)可提供很寬的操作頻率范圍頻率可降至0 可實(shí)現(xiàn)兩個(gè)由軟件選擇的節(jié)電模式空閑模式和掉電模式空閑模式凍結(jié)CPU 但RAM 定時(shí)器串口和中斷系統(tǒng)仍然工作。掉電模式保存RAM 的內(nèi)容但是凍結(jié)振蕩器導(dǎo)
15、致所有其它的片內(nèi)功能停止工作由于設(shè)計(jì)是靜態(tài)的時(shí)鐘可停止而不會(huì)丟失用戶數(shù)據(jù)運(yùn)行可從時(shí)鐘停止處恢復(fù)。</p><p> 振蕩器特性為XTAL1 和XTAL2 為輸入和輸出可分別作為一個(gè)反相放大器的輸入和輸出此管腳可配置為使用內(nèi)部振蕩器要使用外部時(shí)鐘源驅(qū)動(dòng)器件時(shí)XTAL2 可以不連接而由XTAL1 驅(qū)動(dòng)外部時(shí)鐘信號(hào)無(wú)占空比的要求因?yàn)闀r(shí)鐘通過(guò)觸發(fā)器二分頻輸入到內(nèi)部時(shí)鐘電路但高低電平的最長(zhǎng)和最短時(shí)間必須符合手冊(cè)的規(guī)定。&
16、lt;/p><p> 復(fù)位,在振蕩器工作時(shí)將RST 腳保持至少兩個(gè)機(jī)器周期高電平12 時(shí)鐘模式為24 個(gè)振蕩器周期6 時(shí)鐘模式為12 振蕩器周期可實(shí)現(xiàn)復(fù)位為了保證上電復(fù)位的可靠RST 保持高電平的時(shí)間至少為振蕩器啟動(dòng)時(shí)間通常為幾個(gè)毫秒再加上兩個(gè)機(jī)器周期復(fù)位后振蕩器以12 時(shí)鐘模式運(yùn)行當(dāng)已通過(guò)并行編程器設(shè)置為6 時(shí)鐘模式時(shí)除外。</p><p> 設(shè)計(jì)中的注意事項(xiàng),當(dāng)空閑模式被硬件復(fù)位所中止
17、時(shí)器件在內(nèi)部復(fù)位之前從停止處恢復(fù)程序正常運(yùn)行時(shí)間為2 個(gè)機(jī)器周期這段時(shí)間內(nèi)片內(nèi)硬件禁止對(duì)內(nèi)部RAM 的訪問(wèn)但對(duì)I/O 口的訪問(wèn)未被禁止當(dāng)Idle 模式被復(fù)位所中止時(shí)為了消除可能產(chǎn)生的誤寫(xiě)操作應(yīng)用Idle 模式指令后的指令不應(yīng)執(zhí)行寫(xiě)I/O 口或?qū)懲獠看鎯?chǔ)器操作。</p><p> 1.4 搶答器的應(yīng)用</p><p> 隨著我國(guó)經(jīng)濟(jì)和文化事業(yè)的發(fā)展,在很多公開(kāi)競(jìng)爭(zhēng)場(chǎng)合要求有公正的競(jìng)爭(zhēng)裁決
18、,諸如證券、股票交易及各種智力競(jìng)賽等,因此出現(xiàn)了搶答器。搶答器一般是由很多電路組成的,線路復(fù)雜,可靠性不高,功能也比較簡(jiǎn)單,特別是當(dāng)搶答路數(shù)很多時(shí),實(shí)現(xiàn)起來(lái)就更為困難。因此我們?cè)O(shè)計(jì)了以單片機(jī)為核心的新型智能的搶答器,在保留原始搶答器的基本功能的同時(shí)又增加了數(shù)碼管顯示電路實(shí)現(xiàn)了其它功能。搶答器又稱為第一信號(hào)鑒別器,其主要應(yīng)用于各種知識(shí)競(jìng)賽、文藝活動(dòng)等場(chǎng)合。</p><p> 1.5 單片機(jī)搶答器的意義</p
19、><p> 二十世紀(jì)跨越了三個(gè)“電”的時(shí)代,即電氣時(shí)代、電子時(shí)代和現(xiàn)已進(jìn)入的電腦時(shí)代。不過(guò),這種電腦,通常是指?jìng)€(gè)人計(jì)算機(jī),簡(jiǎn)稱PC機(jī)。它由主機(jī)、鍵盤(pán)、顯示器等組成。還有一類計(jì)算機(jī),大多數(shù)人卻不怎么熟悉。這種計(jì)算機(jī)就是把智能賦予各種機(jī)械的單片機(jī)(亦稱微控制器)。。各種產(chǎn)品一旦用上了單片機(jī),就能起到使產(chǎn)品升級(jí)換代的功效,常在產(chǎn)品名稱前冠以形容詞--“智能型”。在知識(shí)競(jìng)賽中,往往會(huì)用到搶答器。故此我們就選擇利用單片機(jī)編程
20、來(lái)設(shè)計(jì)搶答器,即使兩組的搶答時(shí)間相差幾微秒,也能輕松的分辨出哪一組(或哪個(gè)選手)先搶答到題。</p><p> 本系統(tǒng)采用單片機(jī)作為整個(gè)控制核心??刂葡到y(tǒng)的四個(gè)模塊為:顯示模塊、存儲(chǔ)模塊、語(yǔ)音模塊、搶答開(kāi)關(guān)模塊。該系統(tǒng)通過(guò)開(kāi)關(guān)電路四個(gè)按鍵輸入搶答信號(hào),利用一個(gè)數(shù)碼管來(lái)完成顯示功能,用按鍵來(lái)讓選手進(jìn)行搶答,在數(shù)碼管上顯示哪一組先答題的,從而實(shí)現(xiàn)整個(gè)搶答過(guò)程。本文主要介紹了單片機(jī)搶答器設(shè)計(jì)及工作原理,以及它的實(shí)際用
21、途。系統(tǒng)工作原理本系統(tǒng)采用89C52單片機(jī)作為核心??刂葡到y(tǒng)的四個(gè)模塊分別為:存儲(chǔ)模塊、顯示模塊、語(yǔ)音模塊、搶答開(kāi)關(guān)模塊。該搶答器系統(tǒng)通過(guò)開(kāi)關(guān)電路四個(gè)按鍵輸入搶答信號(hào), 利用一個(gè)數(shù)碼管來(lái)完成顯示功能。工作時(shí),用按鍵通過(guò)開(kāi)關(guān)電路輸入各路的搶答信號(hào),經(jīng)單片機(jī)的處理, 輸出控制信號(hào),單片機(jī)控制的智能搶答器設(shè)計(jì)。</p><p> 第二章 搶答器硬件設(shè)計(jì)</p><p> 2.1 搶答器工作原
22、理</p><p> 搶答器是為智力競(jìng)賽參賽者答題時(shí)進(jìn)行搶答而設(shè)計(jì)的一種優(yōu)先判決器電路,廣泛應(yīng)用于各種知識(shí)競(jìng)賽、文娛活動(dòng)等場(chǎng)合。</p><p> 在搶答競(jìng)賽或呼叫時(shí),有多個(gè)信號(hào)同時(shí)或不同時(shí)送入主電路中,搶答器內(nèi)部的寄存器工作,并識(shí)別、記錄第一個(gè)號(hào)碼,同時(shí)內(nèi)部的定時(shí)器開(kāi)始工作,記錄有關(guān)時(shí)間并產(chǎn)生超時(shí)信號(hào)。在整個(gè)搶答器工作過(guò)程中,顯示電路、聲音電路等還要根據(jù)現(xiàn)場(chǎng)的實(shí)際情況向外電路輸出相應(yīng)
23、信號(hào)。</p><p><b> 2.2 單片機(jī)選擇</b></p><p> 根據(jù)初步設(shè)計(jì)方案的分析,設(shè)計(jì)這樣一個(gè)簡(jiǎn)單的應(yīng)用系統(tǒng),以AT89C51單片機(jī)為控制核心,采用模塊化的設(shè)計(jì)方案,可以實(shí)現(xiàn)4位數(shù)字搶答器的各項(xiàng)基本功能,例如定時(shí)搶答、顯示搶答選手號(hào)碼等等。</p><p> AT89C51單片機(jī)是采用高性能的靜態(tài)80C51 設(shè)計(jì)由先
24、進(jìn)CMOS 工藝制造并帶有非易失性Flash 程序存儲(chǔ)器,全部支持12 時(shí)鐘和6 時(shí)鐘操作。P89C51X2 和P89C52X2/54X2/58X2 分別包含128 字節(jié)和256 字節(jié)RAM 32 條I/O 口線3 個(gè)16 位定時(shí)/計(jì)數(shù)器6 輸入4 優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)1 個(gè)串行I/O 口可用于多機(jī)通信I/O 擴(kuò)展或全雙工UART以及片內(nèi)振蕩器和時(shí)鐘電路。</p><p> 此外由于器件采用了靜態(tài)設(shè)計(jì)可提供很寬的
25、操作頻率范圍頻率可降至0 可實(shí)現(xiàn)兩個(gè)由軟件選擇的節(jié)電模式空閑模式和掉電模式空閑模式凍結(jié)CPU 但RAM 定時(shí)器串口和中斷系統(tǒng)仍然工作。掉電模式保存RAM 的內(nèi)容但是凍結(jié)振蕩器導(dǎo)致所有其它的片內(nèi)功能停止工作由于設(shè)計(jì)是靜態(tài)的時(shí)鐘可停止而不會(huì)丟失用戶數(shù)據(jù)運(yùn)行可從時(shí)鐘停止處恢復(fù)。</p><p><b> 2.3 按鍵設(shè)計(jì)</b></p><p> 4個(gè)搶答按鍵分別接入單
26、片機(jī)的P3.0~P3.3端口,單片機(jī)通過(guò)讀取P3.0~P3.3的值來(lái)判斷當(dāng)前輸入的是4個(gè)搶答按鍵中的哪一個(gè)。</p><p><b> 圖2-1 按鍵電路</b></p><p> 按鍵的觸點(diǎn)在閉合和斷開(kāi)時(shí)均會(huì)產(chǎn)生抖動(dòng),這時(shí)觸點(diǎn)的邏輯電平是不穩(wěn)定的,如不妥善處理,將會(huì)引起按鍵命令的錯(cuò)誤執(zhí)行或重復(fù)執(zhí)行?,F(xiàn)在一般均用軟件延時(shí)的方法來(lái)避開(kāi)抖動(dòng)階段,這一延時(shí)過(guò)程一般大于5
27、ms,例如取10-20ms。如果監(jiān)控程序中的讀鍵操作安排在主程序(后臺(tái)程序)或鍵盤(pán)中斷(外部中斷)子程序中,則該延時(shí)子程序便可直接插入讀鍵過(guò)程中。</p><p> 2.4 時(shí)鐘電路設(shè)計(jì)</p><p> 單片機(jī)必須在時(shí)鐘驅(qū)動(dòng)下才能正常工作,在單片機(jī)內(nèi)部有一個(gè)時(shí)鐘振蕩電路,只需要外部接一個(gè)振蕩源就能產(chǎn)生一定的時(shí)鐘信號(hào)送到單片機(jī)的各個(gè)單元,決定單片機(jī)的工作速度。電路如圖2-2所示。<
28、;/p><p><b> 圖2-2 時(shí)鐘電路</b></p><p> 一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時(shí)鐘信號(hào),其振蕩頻率主要由石英晶振的頻率確定。電路中兩個(gè)電容 C1,C2的作用有兩個(gè):一是幫助振蕩器起振;二是對(duì)振蕩器的頻率進(jìn)行微調(diào)。C1,C2的典型值為20PF。</p>&
29、lt;p> 單片機(jī)在工作時(shí),由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時(shí)鐘信號(hào)的周期稱為時(shí)鐘周期。其大小是時(shí)鐘信號(hào)頻率的倒數(shù),常用fosc表示。圖中時(shí)鐘頻率為12MHz,即fosc=12MHz,則時(shí)鐘周期為1/12µs。</p><p> 2.5 復(fù)位電路設(shè)計(jì)</p><p> 單片機(jī)第9引腳RST為復(fù)位端,只要在復(fù)位端保持兩周期的高電平,就可實(shí)現(xiàn)復(fù)位。電
30、路如圖2-3。</p><p><b> 圖2-3 復(fù)位電路</b></p><p> 圖2-3中由按鍵S以及電容10PF,電阻10K構(gòu)成復(fù)位電路。由于單片機(jī)是高電平復(fù)位,所以當(dāng)S按下后,丹皮及進(jìn)入復(fù)位狀態(tài)。當(dāng)上電后,由于電容的緩慢充電,單片機(jī)9腳電壓逐步由高轉(zhuǎn)向低,經(jīng)過(guò)一段時(shí)間,單片機(jī)的9腳穩(wěn)定在低電平狀態(tài),此時(shí)單片機(jī)復(fù)位完畢,單片機(jī)各狀態(tài)恢復(fù)到初始狀態(tài)。當(dāng)上電
31、后,由于電容的緩慢充電,單片機(jī)的9腳電壓逐步由高向低轉(zhuǎn)化,經(jīng)過(guò)一段時(shí)間后,單片機(jī)的9腳處于穩(wěn)定的低電平狀態(tài),此時(shí)單片機(jī)上電復(fù)位完畢,系統(tǒng)程序從0000H開(kāi)始執(zhí)行。</p><p> 值得注意的是,在設(shè)計(jì)當(dāng)中使用到了硬件復(fù)位和軟件復(fù)位兩種功能,由上面的硬件復(fù)位后的各狀態(tài)可知寄存器及存儲(chǔ)器的值都恢復(fù)到了初始值,而前面的功能介紹中提到了倒計(jì)時(shí)時(shí)間的記憶功能,該功能的實(shí)現(xiàn)的前提條件就是不能對(duì)單片機(jī)進(jìn)行硬件復(fù)位,所以設(shè)定
32、了軟復(fù)位功能。軟復(fù)位實(shí)際上就是當(dāng)程序執(zhí)行完畢之后,將程序指針通過(guò)一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到程序執(zhí)行的起始地址。</p><p><b> 2.6 顯示設(shè)計(jì)</b></p><p> 顯示功能與硬件關(guān)系極大,當(dāng)硬件固定后,如何在不引起操作者誤解的前提下提供盡可能豐富的信息,全靠軟件來(lái)解決。顯示電路使用七段數(shù)碼管,共陰極接法,高電平亮。電路如圖2-4。</p>
33、<p> 圖2-4 數(shù)碼管顯示電路</p><p><b> 2.8 系統(tǒng)復(fù)位</b></p><p> 使CPU進(jìn)入初始狀態(tài),從0000H地址開(kāi)始執(zhí)行程序的過(guò)程叫系統(tǒng)復(fù)位。從實(shí)現(xiàn)系統(tǒng)復(fù)位的方法來(lái)看,系統(tǒng)復(fù)位可分為硬件復(fù)位和軟件復(fù)位。硬件復(fù)位必須通過(guò)CPU外部的硬件電路給CPU的RESET端加上足夠時(shí)間的高電位才能實(shí)現(xiàn)。上電復(fù)位,人工按鈕復(fù)位和硬件
34、看門(mén)狗復(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地址開(kāi)始執(zhí)行。對(duì)各專用寄存器的復(fù)位操作是容易的,也沒(méi)有必要完全模擬,可根據(jù)實(shí)際需要去主程序初始化過(guò)程中完成。而對(duì)中斷激活標(biāo)志的清除工作常被遺忘,因?yàn)樗鼪](méi)有明確
35、的位地址可供編程。有的編程人員用020000(LJMP 0000H)作為軟件陷阱,認(rèn)為直接轉(zhuǎn)向0000H地址就完成了軟件復(fù)位,就是這類錯(cuò)誤的典型代表。軟件復(fù)位是使用軟件陷阱和軟件看門(mén)狗后必須進(jìn)行的工作,這時(shí)程序出錯(cuò)完全有可能發(fā)生在中斷子程序中,中斷激活標(biāo)志已置位,它將阻止同級(jí)中斷響應(yīng)。由于軟件看門(mén)是高級(jí)中斷,它將阻</p><p> 在所有的指令中,只有RETI指令能夠清除中斷激活標(biāo)志。出錯(cuò)處理程序ERR主要完
36、成這一功能,其他的善后工作交由復(fù)位后的系統(tǒng)去完成。</p><p> 程序一般先關(guān)中斷,以便后續(xù)處理能順利進(jìn)行,然后用兩個(gè)RETI指令代替兩個(gè)LJMP指令,從而清除了兩級(jí)中斷激活標(biāo)志。有相應(yīng)軟件陷阱捕捉來(lái)的程序可能沒(méi)有全部激活兩個(gè)標(biāo)志,這也無(wú)妨。</p><p> 第三章 系統(tǒng)軟件設(shè)計(jì)及調(diào)試</p><p><b> 3.1 設(shè)計(jì)要求</b&g
37、t;</p><p> 要求制作一個(gè)搶答器,四個(gè)選手進(jìn)行搶答,用四個(gè)按鍵代表四個(gè)選手,開(kāi)始時(shí)從9開(kāi)始倒計(jì)時(shí)到0開(kāi)始搶答,間斷時(shí)間為1S,倒數(shù)到0時(shí)才可開(kāi)始按鍵進(jìn)行搶答,顯示最先按下按鍵數(shù)字,如還沒(méi)有倒計(jì)時(shí)完畢就開(kāi)始搶答按鍵,則閃爍搶答按鍵數(shù)字,按下復(fù)位鍵重新開(kāi)始計(jì)時(shí)。</p><p> 3.2系統(tǒng)的主要功能模塊</p><p> 本系統(tǒng)是借用單片機(jī)采用模塊化設(shè)
38、計(jì)的4路搶答器,包括4路搶答按紐、計(jì)時(shí)顯示等(根據(jù)需要可另設(shè)或多設(shè)相關(guān)功能)、各種相關(guān)顯示調(diào)控功能等(根據(jù)需要也可另設(shè)或多設(shè)相關(guān)功能)。</p><p> 系統(tǒng)的主要功能模塊如圖3-1。</p><p> 圖3-1 系統(tǒng)功能模塊</p><p> 本系統(tǒng)采用模塊化設(shè)計(jì)的4路搶答器,在搶答比賽中廣泛應(yīng)用,各組分別有一個(gè)搶答按鈕。一共有4個(gè)按鍵輸入,分別對(duì)應(yīng)4路選
39、手的搶答按鍵。</p><p> 單片機(jī)是整個(gè)搶答器的核心,內(nèi)部電路設(shè)計(jì)用匯編語(yǔ)言編寫(xiě)。它完成了時(shí)間參數(shù)的設(shè)定,搶按號(hào)碼的譯碼,保存,顯示,輸出,搶按及答題倒計(jì)時(shí)功能等。</p><p> 本設(shè)計(jì)中,有一個(gè)共陰的數(shù)碼管。按下復(fù)位鍵(RESET),后開(kāi)始倒計(jì)時(shí)。開(kāi)始時(shí)從9開(kāi)始倒計(jì)時(shí)到0開(kāi)始搶答,間斷時(shí)間為1S,倒數(shù)到0時(shí)才可開(kāi)始按鍵進(jìn)行搶答,顯示最先按下按鍵數(shù)字,如還沒(méi)有倒計(jì)時(shí)完畢就開(kāi)始
40、搶答按鍵,則閃爍搶答按鍵數(shù)字,按下復(fù)位鍵重新開(kāi)始計(jì)時(shí)。</p><p><b> 3.3 程序流程圖</b></p><p> 在搶答競(jìng)賽或呼叫時(shí),有多個(gè)信號(hào)同時(shí)或不同時(shí)送入主電路中,搶答器內(nèi)部的寄存器工作,并識(shí)別、記錄第一個(gè)號(hào)碼,同時(shí)內(nèi)部的定時(shí)器開(kāi)始工作,記錄有關(guān)時(shí)間并產(chǎn)生超時(shí)信號(hào)。在整個(gè)搶答器工作過(guò)程中,顯示電路還要根據(jù)現(xiàn)場(chǎng)的實(shí)際情況向外電路輸出相應(yīng)信號(hào)。&l
41、t;/p><p> 在本設(shè)計(jì)中包括了以下主要的程序:主程序,查詢程序,非法搶答程序,倒計(jì)時(shí)程序,正常搶答處理程序,犯規(guī)處理程序,顯示程序。主流程圖如3-2。</p><p> 圖3-2 程序流程圖</p><p><b> 3.4 調(diào)試</b></p><p> 將R3到R9及共陰數(shù)碼管焊好,再將集成電路插座焊上,這
42、樣這部分電路就制作完成了。接下來(lái)對(duì)這部分電路進(jìn)行測(cè)試,接上電源,數(shù)碼管全滅,用一導(dǎo)線的一端與地線相連,另一端依次碰集成電路插座的20腳到26腳,一邊碰一邊查看數(shù)碼管,正常時(shí)可以看到每碰一個(gè)腳,對(duì)應(yīng)一段數(shù)碼管燈亮。若不亮,仔細(xì)查看與該腳相連的電阻及數(shù)碼管是否虛焊。</p><p> 將燒錄好程序的AT89C2051芯片插上(我們提供的芯片中已燒錄好程序),注意方向不要插錯(cuò)(反插容易損壞芯片),芯片上有一個(gè)小三角的
43、標(biāo)記處為1腳。只要元件焊接無(wú)誤,按以上制作流程操作,裝好后就可以正常工作。制作完成的4路搶答器見(jiàn)。所有元件全部制作完成后,接上電源,電源指示燈亮,按動(dòng)4路搶答開(kāi)關(guān)中的任何一路,音樂(lè)響起,同時(shí)數(shù)碼管顯示相應(yīng)的搶答開(kāi)關(guān)號(hào)。搶答成功后,按下復(fù)位鍵,系統(tǒng)返回?fù)尨馉顟B(tài),若不按鍵,則30秒后自動(dòng)返回?fù)尨馉顟B(tài)。</p><p><b> 設(shè)計(jì)總結(jié)</b></p><p> 本次
44、課程設(shè)計(jì)結(jié)束了,在這次的課程設(shè)計(jì)中不僅檢驗(yàn)了我所學(xué)習(xí)的知識(shí),也培養(yǎng)了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。通過(guò)這次課程設(shè)計(jì),我對(duì)單片機(jī)的知識(shí)有了進(jìn)一步的學(xué)習(xí)。通過(guò)這次設(shè)計(jì),本人在多方面都有所提高。通過(guò)這次設(shè)計(jì),綜合運(yùn)用本專業(yè)所學(xué)課程的理論,設(shè)計(jì)工作的實(shí)際訓(xùn)練從而培養(yǎng)和提高學(xué)生獨(dú)立工作能力,鞏固所學(xué)的內(nèi)容,同時(shí)各科相關(guān)的課程都有了全面的復(fù)習(xí),獨(dú)立思考的能力也有了提高。在設(shè)計(jì)過(guò)程中遇到了很多問(wèn)題,我都沒(méi)有放棄,不明白的
45、地方就及時(shí)查資料,問(wèn)同學(xué)或是找老師幫忙。經(jīng)過(guò)查閱有關(guān)方面的書(shū)籍,獲取了很多專業(yè)方面的知識(shí),拓展了視野,增加了我實(shí)際動(dòng)手能力。</p><p> 在此感謝我們的老師.,老師嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣;老師循循善誘的教導(dǎo)和不拘一格的思路給予我無(wú)盡的啟迪;這次設(shè)計(jì)的每個(gè)實(shí)驗(yàn)細(xì)節(jié)和每個(gè)結(jié)果,都離不開(kāi)老師您的細(xì)心指導(dǎo)。</p><p><b> 參考文獻(xiàn)<
46、/b></p><p> [1] 曾峰,鞏海洪主編《印刷電路板(PCB)設(shè)計(jì)與制作》電子工業(yè)出版社 2005年8月</p><p> [2] 梅海鳳,王艷秋主編《單片機(jī)原理與接口技術(shù)》 清華大學(xué)出版社2004年5月</p><p> [3] 李學(xué)禮主編《基于Produs的851單片機(jī)實(shí)力教程》 北京電子工業(yè)出版社 2008年</p><
47、;p> [4] 梁炳東主編《單片機(jī)原理與應(yīng)用》 北京人民郵電出版社 2009年</p><p><b> 附錄</b></p><p> 附錄1 搶答器硬件電路圖</p><p><b> 附錄2 系統(tǒng)程序</b></p><p><b> ORG 0000H</b&
48、gt;</p><p><b> AJMP MAIN</b></p><p><b> ORG 0100H</b></p><p> MAIN: MOV DPTR,#STB</p><p><b> MOV R1,#9</b></p><p>&
49、lt;b> MOV A,R1</b></p><p> MOV R0,#10</p><p> L4: MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p><p><b> LCALL DEL</b></p><p
50、><b> DEC R1</b></p><p><b> MOV A,R1</b></p><p> DJNZ R0,L4</p><p><b> LJMP L5</b></p><p> L5: JNB P1.0,L</p><p>
51、; JNB P1.1,L1</p><p> JNB P1.2,L2</p><p> JNB P1.3,L3</p><p><b> LJMP L5</b></p><p> L: MOV A,#1</p><p> MOVC A,@A+DPTR</p><p&
52、gt;<b> MOV P0,A</b></p><p><b> LJMP L</b></p><p><b> RET</b></p><p> L1: MOV A,#2</p><p> MOVC A,@A+DPTR</p><p>&l
53、t;b> MOV P0,A</b></p><p><b> LJMP L1</b></p><p><b> RET</b></p><p> L2: MOV A,#3</p><p> MOVC A,@A+DPTR</p><p><b&
54、gt; MOV P0,A</b></p><p><b> LJMP L2</b></p><p><b> RET</b></p><p> L3: MOV A,#4</p><p> MOVC A,@A+DPTR</p><p><b>
55、 MOV P0,A</b></p><p><b> LJMP L3</b></p><p><b> RET</b></p><p> DP: MOV A,#1</p><p> MOVC A,@A+DPTR</p><p><b> MOV
56、 P0,A</b></p><p> LCALL DELT</p><p> MOV A,#80H</p><p> MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p><p> LCALL DELT</p><p&g
57、t;<b> LJMP DP</b></p><p><b> RET</b></p><p> DP1: MOV A,#2</p><p> MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p><p>
58、 LCALL DELT</p><p> MOV A,#80H</p><p> MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p><p> LCALL DELT</p><p><b> LJMP DP1</b></p
59、><p><b> RET</b></p><p> DP2: MOV A,#3</p><p> MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p><p> LCALL DELT</p><p> MO
60、V A,#80H</p><p> MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p><p> LCALL DELT</p><p><b> LJMP DP2</b></p><p><b> RET</b&
61、gt;</p><p> DP3: MOV A,#4</p><p> MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p><p> LCALL DELT</p><p> MOV A,#80H</p><p> MOVC
62、A,@A+DPTR</p><p><b> MOV P0,A</b></p><p> LCALL DELT</p><p><b> LJMP DP3</b></p><p><b> RET</b></p><p> DEL: MOV R
63、5,#8</p><p> DEL0: MOV R6,#200</p><p> JNB P1.0,DP</p><p> JNB P1.1,DP1</p><p> JNB P1.2,DP2</p><p> JNB P1.3,DP3</p><p> DEL1:MOV R7,#2
64、48</p><p> DEL2: DJNZ R7,DEL2</p><p> DJNZ R6,DEL1</p><p> DJNZ R5,DEL0</p><p><b> RET</b></p><p> DELT: MOV R5,#5</p><p> D
65、ELT0: MOV R6,#200</p><p> DELT1: MOV R7,#248</p><p> DELT2: DJNZ R7,DELT2</p><p> DJNZ R6,DELT1</p><p> DJNZ R5,DELT0</p><p><b> RET</b>&l
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 四路搶答器單片機(jī)課程設(shè)計(jì)
- 課程設(shè)計(jì)---單片機(jī)四路搶答器的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)搶答器(16路搶答器)
- 單片機(jī)課程設(shè)計(jì)-- 8路搶答器設(shè)計(jì)
- 單片機(jī)搶答器課程設(shè)計(jì) --搶答器
- 基于單片機(jī)的四路搶答器的課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-四路搶答器的設(shè)計(jì)與實(shí)現(xiàn)
- 課程設(shè)計(jì)---單片機(jī)八路搶答器設(shè)計(jì)
- 單片機(jī)八路搶答器課程設(shè)計(jì)
- 單片機(jī)搶答器課程設(shè)計(jì)
- 單片機(jī)搶答器課程設(shè)計(jì)
- 單片機(jī)搶答器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---搶答器
- 搶答器 單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---八路搶答器
- 單片機(jī)八路搶答器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)八路搶答器設(shè)計(jì)
- 智力搶答器單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-- 基于單片機(jī)的搶答器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)多路搶答器
評(píng)論
0/150
提交評(píng)論