基于stc89c51rc的可編程定時(shí)計(jì)數(shù)器的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩38頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  基于STC89C51RC的可編程定時(shí)計(jì)數(shù)器的設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  摘要</b></p><p>  在當(dāng)今社會(huì)隨著物質(zhì)生活的提高,人們對(duì)精神文化的需求也越來越高。比如在各種體育競(jìng)技中,人們不僅關(guān)注運(yùn)動(dòng)員的精湛的競(jìng)技水平,也關(guān)注競(jìng)技比賽的一些輔助設(shè)施,比如各種球類比賽中的計(jì)時(shí)計(jì)分器。本文以籃球賽計(jì)時(shí)計(jì)分器為例,介紹了基于STC89

2、C51RC的可編程定時(shí)計(jì)數(shù)器的設(shè)計(jì)與實(shí)現(xiàn)?;@球賽計(jì)時(shí)計(jì)分器是為了解決籃球比賽中時(shí)計(jì)分與計(jì)時(shí)準(zhǔn)確的問題。此裝置利用單片機(jī)STC89C51RC完成了計(jì)時(shí)和計(jì)分的功能。本文詳細(xì)地介紹了系統(tǒng)硬件與軟件的設(shè)計(jì)過程,采用該裝置可根據(jù)實(shí)際情況進(jìn)行比分修改和時(shí)間的準(zhǔn)確顯示,能夠完成開始和暫停等功能,具有倒計(jì)時(shí)和到時(shí)報(bào)警功能。該設(shè)計(jì)具有低功耗,可靠性,安全性以及低成本等特點(diǎn)。此類業(yè)余籃球賽的計(jì)時(shí)計(jì)分系統(tǒng)在中小學(xué)和大學(xué)籃球賽中具有很重要的推廣意義。<

3、/p><p>  關(guān)鍵詞:?jiǎn)纹瑱C(jī),LED數(shù)碼管,籃球賽計(jì)時(shí),籃球賽計(jì)分 </p><p>  The Design and Implementation of a Programable Timer and Counter Based on STC89C51RC</p><p>  Abstract: With the improvement of material l

4、ife in current society, our spiritual and cultural needs are increasingly high. For example, in a variety of sports competition, people are not only concerned about the competitive level of the superb athletes, but also

5、concerned about the competitive race ancillary facilities, such as all kinds of ball games scoring in the timing device. In this paper, time basketball scoring device, for example, describes a programmable timer counter

6、 based on STC89C</p><p>  Key words: Single Chip Microcomputer , led nixie tube ,keeping scores and the time </p><p><b>  目 錄</b></p><p><b>  第1章 前言1</b><

7、;/p><p><b>  1.1選題意義1</b></p><p>  1.2 研究現(xiàn)狀1</p><p>  1.3 論文所做工作2</p><p>  第2章 設(shè)計(jì)目標(biāo)及方案3</p><p>  2.1 設(shè)計(jì)目標(biāo)3</p><p>  2.2 設(shè)計(jì)方案3

8、</p><p>  2.2.1系統(tǒng)構(gòu)成框圖3</p><p>  2.2.2器件選擇5</p><p>  第3章 硬件電路設(shè)計(jì)6</p><p>  3.1 單片機(jī)STC89C51RC簡(jiǎn)介6</p><p>  3.1.1 STC89C51RC特性介紹7</p><p>  3.1

9、.2 管腳說明8</p><p>  3.2 計(jì)時(shí)電路部分10</p><p>  3.2.1.振蕩電路10</p><p>  3.2.2計(jì)時(shí)電路原理11</p><p>  3.2.3計(jì)時(shí)電路原理圖11</p><p>  3.2.4 計(jì)時(shí)電路的工作原理13</p><p>  

10、3.3計(jì)分電路部分14</p><p>  3.3.1 串行接口工作原理14</p><p>  3.3.2比分校正控制電路15</p><p>  3.3.3計(jì)分電路原理圖16</p><p>  3.3.4 計(jì)分電路的工作原理17</p><p>  3.4球賽計(jì)時(shí)計(jì)分器的工作過程19</p>

11、;<p>  3.4.1賽程時(shí)間設(shè)置19</p><p>  3.4.2賽程時(shí)間啟動(dòng) / 暫停設(shè)置20</p><p>  3.4.3比分交換控制20</p><p>  3.4.4比分刷新控制20</p><p>  3.4.5計(jì)時(shí)計(jì)分顯示21</p><p>  3.4.6賽程結(jié)束報(bào)警21

12、</p><p>  3.4.7系統(tǒng)總體電路圖21</p><p>  第4章 軟件編程及調(diào)試24</p><p>  4.1開發(fā)環(huán)境介紹24</p><p>  4.1.1匯編語言特點(diǎn)簡(jiǎn)介24</p><p>  4.1.2開發(fā)軟件介紹25</p><p>  4.2 軟件設(shè)計(jì)25

13、</p><p>  4.2.1 編程設(shè)置及總流程框圖25</p><p>  4.2.2主要模塊說明28</p><p>  4.3系統(tǒng)調(diào)試29</p><p>  4.3.1軟件調(diào)試29</p><p>  4.3.2仿真調(diào)試30</p><p><b>  結(jié)論32&

14、lt;/b></p><p><b>  致 謝34</b></p><p><b>  參考文獻(xiàn)35</b></p><p><b>  第1章 前言</b></p><p><b>  1.1選題意義</b></p><p

15、>  單片機(jī)的應(yīng)用是具有高度現(xiàn)實(shí)意義的。單片機(jī)極高的可靠性,微型性和智能性(我們只要編寫不同的程序后就能夠完成不同的控制工作),單片機(jī)已成為工業(yè)控制領(lǐng)域中普遍采用的智能化控制工具,已經(jīng)深深地滲入到我們的日常生活當(dāng)中</p><p>  體育比賽中的計(jì)時(shí)計(jì)分系統(tǒng)是對(duì)體育比賽過程中所產(chǎn)生的時(shí)間、比分等數(shù)據(jù)信息進(jìn)行快速采集、加工處理、傳遞和利用的系統(tǒng)。此系統(tǒng)能否清晰、穩(wěn)定、精確的反應(yīng)體育比賽中的客觀數(shù)據(jù),直接影響

16、到比賽的公平性和公正性。因此,對(duì)球賽計(jì)時(shí)計(jì)分系統(tǒng)的研究具有高度的現(xiàn)實(shí)意義。 雖然這種簡(jiǎn)單的計(jì)時(shí)計(jì)分系統(tǒng)不能達(dá)到國(guó)際重要比賽的要求,但能使用在一些較小型的賽事,比如中小學(xué)籃球比賽甚至大學(xué)籃球比賽中。具有很高的推廣意義。</p><p><b>  1.2 研究現(xiàn)狀</b></p><p>  在當(dāng)今社會(huì)隨著物質(zhì)生活的提高,人們對(duì)精神文化的需求也越來越高。這同樣體現(xiàn)在各種

