2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩28頁(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>  基于單片機(jī)控制的交通燈設(shè)計(jì)</p><p>  專 業(yè): 電氣工程及其自動(dòng)化 </p><p>  學(xué) 生 姓 名: </p><p>  學(xué) 號(hào): 1041201135 </p><p>  指 導(dǎo) 教 師: XXXX

2、 XXXX </p><p>  完成日期:2012年5月15日</p><p><b>  目 錄</b></p><p><b>  一.選題背景1</b></p><p>  2.1 課題背景1</p><p>  2.2 交通燈的歷史1&

3、lt;/p><p><b>  二設(shè)計(jì)思路1</b></p><p>  2.1 電源提供方案1</p><p>  2.2 顯示界面方案2</p><p>  2.3 輸入方案:2</p><p>  三單片機(jī)交通控制系統(tǒng)總體設(shè)計(jì)2</p><p>  3.1單片機(jī)

4、交通控制系統(tǒng)的通行方案設(shè)計(jì)2</p><p>  3.2 單片機(jī)交通控制系統(tǒng)的功能要求3</p><p>  3.3單片機(jī)交通控制系統(tǒng)的基本構(gòu)成及原理4</p><p>  四智能交通燈控制系統(tǒng)的硬件設(shè)計(jì)4</p><p>  4.1 AT89C51單片機(jī)簡(jiǎn)介4</p><p>  4.1.1 AT89C51

5、單片機(jī)的主要特性5</p><p>  4.1.2 主要引腳功能 5</p><p>  4.2 交通燈中的中斷處理流程7</p><p>  4.3 系統(tǒng)硬件總電路構(gòu)成及原理8</p><p>  4.3.1系統(tǒng)硬件電路構(gòu)成8</p>

6、;<p>  4.3.2系統(tǒng)工作原理8</p><p>  4.4其它硬件介紹及連接9</p><p>  4.4.1八段LED數(shù)碼管9</p><p>  5 系統(tǒng)軟件程序的設(shè)計(jì)11</p><p><b>  1. 設(shè)計(jì)思路1</b></p><p>  2.1 電源提

7、供方案1</p><p>  2.2 顯示界面方案2</p><p>  2.3 輸入方案:2</p><p>  3 單片機(jī)交通控制系統(tǒng)總體設(shè)計(jì)2</p><p>  3.1單片機(jī)交通控制系統(tǒng)的通行方案設(shè)計(jì)2</p><p>  3.2 單片機(jī)交通控制系統(tǒng)的功能要求3</p><p&g

8、t;  3.3單片機(jī)交通控制系統(tǒng)的基本構(gòu)成及原理4</p><p>  4智能交通燈控制系統(tǒng)的硬件設(shè)計(jì)4</p><p>  4.1 AT89C51單片機(jī)簡(jiǎn)介4</p><p>  4.1.1 AT89C51單片機(jī)的主要特性5</p><p>  4.1.2 主要引腳功能5</p><p>  4.2 交通燈

9、中的中斷處理流程7</p><p>  4.3 系統(tǒng)硬件總電路構(gòu)成及原理8</p><p>  4.3.1系統(tǒng)硬件電路構(gòu)成8</p><p>  4.3.2系統(tǒng)工作原理8</p><p>  4.4其它硬件介紹及連接9</p><p>  4.4.1八段LED數(shù)碼管9</p><p>

10、;  5 系統(tǒng)軟件程序的設(shè)計(jì)11</p><p>  5.1 程序主體設(shè)計(jì)流程11</p><p>  5.2 理論基礎(chǔ)知識(shí)12</p><p>  5.2.1定時(shí)器原理12</p><p>  5.2.2軟件延時(shí)原理13</p><p>  5.2.3 中斷原理13</p><p>

11、;  5.3子程序模塊設(shè)計(jì)13</p><p>  5.3.1狀態(tài)燈顯示及判斷13</p><p>  5.3.2 LED倒計(jì)時(shí)顯示14</p><p>  5.3.3 緊停及調(diào)整時(shí)間中斷子程序14</p><p>  5.3.4 紅綠燈時(shí)間調(diào)整程序15</p><p>  5.4 系統(tǒng)軟件調(diào)試17&

12、lt;/p><p>  5.4.1 TKS仿真器17</p><p>  5.4.2 集成開發(fā)環(huán)境KEIL17</p><p>  參考文獻(xiàn)……………………………………………………………………………………………..17</p><p>  設(shè)計(jì)心得體會(huì)………………………………………………………………………………………...18</p&g

13、t;<p>  附錄……………………………………………………………………………………………………19</p><p>  基于單片機(jī)的交通控制系統(tǒng)模擬設(shè)計(jì)</p><p>  摘要: 自從1858年英國(guó)人,發(fā)明了原始的機(jī)械扳手交通燈之后,隨后的一百多年里,交通燈改變了交通路況,也在人們?nèi)粘I钪姓紦?jù)了重要地位,隨著人們社會(huì)活動(dòng)日益增加,經(jīng)濟(jì)發(fā)展,汽車數(shù)量急劇增加,城市道路日

14、漸擁擠,交通燈更加顯示出了它的功能,使得交通得到有效管制,對(duì)于交通疏導(dǎo),提高道路導(dǎo)通能力,減少交通事故有顯著的效果。</p><p>  近年來,隨著科技的飛速發(fā)展,電子器件也隨之廣泛應(yīng)用,其中單片機(jī)也不斷深入人民的生活當(dāng)中。本模擬交通燈系統(tǒng)利用單片機(jī)AT89C51作為核心元件,實(shí)現(xiàn)了通過信號(hào)燈對(duì)路面狀況的智能控制。從一定程度上解決了交通路口堵塞、車輛停車等待時(shí)間不合理、急車強(qiáng)通等問題。系統(tǒng)具有結(jié)構(gòu)簡(jiǎn)單、可靠性高

15、、成本低、實(shí)時(shí)性好、安裝維護(hù)方便等優(yōu)點(diǎn),有廣泛的應(yīng)用前景。</p><p>  本模擬系統(tǒng)由單片機(jī)硬/軟件系統(tǒng),兩位8段數(shù)碼管和LED燈顯示系統(tǒng)。和復(fù)位電路控制電路等組成,較好的模擬了交通路面的控制。</p><p>  關(guān)鍵詞:交通燈 單片機(jī) 數(shù)碼管</p><p><b>  1. 設(shè)計(jì)思路</b></p><p>

16、 ?。?)分析目前交通路口的基本控制技術(shù)以及各種通行方案,并以此為基礎(chǔ)提出自己的交通控制的初步方案。</p><p> ?。?)確定系統(tǒng)交通控制的總體設(shè)計(jì),包括,十字路口具體的通行禁行方案設(shè)計(jì)以及系統(tǒng)應(yīng)擁有的各項(xiàng)功能,在這里,本設(shè)計(jì)除了有信號(hào)燈狀態(tài)控制能實(shí)現(xiàn)基本的交通功能,還增加了倒計(jì)時(shí)顯示提示,基于實(shí)際情況,又增加了緊急狀況處理和通行時(shí)間可調(diào)這兩項(xiàng)特特殊功能。 </p><p>  

