版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 課 程 設(shè) 計 報 告 書</p><p> 所屬課程名稱 單片機原理與接口技術(shù) </p><p> 題 目基于C51單片機的簡單交通燈系統(tǒng)設(shè)計 </p><p> 分 院 機電學院 </p><p> 專 業(yè)、
2、班 級 </p><p> 學 號 </p><p> 學 生 姓 名 </p><p> 指 導 教 師 </p><
3、;p> 2012 年07月12日</p><p><b> 目 錄</b></p><p> 一、課程設(shè)計任務(wù)書1</p><p><b> 二、總體設(shè)計2</b></p><p> ?。ㄒ唬﹩纹瑱C交通控制系統(tǒng)方案的比較、論證2</p><p>
4、(二)單片機交通控制系統(tǒng)總體設(shè)計2</p><p> 三、智能交通燈控制系統(tǒng)的硬件設(shè)計5</p><p> ?。ㄒ唬?AT89C51單片機簡介5</p><p> ?。ǘ┙煌糁械闹袛嗵幚砹鞒?</p><p> ?。ㄈ?系統(tǒng)硬件總電路構(gòu)成及原理8</p><p><b> 四、程序設(shè)計1
5、0</b></p><p> ?。ㄒ唬┏绦蛑黧w設(shè)計流程10</p><p> ?。ǘ├碚摶A(chǔ)知識10</p><p> ?。ㄈ┳映绦蚰K設(shè)計11</p><p> (四)系統(tǒng)軟件調(diào)試12</p><p> 五、程序調(diào)試及結(jié)果分析15</p><p> ?。ㄒ唬┛傮w設(shè)
6、計程序15</p><p> ?。ǘ﹑rotues仿真模擬及模擬圖17</p><p><b> 六、總結(jié)19</b></p><p><b> 七、參考文獻20</b></p><p><b> 一、課程設(shè)計任務(wù)書</b></p><p&g
7、t; 課程設(shè)計題目: 基于C51單片機的簡單交通燈系統(tǒng)設(shè)計 </p><p> 課程設(shè)計時間:自 2012年 07 月 02日起至 2012 年 07 月 13日。</p><p><b> 課程設(shè)計要求:</b></p><p> 我們本次模擬系統(tǒng)由單片機硬/軟件系統(tǒng)、LED燈顯示系統(tǒng)和復位電路控制電路等組成,較好的
8、模擬了交通路面的控制。</p><p> (1)分析目前交通路口的基本控制技術(shù)以及各種通行方案,并以此為基礎(chǔ)提出自己的交通控制的初步方案。</p><p> ?。?)確定系統(tǒng)交通控制的總體設(shè)計,包括,十字路口具體的通行禁行方案設(shè)計以及系統(tǒng)應(yīng)擁有的各項功能。</p><p> (3)進行LED燈狀態(tài)電路,按鍵電路的設(shè)計和對各器件的選擇及連接,大體分配各個器件及模塊
9、的基本功能要求。</p><p> ?。?)進行軟件系統(tǒng)的設(shè)計,對于本系統(tǒng),我們采用單片機匯編語言編寫,對單片機內(nèi)部結(jié)構(gòu)和工作情況做了充足的研究,了解定時器,中斷以及延時原理,總體上完成了軟件的編寫。</p><p> 學生簽名: </p><p> 年 月 日</p><p><b&g
10、t; 課程設(shè)計評閱意見</b></p><p> 評閱教師: </p><p> 2012年 月 日</p><p><b> 二、總體設(shè)計</b></p><p> ?。ㄒ唬﹩纹瑱C交通控制系統(tǒng)方案的比較、論證</p><p>
11、<b> 1、電源提供方案</b></p><p> 為使模塊穩(wěn)定工作,須有可靠電源。因此考慮了兩種電源方案:</p><p> 方案一:采用獨立的穩(wěn)壓電源。此方案的優(yōu)點是穩(wěn)定可靠,且有各種成熟電路可供選用;缺點是各模塊都采用獨立電源,會使系統(tǒng)復雜,且可能影響電路電平。</p><p> 方案二:采用單片機控制模塊提供電源。改方案的優(yōu)點
12、是系統(tǒng)簡明扼要,節(jié)約成本;缺點是輸出功率不高。</p><p> 綜上所述,我們選擇第二種方案。</p><p><b> 2、輸入方案</b></p><p> 題目要求系統(tǒng)能調(diào)節(jié)燈亮時間,并可處理緊急情況,我們研究了兩種方案</p><p> 方案一:采用8155擴展I/O 口及鍵盤,顯示等。該方案的優(yōu)點是:
13、使用靈活可編程,并且有RAM,及計數(shù)器。若用該方案,可提供較多I/O 口,但操作起來稍顯復雜。</p><p> 方案二: 直接在I/O口線上接上按鍵開關(guān)。</p><p> 由于該系統(tǒng)對于交通燈的控制,只用單片機本身的I/O 口就可實現(xiàn),且本身的計數(shù)器及RAM已經(jīng)夠用。</p><p> 綜上所述,我們選擇第二種方案。</p><p>
14、; ?。ǘ﹩纹瑱C交通控制系統(tǒng)總體設(shè)計</p><p> 1、單片機交通控制系統(tǒng)的通行方案設(shè)計</p><p> 設(shè)在十字路口,分為東西向和南北向,在任一時刻只有一個方向通行,另一方向禁行,持續(xù)一定時間,經(jīng)過短暫的過渡時間,將通行禁行方向?qū)Q。其具體狀態(tài)如下圖所示。</p><p><b> 圖2-1 交通狀態(tài)</b></p>
15、<p> 說明:黑色表示亮,白色表示滅。交通狀態(tài)從狀態(tài)1開始變換,直至狀態(tài)6然后循環(huán)至狀態(tài)1,周而復始。</p><p> 表2-1 表示燈狀態(tài)和行止狀態(tài)的關(guān)系</p><p> 在任一個路口,遇紅燈禁止通行,轉(zhuǎn)綠燈允許通行,之后黃燈亮警告行止狀態(tài)將變換。狀態(tài)及紅綠燈狀態(tài)如表1所示。說明:0表示滅,1表示亮。</p><p> 2、單片機交通控
16、制系統(tǒng)的功能要求</p><p> 本設(shè)計能模擬基本的交通控制系統(tǒng),用紅綠黃燈表示禁行,通行和等待的信號發(fā)生。 還可以進行緊急處理,交通路口出現(xiàn)緊急狀況在所難免,如特大事件發(fā)生,救護車等急行車通過等,我們都必須盡量允許其暢通無阻,畢竟在這種情況下是分秒必爭的,時時刻刻關(guān)系著公共財產(chǎn)安全,個人生死攸關(guān)等。由此在交通控制中增設(shè)禁停按鍵,就可達到想此目的。</p><p> 3、單片機交通控
17、制系統(tǒng)的基本構(gòu)成及原理</p><p> 單片機設(shè)計交通燈控制系統(tǒng),可用單片機直接控制信號燈的狀態(tài)變化,基本上可以指揮交通的具體通行。本系統(tǒng)在此基礎(chǔ)上,加入了緊急情況處理功能。</p><p> 圖2-2 系統(tǒng)的總體框圖</p><p> 據(jù)此,本設(shè)計系統(tǒng)以單片機為控制核心,連接成最小系統(tǒng),由按鍵設(shè)置模塊產(chǎn)生輸入,信號燈狀態(tài)模塊。系統(tǒng)的總體框圖如上所示。單片機
18、上電后,系統(tǒng)進入正常工作狀態(tài),執(zhí)行交通燈狀態(tài)顯示控制,在此過程中隨時調(diào)用急停按鍵。</p><p> 三、智能交通燈控制系統(tǒng)的硬件設(shè)計</p><p> ?。ㄒ唬?AT89C51單片機簡介</p><p> AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable and Erasable Read Only
19、Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌
20、入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。</p><p> 1、 AT89C51單片機的主要特性</p><p> 與MCS-51兼容,4K字節(jié)可編程閃爍存儲器,壽命:1000寫/擦循環(huán),數(shù)據(jù)保留時間:10年,全靜態(tài)工作:0Hz-24Hz,三級程序存儲器鎖定,128*8位內(nèi)部RAM,32可編程I/O線,兩個16位定時器/計數(shù)器,5個中斷源(兩個外部中斷源和3個內(nèi)部中斷源),可編程串
21、行通道,低功耗的閑置和掉電模式,片內(nèi)振蕩器和時鐘電路。 </p><p><b> 時鐘電路:</b></p><p> 時鐘電路的作用是產(chǎn)生單片機工作所需要的時鐘脈沖序列。</p><p><b> 中斷系統(tǒng):</b></p><p> 中斷系統(tǒng)的作用主要是對外部或內(nèi)部的終端請求進行管理與
22、處理。AT89S51共有5個中斷源,其中又2個外部中斷源和3個內(nèi)部中斷源。</p><p> 圖3-1 AT89C51系列單片機的內(nèi)部結(jié)構(gòu)示意圖</p><p><b> 2、主要引腳功能</b></p><p> 圖3-2 AT89C51引腳圖</p><p><b> VCC:電源電壓</
23、b></p><p><b> GND:接地</b></p><p> P0口:P0口是一組8位雙向I/0口。P0口即可作地址/數(shù)據(jù)總線使用,又可以作為通用的I/O口使用。當CPU訪問片外存儲器時,P0口分時先作低8位地址總線,后作雙向數(shù)據(jù)總線,此時,P0口就不能再作I/O口使用了。在訪問期間激活要使用上拉電阻。</p><p>
24、P1口:Pl 是一個帶內(nèi)部上拉電阻的8準位雙向I/O口,P1作為通用的I/O口使用。</p><p> P2 口:P2 是一個帶有內(nèi)部上拉電阻的8 位準雙向I/O 口,P2即可作為通用的I/O口使用,也可以作為片外存儲器的高8位地址總線,與P0口配合,組成16位片外存儲器單元地址。</p><p> P3 口:P3 口是一組帶有內(nèi)部上拉電阻的8 位準雙向I/0 口。P3 口除了作為通用
25、的I/O口使用之外,每個引腳還具有第二功能。</p><p> 表3-1 具有第二功能的P3口引腳</p><p> RST:復位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復位。WDT 溢出將使該引腳輸出高電平,設(shè)置SFR AUXR的DISRT0 位(地址8EH)可打開或關(guān)閉該功能。DISRT0位缺省為RESET輸出高電平打開狀態(tài)。</p>&
26、lt;p> ALE/:當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE 仍以時鐘振蕩頻率的1/6 輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對F1ash存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH 單元的D0 位置位,可禁
27、止ALE 操作。該位置位后,只有一條M0VX和M0VC指令A(yù)LE才會被激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ALE無效。</p><p> 程序儲存允許()輸出是外部程序存儲器的讀選通信號,當AT89S51 由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次有效,即輸出兩個脈沖。當訪問外部數(shù)據(jù)存儲器,沒有兩次有效的信號。</p><p> /VPP:外部訪問允許
28、。欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。如EA端為高電平(接VCC端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令。F1ash存儲器編程時,該引腳加上+12V的編程電壓Vcc。</p><p> XTAL1:振蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。</p><p> 3、MCS—51的中斷源</p><p>
29、8051有5個中斷源,它們是兩個外中斷INT0(P3.2)和INT1(P3.3)、兩個片內(nèi)定時/計數(shù)器溢出中斷TF0和TF1,一個是片內(nèi)串行口中斷TI或RI,這幾個中斷源由TCON和SCON兩個特殊功能寄存器進行控制,其中5個中斷源的程序入口。</p><p> 表3-2 中斷源程序入口</p><p> ?。ǘ┙煌糁械闹袛嗵幚砹鞒?lt;/p><p><b
30、> 現(xiàn)場保護和現(xiàn)場恢復</b></p><p> 有特殊車輛要通過時就要進行中斷,在中斷之前,先將交通燈中斷前情況保護好,當中斷執(zhí)行后再恢復現(xiàn)場,包括信號燈顯示電路。</p><p><b> 中斷打開和中斷關(guān)閉</b></p><p> 為了使特殊車輛通行按一下打開中斷開關(guān)就可以打開中斷,關(guān)閉中斷開關(guān)就關(guān)閉中斷。&l
31、t;/p><p><b> 中斷返回</b></p><p> 執(zhí)行完中斷服務(wù)程序后,必然要返回,即回交通燈信號回到中斷前狀態(tài)。</p><p> ?。ㄈ?系統(tǒng)硬件總電路構(gòu)成及原理</p><p> 實現(xiàn)本設(shè)計要求的具體功能,可以選用AT89C51單片機及外圍器件構(gòu)成最小控制系統(tǒng),12個發(fā)光二極管分成4組紅綠黃三色燈
32、構(gòu)成信號燈指示模塊和緊急按鈕。</p><p> 1、系統(tǒng)硬件電路構(gòu)成</p><p> 本系統(tǒng)以單片機為核心,系統(tǒng)硬件電路由狀態(tài)燈,按鍵等組成。</p><p> 圖3-3 硬件電路總圖</p><p> 其中P1用于控制紅綠黃發(fā)光二極管,XTAL1和XTAL2接入晶振時鐘電路,REST引腳接上復位電路, P3.2即INT0緊急情況
33、處理按鍵。</p><p><b> 2、系統(tǒng)工作原理</b></p><p> 系統(tǒng)上電或手動復位之后,系統(tǒng)顯示狀態(tài)燈,將狀態(tài)碼值送顯P1口。時間到達一個狀態(tài)所要全部時間,則要進行下一狀態(tài)判斷及銜接,并裝入次狀態(tài)的相應(yīng)狀態(tài)碼值以及時間值,</p><p> 當然,還要開啟兩個外部中斷,其一為緊急情況處理中斷,一旦信號有效,即K鍵為低電平
34、時進入中斷服務(wù)子程序,東西南北路口的紅燈全亮禁止全部通行,再按一下K鍵,中斷結(jié)束返回。其二為系統(tǒng)復位,若此時按下復位按鈕,系統(tǒng)將自動恢復到初始狀態(tài)。</p><p><b> 3、其它硬件介紹</b></p><p><b> ?。?)發(fā)光二極管</b></p><p> 根據(jù)本設(shè)計的特點,紅綠燈的顯示不可少,紅綠燈的
35、顯示采用普通的發(fā)光二極管。每個方向上設(shè)置紅綠黃燈,總共4組。如果東西紅燈亮,那南北方向就是綠燈亮,反之亦然,所以在硬件上連接圖上也是對稱分布的。 </p><p> 圖3-4 信號燈的連接</p><p><b> ?。?)按鍵控制</b></p><p> 本設(shè)計設(shè)置了有2個鍵:K鍵連接P3.2,復位按鈕。K鍵一端接地,另一端接對應(yīng)的P3
36、端口。低電平有效,當按鍵按下端口接地,單片機捕獲到低電平,從而知道相應(yīng)的輸入信息。</p><p><b> 四、程序設(shè)計</b></p><p> ?。ㄒ唬┏绦蛑黧w設(shè)計流程</p><p> 全部控制程序?qū)嶋H上分為若干模塊:鍵盤設(shè)置處理程序,狀態(tài)燈控制程序,LED顯示程序緊停程序,中斷服務(wù)子程序,紅綠燈時間調(diào)整程序等。</p>
37、<p> 整個軟件程序方面主要分兩大部分:主程序部分和中斷處理程序。</p><p> 圖4-1 系統(tǒng)總流程圖</p><p> 設(shè)計說明:該智能交通燈控制系統(tǒng)的軟件設(shè)計采用的是順序執(zhí)行并反復循環(huán)的方法。為了能夠使實驗快速地實現(xiàn)設(shè)計目的,我們將每個工作循環(huán)時間設(shè)計定在20s。每紅綠燈轉(zhuǎn)換時,正在通行路口的綠燈開始閃爍三次,隨后點亮黃燈,以提醒路人上的行人及車輛,交通燈即
38、將發(fā)生變化。在此期間若中斷按鍵按下則轉(zhuǎn)入中斷服務(wù)子程序進行相關(guān)操作。</p><p><b> ?。ǘ├碚摶A(chǔ)知識</b></p><p><b> 1、定時器原理</b></p><p> 定時器工作的基本原理其實就是給初值,讓它不斷加1直至減完為模值,這個初值是送到TH和TL中的。它是以加法記數(shù)的,并能從全1到全
39、0時自動產(chǎn)生溢出中斷請求。因此,我們可以把計數(shù)器記滿為零所需的計數(shù)值,即所要求的計數(shù)值設(shè)定為C,把計數(shù)初值設(shè)定為TC 可得到如下計算通式:</p><p><b> TC=M-C</b></p><p> 式中,M為計數(shù)器模值。計數(shù)值并不是目的,目的是時間值,設(shè)計1次的時間,即定時器計數(shù)脈沖的周期為T0,它是單片機系統(tǒng)主頻周期的12倍,設(shè)要求的時間值為T,則有C=
40、T/T0。計算通式變?yōu)椋?lt;/p><p> T=(M-TC)T0</p><p> 模值和計數(shù)器工作方式有關(guān)。在方式0時M為8192;在方式1時M的值為65536;在方式2和3為256。就此可以算出各種方式的最大延時。如單片機的主脈沖頻率為12MHZ,經(jīng)過12分頻后,若采用方式0最大延時只有8.129毫秒,采用方式1最大延時也只有65.536毫秒。</p><p&g
41、t;<b> 2、軟件延時原理</b></p><p> MCS-51的工作頻率為12MHZ,機器周期與主頻有關(guān),機器周期是主頻的12倍,所以一個機器周期的時間為12*(1/12MHZ)=1us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定1秒的時間,但同時由于單片機的運行速度很快其他的指令執(zhí)行時間可以忽略不計。</p><p><
42、;b> 3、中斷原理</b></p><p> 本系統(tǒng)主要使用了外部中斷,中斷信號有引腳INT0和INT1輸入,低電平有效,CPU每個時鐘周期都會檢測INT0和INT1上的信號,8051允許外部中斷以電平方式或負邊沿方式兩種中斷方式輸入中斷請求信號,可由用戶通過設(shè)置TCON中IT0和IT1位的狀態(tài)來實現(xiàn)。以IT0為例,IT0=0,為電平觸發(fā)方式,IT0=1,為邊沿觸發(fā)方式,本設(shè)計采用邊沿觸發(fā)
43、方式,IE0為其中斷標志位,有中斷信號則置位,中斷服務(wù)子程序響應(yīng)后,IE0自動清零。IE中的EA為允許中斷的總控制位,為1開啟,EX0為外部中斷允許位,為1開啟。</p><p> 在優(yōu)先級的允許下,一旦有外部中斷信號產(chǎn)生,單片機CPU首先保護斷點,PC值進棧,然后執(zhí)行相應(yīng)的中斷服務(wù)子程序,執(zhí)行完后,用RETI指令返回,此時CPU會從堆棧中取保存的斷點地址,送回PC,程序再正常執(zhí)行。 </p&g
44、t;<p> ?。ㄈ┳映绦蚰K設(shè)計</p><p> 1、狀態(tài)燈顯示及判斷</p><p> 在本設(shè)計中,實際控制的燈只有6個,即:東西紅燈,東西綠燈,東西黃燈,南北紅燈,南北綠燈,南北黃燈。</p><p> MOV P1,#00H ;南北紅,東西綠</p><p> SETB P1.0
45、 </p><p><b> SETB P1.4</b></p><p> MOV R5,#125</p><p> ACALL DELAY</p><p> MOV P1,#00H ;南北紅,東西黃</p><p><b> SETB P1.0</b
46、></p><p><b> SETB P1.5</b></p><p> MOV R5,#40</p><p> ACALL DELAY</p><p> MOV P1,#00H ;南北綠,東西紅</p><p> SETB P1.1 <
47、;/p><p><b> SETB P1.3</b></p><p> MOV R5,#125</p><p> ACALL DELAY</p><p> MOV P1,#00H ;南北黃,東西紅</p><p><b> SETB P1.2</b><
48、;/p><p><b> SETB P1.3</b></p><p> MOV R5,#40</p><p> ACALL DELAY</p><p> 2、緊停及調(diào)整時間中斷子程序</p><p> 緊停按鍵連接到外部中斷引腳P3.2,即INT0捕獲到一個低電平,則進入該中斷進行相關(guān)處理。
49、程序如下:</p><p> INT0:;外部中斷服務(wù)程序,中斷后,全紅5秒</p><p><b> PUSH P1</b></p><p><b> MOV P1,#0</b></p><p><b> SETB P1.0</b></p><
50、;p><b> SETB P1.3</b></p><p> MOV R5,#25*5</p><p> ACALL DELAY</p><p><b> POP P1</b></p><p><b> RETI</b></p><p>
51、<b> ?。ㄋ模┫到y(tǒng)軟件調(diào)試</b></p><p> 1、PROTUES仿真器</p><p> 仿真的概念其實使用非常廣,最終的含義就是使用可控的手段來模仿真實的情況。單片機系統(tǒng)開發(fā)中的仿真包括軟件仿真和硬件仿真。</p><p> 軟件仿真這種方法主要是使用計算機軟件來模擬實際的單片機運行,因此仿真與硬件無關(guān)的系統(tǒng)具有一定的優(yōu)點。
52、用戶不需要搭建硬件電路就可以對程序進行驗證,特別適合于偏重算法的程序。軟件仿真的缺點是無法完全仿真與硬件相關(guān)的部分,因此最終還要通過硬件仿真來完成最后的設(shè)計。</p><p> 硬件仿真使用附加的硬件來替代用戶系統(tǒng)的單片機并完成單片機全部或大部分的功能。使用了附加硬件后用戶就可以對程序的運行進行控制,例如單步、全速、查看資源斷點等。</p><p> 2、集成開發(fā)環(huán)境KEIL</
53、p><p> KEIL uVision2集成開發(fā)環(huán)境主要由以下部分組成:</p><p> KEIL uVision2包括:一個工程管理器,一個功能豐富并有交互式錯誤提示的編輯器選項設(shè)置生成工具,以及在線幫助。使用KEIL創(chuàng)建源文件并組成應(yīng)用工程加以管理。KEIL可以自動完成編譯匯編鏈接程序的操作;</p><p> C51編譯器和A51匯編器。Vision2 I
54、DE創(chuàng)建的源文件可以被C51編譯器或A51匯編器處理生成可重定位的object文件。KEIL C51編譯器遵照ANSI C語言標準支持C語言的所有標準特性,另外還增加了幾個可以直接支持80C51結(jié)構(gòu)的特性。KEIL A51宏匯編器支持80C51及其派生系列的所有指令集;</p><p> LIB51庫管理器。B51庫管理器可以從由匯編器和編譯器創(chuàng)建的目標文件建立目標庫,這些庫是按規(guī)定格式排列的目標模塊,可在以后
55、被鏈接器所使用當鏈接器處理一個庫時僅僅使用了庫中程序使用了的目標模塊而不是全部加以引用;</p><p> BL51鏈接器定位器。L51鏈接器使用從庫中提取出來的目標模塊和由編譯器匯編器生成的目標模塊創(chuàng)建一個絕對地址目標模塊,絕對地址目標文件或模塊包括不可重定位的代碼和數(shù)據(jù)所有的代碼和數(shù)據(jù)都被固定在具體的存儲器單元中。</p><p> 3、利用KEIL開發(fā)和調(diào)試系統(tǒng)軟件流程大致如下:
56、</p><p> 啟動uVision2,進入KEIL軟件的集成開發(fā)環(huán)境;</p><p> 利用KEIL內(nèi)置的文本編輯器進行程序源文件的編輯,因為KEIL集成的文本編輯器對中文支持不是很好,可以選擇其他的編輯器(本文使用的文本編輯器是Ultraedit—32),uVision2能夠自動識別外部改變了的源文件;</p><p> 建立工程,指定針對哪種單片機進
57、行開發(fā),指定對源程序的編譯、鏈接參數(shù),指定調(diào)試方式(本文采用外部硬件仿真器仿真調(diào)試的方式,即使用PROTUES仿真器仿真),然后對工程進行相關(guān)設(shè)置;</p><p> 設(shè)置好工程后即可進行編譯、鏈接。連接仿真器對軟件進行調(diào)試。也可以生成下載到單片機存儲器上的.HEX文件。</p><p><b> 4、系統(tǒng)軟件調(diào)試</b></p><p>
58、 系統(tǒng)的軟件調(diào)試借助于PROTUES,在進行系統(tǒng)軟件的連續(xù)調(diào)試之前要先進行軟件的初調(diào),就是要使各個子程序模塊運行正確,程序的運行流程正確。</p><p> 功能子程序的調(diào)試。能子程序的調(diào)試包括運算、采樣、數(shù)字濾波以及PID運算等子程序的調(diào)試。在調(diào)試功能子程序時,許多參數(shù)都是未知的,要根據(jù)其所需的條件,給出假定的數(shù)據(jù),使其運行,如果能完成預(yù)定的處理功能或與手工計算的結(jié)果相符,就說明該子程序己調(diào)試通過。調(diào)試時由
59、小到大,由里到外。例如,調(diào)試PID算法子程序時,先調(diào)通其包含的各個運算子程序和參數(shù)處理子程序,然后將它們連起來進行通調(diào)。通調(diào)時,也是假定一些數(shù)據(jù)、參數(shù)和初始條件,然后運行程序。當運算結(jié)果與手工計算的結(jié)果相同時,該算法子程序則調(diào)試完成,反之,就要進行相應(yīng)的修改。其它子程序的調(diào)試同理;</p><p> 程序流程的調(diào)試。序流程的調(diào)試主要是查看程序運行的步驟是否正確,在某時刻程序運行所處的位置是否正確,是否能正確運行
60、各個中斷服務(wù)程序。在調(diào)試過程中,先將PID算法子程序屏蔽,輸出可控硅導通時間用一個固定的常數(shù)代替,在各個中斷服務(wù)子程序設(shè)置斷點,然后運行程序,查看程序是否能運行到所有的斷點,若所有斷點都能運行到,則程序流程基本正確。去掉所有斷點,再一次運行程序,查看可控硅狀態(tài),從而判斷程序流程正確,反之,若程序流程不正確,做相應(yīng)的修改后,重新調(diào)試;</p><p> 功能程序與算法程序的通調(diào)。完成整個程序流程的調(diào)試后,將PID
61、等算法子程序加入,在算法子程序前或后設(shè)置斷點,運行整個程序。當程序在斷點處暫停時,查看PID計算的控制量與手工計算的值是否相同。多運行幾次,若每次的結(jié)果都正確,則說明程序各個部分互相沒有矛盾,反之,則說明算法子程序和其它子程序之間有影響,需要做相應(yīng)的修改后重新調(diào)。</p><p> 五、程序調(diào)試及結(jié)果分析</p><p><b> (一)總體設(shè)計程序</b><
62、;/p><p><b> ORG 0000H</b></p><p><b> AJMP MAIN</b></p><p><b> ORG 0003H</b></p><p><b> LJMP INT0</b></p><p&g
63、t;<b> ORG 0040H</b></p><p><b> MAIN:</b></p><p><b> SETB EA</b></p><p><b> SETB IT0</b></p><p><b> SETB EX0&l
64、t;/b></p><p><b> S:</b></p><p> MOV P1,#00H ;南北紅,東西綠</p><p><b> SETB P1.0</b></p><p><b> SETB P1.4</b></p><p
65、> MOV R5,#125</p><p> ACALL DELAY</p><p> MOV R4,#6 ;南北紅,東西綠閃3次</p><p> S1:SETB P1.0</p><p><b> CPL P1.4</b></p><p> MOV R5,#
66、13</p><p> ACALL DELAY</p><p> DJNZ R4,S1</p><p> MOV P1,#00H ;南北紅,東西黃</p><p><b> SETB P1.0</b></p><p><b> SETB P1.5</b><
67、/p><p> MOV R5,#40</p><p> ACALL DELAY</p><p> MOV P1,#00H ;南北綠,東西紅</p><p> SETB P1.1 </p><p><b> SETB P1.3</b></p><p>
68、 MOV R5,#25*5</p><p> ACALL DELAY</p><p> MOV R4,#6 ;南北綠閃3次,東西紅</p><p> S2:CPL P1.1</p><p><b> SETB P1.3</b></p><p> MOV R5,#13<
69、/p><p> ACALL DELAY</p><p> DJNZ R4,S2</p><p> MOV P1,#00H;南北黃,東西紅</p><p><b> SETB P1.2</b></p><p><b> SETB P1.3</b></p>
70、<p> MOV R5,#40</p><p> ACALL DELAY</p><p><b> LJMP S</b></p><p> DELAY: ;延時子程序,入口參數(shù)為R5</p><p> MOV R6,#100</p><p> DEL1:
71、 MOV R7,#200</p><p> DEL2: DJNZ R7,DEL2</p><p> DJNZ R6,DEL1</p><p> DJNZ R5,DELAY</p><p><b> RET</b></p><p> INT0:;外部中斷服務(wù)程序,中斷后,全紅5秒
72、</p><p><b> PUSH P1</b></p><p><b> MOV P1,#0</b></p><p><b> SETB P1.0</b></p><p><b> SETB P1.3</b></p><p&
73、gt; MOV R5,#125</p><p> ACALL DELAY</p><p><b> POP P1</b></p><p><b> RETI</b></p><p><b> END</b></p><p> ?。ǘ﹑rotu
74、es仿真模擬及模擬圖</p><p><b> 1、交通燈系統(tǒng)</b></p><p><b> 2、模擬圖</b></p><p><b> 六、總結(jié)</b></p><p> 為期兩周的單片機原理及應(yīng)用課程設(shè)計的學習與實踐結(jié)束了,在兩周的時間里使我受益頗深,不僅鞏固
75、了在課堂上所學到的知識,同時也擴展了自己的知識面,現(xiàn)將我的學習實踐心得做出如下總結(jié):</p><p> 在系統(tǒng)的設(shè)計與調(diào)試,我覺得它主要考驗?zāi)愕乃季S邏輯能力及你對指令的熟悉程度??梢哉f在整個軟件設(shè)計過程中,讓我學會了很多。當然,通過幾次反復調(diào)試過程,使得我對匯編指令有了更深刻的理解。在整個課程設(shè)計過程我還掌握了一下幾點:</p><p> ?。?)掌握了電子系統(tǒng)設(shè)計的流程,熟悉了各種硬件
76、電路以及軟件編程方法。</p><p> ?。?)更加深刻地理解了單片機的各部分組成及特性。</p><p> ?。?)熟練使用了各種計算機輔助設(shè)計工具完成設(shè)計,充分掌握了這些工具的使用。</p><p> (4)學會了利用Keil uVision2對匯編語言進行編譯過程。對PROTUES軟件也有了直觀的學習。</p><p> 但是,自
77、己此次設(shè)計的系統(tǒng)還是很有缺陷的,沒有做靜動態(tài)的數(shù)碼管顯示和一些實用的中斷保護,在今后的學習,希望在此基礎(chǔ)上,再將這個交通燈系統(tǒng)更加豐富,更加貼近實際的應(yīng)用,并且能夠有所創(chuàng)新。</p><p> 通過本次的課程設(shè)計,充分意識到自己所學的東西還是非常有限的。不過,通過此次課程設(shè)計,還是學到了一些書本上沒有學到的東西,為自己以后的學習起了很大的幫助。就我個人而言,很深刻地體會到一點,那就是我們在設(shè)計過程中一定要有一個
78、整體的清晰的思路,知道自己的設(shè)計的對象的基本功能和核心器件的適用及其作用,只要把握住這些主要方面,一些小問題都將圍繞著這些主要問題而逐步得到解決。</p><p> 以上是我在單片機原理及應(yīng)用課程設(shè)計的學習與實踐過程中總結(jié)的一些心得和體會,認真對待每一件事就會發(fā)現(xiàn),只有精深的理論、切身的實踐、團隊的配合,才能出色的完成任務(wù)。</p><p><b> 七、參考文獻</b
79、></p><p> [l]張毅剛.單片機原理及應(yīng)用[M].北京:高等教育出版社,2004.</p><p> [2]張鑫,華臻,陳書謙. 單片機原理及應(yīng)用[J].電子工業(yè)出版社,2008(5).</p><p> [3]黃智偉.凌陽單片機課程設(shè)計指導[J]. 北京航空航天大學出版社,2007,</p><p> [4]余錫存
80、曹國華.單片機原理及接口技術(shù)[M].陜西:西安電子科技大學出版社,2000.7</p><p> [5]雷麗文 等.微機原理與接口技術(shù)[M].北京:電子工業(yè)出版社,1997.2 </p><p> [6]柴鈺.單片機原理和應(yīng)用[M].西安電子科技大學出版社.</p><p> [7]張靖武.單片機系統(tǒng)的PROTUSE設(shè)計和仿真[M].電子工業(yè)出版社.2007.
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c51單片機交通燈課程設(shè)計
- 單片機簡單交通燈課程設(shè)計
- 基于51單片機簡單交通燈控制
- 單片機課程設(shè)計--基于51單片機的交通燈
- 單片機交通燈課程設(shè)計--基于單片機的交通燈系統(tǒng)的設(shè)計
- 51單片機交通燈課程設(shè)計
- 交通燈單片機課程設(shè)計--基于單片機的交通燈顯示系統(tǒng)
- 交通燈單片機課程設(shè)計--基于單片機的交通燈顯示系統(tǒng)
- 單片機交通燈課程設(shè)計--基于單片機的交通燈系統(tǒng)的設(shè)計
- 單片機課程設(shè)計--基于單片機的交通燈設(shè)計
- 單片機交通燈課程設(shè)計--基于單片機的交通燈控制設(shè)計
- c51單片機課程設(shè)計
- 單片機原理及系統(tǒng)設(shè)計課程設(shè)計--基于at89c51單片機的交通燈設(shè)計
- 課程設(shè)計---基于51單片機的交通燈設(shè)計
- 基于89c51單片機交通燈課程設(shè)計
- c51單片機課程設(shè)計
- 單片機課程設(shè)計--基于單片機的交通燈設(shè)計 (2)
- 基于51單片機的智能交通燈課程設(shè)計
- 基于51單片機的智能交通燈課程設(shè)計
- 基于51單片機的智能交通燈課程設(shè)計
評論
0/150
提交評論