17、競(jìng)技比賽中,人們不僅追求精彩激烈的比賽,同樣對(duì)比賽輔助設(shè)施的要求也越來越高。同時(shí),運(yùn)動(dòng)員競(jìng)技水平的不斷提高,競(jìng)賽的激烈程度也不斷提高,同樣對(duì)計(jì)時(shí)計(jì)分系統(tǒng)的精確度和穩(wěn)定性提出了更高的要求。這也促使計(jì)時(shí)計(jì)分系統(tǒng)設(shè)計(jì)技術(shù)不斷提高,能達(dá)到的精確度也不斷提高。</p><p>  如今,在重大的競(jìng)技比賽中,計(jì)時(shí)計(jì)分已出現(xiàn)了由電腦控制的大型計(jì)時(shí)計(jì)分顯示系統(tǒng),其精確度和穩(wěn)定性能達(dá)到很高的水平。但是在一般的基層單位,又特別是在農(nóng)

18、村的中小學(xué)所使用的計(jì)時(shí)計(jì)分器卻很簡(jiǎn)陋。這類業(yè)余比賽的計(jì)時(shí)</p><p>  計(jì)分器大都比較的復(fù)雜,所用芯片太多,造成整體的價(jià)格提高,而且軟件設(shè)計(jì)比較的復(fù)雜。導(dǎo)致性價(jià)比不是很高,很難得到廣泛的推廣。我所設(shè)計(jì)的這個(gè)籃球比賽計(jì)時(shí)器一改他們的缺點(diǎn),硬件比較的簡(jiǎn)單,軟件也很容易。因此,實(shí)用性比較大。</p><p>  1.3 論文所做工作</p><p>  隨著單片機(jī)在

19、各個(gè)領(lǐng)域的廣泛應(yīng)用,許多用單片機(jī)做控制的球賽計(jì)時(shí)計(jì)分系統(tǒng)也應(yīng)運(yùn)而產(chǎn)生,如用單片機(jī)控制LCD液晶顯示器計(jì)時(shí)計(jì)分器,用單片機(jī)控制LED七段顯示器計(jì)時(shí)計(jì)分器等。</p><p>  本次設(shè)計(jì)用由STC89C51RC編程控制LED七段數(shù)碼管作顯示的球賽計(jì)時(shí)計(jì)分系統(tǒng)。該系統(tǒng)具有賽程定時(shí)設(shè)置,賽程時(shí)間暫停,及時(shí)刷新甲、乙雙方的成績(jī)以及賽后成績(jī)暫存等功能。它具有價(jià)格低廉,性能穩(wěn)定,操作方便并且易于攜帶等特點(diǎn)。廣泛適合各類學(xué)校或

20、者小型團(tuán)體作為賽程計(jì)時(shí)計(jì)分。</p><p>  通過本次基于C51系列籃球計(jì)時(shí)計(jì)分器的設(shè)計(jì),可以了解、熟悉有關(guān)單片機(jī)開發(fā)設(shè)計(jì)的過程,并加深對(duì)單片機(jī)的理解和應(yīng)用以及掌握單片機(jī)與外圍接口的一些方法和技巧,這主要表現(xiàn)在以下一些方面:</p><p>  (1) 籃球賽計(jì)時(shí)計(jì)分系統(tǒng)包含了8051系列單片機(jī)的最小應(yīng)用系統(tǒng)的構(gòu)成,同時(shí)在此基礎(chǔ)上擴(kuò)展了一些使用性強(qiáng)的外圍接口。</p>&

21、lt;p>  (2) 可以了解到LED顯示器的結(jié)構(gòu)、工作原理以及這種顯示器的接口實(shí)例與具體連接與編程方法。</p><p>  (3) 怎樣利用串行口來擴(kuò)展顯示接口等。</p><p>  第2章 設(shè)計(jì)目標(biāo)及方案</p><p><b>  2.1 設(shè)計(jì)目標(biāo)</b></p><p>  整個(gè)設(shè)計(jì)主要實(shí)現(xiàn)下列目標(biāo):

22、</p><p> ?。ㄒ唬┎捎脝纹瑱C(jī)控制,響應(yīng)迅速,判別精確;主控臺(tái)面上有按鍵控制,可同時(shí)對(duì)比賽時(shí)的分?jǐn)?shù)顯示進(jìn)行加分減分,能顯示整個(gè)賽程的比賽時(shí)間,暫停時(shí)間和比賽的節(jié)數(shù)。</p><p> ?。ǘ┰诒荣惖倪^程中能夠隨時(shí)刷新各隊(duì)在整個(gè)賽程中的比分,通過按鍵輸入比分,顯示在數(shù)碼管上;按鍵分別為加1分、減1分鍵和改變當(dāng)前記分球隊(duì)功能鍵。</p><p> ?。ㄈ┚哂?/p>

23、計(jì)時(shí)功能,能正確設(shè)置倒計(jì)時(shí)時(shí)間和比賽的節(jié)數(shù),每節(jié)總時(shí)間倒計(jì)時(shí),24S倒計(jì)時(shí),倒計(jì)時(shí)到報(bào)警。</p><p> ?。ㄋ模┚哂虚_始、暫停功能。</p><p><b>  2.2 設(shè)計(jì)方案</b></p><p>  2.2.1系統(tǒng)構(gòu)成框圖</p><p>  基于單片機(jī)系統(tǒng)的籃球賽計(jì)時(shí)計(jì)分器的系統(tǒng)構(gòu)成框圖如圖所視。 &l

24、t;/p><p>  圖2-1 系統(tǒng)構(gòu)成圖</p><p>  本系統(tǒng)采用單片機(jī)STC89C51RC作為本設(shè)計(jì)的核心元件。利用七段共陰LED作為顯示器件。在本次設(shè)計(jì)中,共接入十個(gè)七段共陰LED顯示器,其中6個(gè)用于計(jì)錄甲、乙兩隊(duì)的分?jǐn)?shù),每隊(duì)3個(gè)LED顯示器分?jǐn)?shù)范圍可達(dá)到0—999分,足夠滿足賽程需要。另外4個(gè)LED顯示器則用于計(jì)錄賽程的時(shí)間,其中兩個(gè)用于顯示分鐘;2個(gè)用于顯示秒鐘。賽程計(jì)時(shí)采用倒

25、計(jì)時(shí)方式。即比賽前將時(shí)間設(shè)置好,比賽開始時(shí)啟動(dòng)計(jì)時(shí),直至計(jì)時(shí)到零為止。根據(jù)設(shè)計(jì),計(jì)時(shí)范圍可達(dá)0—99分鐘,也完全滿足賽程的需要。</p><p>  其次,為了配合計(jì)時(shí)器和計(jì)分器校正、調(diào)整時(shí)間和比分,特定在本設(shè)計(jì)中設(shè)立了7個(gè)按鍵。其中4個(gè)用于輸入甲、乙兩隊(duì)的分?jǐn)?shù);另外3個(gè)則用于完成設(shè)置、調(diào)整、啟動(dòng)和暫停賽程時(shí)間等功能。</p><p><b>  2.2.2器件選擇</b&