17、(3)進(jìn)行顯示電路,燈狀態(tài)電路,按鍵電路的設(shè)計(jì)和對(duì)各器件的選擇及連接,大體分配各個(gè)器件及模塊的基本功能要求。</p><p> ?。?)進(jìn)行軟件系統(tǒng)的設(shè)計(jì),對(duì)于本系統(tǒng),本人采用單片機(jī)匯編語(yǔ)言編寫,對(duì)單片機(jī)內(nèi)部結(jié)構(gòu)和工作情況做了充足的研究,了解定時(shí)器,中斷以及延時(shí)原理,總體上完成了軟件的編寫。</p><p>  2.單片機(jī)交通控制系統(tǒng)方案的比較、設(shè)計(jì)與論證 </p>

18、<p>  2.1 電源提供方案為使模塊穩(wěn)定工作,須有可靠電源。因此考慮了兩種電源方案:</p><p>  方案一:采用獨(dú)立的穩(wěn)壓電源。此方案的優(yōu)點(diǎn)是穩(wěn)定可靠,且有各種成熟</p><p>  電路可供選用;缺點(diǎn)是各模塊都采用獨(dú)立電源,會(huì)使系統(tǒng)復(fù)雜,且可能影響電路電平。</p><p>  方案二:采用單片機(jī)控制模塊提供電源。改方案的優(yōu)點(diǎn)是系統(tǒng)簡(jiǎn)明

19、扼要,</p><p>  節(jié)約成本;缺點(diǎn)是輸出功率不高。</p><p>  綜上所述,我選擇第二種方案。</p><p>  2.2 顯示界面方案</p><p>  該系統(tǒng)要求完成倒計(jì)時(shí)功能。基于上述原因,我考慮了二種方案:</p><p>  方案一:采用數(shù)碼管顯示。這種方案只顯示有限的符號(hào)和數(shù)碼字符,簡(jiǎn)單,方

20、便。</p><p>  方案二:采用點(diǎn)陣式LED 顯示。這種方案雖然功能強(qiáng)大,并可方便的顯示各種英文字符,漢字,圖形等,但實(shí)現(xiàn)復(fù)雜,且須完成大量的軟件工作。</p><p>  綜上所述,我選擇第一種方案。</p><p><b>  2.3 輸入方案:</b></p><p>  題目要求系統(tǒng)能調(diào)節(jié)燈亮?xí)r間,并可處理

21、緊急情況,我研究了兩種方案:</p><p>  方案一:采用8155擴(kuò)展I/O 口及鍵盤,顯示等。該方案的優(yōu)點(diǎn)是:使用靈活可編程,并且有RAM,及計(jì)數(shù)器。若用該方案,可提供較多I/O 口,但操作起來稍顯復(fù)雜。</p><p>  方案二: 直接在I/O口線上接上按鍵開關(guān)。</p><p>  由于該系統(tǒng)對(duì)于交通燈及數(shù)碼管的控制,只用單片機(jī)本身的I/O 口就可實(shí)現(xiàn),

22、且本身的計(jì)數(shù)器及RAM已經(jīng)夠用,故選擇方案二。</p><p>  3 單片機(jī)交通控制系統(tǒng)總體設(shè)計(jì)</p><p>  3.1單片機(jī)交通控制系統(tǒng)的通行方案設(shè)計(jì)</p><p>  設(shè)在十字路口,分為東西向和南北向,在任一時(shí)刻只有一個(gè)方向通行,另一方向禁行,持續(xù)一定時(shí)間,經(jīng)過短暫的過渡時(shí)間,將通行禁行方向?qū)Q。其具體狀態(tài)如下圖所示。說明:黑色表示亮,白色表示滅。交通狀

23、態(tài)從狀態(tài)1開始變換,直至狀態(tài)6然后循環(huán)至狀態(tài)1,周而復(fù)始,即如圖2.1所示:</p><p><b>  圖1 交通狀態(tài)</b></p><p>  通過具體的路口交通燈狀態(tài)的演示分析我們可以把這四個(gè)狀態(tài)歸納如下:</p><p>  ◆東西方向紅燈滅,同時(shí)綠燈亮,南北方向黃燈滅,同時(shí)紅燈亮,倒計(jì)時(shí)20秒。此狀態(tài)下,東西向禁止通行,南北向允許通

24、行。</p><p>  ◆東西方向綠燈滅,同時(shí)黃燈亮,南北方向紅燈亮,倒計(jì)時(shí)5秒。此狀態(tài)下,除了已經(jīng)正在通行中的其他所以車輛都需等待狀態(tài)轉(zhuǎn)換。</p><p>  ◆南北方向紅燈滅,同時(shí)綠燈亮,東西方向黃燈滅,同時(shí)紅燈亮,倒計(jì)時(shí)20秒。此狀態(tài)下,東西向允許通行,南北向禁止通行。</p><p>  ◆南北方向綠燈滅,同時(shí)黃燈亮,東西方向紅燈亮,倒計(jì)時(shí)5秒。此狀態(tài)下

25、,除了已經(jīng)正在通行中的其他所以車輛都需等待狀態(tài)轉(zhuǎn)換。</p><p>  下面我們可以用圖表表示燈狀態(tài)和行止?fàn)顟B(tài)的關(guān)系如下:</p><p>  表1交通狀態(tài)及紅綠燈狀態(tài)</p><p>  東西南北四個(gè)路口均有紅綠黃3燈和數(shù)碼顯示管2個(gè),在任一個(gè)路口,遇紅燈禁止通行,轉(zhuǎn)綠燈允許通行,之后黃燈亮警告行止?fàn)顟B(tài)將變換。狀態(tài)及紅綠燈狀態(tài)如表1所示。說明:0表示滅,1表示亮

26、。</p><p>  3.2 單片機(jī)交通控制系統(tǒng)的功能要求</p><p>  本設(shè)計(jì)能模擬基本的交通控制系統(tǒng),用紅綠黃燈表示禁行,通行和等待的</p><p>  信號(hào)發(fā)生,還能進(jìn)行倒計(jì)時(shí)顯示,通行時(shí)間調(diào)整和緊急處理等功能。</p><p><b> ?。?)倒計(jì)時(shí)顯示</b></p><p>

27、;  倒計(jì)時(shí)顯示可以提醒駕駛員在信號(hào)燈燈色發(fā)生改變的時(shí)間、在“停止”和“通過”兩者間作出合適的選擇。駕駛員和行人普遍都愿意選擇有倒計(jì)時(shí)顯示的信號(hào)控制方式,并且認(rèn)為有倒計(jì)時(shí)顯示的路口更安全。倒計(jì)時(shí)顯示是用來減少駕駛員在信號(hào)燈色改變的關(guān)鍵時(shí)刻做出復(fù)雜判斷的1種方法,它可以提醒駕駛員燈色發(fā)生改變的時(shí)間,幫助駕駛員在“停止”和“通過”兩者間作出合適的選擇 。</p><p><b>  (2)時(shí)間的設(shè)置<

28、/b></p><p>  本設(shè)計(jì)中可通過鍵盤對(duì)時(shí)間進(jìn)行手動(dòng)設(shè)置,增加了人為的可控性,避免自動(dòng)故障和意外發(fā)生,并再緊急狀態(tài)下,可設(shè)置所有燈變?yōu)榧t燈。鍵盤是單片機(jī)系統(tǒng)中最常用的人機(jī)接口,一般情況下有獨(dú)立式和行列式兩種。前者軟件編寫簡(jiǎn)單,但在按鍵數(shù)量較多時(shí)特別浪費(fèi)I/0口資源,一般用于按鍵數(shù)量少的系統(tǒng)。后者適用于按鍵數(shù)量較多的場(chǎng)合,但是在單片機(jī)I/0 口資源相對(duì)較少而需要較多按鍵時(shí),此方法仍不能滿足設(shè)計(jì)要求。本

