版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 單片機搶答器設(shè)計與實現(xiàn)</p><p><b> 摘 要</b></p><p> 此次設(shè)計提出了用AT89C51單片機為核心控制元件,設(shè)計一個簡易的搶答器, 本方案以AT89C51單片機作為主控核心,與MAX232、發(fā)光二極管、數(shù)碼管、蜂鳴器等構(gòu)成硬件操作,再利用C語言編程,來控制搶答器的功能實現(xiàn)。本設(shè)計的系統(tǒng)實用性強、判斷精確、操作簡
2、單、擴展功能強。其實在以往企業(yè)或?qū)W校等舉行自己搞的知識競賽中,都是主持人讀題,觀眾選手得安靜仔細聽題目,有條件的花上萬元買個電子搶答器,算是給知識競賽賽場添彩了。大多依靠主持人發(fā)揮水平,選手和觀眾渴望的類似電視臺的節(jié)目效果難以實現(xiàn)。與電視播放的那些競賽場面對照——選手坐在顯示器前答題,觀眾看著大屏幕顯示題目和答案,大屏幕有搶答顯示計分排行等,絢麗的畫面有節(jié)奏的音樂——差距很大,但這些都不是電視臺的專利,利用競賽軟件,運用互動式多媒體技術(shù)
3、,將競賽題目制作成演示程序。通過投影儀大屏幕或電視墻在現(xiàn)場播放,給觀眾強烈的視聽感受,凝聚競賽現(xiàn)場氣氛。通過選手面前的顯示器,為參賽隊員提供最直接的看題效果,保證隊員對題目的正確理解。而我們設(shè)計的搶答器節(jié)省的不小的開支,還能直觀公正的看清哪位選手先搶答到題并有主持人來往下讀題目。它的功能實現(xiàn)是有主持人按</p><p> 關(guān)鍵字:STC89C52單片機、動態(tài)顯示、中斷</p><p>&
4、lt;b> 目 錄</b></p><p> 第一章 緒論 ………………………………………………………………………………1</p><p> 1.1 單片機搶答器的背景 ………………………………………………………………1</p><p> 1.2 單片機搶答器的意義 ………………………………………………………………1</p
5、><p> 1.3 搶答器的應(yīng)用 ………………………………………………………………………1</p><p> 第二章 整體設(shè)計方案 ……………………………………………………………………2</p><p> 2.1主要芯片的介紹8</p><p> 2.3 MAX721912</p><p> 2.3.1 MA
6、X7219引腳說明12</p><p> 2.3.2 基本的工作方法13</p><p> 2.3.3 MAX7219初始化14</p><p> 2.3.4 部分程序功能介紹14</p><p> 2.3 單片機的存儲器配置 ………………………………………………………………6</p><p> 第
7、三章 硬件設(shè)計 …………………………………………………………………………8</p><p> 3.1 最小系統(tǒng)的設(shè)計 ……………………………………………………………………8</p><p> 3.2 數(shù)碼管顯示電路 ……………………………………………………………………8</p><p> 3.3按鍵控制電路 …………………………………………………………………
8、……9</p><p> 第四章 軟件設(shè)計 …………………………………………………………………………11</p><p> 4.1 搶答器系統(tǒng)軟件設(shè)計的流程圖 ……………………………………………………11</p><p> 4.2 主程序 ………………………………………………………………………………12</p><p> 4.3 中斷
9、程序 ……………………………………………………………………………15</p><p> 第五章 系統(tǒng)的仿真………………………………………………………………………18</p><p> 5.1 protenus軟件的介紹及使用 ………………………………………………………18</p><p> 5.2 搶答器protenus軟件的仿真 ……………………………
10、………………………22</p><p> 第六章 調(diào)試功能說明……………………………………………………………………23</p><p> 6.1 系統(tǒng)的調(diào)試 …………………………………………………………………………23</p><p> 6.2 軟件調(diào)試問題及解決 ………………………………………………………………23</p><p>
11、 6.3 焊接的問題及解決 …………………………………………………………………24</p><p> 6.4 單片機的通信 ………………………………………………………………………25</p><p> 結(jié)論 …………………………………………………………………………………………27</p><p> 工作展望 …………………………………………………………………
12、……………………28</p><p> 參考文獻 ……………………………………………………………………………………29</p><p> 致謝……………………………………………………………………………………………30</p><p><b> 第一章 緒論</b></p><p> 1.1 單片機搶答器的背景&l
13、t;/p><p> 二十世紀(jì)跨越了三個“電”的時代,即電氣時代、電子時代和現(xiàn)已進入的電腦時代。不過,這種電腦,通常是指個人計算機,簡稱PC機。它由主機、鍵盤、顯示器等組成。還有一類計算機,大多數(shù)人卻不怎么熟悉。這種計算機就是把智能賦予各種機械的單片機(亦稱微控制器)。顧名思義,這種計算機的最小系統(tǒng)只用了一片集成電路,即可進行簡單運算和控制。因為它體積小,通常都藏在被控機械的“肚子”里。它在整個裝置中,起著有如人類頭
14、腦的作用,它出了毛病,整個裝置就癱瘓了?,F(xiàn)在,這種單片機的使用領(lǐng)域已十分廣泛,如智能儀表、實時工控、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器等。各種產(chǎn)品一旦用上了單片機,就能起到使產(chǎn)品升級換代的功效,常在產(chǎn)品名稱前冠以形容詞——“智能型”,如智能型洗衣機等?,F(xiàn)在有些工廠的技術(shù)人員或其它業(yè)余電子開發(fā)者搞出來的某些產(chǎn)品,不是電路太復(fù)雜,就是功能太簡單且極易被仿制。究其原因,可能就卡在產(chǎn)品未使用單片機或其它可編程邏輯器件上。</p><
15、;p> 在知識競賽中,特別是做搶答題時,在搶答過程中,為了更確切的知道哪一組或哪一位選手先搶答到題,必須要有一個系統(tǒng)來完成這個任務(wù)。若在搶答中,只靠人的視覺(或者是聽覺)是很難判斷出哪一組(或哪一個選手)先搶答到題的。利用單片機編程來設(shè)計搶答器,可以使以上問題得以解決,即使兩組的搶答時間相差幾微秒,也能輕松的分辨出哪一組(或哪個選手)先搶答到題的。本文主要介紹了搶答器的工作原理及設(shè)計,以及它的實際用途。</p>&
16、lt;p> 1.2 單片機搶答器的意義</p><p> 本系統(tǒng)采用單片機作為整個控制核心。控制系統(tǒng)的四個模塊為:顯示模塊、存儲模塊、語音模塊、搶答開關(guān)模塊。該系統(tǒng)通過開關(guān)電路四個按鍵輸入搶答信號;利用一個數(shù)碼管來完成顯示功能;用按鍵來讓選手進行搶答,在數(shù)碼管上顯示哪一組先答題的,從而實現(xiàn)整個搶答過程。在知識比賽中, 特別是做搶答題目的時候, 在搶答過程中,為了知道哪一組或哪一位選手先答題,必須要設(shè)計
17、一個系統(tǒng)來完成這個任務(wù)。如果在搶答中,靠視覺是很難判斷出哪組先答題。利用單片機系統(tǒng)來設(shè)計搶答器,使以上問題得以解決,即使兩組的搶答時間相差幾微秒,也可分辨出哪組優(yōu)先答題。本文主要介紹了單片機搶答器設(shè)計及工作原理,以及它的實際用途。系統(tǒng)工作原理本系統(tǒng)采用89c52單片機作為核心。控制系統(tǒng)的四個模塊分別為:存儲模塊、顯示模塊、語音模塊、搶答開關(guān)模塊。該搶答器系統(tǒng)通過開關(guān)電路四個按鍵輸入搶答信號; 利用一個數(shù)碼管來完成顯示功能。工作時,用按鍵
18、通過開關(guān)電路輸入各路的搶答信號,經(jīng)單片機的處理, 輸出控制信號,單片機控制的智能搶答器設(shè)計。</p><p> 1.3 搶答器的應(yīng)用</p><p> 隨著我國經(jīng)濟和文化事業(yè)的發(fā)展,在很多公開競爭場合要求有公正的競爭裁決,諸如證券、股票交易及各種智力競賽等,因此出現(xiàn)了搶答器。搶答器一般是由很多電路組成的,線路復(fù)雜,可靠性不高,功能也比較簡單,特別是當(dāng)搶答路數(shù)很多時,實現(xiàn)起來就更為困難。
19、因此我們設(shè)計了以單片機為核心的新型智能的搶答器,在保留了原始搶答器的基本功能的同時又增加一系列的實用功能并簡化其電路結(jié)構(gòu)。搶答器又稱為第一信號鑒別器,其主要應(yīng)用于各種知識競賽、文藝活動等場合。傳統(tǒng)普通搶答器主要存在以下缺陷:</p><p> ?。ㄒ唬⒃谝淮螕尨疬^程中,當(dāng)出現(xiàn)超前違規(guī)搶答時,只能處理違規(guī)搶答信號,而對沒有違規(guī)的有效搶答信號不能進行處理,因而使該次搶答過程變?yōu)闊o效。</p><
20、p> ?。ǘ?dāng)有多個違規(guī)搶答時,普通搶答器或采用優(yōu)先編碼電路選擇其中一個,或利用搶答電路電子元件的“競爭”選擇其中一個。對于后者由于搶答電路制作完畢后電子元件被固定。各路搶答信號的“競爭”能力也被固定,因而本質(zhì)上也有優(yōu)先權(quán)。普通搶答器存在不公平性。</p><p> ?。ㄈ?、當(dāng)有多個違規(guī)搶答時,普通搶答器只能“抓住”其中一個而出現(xiàn)“漏洞”。</p><p> 第二章 整體設(shè)計
21、方案</p><p> 2.1 單片機的選擇 </p><p> 2.1.1 什么是單片機</p><p> 單片機是指一個集成在一塊芯片上的完整計算機系統(tǒng)。盡管它的大部分功能集成在一塊小芯片上,但是它具有一個完整計算機所需要的大部分部件:CPU、內(nèi)存、內(nèi)部和外部總線系統(tǒng)。單片機是將中央處理器,隨機存儲器。只讀存儲器,定時器芯片和I/O接口電路集成于一個芯片
22、上的微控制器。</p><p> 單片機也被稱為微控制器(Microcontroler),是因為它最早被用在工業(yè)控制領(lǐng)域。單片機由芯片內(nèi)僅有CPU的專用處理器發(fā)展而來。最早的設(shè)計理念是通過將大量外圍設(shè)備和CPU集成在一個芯片中,使計算機系統(tǒng)更小,更容易集成進復(fù)雜的而對提及要求嚴格的控制設(shè)備當(dāng)中。INTEL的Z80是最早按照這種思想設(shè)計出的處理器,從此以后,單片機和專用處理器的發(fā)展便分道揚鑣。</p>
23、<p> 早期的單片機都是8位或4位的。其中最成功的是INTEL的8031,因為簡單可靠而性能不錯獲得了很大的好評。此后在8031上發(fā)展出了MCS51系列單片機系統(tǒng)。基于這一系統(tǒng)的單片機系統(tǒng)直到現(xiàn)在還在廣泛使用。隨著工業(yè)控制領(lǐng)域要求的提高,開始出現(xiàn)了16位單片機,但因為性價比不理想并未得到很廣泛的應(yīng)用。90年代后隨著消費電子產(chǎn)品大發(fā)展,單片機技術(shù)得到了巨大的提高。隨著INTEL i960系列特別是后來的ARM系列的廣泛應(yīng)
24、用,32位單片機迅速取代16位單片機的高端地位,并且進入主流市場。而傳統(tǒng)的8位單片機的性能也得到了飛速提高,處理能力比起80年代提高了數(shù)百倍。目前,高端的32位單片機主頻已經(jīng)超過300MHz,性能直追90年代中期的專用處理器,而普通的型號出廠價格跌落至1美元,最高端的型號也只有10美元。當(dāng)代單片機系統(tǒng)已經(jīng)不再只在裸機環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應(yīng)用在全系列的單片機上。而在作為掌上電腦和手機核心處理的高端單片機甚至可以
25、直接使用專用的Windows和Linux操作系統(tǒng)。</p><p> 單片機是靠程序的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨特的一些功能,這是別的器件需要費很大力氣才能做到的,有些則是花大力氣也很難做到的。一個不是很復(fù)雜的功能要是用美國50年代開發(fā)的74系列,或者60年代的CD4000系列這些純硬件來搞定的話,電路一定是一塊大PCB板!但是如果要是用美國70年代成功投放市場的系列單片機,結(jié)
26、果就會有天壤之別!只因為單片機的通過你編寫的程序可以實現(xiàn)高智能,高效率,以及高可靠性! </p><p> 目前單片機滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機上各種儀表的控制,計算機的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄象機、攝象機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開
27、單片機。更不用說自動控制領(lǐng)域的機器人、智能儀表、醫(yī)療器械了。因此,單片機的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計算機應(yīng)用與智能化控制的科學(xué)家、工程師。 </p><p> 2.1.2 單片機的應(yīng)用</p><p> 單片機廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分如下幾個范疇:</p><p> 1.在智能儀器儀表上
28、的應(yīng)用</p><p> 單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優(yōu)點,廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。采用單片機控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強大。例如精密的測量設(shè)備(功率計,示波器,各種分析儀)。</p><
29、p> 2.在工業(yè)控制中的應(yīng)用</p><p> 用單片機可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報警系統(tǒng),與計算機聯(lián)網(wǎng)構(gòu)成二級控制系統(tǒng)等。</p><p> 3.在家用電器中的應(yīng)用</p><p> 可以這樣說,現(xiàn)在的家用電器基本上都采用了單片機控制,從電飯褒、洗衣機、電冰箱、空調(diào)機、彩電、其他音響視頻
30、器材、再到電子秤量設(shè)備,五花八門,無所不在。</p><p> 4.在計算機網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用</p><p> 現(xiàn)代的單片機普遍具備通信接口,可以很方便地與計算機進行數(shù)據(jù)通信,為在計算機網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實現(xiàn)了單片機智能控制,從手機,電話機、小型程控交換機、樓宇自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動電話,集群移
31、動通信,無線電對講機等。</p><p> 5.單片機在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用</p><p> 單片機在醫(yī)用設(shè)備中的用途亦相當(dāng)廣泛,例如醫(yī)用呼吸機,各種分析儀,監(jiān)護儀,超聲診斷設(shè)備及病床呼叫系統(tǒng)等等。</p><p> 此外,單片機在工商,金融,科研、教育,國防航空航天等領(lǐng)域都有著十分廣泛的用途。</p><p> 2.1.3 如何選
32、擇單片機</p><p> ATMEL公司的89C52單片機,是增強型RISC內(nèi)載Flash的單片機,芯片上的Flash存儲器附在用戶的產(chǎn)品中,可隨時編程,再編程,使用戶的產(chǎn)品設(shè)計容易,更新?lián)Q代方便。89C52單片機采用增強的RISC結(jié)構(gòu),使其具有高速處理能力,在一個時鐘周期內(nèi)可執(zhí)行復(fù)雜的指令,每MHz可實現(xiàn)1MIPS的處理能力。89C52單片機工作電壓為2.7~6.0V,可以實現(xiàn)耗電最優(yōu)化。89C52的單片機
33、廣泛應(yīng)用于計算機外部設(shè)備,工業(yè)實時控制,儀器儀表,通訊設(shè)備,家用電器,宇航設(shè)備等各個領(lǐng)域.</p><p> 由于單片機的種類很多,在選擇單片機時要依據(jù)實際設(shè)計要求選擇合適的單片機。例如當(dāng)設(shè)計僅僅需要一個單片機定時器那么選擇89C1051或89C2051即可,而不選擇89C52,因為后者的價格較高一些。當(dāng)然若程序和數(shù)據(jù)區(qū)的要求較高那么選擇的單片機還要滿足程序空間的要求。</p><p>
34、 下面我們來比較89C51和89C52:</p><p> 表2-1-1 51和52的比較</p><p> 在本課題中,我們選用現(xiàn)在較為流行的52系列單片機,即選用ATMEL公司的STC89C52。</p><p> 2.2 單片機的基本結(jié)構(gòu)</p><p> 2.2.1 單片機的引腳分布及功能</p><p
35、> MCS-52的引腳說明:</p><p> MCS-52系列單片機中的8032、8052及8752均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對這些引腳的功能加以說明:</p><p> 圖2-2-1 STC89C52的引腳圖</p
36、><p> Pin9:RESET/Vpd復(fù)位信號復(fù)用腳,當(dāng)8052通電,時鐘電路開始工作,在RESET引腳上出現(xiàn)24個時鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計數(shù)器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫入07H,其它專用寄存器被清“0”。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開始執(zhí)行程序。然而,初始復(fù)位不改變RAM(包括工作寄存器R0-R7)的狀態(tài),8052的初始
37、態(tài)。</p><p> 8052的復(fù)位方式可以是自動復(fù)位,也可以是手動復(fù)位,見下圖4。此外,RESET/Vpd還是一復(fù)用腳,Vcc掉電其間,此腳可接上備用電源,以保證單片機內(nèi)部RAM的數(shù)據(jù)不丟失。</p><p> 圖2-2-2復(fù)位電路和晶振電路圖</p><p> 1、8位微處理器和控制器</p><p> 2、內(nèi)部含有4KB的程序
38、ROM。</p><p> 3、2個16位的計數(shù)/定時器。</p><p><b> 4、內(nèi)部時鐘振蕩器</b></p><p> 5、全雙工方式的串行接口(UART)種尋址方式。</p><p> 6、最高時鐘振蕩頻率可達12MHZ,大部分指令執(zhí)行時間為1µs,乘、除指令為4µs。</
39、p><p> 2.2 信號引腳介紹:</p><p><b> 1.輸入/輸出口線</b></p><p> 2.ALE地址鎖存控制信號</p><p> 3.在系統(tǒng)擴展時,ALE用于控制把 口輸出的底8位地址送入鎖存器鎖存起來,以實現(xiàn)低位地址和數(shù)據(jù)的分時傳送。此外由于ALE是以十二分之一晶振頻率的固定頻率
40、輸出的正脈沖,因此可作為外部時鐘或外部定時脈沖使用。</p><p> 4.外部程序存儲器讀選通信號</p><p> 5.在讀外部ROM時 有效(低電平),以實現(xiàn)外部ROM單元的讀操作</p><p> 6.訪問程序存儲器控制信號</p><p> 7.當(dāng)信號為低電平時,對ROM的讀操作限定在外部程序存儲器;而當(dāng) 信號為高電平時,則
41、對ROM的讀操作是從內(nèi)部程序存儲器開始,并可延續(xù)至外部程序存儲</p><p> 8.RST 復(fù)位信號</p><p> 當(dāng)輸入的復(fù)位信號延續(xù)2個機器周期以上高電平時即為有效,用以完成單片機的復(fù)位操作。</p><p> 9.XTAL1和XTAL2外接晶體引線端</p><p> 當(dāng)使用芯片內(nèi)部時鐘時,此二引線端用于外接石英晶體和微調(diào)
42、電容;當(dāng)使用外部時鐘時,用于接外部時鐘脈沖信號。</p><p><b> 10.VSS地線</b></p><p> 11.VCC+5V 電源</p><p> 2.3 單片機的存儲器配置</p><p><b> ?。╞)</b></p><p> 圖2-3-1
43、 單片機的內(nèi)部存儲器配置</p><p> 從用戶的角度存儲器分3個邏輯地址空間:</p><p> 1. 片內(nèi)外統(tǒng)一編址的64KB程序存儲器地址空間0000H~FFFFH即(a)圖;</p><p> 2. 256B的片內(nèi)數(shù)據(jù)存儲器地址空間00H~FFH(包括低128B的內(nèi)部RAM地址00H~7FH和高128B的特殊功能寄存器地址空間)即(b)圖;</
44、p><p> 64KB的外部數(shù)據(jù)存儲器或擴展I/O接口地址空間0000H~FFFFH如(c)圖。</p><p><b> 畫出RAM的組成</b></p><p> RAM共有256個單元,按功能分為兩部分低128單元(單元地址00H~7FH)和高128單元(單元地址80H~FFH)。其中高128單元是供給專用寄存器使用,因這些寄存器的功能
45、已作為專門規(guī)定故此稱之為特殊功能寄存器SFR—11個SFR有位尋址作用,而且要說明低128單元是單片機的真正RAM存儲器。</p><p> 圖2-3-2 RAM的組成圖</p><p> 低128單元是單片機的真正RAM存儲器,按其用途劃分為三個區(qū)域:</p><p><b> ⒈通用寄存器區(qū) </b></p><
46、p> 通用寄存器為CPU提供了就近數(shù)據(jù)存儲的便利,有利于提高單片機的運算速度。此外,使用通用存儲器還能提高程序編制的靈活性,因此在單片機的應(yīng)用編程中應(yīng)充分利用這些寄存器,以簡化程序設(shè)計,提高程序運行速度。</p><p><b> ?、参粚ぶ穮^(qū)</b></p><p> 內(nèi)部RAM的20H~2FH單元,即可作為一般RAM單元使用,進行字節(jié)操作,也可以對單元中
47、每一位進行位操作,因此把該區(qū)稱之為位尋址區(qū)。</p><p><b> ⒊工作寄存區(qū)</b></p><p><b> 用戶存儲數(shù)據(jù)的。</b></p><p><b> 硬件設(shè)計</b></p><p> 3.1 單片機的最小系統(tǒng)</p><p&g
48、t; 52單片機的最小系統(tǒng)電路圖: </p><p> 圖3-1-1 單片機的最小系統(tǒng)圖</p><p><b> 說明: </b></p><p> ?、購?fù)位電路:由電容串聯(lián)電阻構(gòu)成,由圖并結(jié)合"電容電壓不能突變"的性質(zhì),可以知道,當(dāng)系統(tǒng)一上電,RST腳將會出現(xiàn)高電平,并且,這個高電平持續(xù)的時間由電路的RC值來決定.
49、典型的51單片機當(dāng)RST腳的高電平持續(xù)兩個機器周期以上就將復(fù)位,所以,適當(dāng)組合RC的取值就可以保證可靠的復(fù)位.一般教科書推薦C 取10u,R取8.2K.當(dāng)然也有其他取法的,原則就要讓RC組合可以在RST腳上產(chǎn)生不少于2個機周期的高電平;</p><p> ?、趶?fù)位輸入高電平有效,當(dāng)振蕩器工作是,RST引腳出現(xiàn)兩個機器周期以上的高電平,使單片機復(fù)位。此電路除具有上電復(fù)位功能外,若要復(fù)位只需按“RST”鍵,此電源Vc
50、c經(jīng)電阻分壓,在RST端產(chǎn)生一個復(fù)位高電平;</p><p> ③晶振電路:典型的晶振取11.0592MHz(因為可以準(zhǔn)確地得到9600波特率和19200波特率,用于有串口通訊的場合)/12MHz(產(chǎn)生精確的方波便于12分頻,方便定時操作); </p><p> ?、軉纹瑱C:一片AT89S51/52或其他51系列兼容單片機; </p><p> 注意:對于31腳
51、(EA/Vpp),當(dāng)接高電平時,單片機在復(fù)位后從內(nèi)部ROM的0000H開始執(zhí)行;當(dāng)接低電平時,復(fù)位后直接從外部ROM的0000H開始執(zhí)行; </p><p> ⑤電源部分:接+5伏特的電壓。</p><p> 3.2 數(shù)碼管顯示電路</p><p> LED顯示器,實現(xiàn)七段數(shù)碼管的顯示三位十六進制數(shù)。來進行倒計時,即來限制搶答的時間。</p>&
52、lt;p> 其中數(shù)碼管的顯示可以分為兩種:靜態(tài)顯示和動態(tài)顯示。靜態(tài)顯示的段選位和位選位均單獨連接,因此占用的I/O接口多,無法擴展多個數(shù)碼管,在這種采用這種方式,必須要給LED恒定的電壓,要求電壓一直保持,所以一般在LED和單片機之間加鎖存器,這種顯示方式亮度高,編程較簡單,結(jié)構(gòu)清晰,管理也較簡單,占用的CPU時間少。② 動態(tài)顯示驅(qū)動:數(shù)碼管動態(tài)顯示接口是單片機中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆
53、劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共端COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當(dāng)單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的COM端,就使各個數(shù)碼管輪流受控顯示,這
54、就是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度</p><p> 從電路上,按數(shù)碼管的接法不同又分為共陰和共陽兩種。圖1-1 是共陰和共陽極數(shù)碼管的內(nèi)部電路,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。其數(shù)碼管的外形如下圖所示:</p><p> 圖3-2 數(shù)碼管的
55、共陰和共陽極接法</p><p><b> 第四章 軟件設(shè)計</b></p><p> 4.1 搶答器流程圖</p><p> 流程圖是使用圖形表示算法的思路是一種極好的方法,不論采用何種程序設(shè)計方法,程序總體結(jié)構(gòu)確定后,一般以程序流程圖的形式對其進行描述??傮w框圖中的各個子模塊或各個子任務(wù)也應(yīng)該結(jié)合具體的教學(xué)模型和算法畫出較詳細的程序流
56、程圖,供后面編寫具體程序和閱讀程序使用。</p><p> 流程圖是由一些圖框和流程線組成的,其中圖框表示各種操作的類型,圖框中的文字和符號表示操作的內(nèi)容,流程線表示操作的先后次序。流程圖的基本結(jié)構(gòu)為順序結(jié)構(gòu),分支結(jié)構(gòu)(又稱選擇結(jié)構(gòu)),循環(huán)結(jié)構(gòu)。為便于識別,繪制流程圖的習(xí)慣做法是:</p><p> 方框表示:要執(zhí)行的處理(Process)</p><p>
57、平行四邊型表示:代表資料輸入(Input) </p><p> 不規(guī)則圖形代表資料輸出(Output)或報表輸出(Print) </p><p> 菱形表示:決策或判斷(例如:If...Then...Else)</p><p> 圖4-1-1搶答器主程序流程圖</p><p> 圖4-1-2 搶答器定時器中斷流程圖</p>
58、;<p> 圖4-1-3 外部中斷程序圖</p><p><b> 4.2 主程序</b></p><p> 我們組所設(shè)計的搶答器的程序采用的是C程序設(shè)計,C語言的顯著特點是用二進制來編寫程序,程序的各個部分除了必要的信息交流外彼此之間相互獨立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦? 便于使用、維護以及調(diào)試。C語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便
59、的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。雖然C語言也是強類型語言,但它的語法比較靈活,允許程序編寫者有較大的自由度。本次設(shè)計的主程序中包括時鐘設(shè)計程序,定時器中斷子程序,LED顯示程序以及按鍵控制子程序,程序設(shè)計如下:</p><p> #include<reg52.h></p><p> sbit k0=P1^0;</p><
60、;p> sbit k1=P1^1;</p><p> sbit k2=P1^2;</p><p> sbit k3=P1^3;</p><p> sbit d0=P1^4;</p><p> sbit d1=P1^5;</p><p> sbit d2=P1^6;</p><p&g
61、t; sbit d3=P1^7;</p><p> sbit B0=P3^7;</p><p> sbit l0=P2^0;</p><p> sbit l1=P2^2;</p><p> sbit l2=P2^3;</p><p> sbit l3=P2^4;</p><p>
62、sbit kz=P3^0;</p><p> unsigned char qiangdanum=0x3f;</p><p> unsigned char code table[]={0x3f,0xxx,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};</p><p> unsigned char ge=0,shi=0;<
63、/p><p> unsigned int num=0,time=0;</p><p> void display(); /*顯示函數(shù)*/</p><p> void delay(unsigned int);</p><p><b> main()</b></p&g
64、t;<p><b> {</b></p><p> TMOD=0X01; /*采用方式一,即十六位計數(shù)器*/</p><p> TH0=(65536-50000)/256; /*設(shè)置初始值*/</p><p> TL0=(655
65、36-50000)%256;</p><p><b> IT0=0;</b></p><p> EA=1;ET0=1; /*開啟總中斷源*/</p><p> EX0=1; /*啟動外部中斷0*/</p&
66、gt;<p><b> {while(1)</b></p><p> {display();</p><p><b> if(kz==0)</b></p><p> TR0=1; /*開啟定時器0中斷*/</p><
67、;p> if(num==20)</p><p><b> { num=0;</b></p><p><b> time++;</b></p><p> if(time==60) /*60秒的計時*/</p><p><b> t
68、ime=0;</b></p><p><b> } </b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void ext
69、er0() interrupt 0 /*外部中斷程序*/</p><p> {EA=0;l0=0;</p><p> if(k0==0) /*開關(guān)0按下*/</p><p> {d0=0;qiangdanum=1;B0=1; </p><p> }/*
70、 1號選手搶答成功,數(shù)碼管顯示1,蜂鳴器響,第1個二極管亮*/</p><p> if(k1==0) /*開關(guān)1按下*/</p><p> {d1=0;qiangdanum=2;B0=1; </p><p> }/* 2號選手搶答成功,數(shù)碼管顯示2,蜂鳴器響,第2個二極管亮*/</p><p>
71、 if(k2==0) /*開關(guān)2按下*/</p><p> {d2=0;qiangdanum=3;B0=1; </p><p> }/* 3號選手搶答成功,數(shù)碼管顯示3,蜂鳴器響,第3個二極管亮*/</p><p> if(k3==0) /*開關(guān)3按下*/</p><p&g
72、t; {d3=0;qiangdanum=4;B0=1;</p><p> }/* 4號選手搶答成功,數(shù)碼管顯示4,蜂鳴器響,第4個二極管亮*/</p><p><b> }</b></p><p> void time0() interrupt 1</p><p><b> {num++;</b
73、></p><p> TH0=(65536-50000)/256;</p><p> TL0=(65536-50000)%256;</p><p> } /*1秒定時函數(shù)*/</p><p> void delay(unsigned int z)<
74、;/p><p> {unsigned int x,y;</p><p> for(x=z;x>0;x--)</p><p> for(y=110;y>0;y--);</p><p> } /*延遲函數(shù)*/</p><p> v
75、oid display(void) </p><p> {shi=time/10;</p><p> ge=time%10;</p><p><b> P2=0xef;</b></p><p> P0=table[ge];</p><p><
76、;b> delay(5);</b></p><p><b> P2=0xf7;</b></p><p> P0=table[shi];</p><p><b> delay(5);</b></p><p><b> P2=0xFE;</b></
77、p><p> P0=table[qiangdanum];</p><p><b> delay(5);</b></p><p> } /*顯示函數(shù):來顯示0-60的計數(shù)*/</p><p><b> 4.3 中斷程序</b></p
78、><p> 4.3.1 什么是中斷</p><p> 中斷是指由于某種隨機事件的發(fā)生,計算機暫停現(xiàn)行的程序的運行,轉(zhuǎn)去執(zhí)行另一個程序,以處理發(fā)生的事件,處理完畢后又自動返回原來的程序繼續(xù)運行。</p><p> 有五種中斷源:外部中斷0、外部中斷1、定時器中斷0、定時器中斷1、串行中斷。它們的描述如下圖所示:</p><p> 表4-3-
79、1 五種中斷源的表示</p><p> 4.3.2 中斷所用到的寄存器</p><p> 介紹定時器/計數(shù)器中所介紹的寄存器:</p><p> ?。?)、定時器/計數(shù)器控制寄存器TCON</p><p> TCON的作用是控制定時器的啟動`停止,標(biāo)志定時器的溢出和中斷情況;</p><p> ?。?)、中斷允許
80、控制寄存器IE</p><p> 對中斷源的開放或屏蔽是由中斷寄存器IE控制的,地址為0A8H,即可以按字節(jié)尋址,也可以按位尋址。當(dāng)單片機復(fù)位時,IE被清零。</p><p> ?。?)、串行控制寄存器SCON</p><p> 定時/計數(shù)器的控制方法:在啟動定時/計數(shù)器工作之前CPU必須將一些命令(稱為控制字)寫入定時/計數(shù)器中,這個過程稱為定時/計數(shù)的初始化
81、。(定時/計數(shù)器的初始化通過定時/計數(shù)器的方式寄存器TMOD和控制寄存器TCON來完成。︱</p><p> ①定時/計數(shù)器方式寄存器TMOD</p><p> 定時器1 定時器0</p><p> 表4-3-2 選擇定時方式表</p><p> ?、谥袛喑绦虻木帉懙牟襟E:<
82、;/p><p> ?。?)、根據(jù)要求設(shè)置IE(中斷允許寄存器)的對應(yīng)位EA(EA—總中斷允許位 EA=1開放所有的中斷;EA=0禁止所有的中斷),某個中斷源還有相應(yīng)的中斷允許位</p><p> ①、當(dāng)=1時:允許相應(yīng)中斷源的中斷;</p><p> ?、?、當(dāng)=0時:禁止相應(yīng)中斷源的中斷;</p><p> ?。?)、INT0、INT1設(shè)定觸
83、發(fā)方式IT0(外部中斷觸發(fā)方式控制位)當(dāng)為0時:低電平觸發(fā);當(dāng)為1時:下降沿觸發(fā);</p><p> ?。?)、返回值是Void中斷函數(shù)名() interrupt()</p><p> 4.3.2 為什么采用中斷控制方式</p><p> CPU與外部設(shè)備的數(shù)據(jù)傳送方式:</p><p> ?。?)、無條件傳送方式</p>
84、<p> CPU總認為外設(shè)處于準(zhǔn)備好的狀態(tài),外設(shè)比較簡單</p><p> (2)、程序查詢傳送方式</p><p> 外設(shè)有一個狀態(tài)(狀態(tài)存儲在寄存器內(nèi))</p><p> 缺點:CPU工作效率低,CPU處于等待的狀態(tài),為解決此缺點便出現(xiàn)了第三種傳送方式</p><p> (3)、中斷傳送方式</p>&l
85、t;p> 中斷是指由于某種隨機事件的發(fā)生,計算機暫?,F(xiàn)行的程序,轉(zhuǎn)去執(zhí)行另一程序以處理發(fā)生的 事件,處理完畢后又自動返回原來的程序繼續(xù)運行。</p><p> 優(yōu)點:(1)、實現(xiàn)分時操作</p><p> CPU分為多個I/O設(shè)備服務(wù),提高計算機的利用率(提前安排好的函數(shù)而中斷不同);</p><p><b> ?。?)、實時響應(yīng)</b&
86、gt;</p><p> CPU能夠及時處理應(yīng)用系統(tǒng)的隨機事件,系統(tǒng)的實時性大大增強;</p><p><b> ?。?)、可靠性高</b></p><p> CPU具有處理設(shè)備故障及掉電等突發(fā)性事件的能力,從而使系統(tǒng)的可靠性提高。</p><p><b> 定時器的初始化</b></p
87、><p> ?。?)確定工作方式-對TMOD賦值;</p><p> (2)設(shè)置初始值-直接將初值寫入THO,TLO;</p><p> ?。?)開啟定時器的中斷-{ETO=1 EA=1};</p><p> ?。?) 啟動定時器-將TR0或TRI置“1”。</p><p><b> 第五章 系統(tǒng)的仿
88、真</b></p><p> 5.1 proteus軟件的介紹及使用</p><p> 5.1.1 什么是Proteus軟件</p><p> Proteus軟件是Labcenter Electronics公司的一款電路設(shè)計與仿真軟件,它包括ISIS、ARES等軟件模塊,ARES模塊主要用來完成PCB的設(shè)計,而ISIS模塊用來完成電路原理圖的布圖
89、與仿真。Proteus的軟件仿真基于VSM技術(shù),它與其他軟件最大的不同也是最大的優(yōu)勢就在于它能仿真大量的單片機芯片,比如MCS-51系列、PIC系列等等,以及單片機外圍電路,比如鍵盤、LED、LCD等等。通過Proteus軟件的使用我們能夠輕易地獲得一個功能齊全、實用方便的單片機實驗室。</p><p> 5.1.2 怎樣操作Proteus仿真軟件</p><p> 在進行下面的操作前
90、,我先說明一點:我的Proteus版本是7.1,如果你使用的是6.9以前的版本,可能你發(fā)現(xiàn)在鼠標(biāo)操作上會略有不同。這主要表現(xiàn)在6.9以前的版本鼠標(biāo)左右鍵的作用與一般軟件剛好相反,而7.0以后已經(jīng)完全改過。首先我們把壓縮文件解壓到D盤,然后找到ISIS Manage找到Find key 然后再安裝即可使用,雙擊打開桌面是上的那個軟件即可使用。</p><p> 下面我們首先來熟悉一下Proteus的界面。Prot
91、eus是一個標(biāo)準(zhǔn)的Windows窗口程序,和大多數(shù)程序一樣,沒有太大區(qū)別,其啟動界面如下圖所示:</p><p> 圖5-1-1 proteus 啟動界面圖</p><p> 如圖中所示,區(qū)域①為菜單及工具欄,區(qū)域②為預(yù)覽區(qū),區(qū)域③為元器件瀏覽區(qū),區(qū)域④為編輯窗口,區(qū)域⑤為對象拾取區(qū),區(qū)域⑥為元器件調(diào)整工具欄,區(qū)域⑦為運行工具條。</p><p> 下面我們
92、就以建立一個和我們在Keil簡介中所講的工程項目相配套的Proteus工程為例來詳細講述Proteus的操作方法以及注意事項。</p><p> 首先點擊啟動界面區(qū)域③中的“P”按鈕(Pick Devices,拾取元器件)來打開“Pick Devices”(拾取元器件)對話框從元件庫中拾取所需的元器件。對話框如下圖所示:</p><p> 圖5-1-2 用proteus軟件查找元器件&
93、lt;/p><p> 在對話框中的“Keywords”里面輸入我們要檢索的元器件的關(guān)鍵詞,比如我們要選擇項目中使用的AT89C51,就可以直接輸入。輸入以后我們能夠在中間的“Results”結(jié)果欄里面看到我們搜索的元器件的結(jié)果。在對話框的右側(cè),我們還能夠看到我們選擇的元器件的仿真模型、引腳以及PCB參數(shù)。</p><p> 搜索到所需的元器件以后,我們可以雙擊元器件名來將相應(yīng)的元器件加入到
94、我們的文檔中,那么接著我們還可以用相同的方法來搜索并加入其他的元器件。當(dāng)我們已經(jīng)將所需的元器件全部加入到文檔中時,我們可以點擊“OK”按鈕來完成元器件的添加。</p><p> 添加好元器件以后,下面我們所需要做的就是將元器件按照我們的需要連接成電路。首先在元器件瀏覽區(qū)中點擊我們需要添加到文檔中的元器件,這時我們就可以在瀏覽區(qū)看到我們所選擇的元器件的形狀與方向,如果其方向不符合你的要求,你可以通過點擊元器件調(diào)整
95、工具欄中的工具來任意進行調(diào)整,調(diào)整完成之后在文檔中單擊并選定好需要放置的位置即可。接著按相同的操作即可完成所有元器件的布置,接下來是連線。事實上Proteus的自動布線功能是如此的完美以至于我們在做布線時從來都不會覺得這是一項任務(wù),而通常像是在享受布線的樂趣。布線時我們只需要單擊選擇起點,然后在需要轉(zhuǎn)彎的地方單擊一下,按照你所需走線的方向移動鼠標(biāo)到線的終點單擊即可。本例我們布線的結(jié)果如下圖所示(仿真我們在上面的Keil操作介紹中的簡單例
96、子)。</p><p> 圖5-1-3 發(fā)光二極管發(fā)光原理圖</p><p> 因為該工程十分簡單,我們沒有必要加上復(fù)位電路,所以這點在圖中予以忽略,請大家注意。除此以外,你可能還發(fā)現(xiàn),單片機系統(tǒng)沒有晶振,這一點你需注意。事實上在Proteus中單片機的晶振可以省略,系統(tǒng)默認為12MHz,而且很多時候,當(dāng)然也為了方便,我們只需要取默認值就可以了。</p><p>
97、; Proteus中單片機芯片默認已經(jīng)添加電源與地,所以我們可以省略。然后在添加電源與地以前,我們先來看一下上面第一個圖中區(qū)域⑤的對象拾取區(qū),在這里只說明本文中可能會用得到的以及比較重要的工具。</p><p> l:(Selection Mode)。選擇模式,通常情況下我們都需要選中它,比如布局時和布線時。</p><p> l :(Component Mode)。組件模式,點擊該
98、按鈕,能夠顯示出區(qū)域③中的元器件,以便我們選擇。</p><p> l :(Wire Label Mode)。線路標(biāo)簽?zāi)J?,選中它并單擊文檔區(qū)電路連線能夠為連線添加標(biāo)簽。經(jīng)常與總線配合使用。</p><p> l :(Text Script Mode)。文本模式,選中它能夠為文檔添加文本。</p><p&g
99、t; l :(Buses Mode)??偩€模式,選中它能夠在電路中畫總線。關(guān)于總線畫法的詳細步驟與注意事項我們在下面會進行專門講解。</p><p> l :(Terminals Mode)。終端模式,選中它能夠為電路添加各種終端,比如輸入、輸出、電源、地等等。</p><p> l :(Virtual Instruments Mode)。虛擬儀器
100、模式,選中它我們能夠在區(qū)域③中看到很多虛擬儀器,比如示波器、電壓表、電流表等等。關(guān)于它們的用法我們會在后面的相應(yīng)章節(jié)中詳細講述。</p><p> 添加電源:首先點擊,選擇終端模式,然后在元器件瀏覽區(qū)中點擊POWER(電源)來選中電源,通過區(qū)域⑥中的元器件調(diào)整工具進行適當(dāng)?shù)恼{(diào)整,然后就可以在文檔區(qū)中單擊放置電源了。</p><p> 連接好電路圖以后我們還需要做一些修改,由上5-1-3
101、圖我們可以看出,圖中的R1電阻值為10k,這個電阻作為限流電阻顯然太大,將使發(fā)光二極管D1亮度很低或者根本就不亮,影響我們的仿真結(jié)果。故要進行修改,修改方法:首先我們雙擊電阻圖標(biāo),這時軟件將彈出“Edit Component”對話框(見下圖所示的對話框),對話框中的“Component Referer”是組件標(biāo)簽之意,可以隨便填寫,也可以取默認,但要注意在同一文檔中不能有兩個組件標(biāo)簽相同;“Resistance”就是電阻值了,我們可以在
102、其后的框中根據(jù)需要填入相應(yīng)的電阻值。填寫時需注意其格式,如果直接填寫數(shù)字,則單位默認為Ω;如果在數(shù)字后面加上K或者k,則表示kΩ之意。這里我們填入220,表示220Ω。</p><p> 修改好各組件屬性以后就要將程序(HEX文件)載入單片機了。首先雙擊單片機圖標(biāo),系統(tǒng)同樣會彈出“Edit Component”對話框,如下圖。在這個對話框中我們點擊“Program files”框右側(cè)的,來打開選擇程序代碼窗口,
103、選中相應(yīng)的HEX文件后返回,這時,按鈕左側(cè)的框中就填入了相應(yīng)的HEX文件,我們點擊對話框的“OK”按鈕,回到文檔,程序文件就添加完畢了。</p><p> 圖5-1-4裝載程序</p><p> 裝載好程序,我們就可以進行仿真了。首先來熟悉一下上面第一個圖中區(qū)域⑦的運行工具條。因為比較簡單,我們只作一下介紹。</p><p> 工具條從左到右依次是“Play”
104、、“Step”、“Pause”、“Stop”按鈕,即運行、步進、暫停、停止。下面我們點擊“Play”按鈕來仿真運行,效果如下圖所示,可以看到系統(tǒng)按照我們的程序在運行著,而且我們還能看到其高低電平的實時變化。如果我們已經(jīng)觀察到了結(jié)果就可以點擊“Stop”來停止運行。</p><p> 5.2 搶答器protenus軟件的仿真</p><p> 繪制搶答器的軟件仿真圖步驟分一下四步:<
105、;/p><p> ?。?)、查找所需要的元器件;</p><p> ?。?)、根據(jù)電路圖進行連線;</p><p> ?。?)、l 是用來寫線所對應(yīng)的坐標(biāo),即下圖所示的P1.1等坐標(biāo);</p><p> ?。?)、下載所寫完的C程序即可以仿真。</p><p> 通過以上步驟,來實現(xiàn)搶答
106、器設(shè)計的仿真實現(xiàn),仿真如下圖所示:</p><p> 圖5-2-1 搶答器的proteus仿真圖</p><p> 第六章 調(diào)試功能說明</p><p><b> 6.1 系統(tǒng)的調(diào)試</b></p><p> 系統(tǒng)調(diào)試包括硬件調(diào)試和軟件調(diào)試,而且兩者是密不可分的。我們設(shè)計好的硬件電路和軟件程序,只有經(jīng)過聯(lián)合調(diào)試,
107、才能驗證其正確性;軟硬件的配人情況以及是否達到設(shè)計任務(wù)的要求,也只有經(jīng)過調(diào)試,才能發(fā)現(xiàn)問題并加以解決、完善,最終開發(fā)成實用產(chǎn)品。</p><p> 硬件調(diào)試分單元電路調(diào)試和聯(lián)機調(diào)試,單元電路試驗在硬件電路設(shè)計時已經(jīng)進行,這里的調(diào)試只是將其制成印刷電路板后試驗電路是否正確,并排除一些加工工藝性錯誤(如錯線、開路、短路等)。這種調(diào)試可單獨模擬進行,也可通過開發(fā)裝置由軟件配合進行。硬件聯(lián)機調(diào)試則必須在系統(tǒng)軟件的配合下
108、進行。</p><p> 軟件調(diào)試一般包括分塊調(diào)試和聯(lián)機調(diào)試兩個階段。程序的分塊調(diào)試一般在單片機開發(fā)裝置上進行,可根據(jù)所調(diào)程序功能塊的入口參量初值編制一個特殊的程序段,并連同被調(diào)程序功能塊一起在開發(fā)裝置上運行;也可配合對應(yīng)硬件電路單獨運行某程序功能塊,然后檢查是否正確,如果執(zhí)行結(jié)果與預(yù)想的不一致,可以通過單步運行或設(shè)置斷點的方法,查出原因并加以改正,直到運行結(jié)果正確為止。這時該 程序功能塊已調(diào)試完畢,可去掉附加
109、程序段。其它程序功能塊可按此法進行調(diào)試。程序聯(lián)機調(diào)試就是將已調(diào)試好的各程序功能塊按總體結(jié)構(gòu)聯(lián)成一個完整程序,在所研制的硬件電路上運行。從而試驗程序整體運行的完整性、正確性和與硬件電路的配合情況。在聯(lián)調(diào)中可能會有某些支路上的程序、功能塊因受條件制約而得不到相應(yīng)的輸入?yún)?shù),這時,調(diào)試人員應(yīng)創(chuàng)造條件進行模擬調(diào)試。在聯(lián)調(diào)中如發(fā)現(xiàn)硬件問題也應(yīng)及時修正,直到單片機系統(tǒng)的軟件、硬件全部調(diào)試成功為止。系統(tǒng)調(diào)試完成后,還要進行一段時間的試運行,從而檢驗系
110、統(tǒng)的穩(wěn)定性和抗干擾能力,驗證系統(tǒng)功能是否達到設(shè)計要求,是否達到預(yù)期的效果。</p><p> 6.2 軟件調(diào)試問題及解決</p><p> 首先對所用軟件及使用方法介紹如下:</p><p> 1、Keil是德國開發(fā)的一個51單片機開發(fā)軟件平臺,最開始只是一個支持C語言和匯編語言的編譯器軟件。后來隨著開發(fā)人員的不斷努力以及版本的不斷升級,使它已經(jīng)成為了一個重
111、要的單片機開發(fā)平臺,不過KEIL的界面并不是非常復(fù)雜,操作也不是非常困難,很多工程師的開發(fā)的優(yōu)秀程序都是在KEIL的平臺上編寫出來的??梢哉f它是一個比較重要的軟件,熟悉他的人很多很多,用戶群極為龐大,要遠遠超過偉福等廠家軟件用戶群,操作有不懂的地方只要找相關(guān)的書看看,到相關(guān)的單片機技術(shù)論壇問問,很快就可以掌握它的基本使用了。</p><p> 2、 總調(diào),即應(yīng)用軟件的鏈接調(diào)試,程序固化,軟、硬件結(jié)合的應(yīng)用系統(tǒng)
112、</p><p> 軟硬件聯(lián)合仿真系統(tǒng)由一個硬件執(zhí)行環(huán)境和一個軟件執(zhí)行環(huán)境組成,通常軟件環(huán)境和硬件環(huán)境都有自己的除錯和控制界面,Keil與Proteus的整合調(diào)試可以實現(xiàn)系統(tǒng)的總調(diào),在該系統(tǒng)中,Keil作為軟件調(diào)試界面,Proteus作為硬件仿真和調(diào)試界面,下面說一下如何在keil中調(diào)用proteus進行MCU外圍器件的仿真。</p><p> ?。?)、安裝keil 與 proteus
113、。</p><p> (2)、把安裝proteus\ MODELS目錄下 VDM51.dll文件復(fù)制到Keil安裝目錄的 \C51\BIN目錄中。</p><p> ?。?)、修改keil安裝目錄下 Tools.ini文件,在C51字段加入TDRV5=BIN\VDM51.DLL ("Proteus VSM Monitor-51 Driver"),保存。</p&g
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機搶答器設(shè)計與實現(xiàn)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計------單片機搶答器設(shè)計與實現(xiàn)
- 畢業(yè)設(shè)計---單片機搶答器設(shè)計與實現(xiàn)
- 畢業(yè)設(shè)計--基于單片機搶答器設(shè)計
- 基于單片機的智能搶答器設(shè)計畢業(yè)設(shè)計
- 基于單片機的智能搶答器設(shè)計_畢業(yè)設(shè)計
- 基于單片機的搶答器設(shè)計畢業(yè)設(shè)計論文
- 單片機搶答器課程設(shè)計 --搶答器
- 八路搶答器單片機畢業(yè)設(shè)計
- 基于單片機的搶答器設(shè)計畢業(yè)設(shè)計論文
- 畢業(yè)設(shè)計---關(guān)于單片機的智能搶答器的設(shè)計
- 基于51單片機的搶答器設(shè)計-畢業(yè)設(shè)計(論文)
- 畢業(yè)設(shè)計論文----基于單片機的智能搶答器
- 單片機無線搶答器設(shè)計畢業(yè)論文
- 畢業(yè)設(shè)計----單片機智能搶答器的設(shè)計
- 單片機課程設(shè)計搶答器(16路搶答器)
- 單片機搶答器課程設(shè)計
- 單片機搶答器課程設(shè)計
- 基于單片機的8路智能搶答器設(shè)計畢業(yè)設(shè)計
- 基于單片機的八路搶答器設(shè)計【畢業(yè)設(shè)計】
評論
0/150
提交評論