26、gt;</p><p>  本系統(tǒng)在設(shè)計(jì)的過程中主要選取了以下一些器件:</p><p>  單片機(jī):STC89C51RC</p><p>  顯示器件:7段LED顯示器</p><p><b>  按鍵:歐姆龍按鍵</b></p><p>  其他:三極管,二極管,電阻,電容。</p>

27、;<p>  第3章 硬件電路設(shè)計(jì)</p><p>  系統(tǒng)硬件由以下幾個(gè)部分組成:</p><p> ?。?)單片機(jī) STC89C51RC</p><p><b> ?。?)計(jì)時(shí)電路</b></p><p><b>  (3)計(jì)分電路</b></p><p>

28、<b> ?。?)按鍵開關(guān)</b></p><p>  說明:整個(gè)系統(tǒng)只用一片STC89C51RC;電路圖是用0rcad畫的,采用的是網(wǎng)絡(luò)標(biāo)號(hào)的形式。將計(jì)時(shí)電路與計(jì)分電路分別介紹,能夠更好的更清晰的說明問題。 </p><p>  3.1 單片機(jī)STC89C51RC簡(jiǎn)介</p><p>  本課題中用到的芯片是AT系列中的STC89C51RC單

29、片機(jī)芯片。</p><p>  STC89C51RC是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含4k bytes的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),內(nèi)置功能強(qiáng)大的微型計(jì)算機(jī)的STC89C51RC提供了高性價(jià)比的解決方案。</p><p>  如圖所示

30、,圖2-1為STC89C51RC單片機(jī)基本構(gòu)造,其基本性能介紹如下:</p><p>  圖3-1 STC89C51RC引腳圖</p><p>  STC89C51RC本身內(nèi)含40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中端口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,STC89C51RC可以按照常規(guī)方法進(jìn)行編程,但不可以在線編程。其將通用的微處理器和Flas

31、h存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲(chǔ)器可有效地降低開發(fā)成本。</p><p>  3.1.1 STC89C51RC特性介紹</p><p>  STC89C51RC的主要特性如下表所示:</p><p>  表3-1 STC89C51RC主要功能描述</p><p>  3.1.2 管腳說明</p><p

32、>  STC89C51RC為40腳雙列直插封裝的8位通用微處理器,采用工業(yè)標(biāo)準(zhǔn)的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52相同,其主要用于會(huì)聚調(diào)整時(shí)的功能控制。功能包括對(duì)會(huì)聚主IC內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會(huì)聚調(diào)整控制,會(huì)聚測(cè)試圖控制,紅外遙控信號(hào)IR的接收解碼及與主板CPU通信等。主要管腳有:XTAL1(19腳)和XTAL2(18腳)為振蕩器輸入輸出端口,外接12MHz 晶振。RST/Vpd(

33、9腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。VCC(40腳)和VSS(20腳)為供電端口,分別接+5V電源的正負(fù)端。P0~P3 為可編程通用I/O腳,其功能用途由軟件定義,在本設(shè)計(jì)中,P0端口(32~39腳)被定義為N1功能控制端口,分別與N1的相應(yīng)功能管腳相連接,13腳定義為IR輸入端,10腳和11腳定義為I2C總線控制端口,分別連接N1的SDAS(18腳)和SCLS(19腳)端口,12腳、27腳及28腳定義為握手信號(hào)功能端口,

34、連接主板CPU的相應(yīng)功能端,用于當(dāng)前制式的檢測(cè)及會(huì)聚調(diào)整狀態(tài)進(jìn)入的控制功能。</p><p>  P0口:P0口是一組8位漏極開路型雙向I/O 口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)8個(gè)TTL邏輯門電路,對(duì)端口P0寫“1”時(shí),可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在Flash 編程時(shí),P0

35、口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。</p><p>  P1口:P1是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。與AT89C51不同之處是,P1.0和P1.1還可分

36、別作為定時(shí)/計(jì)數(shù)器2 的外部計(jì)數(shù)輸入(P1.0/T2)和輸入(P1.1/T2EX)。Flash編程和程序校驗(yàn)期間,P1接收低8位地址。</p><p>  P2口:P2是一個(gè)帶有內(nèi)部上拉電阻的8 位雙向I/O口,P2的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口P2寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一

37、個(gè)電流(IIL)。在訪問外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX @DPTR指令)時(shí),P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行MOVX @RI指令)時(shí),P2口輸出P2鎖存器的內(nèi)容。Flash編程或校驗(yàn)時(shí),P2亦接收高位地址和一些控制信號(hào)。</p><p>  P3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門

38、電路。對(duì)P3口寫入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的P3口將用上拉電阻輸出電流(IIL)。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能P3口還接收一些用于Flash 閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。</p><p>  RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。</p><p>  ALE/P

39、ROG:當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)AL脈沖。對(duì)Flash存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對(duì)特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條 MOVX

40、 和MOVC指令才能將ALE激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位無效。</p><p>  PSEN:程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)STC89C51RC由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次PSEN信號(hào)。</p><p>  EA/VPP:

41、外部訪問允許。欲使CPU僅訪問外部程序存儲(chǔ)器(地址為0000H—FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。Flash存儲(chǔ)器編程時(shí),該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。</p><p>  XTAL1:振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生

42、器的輸入端。</p><p>  XTAL2:振蕩器反相放大器的輸出端。</p><p>  3.2 計(jì)時(shí)電路部分</p><p>  3.2.1.振蕩電路</p><p>  本次設(shè)計(jì)要使用到STC89C51RC單片機(jī)的時(shí)鐘振蕩功能。STC89C51RC中有一個(gè)用于構(gòu)成內(nèi)部震蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的

43、輸入和輸出端。這個(gè)放大器與作為反饋元件的片外石英晶體或者陶瓷諧振器一起構(gòu)成自激振蕩器。</p><p><b>  振蕩電路如下圖所示</b></p><p>  圖3-2 時(shí)鐘振蕩電路</p><p>  如圖3-2,外接石英晶體或者陶瓷諧振器以及電容C1,C2接在放大器的反饋電路中構(gòu)成并聯(lián)諧振電路。本次設(shè)計(jì)使用的是石英晶體諧振器,采用22p

44、F的電容, 12MHZ晶振。</p><p>  3.2.2計(jì)時(shí)電路原理</p><p>  本次設(shè)計(jì)中的計(jì)時(shí)部分采用的是7段共陰LED顯示數(shù)碼管構(gòu)成。由于本次設(shè)計(jì)采用的是靜態(tài)顯示,因此在連接電路時(shí)將LED輸入端,即顯示數(shù)據(jù)口經(jīng)驅(qū)動(dòng)電路后與STC89C51RC的P2.0~~P2.3一一對(duì)應(yīng)接上同時(shí),便可實(shí)現(xiàn)對(duì)輸入數(shù)據(jù)的顯示。</p><p>  3.2.3計(jì)時(shí)電路原

45、理圖</p><p>  因?yàn)樵谧鰣D過程中,為了使電路圖簡(jiǎn)潔,采用的網(wǎng)絡(luò)標(biāo)號(hào)的形式。下面分塊給出計(jì)時(shí)電路的原理圖:</p><p>  單片機(jī)STC89C51RC部分:</p><p>  圖3-3 計(jì)時(shí)單片機(jī)部分原理圖</p><p><b>  按鍵開關(guān)及蜂鳴器:</b></p><p>  