29、系統(tǒng)要求的按鍵控制不多,且I/0口足夠,可直接采用獨(dú)立式。</p><p><b> ?。?)緊急處理</b></p><p>  交通路口出現(xiàn)緊急狀況在所難免,如特大事件發(fā)生,救護(hù)車等急行車通過等,我們都必須盡量允許其暢通無阻,畢竟在這種情況下是分秒必爭(zhēng)的,時(shí)時(shí)刻刻關(guān)系著公共財(cái)產(chǎn)安全,個(gè)人生死攸關(guān)等。由此在交通控制中增設(shè)禁停按鍵,就可達(dá)到想此目的。</p>

30、;<p>  3.3單片機(jī)交通控制系統(tǒng)的基本構(gòu)成及原理</p><p>  單片機(jī)設(shè)計(jì)交通燈控制系統(tǒng),可用單片機(jī)直接控制信號(hào)燈的狀態(tài)變化,基本上可以指揮交通的具體通行,當(dāng)然,接入LED數(shù)碼管就可以顯示倒計(jì)時(shí)以提醒行使者,更具人性化。本系統(tǒng)在此基礎(chǔ)上,加入了緊急情況處理與時(shí)間調(diào)整功能。</p><p><b>  圖2系統(tǒng)的總體框圖</b></p&g

31、t;<p>  據(jù)此,本設(shè)計(jì)系統(tǒng)以單片機(jī)為控制核心,連接成最小系統(tǒng),由按鍵設(shè)置模塊產(chǎn)生輸入,信號(hào)燈狀態(tài)模塊,LED倒計(jì)時(shí)模塊模塊接受輸出。系統(tǒng)的總體框圖如上所示。</p><p>  單片機(jī)上電后,系統(tǒng)進(jìn)入正常工作狀態(tài),執(zhí)行交通燈狀態(tài)顯示控制,同時(shí)將時(shí)間數(shù)據(jù)倒計(jì)時(shí)輸入到LED數(shù)碼管上實(shí)時(shí)顯示。在此過程中隨時(shí)調(diào)用急停按鍵和時(shí)間調(diào)節(jié)中斷。</p><p>  4智能交通燈控制系統(tǒng)

32、的硬件設(shè)計(jì)</p><p>  4.1 AT89C51單片機(jī)簡(jiǎn)介</p><p>  AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只

33、讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。</p><p>  4.1.1 AT89C51單片機(jī)的主要特性</p>

34、;<p>  與MCS-51 兼容 ,4K字節(jié)可編程閃爍存儲(chǔ)器 ,壽命:1000寫/擦循環(huán),數(shù)據(jù)保留時(shí)間:10年,全靜態(tài)工作:0Hz-24Hz,三級(jí)程序存儲(chǔ)器鎖定,128*8位內(nèi)部RAM,32可編程I/O線,兩個(gè)16位定時(shí)器/計(jì)數(shù)器,5個(gè)中斷源(兩個(gè)外部中斷源和3個(gè)內(nèi)部中斷源) ,可編程串行通道,低功耗的閑置和掉電模式,片內(nèi)振蕩器和時(shí)鐘電路。 </p><p><b>  ·時(shí)鐘

35、電路:</b></p><p>  時(shí)鐘電路的作用是產(chǎn)生單片機(jī)工作所需要的時(shí)鐘脈沖序列。</p><p><b>  ·中斷系統(tǒng):</b></p><p>  中斷系統(tǒng)的作用主要是對(duì)外部或內(nèi)部的終端請(qǐng)求進(jìn)行管理與處理。AT89S51共有5個(gè)中斷源,其中又2個(gè)外部中斷源和3個(gè)內(nèi)部中斷源。</p><p&g

36、t;  圖3 AT89C51系列單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖</p><p>  4.1.2 主要引腳功能</p><p>  圖4 AT89C51引腳圖</p><p><b>  ·VCC:電源電壓</b></p><p><b>  ·GND:接地</b></p>

37、<p>  ·P0口:P0口是一組8位雙向I/0口。P0口即可作地址/數(shù)據(jù)總線使用,又可以作為通用的I/O口使用。當(dāng)CPU訪問片外存儲(chǔ)器時(shí),P0口分時(shí)先作低8位地址總線,后作雙向數(shù)據(jù)總線,此時(shí),P0口就不能再作I/O口使用了。在訪問期間激活要使用上拉電阻。</p><p>  ·P1口:Pl 是一個(gè)帶內(nèi)部上拉電阻的8準(zhǔn)位雙向I/O口,P1作為通用的I/O口使用。</p>

38、;<p>  ·P2 口:P2 是一個(gè)帶有內(nèi)部上拉電阻的8 位準(zhǔn)雙向I/O 口,P2即可作為通用的I/O口使用,也可以作為片外存儲(chǔ)器的高8位地址總線,與P0口配合,組成16位片外存儲(chǔ)器單元地址。</p><p>  ·P3 口:P3 口是一組帶有內(nèi)部上拉電阻的8 位準(zhǔn)雙向I/0 口。P3 口除了作為通用的I/O口使用之外,每個(gè)引腳還具有第二功能,具體分配如表2</p>

39、<p>  表2 具有第二功能的P3口引腳</p><p>  ·RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。WDT 溢出將使該引腳輸出高電平,設(shè)置SFR AUXR的DISRT0 位(地址8EH)可打開或關(guān)閉該功能。DISRT0位缺省為RESET輸出高電平打開狀態(tài)。</p><p>  ·ALE/PROG:當(dāng)訪問

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

41、M0VX和M0VC指令A(yù)LE才會(huì)被激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE無效。</p><p>  ·PSEN程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89S51 由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖。當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,沒有兩次有效的PSEN信號(hào)。</p><p>  ·E

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

43、t;<p>  4.1.3 MCS—51的中斷源</p><p>  8051有5個(gè)中斷源,它們是兩個(gè)外中斷INT0(P3.2)和INT1(P3.3)、兩個(gè)片內(nèi)定時(shí)/計(jì)數(shù)器溢出中斷TF0和TF1,一個(gè)是片內(nèi)串行口中斷TI或RI,這幾個(gè)中斷源由TCON和SCON兩個(gè)特殊功能寄存器進(jìn)行控制,其中5個(gè)中斷源的程序入口地址如表4所示:</p><p><b>  表3中斷

44、源程序入口</b></p><p>  4.2 交通燈中的中斷處理流程</p><p> ?。ǎ保┈F(xiàn)場(chǎng)保護(hù)和現(xiàn)場(chǎng)恢復(fù):</p><p>  有特殊車輛要通過時(shí)就要進(jìn)行中斷,在中斷之前,先將交通燈中斷前情況保護(hù)好,當(dāng)中斷執(zhí)行后再恢復(fù)現(xiàn)場(chǎng),包括信號(hào)燈和時(shí)間顯示電路。</p><p> ?。ǎ玻┲袛啻蜷_和中斷關(guān)閉:</p>