46、圖3-4 計(jì)時(shí)按鍵開關(guān)及蜂鳴器</p><p><b>  顯示部分:</b></p><p><b>  圖3-5 顯示部分</b></p><p>  3.2.4 計(jì)時(shí)電路的工作原理</p><p>  計(jì)時(shí)電路如圖3-3,圖3-4,圖3-5所示,計(jì)時(shí)部分由開關(guān)KEY1~~KEY3控制,單片機(jī)S

47、TC89C51RC,LED顯示器構(gòu)成。</p><p><b>  其工作過程如下:</b></p><p>  當(dāng)比賽準(zhǔn)備開始的時(shí)候,當(dāng)調(diào)時(shí)(十位)開關(guān)KEY1按下時(shí),產(chǎn)生一個(gè)低電平;立即數(shù)00H取出,同時(shí)對(duì)應(yīng)調(diào)分(十位)控制端P2.0的LE輸出高電平, 高電平促使三極管導(dǎo)通,把數(shù)據(jù)送LED顯示器顯示即可。調(diào)時(shí)按鍵開關(guān)每按一次,數(shù)字自動(dòng)加1,直到調(diào)到需要設(shè)置的時(shí)間即

48、可。</p><p>  調(diào)時(shí)(個(gè)位)的操作方法與上面一樣</p><p>  時(shí)間設(shè)置完成后,啟動(dòng)定時(shí)器T0開始定時(shí)計(jì)數(shù)。計(jì)時(shí)采用倒計(jì)時(shí),比如:設(shè)置的時(shí)間為12分鐘,則在LED上顯示1200四位數(shù)。定時(shí)T0計(jì)數(shù)60秒后中斷返回,繼續(xù)定時(shí)計(jì)數(shù)下一個(gè)60秒;同時(shí)則在4位LED顯示器上顯示1159四位數(shù),表示時(shí)間已過去1秒鐘,即為11分59秒。</p><p>  這樣

49、一直持續(xù)下去,直到變?yōu)椤?000”時(shí)表示賽程結(jié)束。如果比賽中,裁判叫暫停,則只要按一下KEY3鍵,即可暫停計(jì)時(shí)。</p><p><b>  3.3計(jì)分電路部分</b></p><p>  8051系列單片機(jī)除了有4個(gè)8位并行口外,還有一個(gè)能同時(shí)進(jìn)行串行發(fā)送和接收的全雙工串行通信口。它能同時(shí)發(fā)送和接收數(shù)據(jù),還能作為同步移位寄存器使用。</p><p

50、>  3.3.1 串行接口工作原理</p><p>  MCS-51系列單片機(jī)片內(nèi)有一個(gè)串行I/O端口,通過引腳 RXD(P3.0)和TXD(P3.1)可與外設(shè)電路進(jìn)行全雙工的 串行異步通信。 </p><p>  8051單片機(jī)的串行端口有4種基本工作方式,通過編程設(shè)置,可以使其工作在任一方式,以滿足不同應(yīng)用場(chǎng)合的需要。其中,方式0主要用于外接移位寄存器,以擴(kuò)展單片機(jī)的I/O電路;

51、方式1多用于雙機(jī)之間或與外設(shè)電路的通信;方式2,3除有方式l的功能外,還可用作多機(jī)通信,以構(gòu)成分布式多微機(jī)系統(tǒng)。串行端口有兩個(gè)控制寄存器(SCON和PCON),用來設(shè)置工作方式、發(fā)送或接收的狀態(tài)、特征位、數(shù)據(jù)傳送的波特率(每秒傳送的位數(shù))以及作為中斷標(biāo)志等。</p><p>  串行端口有一個(gè)數(shù)據(jù)寄存器SBUF(在特殊功能寄存器中的字節(jié)地址為99H),該寄存器為發(fā)送和接收所共同。發(fā)送時(shí),只寫不讀;接收時(shí),只讀不寫

52、。在一定條件下,向SBUF寫入數(shù)據(jù)就啟動(dòng)了發(fā)送過程;讀SBUF就啟動(dòng)了接收過程。串行通信的波特率可以程控設(shè)定。在不同工作方式中,由時(shí)鐘振蕩頻率的分頻值或由定時(shí)器T1的溢出率確定,使用十分方便靈活。</p><p>  表3-3為寄存器SCON內(nèi)容定義表,表3-4為寄存器PCON位地址:</p><p>  表3-3 SCON各位內(nèi)容定義</p><p>  位

53、 D7 D6 D5 D4 D3 D2 D1 D0</p><p>  表3-4 PCON位地址</p><p>  D7 D0</p><p>  本次設(shè)計(jì)的計(jì)分電路中,我們使用單片機(jī)輸出高電平導(dǎo)通三極管,使

54、LED顯示。</p><p>  3.3.2比分校正控制電路</p><p>  本次設(shè)計(jì)中的比分校正控制電路由4個(gè)按鍵控制單片機(jī)輸入完成的,其中KEY4、KEY5鍵接 STC89C51RC的P1.3,P1.4腳,完成甲隊(duì)加、減分控制;KEY6、KEY7鍵接STC89C51RC的P1.5,P1.6腳,完成乙隊(duì)加、減分控制。</p><p>  3.3.3計(jì)分電路原理

55、圖</p><p>  同計(jì)時(shí)電路一樣,采用分塊說明:</p><p>  STC89C51RC部分:</p><p>  圖3-6 計(jì)分單片機(jī)部分電路圖</p><p><b>  按鍵開關(guān)部分:</b></p><p>  圖3-7 計(jì)分按鍵開關(guān)部分電路圖</p><p&g

56、t;<b>  顯示部分:</b></p><p>  圖3-8 計(jì)分顯示部分電路圖</p><p>  3.3.4 計(jì)分電路的工作原理</p><p>  計(jì)分電路主要由單片機(jī)STC89C51RC,,LED顯示器,以及按鍵開關(guān)組成。其工作過程如下:按鍵開關(guān)KEY4~~KEY7組成甲、乙兩隊(duì)加減分控制。按鍵KEY4~~KEY7一端接地,另一端與

57、單片機(jī)STC89C51RC的P1.3,P1.4,P1.5,P1.6。當(dāng)按鍵開關(guān)KEY4~~KEY7四個(gè)按鍵的任何一個(gè)一位按下時(shí),都會(huì)產(chǎn)生低電平使單片機(jī)中斷,從而使相應(yīng)LED顯示。因?yàn)榘存I開關(guān)按下時(shí)為低電平。</p><p>  例如:現(xiàn)在先在以甲隊(duì)加分為例,來說明整個(gè)過程。假設(shè)比賽剛開始,雙方比分為000 000,當(dāng)某一時(shí)刻之后,當(dāng)甲隊(duì)加分時(shí),則按下KEY4鍵,這時(shí)KEY4=0(低電平),輸出低電平到STC89C

58、51RC的P1.3腳,使其外部中斷INT0發(fā)生中斷,從而調(diào)用中斷服務(wù)程序,將要顯示的數(shù)據(jù)從程序中定義的LED顯示常數(shù)表TAB中取出數(shù)據(jù)06H(因?yàn)長(zhǎng)ED顯示常數(shù)表TAB的偏移地址為36H,36H首先是指向LED顯示常數(shù)表TAB中第一個(gè)數(shù)據(jù)3FH的,當(dāng)KEY4按下時(shí),相當(dāng)于將33H地址加1,這時(shí)便指向第二數(shù)據(jù)06H,即對(duì)應(yīng)字母代碼關(guān)系表中的的加1)。使P2.4口輸出高電平,使三極管導(dǎo)通,選通甲隊(duì)個(gè)位對(duì)應(yīng)的數(shù)碼管,使其加1。最終顯示為001

59、000</p><p>  其對(duì)應(yīng)的程序原理如下闡述:</p><p>  因?yàn)?,在程序中定義了33H,34H,35H,36H,37H,38H,6地址單元分別對(duì)應(yīng)乙隊(duì)、甲隊(duì)3個(gè)LED顯示器在程序中定義的LED顯示常數(shù)表TAB[4]的偏移首地址。單片機(jī)的RXD每次發(fā)送6個(gè)數(shù)據(jù),分別對(duì)應(yīng)以33H,34H,35H,36H,37H,38H為偏移首地址單元里的數(shù)據(jù)。例如:甲隊(duì)加分表示以36H為偏移首

60、地址的單元加1,指向第二個(gè)數(shù)據(jù)06H,其他以33H,34H,35H,37H,38H為偏移首地址單元的數(shù)據(jù)仍然指向第一個(gè)數(shù)據(jù)3FH,這樣將這六個(gè)數(shù)據(jù):3FH,3FH,3FH,06H,3FH,3FH,經(jīng)單片機(jī)的RXD發(fā)送出去,再在單片機(jī)RD/P3.7輸出的6次高電平作用下產(chǎn)生6次移位,得到顯示代碼:3FH,3FH,06H,3FH,3FH,3FH。然后在RD/P3.7輸出,經(jīng)驅(qū)動(dòng)電路給LED顯示為001 000。</p><

61、;p>  3.4球賽計(jì)時(shí)計(jì)分器的工作過程</p><p>  整個(gè)籃球計(jì)時(shí)計(jì)分器的工作過程如下:</p><p>  首先在比賽之前,接通電源,系統(tǒng)自動(dòng)復(fù)位,此時(shí)計(jì)時(shí)電路與計(jì)分電路中的共陰極數(shù)碼管全部顯示為0000和000 000;然后我們按照計(jì)時(shí)電路中的KEY1鍵來設(shè)置比賽時(shí)間的十位數(shù),例如比賽時(shí)間第一節(jié)12分鐘,則通過KEY1鍵,使數(shù)碼管1顯示“1”即可;再按下KEY2鍵,設(shè)置比

62、賽時(shí)間的個(gè)位數(shù),使數(shù)碼管2顯示“2”即可。</p><p>  時(shí)間設(shè)置好時(shí),等待賽程開始,當(dāng)裁判吹響哨聲時(shí),啟動(dòng)計(jì)時(shí),這時(shí)計(jì)時(shí)電路便開始工作,計(jì)時(shí)采用到計(jì)時(shí)方式,即從12分鐘減為0分鐘表示第一節(jié)結(jié)束。上半場(chǎng)結(jié)束時(shí),蜂鳴器會(huì)發(fā)出10秒鐘響聲,通知上第一節(jié)結(jié)束,這時(shí)按下KEY3鍵,便完成了甲、乙兩隊(duì)的分?jǐn)?shù)交換。在整個(gè)賽程中,我們還要對(duì)兩隊(duì)比分進(jìn)行及時(shí)刷新,這時(shí)我們通過計(jì)分電路中的KEY4~~KEY7鍵完成此功能,K

63、EY4和KEY5鍵完成甲隊(duì)加分、減分,KEY6和KEY7鍵完成乙隊(duì)加分、減分。按鍵每按一下,表示加上或者減去1分。</p><p>  由于加分、減分我們采用中斷完成,且加、減分的中斷優(yōu)先權(quán)小于計(jì)時(shí)電路中的中斷優(yōu)先權(quán),所以不會(huì)對(duì)計(jì)時(shí)電路造成影響。如果在賽程過程中,一方的教練申請(qǐng)暫停時(shí),經(jīng)裁判批準(zhǔn),我們立即按下KEY3鍵,即可以暫停計(jì)時(shí),暫停時(shí)間到時(shí),再按下KEY3鍵繼續(xù)計(jì)時(shí),直至上半場(chǎng)賽程結(jié)束,蜂鳴器會(huì)發(fā)出10秒

64、的響聲。下半場(chǎng)的流程和上半場(chǎng)基本上是一樣的。</p><p>  下面介紹下這個(gè)設(shè)計(jì)的基本功能:</p><p>  3.4.1賽程時(shí)間設(shè)置</p><p>  在計(jì)時(shí)電路中。按鍵開關(guān)KEY1、KEY2用來設(shè)置賽程時(shí)間。比如:比賽時(shí)間上半場(chǎng)時(shí)間12分鐘,則通過按鍵KEY1鍵,使數(shù)碼管1顯示“1”即可;再按K6鍵,設(shè)置比賽時(shí)間的個(gè)位數(shù),使數(shù)碼管2顯示“2”即可。當(dāng)比賽

65、結(jié)束時(shí),如果由于一些特殊原因需要增加比賽時(shí)間,這時(shí)增加比賽時(shí)間同樣由按鍵KEY1、KEY2來設(shè)置,并且設(shè)置方法與上面所述一眼,但一般情況下只需要按KEY2鍵來設(shè)置即可,因?yàn)榧訒r(shí)比賽一般只有幾分鐘而已。</p><p>  3.4.2賽程時(shí)間啟動(dòng) / 暫停設(shè)置</p><p>  當(dāng)時(shí)間設(shè)置完成后,比如設(shè)置賽程時(shí)間為12分鐘,則在圖3-4所示的LED顯示器上顯示為1200,12表示分鐘,00

66、表示秒鐘。這時(shí),如果裁判吹響開始的哨聲時(shí),則應(yīng)立即按下按鍵KEY3,表示賽程開始,計(jì)時(shí)顯示則由1200變成1159,1158……一直計(jì)時(shí)直到計(jì)為0000時(shí)表示賽程結(jié)束。按鍵KEY3為賽程啟動(dòng)和暫停控制。</p><p>  3.4.3比分交換控制</p><p>  比分交換控制由KEY3鍵完成。我們知道,因?yàn)楸确纸粨Q是在上半場(chǎng)賽程結(jié)束后進(jìn)行的,也就是說比分交換受賽程時(shí)間控制,只有當(dāng)上半場(chǎng)