45、<p>  為了使特殊車輛通行按一下打開中斷開關(guān)就可以打開中斷,關(guān)閉中斷開關(guān)就關(guān)閉中斷。</p><p> ?。ǎ常┲袛喾?wù)程序:</p><p>  有中斷產(chǎn)生,就必然有其具體的需執(zhí)行的任務(wù),中斷服務(wù)程序就是執(zhí)行中斷處理的具體內(nèi)容:即如果南北方向有特殊車輛要求通過,南北方向轉(zhuǎn)換為綠燈,東西方向?yàn)榧t燈;如果東西方向有特殊車輛要求通過,東西方向轉(zhuǎn)換為綠燈,南北方向?yàn)榧t燈。<

46、/p><p><b> ?。ǎ矗?#160;中斷返回:</b></p><p>  執(zhí)行完中斷服務(wù)程序后,必然要返回,即回交通燈信號(hào)回到中斷前狀態(tài),顯示時(shí)間也和中斷前一樣。</p><p>  4.3 系統(tǒng)硬件總電路構(gòu)成及原理</p><p>  實(shí)現(xiàn)本設(shè)計(jì)要求的具體功能,可以選用AT89C51單片機(jī)及外圍器件構(gòu)成最小控制系

47、統(tǒng),12個(gè)發(fā)光二極管分成4組紅綠黃三色燈構(gòu)成信號(hào)燈指示模塊,8個(gè)LED東西南北各兩個(gè)構(gòu)成倒計(jì)時(shí)顯示模塊,若干按鍵組成時(shí)間設(shè)置和緊急按鈕。</p><p>  4.3.1系統(tǒng)硬件電路構(gòu)成</p><p>  本系統(tǒng)以單片機(jī)為核心,系統(tǒng)硬件電路由狀態(tài)燈,LED顯示,按鍵,組成。其具體的硬件電路總圖如圖3.1所示。</p><p>  其中P0用于送顯兩片LED數(shù)碼管,P

48、1用于控制紅綠黃發(fā)光二極管,XTAL1和XTAL2接入晶振時(shí)鐘電路,REST引腳接上復(fù)位電路,P2.6與P2.7對(duì)數(shù)碼管進(jìn)行片選,P3.2即INT0緊急情況處理按鍵,P3.3即INT1接時(shí)間調(diào)整中斷按鍵。</p><p>  4.3.2系統(tǒng)工作原理</p><p>  系統(tǒng)上電或手動(dòng)復(fù)位之后,系統(tǒng)先顯示狀態(tài)燈及LED數(shù)碼管,將狀態(tài)碼值送顯P1口,將要顯示的時(shí)間值的個(gè)位和十位分別送顯P0口,

49、在此同時(shí)用軟件方法計(jì)時(shí)1秒,到達(dá)1s就要將時(shí)間值減1,刷新LED數(shù)碼管。</p><p>  時(shí)間到達(dá)一個(gè)狀態(tài)所要全部時(shí)間,則要進(jìn)行下一狀態(tài)判斷及銜接,并裝入次狀態(tài)的相應(yīng)狀態(tài)碼值以及時(shí)間值,</p><p>  當(dāng)然,還要開啟兩個(gè)外部中斷,其一為緊急情況處理中斷,一旦信號(hào)有效,即K3鍵為低電平時(shí)進(jìn)入中斷服務(wù)子程序,東西南北路口的紅燈全亮禁止全部通行,再按一下K3鍵,中斷結(jié)束返回。其二為通行

50、時(shí)間調(diào)整中斷,若K4按鍵有效,進(jìn)入相應(yīng)的中斷子程序,對(duì)時(shí)間進(jìn)行調(diào)整,此后再按K4鍵則中斷結(jié)束返回。</p><p>  圖5 基于單片機(jī)的交通燈控制系統(tǒng)電路圖</p><p>  4.4其它硬件介紹及連接</p><p>  4.4.1八段LED數(shù)碼管</p><p>  LED顯示屏作為大型顯示設(shè)備的一種,具有亮度高、價(jià)格低、壽命長(zhǎng)、維護(hù)簡(jiǎn)

51、便等優(yōu)點(diǎn)。LED數(shù)碼管的結(jié)構(gòu)簡(jiǎn)單,分為七段和八段兩種形式,也有共陽(yáng)和共陰之分。以八段共陽(yáng)管為例,它有8個(gè)發(fā)光二極管(比七段多一個(gè)發(fā)光二極管,用來顯示dP,即點(diǎn)),每個(gè)發(fā)光二極管的陽(yáng)極連在一起,如圖3.6所示。這樣,一個(gè)LED數(shù)碼管就有I根位選線和8根段選線,要想顯示一個(gè)數(shù)值,就要分別對(duì)它們的高低電平來加以控制。為方便起見,本文主要討論共陽(yáng)八段LED數(shù)碼顯示管,其他類形的顯示管與其類似。</p><p><b

52、>  圖6 LED數(shù)碼管</b></p><p>  LED 燈的顯示原理:通過同名管腳上所加電平的高低來控制發(fā)光二極管是否點(diǎn)亮而顯示不同的字形,如 dp,g,f,e,d,c,b,a全亮顯示為8,采用共陽(yáng)極連接驅(qū)動(dòng)代碼,代碼表如下表5所示。</p><p><b>  表5 驅(qū)動(dòng)代碼表</b></p><p>  相應(yīng)在程序軟

53、件上,可以通過調(diào)用程序給定的秒值經(jīng)過特定計(jì)算算出需要顯示的個(gè)位和十位,然后有DPTR調(diào)取LEDMAP的代碼。</p><p>  LED8段數(shù)碼管的設(shè)置為每個(gè)方位上的一對(duì)2為顯示器。四個(gè)方位上總共用8個(gè)LED接在單片機(jī)的IO口上。雖然路口不一樣,但是顯示的時(shí)間在數(shù)字上是一樣的,所以兩邊連接的IO口是對(duì)稱的。如圖3.7所示,其中A,B分別是P0,P1的網(wǎng)絡(luò)標(biāo)號(hào)。</p><p><b&

54、gt;  圖7 LED連接圖</b></p><p>  4.4.2 發(fā)光二極管</p><p>  根據(jù)本設(shè)計(jì)的特點(diǎn),紅綠燈的顯示不可少,紅綠燈的顯示采用普通的發(fā)光二極管。每個(gè)方向上設(shè)置紅綠黃燈,總共4組。如果東西紅燈亮,那南北方向就是綠燈亮,反之亦然,所以在硬件上連接圖上也是對(duì)稱分布的,如下圖8所示。</p><p><b>  圖8 信號(hào)

55、燈的連接</b></p><p>  4.4.3 按鍵控制</p><p>  本設(shè)計(jì)設(shè)置了有5個(gè)鍵:K1鍵P3.0,K2鍵P3.1,K3鍵P3.2,K4鍵P3.3,K5鍵P3.4,每個(gè)按鍵一端接地,另一端接對(duì)應(yīng)的P3端口。低電平有效,當(dāng)按鍵</p><p>  按下端口接地,單片機(jī)捕獲到低電平,從而知道相應(yīng)的輸入信息。</p><p