67、計(jì)時(shí)器指示為0000時(shí),按KEY3鍵,則會(huì)自動(dòng)交換甲、乙兩隊(duì)的比分。</p><p>  如果上半場(chǎng)賽程時(shí)間沒有到0000時(shí),則此時(shí)按下KEY3鍵,只會(huì)暫停比賽,不能交換分?jǐn)?shù)。如果要繼續(xù)比賽,再按一次KEY3即可。因此,KEY3鍵完成三重功能,即:?jiǎn)?dòng),暫停,比分交換。</p><p>  3.4.4比分刷新控制</p><p>  由于在比賽中,甲、乙兩隊(duì)的比分是

68、不斷在變化的,所以需要設(shè)置比分刷新控制裝置;此部分功能由圖所示的計(jì)分電路中的按鍵開關(guān)KEY4~~KEY7來完成的:</p><p>  KEY4鍵:完成甲隊(duì)加1分操作</p><p>  KEY5鍵:完成甲隊(duì)減1分操作</p><p>  KEY6鍵:完成乙隊(duì)加1分操作</p><p>  KEY7鍵:完成乙隊(duì)減1分操作 </p&

69、gt;<p>  3.4.5計(jì)時(shí)計(jì)分顯示</p><p>  計(jì)時(shí)計(jì)分顯示器是采用七段共陰LED顯示器來顯示的。其中計(jì)分是用6個(gè)LED顯示器。計(jì)時(shí)采用4個(gè)LED顯示器;顯示格式為000 000和00 00。</p><p>  3.4.6賽程結(jié)束報(bào)警</p><p>  當(dāng)比賽結(jié)束時(shí),系統(tǒng)會(huì)自動(dòng)發(fā)出10秒鐘報(bào)警聲,提示賽程結(jié)束。</p>

70、<p>  3.4.7系統(tǒng)總體電路圖 </p><p>  下面是用Orcad畫的總體電路圖(采用分塊說明):</p><p><b>  單片機(jī)部分:</b></p><p>  圖3-9 總體電路圖單片機(jī)部分</p><p>  振蕩電路和復(fù)位電路:</p><p>  圖3-10

71、震蕩電路(左)和復(fù)位電路(右)</p><p>  按鍵電路和報(bào)警電路:</p><p>  圖3-11 按鍵電路和報(bào)警電路</p><p><b>  顯示電路:</b></p><p>  圖3-12 顯示部分電路</p><p>  第4章 軟件編程及調(diào)試</p><p&

72、gt;  軟件的編程設(shè)計(jì)是單片機(jī)系統(tǒng)設(shè)計(jì)的核心部分,也是能否實(shí)現(xiàn)預(yù)定功能的關(guān)鍵。單片機(jī)編程常用的語言是C語言和匯編語言,最終都要轉(zhuǎn)為Intel HEX格式或二進(jìn)制格式(Binary)文件拷入單片機(jī)芯片內(nèi)。這里我們使用的是匯編語言進(jìn)行編程設(shè)計(jì)。</p><p><b>  4.1開發(fā)環(huán)境介紹</b></p><p>  4.1.1匯編語言特點(diǎn)簡(jiǎn)介</p>

73、<p>  匯編語言的實(shí)質(zhì)和機(jī)器語言是相同的,都是直接對(duì)硬件操作,只不過指令采用了英文縮寫的標(biāo)識(shí)符,更容易識(shí)別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來。匯編程序通常由三部分組成:指令、偽指令和宏指令。匯編程序的每一句指令只能對(duì)應(yīng)實(shí)際操作過程中的一個(gè)很細(xì)微的動(dòng)作,例如移動(dòng)、自增,因此匯編源程序一般比較冗長(zhǎng)、復(fù)雜、容易出錯(cuò),而且使用匯編語言編程需要有更多的計(jì)算機(jī)專業(yè)知識(shí),但匯編語言的優(yōu)點(diǎn)也是顯而易見的,用匯編語

74、言所能完成的操作不是一般高級(jí)語言所能實(shí)現(xiàn)的,而且源程序經(jīng)匯編生成的可執(zhí)行文件不僅比較小,而且執(zhí)行速度很快。</p><p>  高級(jí)語言主要是相對(duì)于匯編語言而言的。高級(jí)語言是目前絕大多數(shù)編程者的選擇,和匯編語言相比,它不但將許多相關(guān)的機(jī)器指令合成為單條指令,并且去掉了與具體操作有關(guān)但與完成工作無關(guān)的細(xì)節(jié),例如使用堆棧、寄存器等,這樣就大大簡(jiǎn)化了程序中的指令。同時(shí),由于省略了很多細(xì)節(jié),編程者也就不需要有太多的專業(yè)知

75、識(shí)。高級(jí)語言所編制的程序不能直接被計(jì)算機(jī)識(shí)別,必須經(jīng)過轉(zhuǎn)換才能被執(zhí)行。C語言就屬于高級(jí)語言。</p><p>  作為最基本的編程語言之一,匯編語言雖然應(yīng)用的范圍不大,但仍然具有重要性,因?yàn)樗軌蛲瓿稍S多其它語言所無法完成的功能。匯編語言的優(yōu)點(diǎn)是速度快,可以直接對(duì)硬件進(jìn)行操作,這對(duì)諸如圖形處理等關(guān)鍵應(yīng)用是非常重要的。</p><p>  匯編語言直接同計(jì)算機(jī)的底層軟件甚至硬件進(jìn)行交互,它具

76、有如下一些優(yōu)點(diǎn):</p><p> ?。?)能夠直接訪問與硬件相關(guān)的存儲(chǔ)器或 I/O 端口;</p><p> ?。?)能夠不受編譯器的限制,對(duì)生成的二進(jìn)制代碼進(jìn)行完全的控制;</p><p> ?。?)能夠?qū)﹃P(guān)鍵代碼進(jìn)行更準(zhǔn)確的控制,避免因線程共同訪問或者硬件設(shè)備共享引起的死鎖;</p><p>  (4)能夠根據(jù)特定的應(yīng)用對(duì)代碼做最佳的優(yōu)

77、化,提高運(yùn)行速度; </p><p> ?。?)能夠最大限度地發(fā)揮硬件的功能。</p><p>  4.1.2開發(fā)軟件介紹</p><p>  用于進(jìn)行單片機(jī)編程調(diào)試的軟件有很多種,但其操作平臺(tái)和使用方法都大同小異。其中使用最普遍,支持芯片種類也最全面的就是WAVE調(diào)試軟件了。我在完成本課題的程序仿真及調(diào)試時(shí)使用的就是這款軟件。WAVE軟件是眾多單片機(jī)應(yīng)用開發(fā)的優(yōu)秀

78、軟件之一,它集編輯,編譯,仿真于一體,支持匯編,PLM語言和C語言的程序設(shè)計(jì),界面友好,易學(xué)易用。</p><p><b>  4.2 軟件設(shè)計(jì)</b></p><p>  4.2.1 編程設(shè)置及總流程框圖</p><p>  編程前,必須設(shè)置好地址、數(shù)據(jù)以及控制信號(hào)。</p><p>  編程單元的地址加在P1口和P2

79、口的P2.0—P2.3(11位地址范圍為0000H—0FFFH),數(shù)據(jù)從P0口輸入,引腳P2.6、P2.7、P3.6、P3.7的電平設(shè)置參考校驗(yàn)電路,/PSEN為低電平,RST保持高電平,EA/Vpp引腳是編程電源的輸入端,按要求加上編程電壓,ALE/PROG引腳輸入編程脈沖。</p><p>  編程時(shí),可采用4—20MHZ的時(shí)鐘振蕩器,本次設(shè)計(jì)采用12MHZ的石英晶體振蕩器。具體過程是:</p>

80、<p> ?。?)在地址線上加上要編程單元的地址信號(hào),這里為33H,34H,35H,36H,37H,38H,6個(gè)地址符。</p><p> ?。?)在數(shù)據(jù)線上加上要寫入的數(shù)據(jù)字節(jié),比如甲隊(duì)加一分就是在36H地址上加上(偏移)一個(gè)字符06H。</p><p> ?。?)激活相應(yīng)的控制信號(hào)。</p><p> ?。?)在高電壓編程方式時(shí),將EA/Vpp端加上

81、+12V編程電壓。</p><p> ?。?)改變編程單元的地址和寫入的數(shù)據(jù),重復(fù)1—5步驟,直到全部文件編程結(jié)束,每個(gè)字節(jié)寫入周期是自身定時(shí)的,通常約為1.5ms。</p><p>  本次設(shè)計(jì)的程序流程圖如下:</p><p>  圖4-2 程序流程圖</p><p>  4.2.2主要模塊說明</p><p> 

82、 計(jì)時(shí)部分模塊流程如下:</p><p>  圖4-3 計(jì)時(shí)部分流程圖</p><p><b>  記分部分模塊流程:</b></p><p>  圖4-4 計(jì)分部分流程圖</p><p><b>  4.3系統(tǒng)調(diào)試</b></p><p><b>  4.3.1軟

83、件調(diào)試</b></p><p>  上電時(shí)對(duì)系統(tǒng)中進(jìn)行檢測(cè)是單片機(jī)程序中的一個(gè)良好設(shè)計(jì)。在硬件設(shè)計(jì)時(shí)也應(yīng)該細(xì)細(xì)考慮將各個(gè)使用到的芯片、接口設(shè)計(jì)成容易使用軟件進(jìn)行測(cè)試的模式。</p><p>  很多有經(jīng)驗(yàn)的單片機(jī)設(shè)計(jì)者都會(huì)在系統(tǒng)上電時(shí)(特別是第一次上電時(shí))進(jìn)行全面的檢測(cè),或者更進(jìn)一步,將系統(tǒng)的運(yùn)行狀態(tài)中分為測(cè)試模式和正常運(yùn)行模式,通過加入測(cè)試模式對(duì)系統(tǒng)進(jìn)行詳細(xì)的檢測(cè),使得系統(tǒng)的

84、批量檢測(cè)更為方便容易。</p><p><b>  檢測(cè)內(nèi)容包括:</b></p><p> ?。?)檢測(cè)RAM 中的單元。這主要通過寫入和讀出的數(shù)據(jù)保持一致。</p><p> ?。?)檢測(cè)單片機(jī)與RAM 之間的地址數(shù)據(jù)總線??偩€即沒有互相短路,也沒有連接到“地”上。另外,很多芯片,都提供了測(cè)試的方法。如串行通信芯片UART,都帶環(huán)路測(cè)試的功

85、能。</p><p>  另外,在仿真前要做好充分的準(zhǔn)備。單片機(jī)硬件仿真器給單片機(jī)開發(fā)者帶來了極大的方便,同時(shí)也很容易造成人的依賴性。很多時(shí)候,沒有仿真器卻能促使工程師寫出更高質(zhì)量的程序。在硬件仿真調(diào)試之前,下面準(zhǔn)備工作將是必要的:</p><p>  (1)程序編完后,對(duì)代碼仔細(xì)逐行檢查。檢查代碼的錯(cuò)誤,建立自己的代碼檢查表,對(duì)經(jīng)常易錯(cuò)的地方進(jìn)行檢查。檢查代碼是否符合編程規(guī)范。</

86、p><p> ?。?)對(duì)各個(gè)子程序進(jìn)行測(cè)試。測(cè)試的方法:用程序測(cè)試程序,編制一個(gè)調(diào)用該子程序的代碼,建立要測(cè)試子程序的入口條件,再看看它是否按預(yù)期輸出結(jié)果。</p><p> ?。?)如果代碼有修改,再次對(duì)代碼進(jìn)行檢查。</p><p><b>  4.3.2仿真調(diào)試</b></p><p>  仿真開始,具體流程如下:&l

87、t;/p><p>  1.系統(tǒng)進(jìn)入初始化,程序從START開始,關(guān)閉了所有用戶,INTO中斷一直為高優(yōu)先級(jí),系統(tǒng)一直處于IDLE狀態(tài)。由于這是軟仿真,無法加入INTO信號(hào),所以我們手動(dòng)把P3.2的數(shù)值由1修改為0,程序才得以執(zhí)行。如圖4-4。</p><p>  圖4-5 仿真系統(tǒng)圖(1)</p><p>  2.調(diào)用延時(shí)程序,程序跳轉(zhuǎn)到LIGHT01。判斷引腳P3.0

88、的數(shù)值,因?yàn)镻3.0連接計(jì)分電路部分中的CD4094的DATA腳,使用軟件仿真,將P3.0的數(shù)值由1修改為0。而P3.0數(shù)值仍然為1,如圖4-6</p><p>  圖4-6仿真系統(tǒng)圖(2)</p><p>  3.程序進(jìn)入計(jì)分中斷服務(wù)程序,由于系統(tǒng)工作方式為方式0,P3.0與P3.1同時(shí)輸出信號(hào),P3.1為多位時(shí)鐘脈沖信號(hào)。信號(hào)經(jīng)由CD4094傳輸?shù)斤@示器上,系統(tǒng)完成一次操作。如圖4-8

89、。</p><p>  圖4-5 仿真系統(tǒng)圖(3)</p><p>  4.仿真結(jié)束,系統(tǒng)再次進(jìn)入IDLE狀態(tài),閑置,等待下次INTO的輸入。仿真結(jié)果表明程序運(yùn)行正常。</p><p><b>  結(jié)論</b></p><p>  在本次畢業(yè)設(shè)計(jì),我通過基于典型單片機(jī)STC89C51RC的設(shè)計(jì)和應(yīng)用,對(duì)于單片機(jī)工作原理,

90、功能有了宏觀的了解,并對(duì)單片機(jī)匯編程序的應(yīng)用有了新的、進(jìn)一步的認(rèn)識(shí)。</p><p>  在本次設(shè)計(jì)的過程中,我發(fā)現(xiàn)很多的問題,給我的感覺就是下手很難,很不順手,看似很簡(jiǎn)單的電路,要?jiǎng)邮职阉o設(shè)計(jì)出來,是很難的一件事,主要原因是我們沒有經(jīng)常動(dòng)手設(shè)計(jì)過電路。另外單片機(jī)系統(tǒng)的知識(shí)似懂非懂,而且很多知識(shí)當(dāng)時(shí)弄明白了,現(xiàn)在要用的時(shí)候又不記得,造成我用了大量的時(shí)間去查閱各種資料和程序命令,因此整個(gè)過程時(shí)間安排不合理。由于設(shè)