56、>  5 系統(tǒng)軟件程序的設(shè)計(jì)</p><p>  5.1 程序主體設(shè)計(jì)流程</p><p>  全部控制程序?qū)嶋H上分為若干模塊:鍵盤設(shè)置處理程序,狀態(tài)燈控制程序,LED顯示程序緊停程序,中斷服務(wù)子程序,紅綠燈時(shí)間調(diào)整程序等。</p><p>  整個(gè)軟件程序方面主要分兩大部分:主程序部分和中斷處理程序。流程圖如圖9所示。</p><p>

57、;<b>  圖9 系統(tǒng)總流程圖</b></p><p>  設(shè)計(jì)說明:該智能交通燈控制系統(tǒng)的軟件設(shè)計(jì)采用的是順序執(zhí)行并反復(fù)循環(huán)的方法。智能交通燈控制系統(tǒng)在正常工作的情況下,每20s循環(huán)變化一次。每個(gè)循環(huán)周期在還剩5s時(shí),正在通行路口的黃燈同時(shí)點(diǎn)亮并開始閃爍,以提醒路人上的行人及車輛,交通燈即將發(fā)生變化。在此期間若中斷按鍵按下則轉(zhuǎn)入中斷服務(wù)子程序進(jìn)行相關(guān)操作。</p><

58、p>  5.2 理論基礎(chǔ)知識(shí)</p><p>  5.2.1定時(shí)器原理</p><p>  定時(shí)器工作的基本原理其實(shí)就是給初值,讓它不斷加1直至減完為模值,這個(gè)初值是送到TH和TL中的。它是以加法記數(shù)的,并能從全1到全0時(shí)自動(dòng)產(chǎn)生溢出中斷請(qǐng)求。因此,我們可以把計(jì)數(shù)器記滿為零所需的計(jì)數(shù)值,即所要求的計(jì)數(shù)值設(shè)定為C,把計(jì)數(shù)初值設(shè)定為TC 可得到如下計(jì)算通式:</p><

59、;p><b>  TC=M-C</b></p><p>  式中,M為計(jì)數(shù)器模值。計(jì)數(shù)值并不是目的,目的是時(shí)間值,設(shè)計(jì)1次的時(shí)間,即定時(shí)器計(jì)數(shù)脈沖的周期為T0,它是單片機(jī)系統(tǒng)主頻周期的12倍,設(shè)要求的時(shí)間值為T,則有C=T/T0。計(jì)算通式變?yōu)椋?lt;/p><p>  T=(M-TC)T0</p><p>  模值和計(jì)數(shù)器工作方式有關(guān)。在方式

60、0時(shí)M為8192;在方式1時(shí)M的值為65536;在方式2和3為256。就此可以算出各種方式的最大延時(shí)。如單片機(jī)的主脈沖頻率為12MHZ,經(jīng)過12分頻后,若采用方式0最大延時(shí)只有8.129毫秒,采用方式1最大延時(shí)也只有65.536毫秒。這就是為什么掃描周期為50ms的原因,</p><p>  若使用軟件則會(huì)耽擱程序流程,顯然不可行。相反,時(shí)間計(jì)時(shí)方面卻不可能只用計(jì)數(shù)器,因?yàn)轱@然1秒鐘已經(jīng)超過了計(jì)數(shù)器的最大定時(shí)間,

61、所以我們還必須采用定時(shí)器和軟件相結(jié)合的辦法才能解決這個(gè)問題。</p><p>  5.2.2軟件延時(shí)原理</p><p>  MCS-51的工作頻率為12MHZ,機(jī)器周期與主頻有關(guān),機(jī)器周期是主頻的12倍,所以一個(gè)機(jī)器周期的時(shí)間為12*(1/12MHZ)=1us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定1秒的時(shí)間,但同時(shí)由于單片機(jī)的運(yùn)行速度很快其他的指令執(zhí)行

62、時(shí)間可以忽略不計(jì)。</p><p>  5.2.3 中斷原理</p><p>  本系統(tǒng)主要使用了外部中斷,中斷信號(hào)有引腳INT0和INT1輸入,低電平有效,CPU每個(gè)時(shí)鐘周期都會(huì)檢測(cè)INT0和INT1上的信號(hào),8051允許外部中斷以電平方式或負(fù)邊沿方式兩種中斷方式輸入中斷請(qǐng)求信號(hào),可由用戶通過設(shè)置TCON中IT0和IT1位的狀態(tài)來實(shí)現(xiàn)。以IT0為例,IT0=0,為電平觸發(fā)方式,IT0=1

63、,為負(fù)邊沿觸發(fā)方式,本設(shè)計(jì)采用電平方式,IE0為其中斷標(biāo)志位,有中斷信號(hào)則置位,中斷服務(wù)子程序響應(yīng)后,IE0自動(dòng)清零。IE中的EA為允許中斷的總控制位,為1開啟,EX0為外部中斷允許控制位,為1開啟。</p><p>  在優(yōu)先級(jí)的允許下,一旦有外部中斷信號(hào)產(chǎn)生,單片機(jī)CPU首先保護(hù)斷點(diǎn),PC值進(jìn)棧,然后執(zhí)行相應(yīng)的中斷服務(wù)子程序,執(zhí)行完后,用RETI指令返回,此時(shí)CPU會(huì)從堆棧中取保存的斷點(diǎn)地址,送回PC,程序再

64、正常執(zhí)行。 </p><p>  5.3子程序模塊設(shè)計(jì)</p><p>  5.3.1狀態(tài)燈顯示及判斷</p><p>  在本設(shè)計(jì)中,實(shí)際控制的燈只有6個(gè),即:東西紅燈,東西綠燈,東西黃燈,南北紅燈,南北綠燈,南北黃燈。定義IO端口如下,其中均是低電平有效。</p><p>  H_RED BIT P1.0<

65、;/p><p>  H_YELLOW BIT P1.1</p><p>  H_GREEN BIT P1.2</p><p>  L_RED BIT P1.3</p><p>  L_ YELLOW BIT P1.4</p><p>  L_ GREEN BIT

66、P1.5</p><p>  共有4鐘狀態(tài):東西紅燈亮,南北綠燈亮(0F3H);東西紅燈亮,南北黃燈亮(0F5H);東西綠燈亮,南北紅燈亮(0DEH);東西黃燈亮,南北紅燈亮(0EEH)。</p><p>  括號(hào)中是P1端口8個(gè)引腳值對(duì)應(yīng)的十六進(jìn)制碼。</p><p>  用于顯示發(fā)光二極管時(shí),部分程序如下: </p><p>

67、  ;東西紅,南北綠,計(jì)時(shí)時(shí)間為20s</p><p>  MOV P1,#0F3H</p><p>  MOV 60H,61H</p><p>  A1: MOV R1,#50</p><p>  A2: ACALL BCD</p><p>  ACALL DISPCLK</p><p

68、>  DJNZ R1,A2</p><p>  MOV A,60H</p><p>  MOV R0,60H</p><p>  ADD A,#99H</p><p><b>  DA A</b></p><p>  MOV 60H,A</p><p> 

69、 CJNE R0,#05H,A1</p><p>  5.3.2 LED倒計(jì)時(shí)顯示</p><p>  LED計(jì)時(shí)每1秒都要刷新1次,采用的是動(dòng)態(tài)顯示,首先將R4除以10H,整數(shù)即十位放在50H中,余數(shù)即個(gè)位放在51H中,設(shè)置7段LED顯示數(shù)據(jù)的數(shù)據(jù)表,用數(shù)據(jù)指針寄存器DPTR指向數(shù)據(jù)表的首地址,再加上A中的偏移量,就可以指向十位數(shù)字,然后送顯即可,個(gè)位顯示同理。具體程序如下:</