91、計(jì)的計(jì)劃沒有安排好,設(shè)計(jì)的時(shí)間極為倉(cāng)促,尤其是在硬件調(diào)試的過程中出現(xiàn)了很大的問題。另外資料的查找也是一大難題,這就要求我們?cè)谝院蟮膶W(xué)習(xí)中,應(yīng)該注意到這一點(diǎn),更重要的是我們要學(xué)會(huì)把從書本中學(xué)到的知識(shí)和實(shí)際的電路聯(lián)系起來,這不論是對(duì)我們以后的就業(yè)還是學(xué)習(xí),都會(huì)起到很大的促進(jìn)和幫助。</p><p>  在利用單片機(jī)設(shè)計(jì)簡(jiǎn)易LED顯示屏的整個(gè)設(shè)計(jì)過程中,從電路的設(shè)計(jì),元器件的采購(gòu),電路的調(diào)試,程序的編寫以及最后的電路板

92、的制作,我都親自參與了設(shè)計(jì)與制作,這對(duì)我對(duì)于理論和實(shí)際相結(jié)合有了新的認(rèn)識(shí)。</p><p>  單片機(jī)目標(biāo)系統(tǒng)裝完之后,應(yīng)該首先認(rèn)真細(xì)致地檢查一遍:</p><p>  第一,根據(jù)硬件電路原理圖和裝配圖仔細(xì)檢查線路的正確性,并檢查元器件安裝是否正確。常常要注意的是芯片及開關(guān)管的型號(hào)、放大器和開關(guān)管的極性、電容器的耐壓和極性、電阻的阻值和功率是否與設(shè)計(jì)圖紙相符,重點(diǎn)檢查系統(tǒng)總線間或總線與其它

93、信號(hào)線間是否存在短路;</p><p>  第二,檢查焊接點(diǎn)是否牢固,特別要仔細(xì)檢查有無漏焊和錯(cuò)焊;對(duì)于靠得很近的相鄰焊點(diǎn),要注意檢查金屬毛刺和是否短路,必要時(shí)可用萬用表進(jìn)行測(cè)量。調(diào)試過程有時(shí)可能要重復(fù)多次。另外,在燒寫程序的時(shí)候,一定要注意到AT89系列默認(rèn)的有芯片加密。</p><p>  本次設(shè)計(jì)測(cè)試結(jié)果以及不足之處:</p><p>  上電復(fù)位后,進(jìn)行定時(shí)

94、設(shè)置,設(shè)置完成后,啟動(dòng)計(jì)時(shí)。計(jì)時(shí)過程中按下K1~K4觀察分電路是否工作正常。</p><p>  計(jì)時(shí)結(jié)束后,是否有報(bào)警音出現(xiàn)。上半場(chǎng)計(jì)時(shí)結(jié)束后,按下比分交換鍵,看比分是否產(chǎn)生交換。測(cè)試結(jié)果:計(jì)時(shí)電路可完成倒計(jì)時(shí),暫停,繼續(xù)等功能,在比賽時(shí)間到后可進(jìn)行報(bào)警。記分電路工作正常,可完成對(duì)比分的刷新與暫存。但在測(cè)試過程中發(fā)現(xiàn),在比賽上半場(chǎng)時(shí)間到后,不能進(jìn)行比分的交換。</p><p>  進(jìn)行分

95、析后得出結(jié)論如下:系統(tǒng)電路部分設(shè)計(jì)沒有原則性的錯(cuò)誤,在制版的過程中注意了走線,并且在焊接過程中沒有發(fā)生大的事故,因此硬件部分功能完好。但因?yàn)檐浖到y(tǒng)編寫方面的疏忽,在比分交換及計(jì)時(shí)部分沒有能很好的實(shí)現(xiàn)。除此之外,軟件達(dá)到了系統(tǒng)的要求。</p><p><b>  致 謝</b></p><p>  時(shí)光如梭,我在***大學(xué)的四年大學(xué)生活已接近尾聲。值此論文完成之際,謹(jǐn)

96、向給予我關(guān)心和幫助的老師、同學(xué)、朋友、親人表示最衷心的感謝。</p><p>  本論文是在我的導(dǎo)師**老師的親切關(guān)懷和悉心指導(dǎo)下完成的。她嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng),深深地感染和激勵(lì)著我。從課題的選擇到項(xiàng)目的最終完成,閆萍老師都始終給予我細(xì)心的指導(dǎo)和不懈的支持。</p><p>  在此謹(jǐn)向**老師致以誠(chéng)摯的謝意和崇高的敬意!</p><p&g

97、t;  在此,我還要感謝在一起愉快的度過了本科生活的電子一班各位同學(xué),正是由于你們的幫助和支持,我才能克服一個(gè)一個(gè)的困難和疑惑,直至本文的順利完成。</p><p>  在論文即將完成之際,我的心情無法平靜,從開始進(jìn)入課題到論文的順利完成,有多少可敬的師長(zhǎng)、同學(xué)、朋友給了我無言的幫助,在這里請(qǐng)接受我誠(chéng)摯的謝意!最后我還要感謝培養(yǎng)我長(zhǎng)大含辛茹苦的父母,謝謝你們!</p><p><b&

98、gt;  參考文獻(xiàn)</b></p><p>  [1] 何立民主編。MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1995.</p><p>  [2] 薛鈞義,張彥斌。MCS-51系列單片微型計(jì)算機(jī)及其應(yīng)用[M].西安:西安交通大學(xué)出版社,1997.</p><p>  [3]丁元杰。單片微機(jī)原理及應(yīng)用[M].北京:機(jī)械工業(yè)出

99、版社,1994.</p><p>  [4] 侯伯亨,李伯成。十六位微型計(jì)算機(jī)原理及接口技術(shù)[M].西安:西安電子科技大學(xué)出版社,1994.</p><p>  [5] 李廣弟。單片機(jī)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,1994.</p><p>  [6] 張凱等。單片機(jī)綜合系統(tǒng)及其設(shè)計(jì)開發(fā)[M].北京:科學(xué)出版社,1996.</p><

100、p>  [7] 陳偉人。MCS-51系統(tǒng)單片機(jī)使用子程序集錦[M].北京:清華大學(xué)出版社,1993.</p><p>  [8]張幽彤,陳寶江編著。MCS-8089系統(tǒng)實(shí)用大全[M].北京:清華大學(xué)出版社,1993.</p><p>  [9]Motorola INC.MC68HC11 Reference Manual[M].1991.</p><p>  [

101、10]徐惠民,安德寧.單片微型計(jì)算機(jī)原理、接口及應(yīng)用.第二版[M].北京:北京郵電大學(xué)出版社.2000</p><p>  [11]王福瑞.單片微機(jī)測(cè)控系統(tǒng)設(shè)計(jì)大全[M].北京:北京航空航天大學(xué)出版社,1998</p><p>  [12]李東生.Protel99 SE電路設(shè)計(jì)技術(shù)入門與應(yīng)用.第一版[M].北京:電子工業(yè)出版社.2002</p><p>  [13]

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論