70、p><p>  BCD: ;將十位數(shù)送到(51H),個(gè)位數(shù)送到(50H)</p><p>  MOV A,60H;60H單元放的是倒計(jì)時(shí)值</p><p>  MOV B,#10H</p><p><b>  DIV AB</b></p><p><b>

71、  MOV 51H,A</b></p><p><b>  MOV A,B</b></p><p><b>  MOV 50H,A</b></p><p><b>  RET</b></p><p>  DISPCLK: ;顯示部分&l

72、t;/p><p>  MOV DPTR,#TAB</p><p>  MOVA,50H</p><p>  MOVCA,@A+DPTR</p><p><b>  MOVP0,A</b></p><p><b>  CLRP2.6</b></p><

73、;p>  LCALLDELAY</p><p>  SETBP2.6</p><p><b>  MOVA,51H</b></p><p>  MOVCA,@A+DPTR</p><p><b>  MOVP0,A</b></p><p><b

74、>  CLRP2.7</b></p><p>  LCALLDELAY</p><p><b>  SETBP2.7</b></p><p>  RET </p><p>  5.3.3 緊停及調(diào)整時(shí)間中斷子程序</p><p>  緊停按鍵連接到外部中

75、斷引腳P3.2,即INT0捕獲到一個(gè)低電平,則進(jìn)入該中斷進(jìn)行相關(guān)處理。程序如下:</p><p><b>  ;緊急情況處理</b></p><p><b>  IINT0:</b></p><p><b>  CLR EA</b></p><p><b>  JB

76、P3.2,$</b></p><p>  PUSH 60H </p><p><b>  PUSH P1</b></p><p><b>  PUSH P2</b></p><p>  B0: JNB P3.0,NH</p><p>  JNB P3.1,

77、DH</p><p><b>  ;全紅</b></p><p>  A9: MOV P1,#0F6H</p><p><b>  SETB P2.6</b></p><p><b>  SETB P2.7</b></p><p>  ACALL DE

78、LAY</p><p>  JNB P3.2,B0</p><p><b>  JMP JE</b></p><p>  ;只允許東西方向車輛通行</p><p>  NH: MOV P1,#0DEH</p><p><b>  SETB P2.6</b><

79、/p><p><b>  SETB P2.7</b></p><p>  ACALL DELAY</p><p>  JNB P3.2,B0</p><p><b>  JMP JE</b></p><p>  ;只允許南北方向車輛通行</p><p>

80、;  DH: MOV P1,#0F3H</p><p><b>  SETB P2.6</b></p><p><b>  SETB P2.7</b></p><p>  ACALL DELAY</p><p>  JNB P3.2,B0</p><p><b&g

81、t;  JMP JE</b></p><p><b>  JE: </b></p><p><b>  POP P2</b></p><p><b>  POP P1</b></p><p><b>  POP 60H</b></p&

82、gt;<p><b>  SETB EA</b></p><p><b>  RETI</b></p><p>  5.3.4 紅綠燈時(shí)間調(diào)整程序</p><p>  時(shí)間調(diào)整按鍵連接到外部中斷引腳P3.3,即INT1捕獲到一個(gè)低電平,則進(jìn)入該中斷進(jìn)行相關(guān)處理。程序如下:</p><p&g

83、t;<b>  ;加減程序</b></p><p><b>  IINT1:</b></p><p><b>  CLR EA</b></p><p>  JB P3.3,$ </p><p><b>  PUSH P1</b></p>

84、<p><b>  PUSH P2</b></p><p>  B1: JNB P3.1,DDEC</p><p>  IINC: JNB P3.0,SINC ;加1程序</p><p>  ZINC: ;自動(dòng)加1</p><p>  MOV R0,#15</p><p&g

85、t;  A10: ACALL BCD</p><p>  ACALL DISPCLK</p><p>  DJNZ R0,A10</p><p>  MOV A,60H </p><p>  ADD A,#01H</p><p><b>  DA A </b></p>

86、<p>  MOV 60H,A</p><p>  JNB P3.3,B1</p><p><b>  JMP JS</b></p><p>  SINC: ;手動(dòng)加1</p><p>  MOV R3,#20</p><p>  A11: ACALL BCD<

87、;/p><p>  ACALL DISPCLK</p><p>  DJNZ R3,A11</p><p>  MOV A,60H </p><p>  ADD A,#01H</p><p><b>  DA A </b></p><p>  MOV 60H,

88、A</p><p>  B2: JB P3.3,JS</p><p>  JNB P3.4,SINC</p><p><b>  JMP B2</b></p><p>  DDEC: ;減1程序</p><p>  JNB P3.0,SDEC </p>&l

89、t;p><b>  ZDEC:</b></p><p>  MOV R4,#15</p><p>  A12: ACALL BCD</p><p>  ACALL DISPCLK</p><p>  DJNZ R4,A12</p><p>  MOV A,60H</p>

90、<p>  ADD A,#99H</p><p><b>  DA A</b></p><p>  MOV 60H,A</p><p>  JB P3.3,JS</p><p><b>  JMP B1</b></p><p>  SDEC:

91、;手動(dòng)減1程序</p><p>  MOV R5,#20</p><p>  A13: ACALL BCD</p><p>  ACALL DISPCLK</p><p>  DJNZ R5,A13</p><p>  MOV A,60H</p><p>  ADD A,#99H&l

92、t;/p><p><b>  DA A</b></p><p>  MOV 60H,A</p><p>  B3: JB P3.3,JS</p><p>  JNB P3.4,SDEC</p><p><b>  JMP B3</b></p>&l

93、t;p>  JS: MOV 61H,60H</p><p><b>  POP P2</b></p><p><b>  POP P1</b></p><p><b>  SETB EA</b></p><p><b>  RETI</b><

94、;/p><p>  5.4 系統(tǒng)軟件調(diào)試</p><p>  5.4.1 TKS仿真器</p><p>  仿真的概念其實(shí)使用非常廣,最終的含義就是使用可控的手段來模仿真實(shí)的情況。單片機(jī)系統(tǒng)開發(fā)中的仿真包括軟件仿真和硬件仿真。</p><p>  軟件仿真這種方法主要是使用計(jì)算機(jī)軟件來模擬實(shí)際的單片機(jī)運(yùn)行,因此仿真與硬件無關(guān)的系統(tǒng)具有一定的優(yōu)點(diǎn)

95、。用戶不需要搭建硬件電路就可以對(duì)程序進(jìn)行驗(yàn)證,特別適合于偏重算法的程序。軟件仿真的缺點(diǎn)是無法完全仿真與硬件相關(guān)的部分,因此最終還要通過硬件仿真來完成最后的設(shè)計(jì);</p><p>  硬件仿真使用附加的硬件來替代用戶系統(tǒng)的單片機(jī)并完成單片機(jī)全部或大部分的功能。使用了附加硬件后用戶就可以對(duì)程序的運(yùn)行進(jìn)行控制,例如單步、全速、查看資源斷點(diǎn)等。</p><p>  5.4.2 集成開發(fā)環(huán)境KEIL

96、</p><p>  KEIL IDE Vision2集成開發(fā)環(huán)境主要由以下部分組成:</p><p>  ◆ u Vision2 IDE。ision2 IDE包括:一個(gè)工程管理器,一個(gè)功能豐富并有交互式錯(cuò)誤提示的編輯器選項(xiàng)設(shè)置生成工具,以及在線幫助。使用vision2創(chuàng)建源文件并組成應(yīng)用工程加以管理。vision2可以自動(dòng)完成編譯匯編鏈接程序的操作;</p><p&g

97、t;  ◆ C51編譯器和A51匯編器。Vision2 IDE創(chuàng)建的源文件可以被C51編譯器或A51匯編器處理生成可重定位的object文件。KEIL C51編譯器遵照ANSI C語(yǔ)言標(biāo)準(zhǔn)支持C語(yǔ)言的所有標(biāo)準(zhǔn)特性,另外還增加了幾個(gè)可以直接支持80C51結(jié)構(gòu)的特性。KEIL A51宏匯編器支持80C51及其派生系列的所有指令集;</p><p>  ◆ LIB51庫(kù)管理器。B51庫(kù)管理器可以從由匯編器和編譯器創(chuàng)建的

98、目標(biāo)文件建立目標(biāo)庫(kù),這些庫(kù)是按規(guī)定格式排列的目標(biāo)模塊,可在以后被鏈接器所使用當(dāng)鏈接器處理一個(gè)庫(kù)時(shí)僅僅使用了庫(kù)中程序使用了的目標(biāo)模塊而不是全部加以引用;</p><p>  ◆BL51鏈接器定位器。L51鏈接器使用從庫(kù)中提取出來的目標(biāo)模塊和由編譯器匯編器生成的目標(biāo)模塊創(chuàng)建一個(gè)絕對(duì)地址目標(biāo)模塊,絕對(duì)地址目標(biāo)文件或模塊包括不可重定位的代碼和數(shù)據(jù)所有的代碼和數(shù)據(jù)都被固定在具體的存儲(chǔ)器單元中。</p><

99、;p>  利用KEIL開發(fā)和調(diào)試系統(tǒng)軟件流程大致如下:</p><p>  ◆啟動(dòng)Vision2,進(jìn)入KEIL軟件的集成開發(fā)環(huán)境;</p><p>  ◆利用KEIL內(nèi)置的文本編輯器進(jìn)行程序源文件的編輯,因?yàn)镵EIL集成的文本編輯器對(duì)中文支持不是很好,可以選擇其他的編輯器(本文使用的文本編輯器是Ultraedit—32),Vision2能夠自動(dòng)識(shí)別外部改變了的源文件;</p&g

100、t;<p>  ◆建立工程,指定針對(duì)哪種單片機(jī)進(jìn)行開發(fā),指定對(duì)源程序的編譯、鏈接參數(shù),指定調(diào)試方式(本文采用外部硬件仿真器仿真調(diào)試的方式,即使TKS仿真器仿真),然后對(duì)工程進(jìn)行相關(guān)設(shè)置;</p><p>  ◆設(shè)置好工程后即可進(jìn)行編譯、鏈接。連接仿真器對(duì)軟件進(jìn)行調(diào)試。也可以生成下載到單片機(jī)存儲(chǔ)器上的HEX文件。</p><p>  5.4.3 系統(tǒng)軟件調(diào)試</p>

101、;<p>  系統(tǒng)的軟件調(diào)試借助于TKS仿真器,在進(jìn)行系統(tǒng)軟件的連續(xù)調(diào)試之前要先進(jìn)行軟件的初調(diào),就是要使各個(gè)子程序模塊運(yùn)行正確,程序的運(yùn)行流程正確。軟件調(diào)試主要分以下幾個(gè)步驟進(jìn)行:</p><p>  ◆功能子程序的調(diào)試。能子程序的調(diào)試包括運(yùn)算、采樣、數(shù)字濾波以及PID運(yùn)算等子程序的調(diào)試。在調(diào)試功能子程序時(shí),許多參數(shù)都是未知的,要根據(jù)其所需的條件,給出假定的數(shù)據(jù),使其運(yùn)行,如果能完成預(yù)定的處理功能或

102、與手工計(jì)算的結(jié)果相符,就說明該子程序己調(diào)試通過。調(diào)試時(shí)由小到大,由里到外。例如,調(diào)試PID算法子程序時(shí),先調(diào)通其包含的各個(gè)運(yùn)算子程序和參數(shù)處理子程序,然后將它們連起來進(jìn)行通調(diào)。通調(diào)時(shí),也是假定一些數(shù)據(jù)、參數(shù)和初始條件,然后運(yùn)行程序。當(dāng)運(yùn)算結(jié)果與手工計(jì)算的結(jié)果相同時(shí),該算法子程序則調(diào)試完成,反之,就要進(jìn)行相應(yīng)的修改。其它子程序的調(diào)試同理;</p><p>  ◆程序流程的調(diào)試。序流程的調(diào)試主要是查看程序運(yùn)行的步驟是

103、否正確,在某時(shí)刻程序運(yùn)行所處的位置是否正確,是否能正確運(yùn)行各個(gè)中斷服務(wù)程序。在調(diào)試過程中,先將PID算法子程序屏蔽,輸出可控硅導(dǎo)通時(shí)間用一個(gè)固定的常數(shù)代替,在各個(gè)中斷服務(wù)子程序設(shè)置斷點(diǎn),然后運(yùn)行程序,查看程序是否能運(yùn)行到所有的斷點(diǎn),若所有斷點(diǎn)都能運(yùn)行到,則程序流程基本正確。去掉所有斷點(diǎn),再一次運(yùn)行程序,查看可控硅狀態(tài),從而判斷程序流程正確,反之,若程序流程不正確,做相應(yīng)的修改后,重新調(diào)試;</p><p>  ◆

104、功能程序與算法程序的通調(diào)。完成整個(gè)程序流程的調(diào)試后,將PID等算法子程序加入,在算法子程序前或后設(shè)置斷點(diǎn),運(yùn)行整個(gè)程序。當(dāng)程序在斷點(diǎn)處暫停時(shí),查看PID計(jì)算的控制量與手工計(jì)算的值是否相同。多運(yùn)行幾次,若每次的結(jié)果都正確,則說明程序各個(gè)部分互相沒有矛盾,反之,則說明算法子程序和其它子程序之間有影響,需要做相應(yīng)的修改后重新調(diào)。</p><p><b>  參考文獻(xiàn):</b></p>

105、<p>  [l]邊海龍,孫永奎. 單片機(jī)開發(fā)與典型工程項(xiàng)目實(shí)例詳解[J].電子工業(yè)出版社,2008,(10):143-160.</p><p>  [2]張?chǎng)?,華臻,陳書謙. 單片機(jī)原理及應(yīng)用[J].電子工業(yè)出版社,2008(5).</p><p>  [3]黃智偉.凌陽(yáng)單片機(jī)課程設(shè)計(jì)指導(dǎo)[J]. 北京航空航天大學(xué)出版社,2007,</p><p> 

106、 [4]余錫存 曹國(guó)華.單片機(jī)原理及接口技術(shù)[M].陜西:西安電子科技大學(xué)出版社,2000.7</p><p>  [5]雷麗文 等.微機(jī)原理與接口技術(shù)[M].北京:電子工業(yè)出版社,1997.2</p><p>  [6]柴鈺.單片機(jī)原理和應(yīng)用[M].西安電子科技大學(xué)出版社.</p><p>  [7]張靖武.單片機(jī)系統(tǒng)的PROTUSE設(shè)計(jì)和仿真[M].電子工業(yè)出版

107、社.2007.</p><p>  [8]唐 工..51單片機(jī)工程應(yīng)用實(shí)例[M].</p><p><b>  設(shè)計(jì)心得體會(huì)</b></p><p>  經(jīng)過兩周的努力工作,終于完成了自己的單片機(jī)課程設(shè)計(jì)。雖說忙碌了點(diǎn),但我覺得這樣的生活充實(shí)且有成就感,當(dāng)然,也獲益匪淺。</p><p>  在焊接過程中,我學(xué)會(huì)應(yīng)先合理

108、的布局,并認(rèn)真檢查每個(gè)元器件,確保無誤后再焊接。還有,不能急于求成,要焊接一個(gè)模塊,檢查一個(gè)模塊,免得整個(gè)版子焊完后再在一大堆線中檢查,這樣不僅效率低且耗時(shí)。自然,我也學(xué)會(huì)如何去發(fā)現(xiàn)問題與解決問題的一些方法。</p><p>  至于軟件設(shè)計(jì)與調(diào)試,我覺得它主要考驗(yàn)?zāi)愕乃季S邏輯能力及你對(duì)指令的熟悉程度??梢哉f再整個(gè)軟件設(shè)計(jì)過程中,我不僅學(xué)會(huì)了延時(shí)的兩種方法,即軟件延時(shí)和硬件延時(shí),還掌握數(shù)碼管的兩種顯示方式(即動(dòng)態(tài)

109、顯示與靜態(tài)顯示)及其如何選擇。當(dāng)然,通過幾次反復(fù)調(diào)試過程,使得我對(duì)匯編指令有了更深刻的理解。</p><p>  在整個(gè)課程設(shè)計(jì)過程我還掌握了一下幾點(diǎn):</p><p> ?。?)掌握了電子系統(tǒng)設(shè)計(jì)的流程,熟悉了各種硬件電路以及軟件編程方法。</p><p> ?。?)理解了最單片機(jī)的各部分組成及特性。</p><p>  (3)熟練使用了各

110、種計(jì)算機(jī)輔助設(shè)計(jì)工具完成設(shè)計(jì),充分掌握了這些工具的使用。</p><p> ?。?)學(xué)會(huì)了利用Keil uVision3對(duì)匯編語(yǔ)言進(jìn)行編譯過程.更進(jìn)一步加深了對(duì)PROTEUS軟件的學(xué)習(xí)。</p><p>  還有,我還發(fā)現(xiàn)自身一些毛病。一,前期準(zhǔn)備工作做的不夠好,想的還算多,可就是沒落實(shí)。先說選題,就表現(xiàn)自己有畏難情緒,其實(shí)當(dāng)時(shí)找到好幾個(gè)題目,但交通燈最熟悉,所以就選了它。就這,還沒做的很

111、理想,還有好些功能可以加上去,像通過測(cè)流量來自動(dòng)調(diào)整通行時(shí)間,加個(gè)監(jiān)控電路,看門狗電路等。二,行動(dòng)起來不是很賣力,雖說動(dòng)手還算早,但每天的進(jìn)展卻不大,可以說做與玩相伴而行。</p><p>  通過本次的課程設(shè)計(jì),充分意識(shí)到自己所學(xué)的東西還是非常有限的,不過通過設(shè)計(jì),還是學(xué)到了一些書本上沒有學(xué)到的東西,為自己以后的學(xué)習(xí)起了很大的幫助。就我個(gè)人而言,很深刻地體會(huì)到一點(diǎn),那就是我們?cè)谠O(shè)計(jì)過程中一定要有一個(gè)整體的清晰的

112、思路,知道自己的設(shè)計(jì)的對(duì)象的基本功能和核心器件的適用及其作用,只要把握住這些主要方面,一些小問題都將圍繞著這些主要問題而逐步得到解決。同時(shí)我也懂得,在整個(gè)設(shè)計(jì)過程中,生活中也一樣,一定要意志堅(jiān)定,克服自己的畏難情緒,這樣才能將事情做好,才能干出一番成就。</p><p>  我覺得類似這種課程設(shè)計(jì)的實(shí)踐真的不錯(cuò),通過這些項(xiàng)目練習(xí),我自學(xué)能力,解決實(shí)際問題的能力得到提高,可以說是對(duì)綜合素質(zhì)全面提升,我想這也是我們上

113、大學(xué)應(yīng)真正學(xué)到的。</p><p><b>  附錄</b></p><p>  附錄一:系統(tǒng)總體原理圖</p><p>  附錄二:系統(tǒng)程序清單</p><p>  ORG 0000H</p><p>  LJMP START</p><p>  ORG 0003H&

114、lt;/p><p>  LJMP IINT0</p><p>  ORG 0013H</p><p>  LJMP IINT1</p><p>  ORG 0030H</p><p>  START: MOV SP,#6FH ;系統(tǒng)初始化</p><p>  MOV 61H,#2

115、0H</p><p>  MOV 60H,61H</p><p>  LIGHT: SETB EA</p><p><b>  SETB EX0</b></p><p><b>  SETB EX1</b></p><p><b>  CLR IT1</b&

116、gt;</p><p><b>  CLR IT0</b></p><p>  MOV P1,#0F3H ;東西紅,南北綠,計(jì)時(shí)時(shí)間為15s</p><p>  MOV 60H,61H</p><p>  A1: MOV R1,#50</p><p>  A2: AC

117、ALL BCD</p><p>  ACALL DISPCLK</p><p>  DJNZ R1,A2</p><p>  MOV A,60H</p><p>  MOV R0,60H</p><p>  ADD A,#99H</p><p><b>  DA A</

118、b></p><p>  MOV 60H,A</p><p>  CJNE R0,#05H,A1</p><p>  MOV P1,#0F5H ; 東西紅,南北黃燈閃爍5s</p><p>  MOV R2,#5 </p><p>  A3: MOV R1,#50 </p>

119、<p>  A4: ACALL BCD</p><p>  ACALL DISPCLK</p><p>  DJNZ R1,A4</p><p><b>  CPL P1.1</b></p><p>  MOV A,60H</p><p>  ADD A,#99H</p

120、><p><b>  DA A</b></p><p>  MOV 60H,A</p><p>  DJNZ R2,A3</p><p>  MOV P1,#0DEH ;東西綠,南北紅,計(jì)時(shí)時(shí)間20s</p><p>  MOV 60H,61H</p><

121、;p>  A5: MOV R1,#50</p><p>  A6: ACALL BCD</p><p>  ACALL DISPCLK</p><p>  DJNZ R1,A6</p><p>  MOV R0,60H</p><p>  MOV A,60H</p><p>

122、;  ADD A,#99H</p><p><b>  DA A</b></p><p>  MOV 60H,A</p><p>  CJNE R0,#05H,A5</p><p>  MOV P1,#0EEH ;南北紅,東西黃燈閃爍5s</p><p><b&

溫馨提示

  • 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)論