單片機(jī)原理與接口技術(shù)課程設(shè)計(jì)基于C51單片機(jī)的簡單交通燈系統(tǒng)設(shè)計(jì)_第1頁
單片機(jī)原理與接口技術(shù)課程設(shè)計(jì)基于C51單片機(jī)的簡單交通燈系統(tǒng)設(shè)計(jì)_第2頁
單片機(jī)原理與接口技術(shù)課程設(shè)計(jì)基于C51單片機(jī)的簡單交通燈系統(tǒng)設(shè)計(jì)_第3頁
單片機(jī)原理與接口技術(shù)課程設(shè)計(jì)基于C51單片機(jī)的簡單交通燈系統(tǒng)設(shè)計(jì)_第4頁
單片機(jī)原理與接口技術(shù)課程設(shè)計(jì)基于C51單片機(jī)的簡單交通燈系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告 書書所屬課程名稱所屬課程名稱 單片機(jī)原理與接口技術(shù)單片機(jī)原理與接口技術(shù) 題題 目目基于基于 c51c51 單片機(jī)的簡單交通燈系統(tǒng)設(shè)計(jì)單片機(jī)的簡單交通燈系統(tǒng)設(shè)計(jì) 分分 院院 機(jī)電學(xué)院機(jī)電學(xué)院 專專 業(yè)、班業(yè)、班 級(jí)級(jí) 學(xué)學(xué) 號(hào)號(hào) 學(xué)學(xué) 生生 姓姓 名名 指指 導(dǎo)導(dǎo) 教教 師師 2012 年年 07 月月 12 日日成績:成績:目目 錄錄一、課程設(shè)計(jì)任務(wù)書一、課程設(shè)計(jì)任務(wù)書 .1二、總體設(shè)計(jì)二、總體設(shè)計(jì).2(一)單片機(jī)交通控制系統(tǒng)方案的比較、論證.2(二)單片機(jī)交通控制系統(tǒng)總體設(shè)計(jì).2三、智能交通燈控制系統(tǒng)的硬件設(shè)計(jì)三、智能交通燈控制系統(tǒng)的硬件設(shè)計(jì).5(一) a

2、t89c51 單片機(jī)簡介 .5(二)交通燈中的中斷處理流程.7(三) 系統(tǒng)硬件總電路構(gòu)成及原理.8四、程序設(shè)計(jì)四、程序設(shè)計(jì).10(一)程序主體設(shè)計(jì)流程 .10(二)理論基礎(chǔ)知識(shí) .10(三)子程序模塊設(shè)計(jì) .11(四)系統(tǒng)軟件調(diào)試 .12五、程序調(diào)五、程序調(diào)試試及結(jié)果分析及結(jié)果分析.15(一)總體設(shè)計(jì)程序 .15(二)protues仿真模擬及模擬圖.17六、總結(jié)六、總結(jié).19七、參考文獻(xiàn)七、參考文獻(xiàn).20一、課程設(shè)計(jì)任務(wù)書一、課程設(shè)計(jì)任務(wù)書課程設(shè)計(jì)題目課程設(shè)計(jì)題目: 基于 c51 單片機(jī)的簡單交通燈系統(tǒng)設(shè)計(jì) 課程設(shè)計(jì)時(shí)間課程設(shè)計(jì)時(shí)間:自 2012 年 07 月 02 日起至 2012 年 07

3、 月 13 日。課程設(shè)計(jì)要求課程設(shè)計(jì)要求:我們本次模擬系統(tǒng)由單片機(jī)硬/軟件系統(tǒng)、led 燈顯示系統(tǒng)和復(fù)位電路控制電路等組成,較好的模擬了交通路面的控制。(1)分析目前交通路口的基本控制技術(shù)以及各種通行方案,并以此為基礎(chǔ)提出自己的交通控制的初步方案。(2)確定系統(tǒng)交通控制的總體設(shè)計(jì),包括,十字路口具體的通行禁行方案設(shè)計(jì)以及系統(tǒng)應(yīng)擁有的各項(xiàng)功能。(3)進(jìn)行 led 燈狀態(tài)電路,按鍵電路的設(shè)計(jì)和對(duì)各器件的選擇及連接,大體分配各個(gè)器件及模塊的基本功能要求。(4)進(jìn)行軟件系統(tǒng)的設(shè)計(jì),對(duì)于本系統(tǒng),我們采用單片機(jī)匯編語言編寫,對(duì)單片機(jī)內(nèi)部結(jié)構(gòu)和工作情況做了充足的研究,了解定時(shí)器,中斷以及延時(shí)原理,總體上完成

4、了軟件的編寫。學(xué)生簽名:學(xué)生簽名: 年年 月月 日日課程設(shè)計(jì)評(píng)閱意見課程設(shè)計(jì)評(píng)閱意見項(xiàng)目項(xiàng)目課程設(shè)計(jì)課程設(shè)計(jì)態(tài)度評(píng)價(jià)態(tài)度評(píng)價(jià)10%出勤情出勤情況評(píng)價(jià)況評(píng)價(jià)10%任務(wù)難度任務(wù)難度、量評(píng)價(jià)、量評(píng)價(jià)10%創(chuàng)新性評(píng)價(jià)創(chuàng)新性評(píng)價(jià)10%綜合設(shè)計(jì)綜合設(shè)計(jì)能力評(píng)價(jià)能力評(píng)價(jià)20%報(bào)告書寫報(bào)告書寫規(guī)范評(píng)價(jià)規(guī)范評(píng)價(jià)20%答辯答辯20%成績成績綜合評(píng)定等級(jí)綜合評(píng)定等級(jí)評(píng)閱教師:評(píng)閱教師: 2012 年年 月月 日日二、總體設(shè)計(jì)二、總體設(shè)計(jì)(一)單片機(jī)交通控制系統(tǒng)方案的比較、論證(一)單片機(jī)交通控制系統(tǒng)方案的比較、論證1、電源提供方案為使模塊穩(wěn)定工作,須有可靠電源。因此考慮了兩種電源方案:方案一:采用獨(dú)立的穩(wěn)壓電源。此

5、方案的優(yōu)點(diǎn)是穩(wěn)定可靠,且有各種成熟電路可供選用;缺點(diǎn)是各模塊都采用獨(dú)立電源,會(huì)使系統(tǒng)復(fù)雜,且可能影響電路電平。方案二:采用單片機(jī)控制模塊提供電源。改方案的優(yōu)點(diǎn)是系統(tǒng)簡明扼要,節(jié)約成本;缺點(diǎn)是輸出功率不高。綜上所述,我們選擇第二種方案。2、輸入方案題目要求系統(tǒng)能調(diào)節(jié)燈亮?xí)r間,并可處理緊急情況,我們研究了兩種方案方案一:采用 8155 擴(kuò)展 i/o 口及鍵盤,顯示等。該方案的優(yōu)點(diǎn)是:使用靈活可編程,并且有 ram,及計(jì)數(shù)器。若用該方案,可提供較多 i/o 口,但操作起來稍顯復(fù)雜。方案二: 直接在 i/o 口線上接上按鍵開關(guān)。由于該系統(tǒng)對(duì)于交通燈的控制,只用單片機(jī)本身的 i/o 口就可實(shí)現(xiàn),且本身的

6、計(jì)數(shù)器及ram 已經(jīng)夠用。綜上所述,我們選擇第二種方案。(二)單片機(jī)交通控制系統(tǒng)總體設(shè)計(jì)(二)單片機(jī)交通控制系統(tǒng)總體設(shè)計(jì)1、單片機(jī)交通控制系統(tǒng)的通行方案設(shè)計(jì)設(shè)在十字路口,分為東西向和南北向,在任一時(shí)刻只有一個(gè)方向通行,另一方向禁行,持續(xù)一定時(shí)間,經(jīng)過短暫的過渡時(shí)間,將通行禁行方向?qū)Q。其具體狀態(tài)如下圖所示。圖 2-1 交通狀態(tài)說明:黑色表示亮,白色表示滅。交通狀態(tài)從狀態(tài) 1 開始變換,直至狀態(tài) 6 然后循環(huán)至狀態(tài) 1,周而復(fù)始。表 2-1 表示燈狀態(tài)和行止?fàn)顟B(tài)的關(guān)系狀態(tài) 1狀態(tài) 3狀態(tài) 4狀態(tài) 6東西向禁行等待變換通行等待變換南北向通行等待變換禁行等待變換東西紅燈1100東西黃燈0001東西綠

7、燈0010南北紅燈0011南北綠燈1000南北黃燈0100在任一個(gè)路口,遇紅燈禁止通行,轉(zhuǎn)綠燈允許通行,之后黃燈亮警告行止?fàn)顟B(tài)將變換。狀態(tài)及紅綠燈狀態(tài)如表 1 所示。說明:0 表示滅,1 表示亮。2、單片機(jī)交通控制系統(tǒng)的功能要求本設(shè)計(jì)能模擬基本的交通控制系統(tǒng),用紅綠黃燈表示禁行,通行和等待的信號(hào)發(fā)生。 還可以進(jìn)行緊急處理,交通路口出現(xiàn)緊急狀況在所難免,如特大事件發(fā)生,救護(hù)車等急行車通過等,我們都必須盡量允許其暢通無阻,畢竟在這種情況下是分秒必爭的,時(shí)時(shí)刻刻關(guān)系著公共財(cái)產(chǎn)安全,個(gè)人生死攸關(guān)等。由此在交通控制中增設(shè)禁停按鍵,就可達(dá)到想此目的。3、單片機(jī)交通控制系統(tǒng)的基本構(gòu)成及原理單片機(jī)設(shè)計(jì)交通燈控

8、制系統(tǒng),可用單片機(jī)直接控制信號(hào)燈的狀態(tài)變化,基本上可以指揮交通的具體通行。本系統(tǒng)在此基礎(chǔ)上,加入了緊急情況處理功能。單片機(jī)最小系統(tǒng)外圍接口電路紅光綠信號(hào)燈按鍵控制電路圖 2-2 系統(tǒng)的總體框圖據(jù)此,本設(shè)計(jì)系統(tǒng)以單片機(jī)為控制核心,連接成最小系統(tǒng),由按鍵設(shè)置模塊產(chǎn)生輸入,信號(hào)燈狀態(tài)模塊。系統(tǒng)的總體框圖如上所示。單片機(jī)上電后,系統(tǒng)進(jìn)入正常工作狀態(tài),執(zhí)行交通燈狀態(tài)顯示控制,在此過程中隨時(shí)調(diào)用急停按鍵。三、智能交通燈控制系統(tǒng)的硬件設(shè)計(jì)三、智能交通燈控制系統(tǒng)的硬件設(shè)計(jì)(一)(一) at89c51 單片機(jī)簡介單片機(jī)簡介 at89c51 是一種帶 4k 字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(fperomfalsh

9、programmable and erasable read only memory)的低電壓,高性能 cmos8 位微處理器,俗稱單片機(jī)。at89c2051 是一種帶 2k 字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除 100 次。該器件采用 atmel 高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的 mcs-51 指令集和輸出管腳相兼容。由于將多功能 8 位 cpu 和閃爍存儲(chǔ)器組合在單個(gè)芯片中,atmel 的 at89c51 是一種高效微控制器,at89c2051 是它的一種精簡版本。at89c 單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。1、

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

11、。圖 3-1 at89c51 系列單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖2、主要引腳功能圖 3-2 at89c51 引腳圖vcc:電源電壓gnd:接地p0 口:p0 口是一組 8 位雙向 i0 口。p0 口即可作地址數(shù)據(jù)總線使用,又可以作為通用的 i/o 口使用。當(dāng) cpu 訪問片外存儲(chǔ)器時(shí),p0 口分時(shí)先作低 8 位地址總線,后作雙向數(shù)據(jù)總線,此時(shí),p0 口就不能再作 i/o 口使用了。在訪問期間激活要使用上拉電阻。p1 口:pl 是一個(gè)帶內(nèi)部上拉電阻的 8 準(zhǔn)位雙向 io 口,p1 作為通用的 i/o 口使用。p2 口:p2 是一個(gè)帶有內(nèi)部上拉電阻的 8 位準(zhǔn)雙向 io 口,p2 即可作為通用的 i/o

12、口使用,也可以作為片外存儲(chǔ)器的高 8 位地址總線,與 p0 口配合,組成 16 位片外存儲(chǔ)器單元地址。p3 口:p3 口是一組帶有內(nèi)部上拉電阻的 8 位準(zhǔn)雙向 i0 口。p3 口除了作為通用的i/o 口使用之外,每個(gè)引腳還具有第二功能。表 3-1 具有第二功能的 p3 口引腳端口引腳第二功能:p3.0rxd(串行輸入口)p3.1txd(串行輸出口)p3.2/int0(外中斷 0)p3.3/ int1(外中斷 1)p3.4t0(定時(shí)計(jì)數(shù)器 0 外部輸入)p3.5t1(定時(shí)計(jì)數(shù)器 1 外部輸入)p3.6/ wr(外部數(shù)據(jù)存儲(chǔ)器寫選通)p3.7/ rd 外部數(shù)據(jù)存儲(chǔ)器讀選通)rst:復(fù)位輸入。當(dāng)振蕩

13、器工作時(shí),rst 引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。wdt 溢出將使該引腳輸出高電平,設(shè)置 sfr auxr 的 disrt0 位(地址 8eh)可打開或關(guān)閉該功能。disrt0 位缺省為 reset 輸出高電平打開狀態(tài)。ale:當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ale(地址鎖存允許)輸出脈沖prog用于鎖存地址的低 8 位字節(jié)。即使不訪問外部存儲(chǔ)器,ale 仍以時(shí)鐘振蕩頻率的 16 輸出固定的正脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè) ale 脈沖。對(duì) f1ash 存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(prog)。如有必要

14、,可通過對(duì)特殊功能寄存器(sfr)區(qū)中的 8eh 單元的 d0 位置位,可禁止 ale 操作。該位置位后,只有一條 m0vx 和 m0vc 指令 ale 才會(huì)被激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置 ale 無效。程序儲(chǔ)存允許()輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng) at89s51 由外psenpsen部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次有效,即輸出兩個(gè)脈沖。當(dāng)psen訪問外部數(shù)據(jù)存儲(chǔ)器,沒有兩次有效的信號(hào)。psenvpp:外部訪問允許。欲使 cpu 僅訪問外部程序存儲(chǔ)器(地址為 0000hffffh),eaea 端必須保持低電平(接地)。如 ea 端為高電平

15、(接 vcc 端),cpu 則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。f1ash 存儲(chǔ)器編程時(shí),該引腳加上+12v 的編程電壓 vcc。xtal1:振蕩器反相放大器及內(nèi)部時(shí)鐘發(fā)生器的輸入端。3、mcs51 的中斷源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è)中斷源的程序入口。表 3-2 中斷源程序入口入口地址入口地址中斷源中斷源0003h外部中斷0 ()int0000bh定時(shí)器0 (t0)00

16、13h外部中斷1 ()1int001bh定時(shí)器1 (t1)0023h串行口(二)交通燈中的中斷處理流程(二)交通燈中的中斷處理流程現(xiàn)場保護(hù)和現(xiàn)場恢復(fù)有特殊車輛要通過時(shí)就要進(jìn)行中斷,在中斷之前,先將交通燈中斷前情況保護(hù)好,當(dāng)中斷執(zhí)行后再恢復(fù)現(xiàn)場,包括信號(hào)燈顯示電路。中斷打開和中斷關(guān)閉為了使特殊車輛通行按一下打開中斷開關(guān)就可以打開中斷,關(guān)閉中斷開關(guān)就關(guān)閉中斷。中斷返回執(zhí)行完中斷服務(wù)程序后,必然要返回,即回交通燈信號(hào)回到中斷前狀態(tài)。(三)(三) 系統(tǒng)硬件總電路構(gòu)成及原理系統(tǒng)硬件總電路構(gòu)成及原理實(shí)現(xiàn)本設(shè)計(jì)要求的具體功能,可以選用 at89c51 單片機(jī)及外圍器件構(gòu)成最小控制系統(tǒng),12 個(gè)發(fā)光二極管分成

17、 4 組紅綠黃三色燈構(gòu)成信號(hào)燈指示模塊和緊急按鈕。1、系統(tǒng)硬件電路構(gòu)成本系統(tǒng)以單片機(jī)為核心,系統(tǒng)硬件電路由狀態(tài)燈,按鍵等組成。圖 3-3 硬件電路總圖其中 p1 用于控制紅綠黃發(fā)光二極管,xtal1 和 xtal2 接入晶振時(shí)鐘電路,rest 引腳接上復(fù)位電路, p3.2 即 int0 緊急情況處理按鍵。2、系統(tǒng)工作原理系統(tǒng)上電或手動(dòng)復(fù)位之后,系統(tǒng)顯示狀態(tài)燈,將狀態(tài)碼值送顯 p1 口。時(shí)間到達(dá)一個(gè)狀態(tài)所要全部時(shí)間,則要進(jìn)行下一狀態(tài)判斷及銜接,并裝入次狀態(tài)的相應(yīng)狀態(tài)碼值以及時(shí)間值,當(dāng)然,還要開啟兩個(gè)外部中斷,其一為緊急情況處理中斷,一旦信號(hào)有效,即 k 鍵為低電平時(shí)進(jìn)入中斷服務(wù)子程序,東西南北路

18、口的紅燈全亮禁止全部通行,再按一下鍵,中斷結(jié)束返回。其二為系統(tǒng)復(fù)位,若此時(shí)按下復(fù)位按鈕,系統(tǒng)將自動(dòng)恢復(fù)到初始狀態(tài)。3、其它硬件介紹(1)發(fā)光二極管根據(jù)本設(shè)計(jì)的特點(diǎn),紅綠燈的顯示不可少,紅綠燈的顯示采用普通的發(fā)光二極管。每個(gè)方向上設(shè)置紅綠黃燈,總共 4 組。如果東西紅燈亮,那南北方向就是綠燈亮,反之亦然,所以在硬件上連接圖上也是對(duì)稱分布的。 圖 3-4 信號(hào)燈的連接(2)按鍵控制本設(shè)計(jì)設(shè)置了有 2 個(gè)鍵:k 鍵連接 p3.2,復(fù)位按鈕。k 鍵一端接地,另一端接對(duì)應(yīng)的 p3端口。低電平有效,當(dāng)按鍵按下端口接地,單片機(jī)捕獲到低電平,從而知道相應(yīng)的輸入信息。四、程序設(shè)計(jì)四、程序設(shè)計(jì)(一)程序主體設(shè)計(jì)流

19、程(一)程序主體設(shè)計(jì)流程全部控制程序?qū)嶋H上分為若干模塊:鍵盤設(shè)置處理程序,狀態(tài)燈控制程序,led 顯示程序緊停程序,中斷服務(wù)子程序,紅綠燈時(shí)間調(diào)整程序等。整個(gè)軟件程序方面主要分兩大部分:主程序部分和中斷處理程序。開始系統(tǒng)初始化東西亮綠燈,南北亮紅燈東西,南北方向換向中斷處理子程序處理返回東西綠燈閃爍,然后轉(zhuǎn)換黃燈,同時(shí),南北亮紅燈燈 圖 4-1 系統(tǒng)總流程圖設(shè)計(jì)說明:該智能交通燈控制系統(tǒng)的軟件設(shè)計(jì)采用的是順序執(zhí)行并反復(fù)循環(huán)的方法。為了能夠使實(shí)驗(yàn)快速地實(shí)現(xiàn)設(shè)計(jì)目的,我們將每個(gè)工作循環(huán)時(shí)間設(shè)計(jì)定在 20s。每紅綠燈轉(zhuǎn)換時(shí),正在通行路口的綠燈開始閃爍三次,隨后點(diǎn)亮黃燈,以提醒路人上的行人及車輛,交通

20、燈即將發(fā)生變化。在此期間若中斷按鍵按下則轉(zhuǎn)入中斷服務(wù)子程序進(jìn)行相關(guān)操作。(二)理論基礎(chǔ)知識(shí)(二)理論基礎(chǔ)知識(shí)1、定時(shí)器原理定時(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ì)算通式:tc=m-c式中,m 為計(jì)數(shù)器模值。計(jì)數(shù)值并不是目的,目的是時(shí)間值,設(shè)計(jì) 1 次的時(shí)間,即定時(shí)器計(jì)數(shù)脈沖的周期為 t0,它是單片機(jī)系統(tǒng)主頻周期的 12 倍,設(shè)要求的時(shí)間值為 t,則有c=tt0

21、。計(jì)算通式變?yōu)椋簍=(mtc)t0模值和計(jì)數(shù)器工作方式有關(guān)。在方式 0 時(shí) m 為 8192;在方式 1 時(shí) m 的值為 65536;在方式 2 和 3 為 256。就此可以算出各種方式的最大延時(shí)。如單片機(jī)的主脈沖頻率為 12mhz,經(jīng)過12 分頻后,若采用方式最大延時(shí)只有 8.129 毫秒,采用方式最大延時(shí)也只有 65.536 毫秒。2、軟件延時(shí)原理mcs-51 的工作頻率為 12mhz,機(jī)器周期與主頻有關(guān),機(jī)器周期是主頻的 12 倍,所以一個(gè)機(jī)器周期的時(shí)間為 12*(1/12mhz)=1us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定 1 秒的時(shí)間,但同時(shí)由于

22、單片機(jī)的運(yùn)行速度很快其他的指令執(zhí)行時(shí)間可以忽略不計(jì)。3、中斷原理本系統(tǒng)主要使用了外部中斷,中斷信號(hào)有引腳 int0 和 int1 輸入,低電平有效,cpu 每個(gè)時(shí)鐘周期都會(huì)檢測 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,為邊沿觸發(fā)方式,本設(shè)計(jì)采用邊沿觸發(fā)方式,ie0 為其中斷標(biāo)志位,有中斷信號(hào)則置位,中斷服務(wù)子程序響應(yīng)后,ie0 自動(dòng)清零。ie 中的ea 為允許中斷的總控制位,為 1 開啟,ex0 為外部中

23、斷允許位,為 1 開啟。在優(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,程序再正常執(zhí)行。 (三)子程序模塊設(shè)計(jì)(三)子程序模塊設(shè)計(jì)1、狀態(tài)燈顯示及判斷在本設(shè)計(jì)中,實(shí)際控制的燈只有 6 個(gè),即:東西紅燈,東西綠燈,東西黃燈,南北紅燈,南北綠燈,南北黃燈。mov p1,#00h ;南北紅,東西綠setb p1.0 setb p1.4mov r5,#125acall delaymov p1,#00h ;南北紅,東西黃setb p1.0setb p

24、1.5mov r5,#40acall delaymov p1,#00h ;南北綠,東西紅setb p1.1 setb p1.3mov r5,#125acall delaymov p1,#00h ;南北黃,東西紅setb p1.2setb p1.3mov r5,#40acall delay2、緊停及調(diào)整時(shí)間中斷子程序緊停按鍵連接到外部中斷引腳 p3.2,即 int0 捕獲到一個(gè)低電平,則進(jìn)入該中斷進(jìn)行相關(guān)處理。程序如下:int0:;外部中斷服務(wù)程序,中斷后,全紅 5 秒push p1mov p1,#0setb p1.0setb p1.3mov r5,#25*5acall delaypop p1r

25、eti(四)系統(tǒng)軟件調(diào)試(四)系統(tǒng)軟件調(diào)試1、protues 仿真器仿真的概念其實(shí)使用非常廣,最終的含義就是使用可控的手段來模仿真實(shí)的情況。單片機(jī)系統(tǒng)開發(fā)中的仿真包括軟件仿真和硬件仿真。軟件仿真這種方法主要是使用計(jì)算機(jī)軟件來模擬實(shí)際的單片機(jī)運(yùn)行,因此仿真與硬件無關(guān)的系統(tǒng)具有一定的優(yōu)點(diǎn)。用戶不需要搭建硬件電路就可以對(duì)程序進(jìn)行驗(yàn)證,特別適合于偏重算法的程序。軟件仿真的缺點(diǎn)是無法完全仿真與硬件相關(guān)的部分,因此最終還要通過硬件仿真來完成最后的設(shè)計(jì)。硬件仿真使用附加的硬件來替代用戶系統(tǒng)的單片機(jī)并完成單片機(jī)全部或大部分的功能。使用了附加硬件后用戶就可以對(duì)程序的運(yùn)行進(jìn)行控制,例如單步、全速、查看資源斷點(diǎn)等。

26、2、集成開發(fā)環(huán)境 keilkeil uvision2 集成開發(fā)環(huán)境主要由以下部分組成:keil uvision2 包括:一個(gè)工程管理器,一個(gè)功能豐富并有交互式錯(cuò)誤提示的編輯器選項(xiàng)設(shè)置生成工具,以及在線幫助。使用 keil 創(chuàng)建源文件并組成應(yīng)用工程加以管理。keil 可以自動(dòng)完成編譯匯編鏈接程序的操作;c51 編譯器和 a51 匯編器。vision2 ide 創(chuàng)建的源文件可以被 c51 編譯器或 a51 匯編器處理生成可重定位的 object 文件。keil c51 編譯器遵照 ansi c 語言標(biāo)準(zhǔn)支持 c 語言的所有標(biāo)準(zhǔn)特性,另外還增加了幾個(gè)可以直接支持 80c51 結(jié)構(gòu)的特性。keil a

27、51 宏匯編器支持 80c51 及其派生系列的所有指令集;lib51 庫管理器。b51 庫管理器可以從由匯編器和編譯器創(chuàng)建的目標(biāo)文件建立目標(biāo)庫,這些庫是按規(guī)定格式排列的目標(biāo)模塊,可在以后被鏈接器所使用當(dāng)鏈接器處理一個(gè)庫時(shí)僅僅使用了庫中程序使用了的目標(biāo)模塊而不是全部加以引用;bl51 鏈接器定位器。l51 鏈接器使用從庫中提取出來的目標(biāo)模塊和由編譯器匯編器生成的目標(biāo)模塊創(chuàng)建一個(gè)絕對(duì)地址目標(biāo)模塊,絕對(duì)地址目標(biāo)文件或模塊包括不可重定位的代碼和數(shù)據(jù)所有的代碼和數(shù)據(jù)都被固定在具體的存儲(chǔ)器單元中。3、利用 keil 開發(fā)和調(diào)試系統(tǒng)軟件流程大致如下:啟動(dòng) uvision2,進(jìn)入 keil 軟件的集成開發(fā)環(huán)境

28、;利用 keil 內(nèi)置的文本編輯器進(jìn)行程序源文件的編輯,因?yàn)?keil 集成的文本編輯器對(duì)中文支持不是很好,可以選擇其他的編輯器(本文使用的文本編輯器是 ultraedit32),uvision2 能夠自動(dòng)識(shí)別外部改變了的源文件;建立工程,指定針對(duì)哪種單片機(jī)進(jìn)行開發(fā),指定對(duì)源程序的編譯、鏈接參數(shù),指定調(diào)試方式(本文采用外部硬件仿真器仿真調(diào)試的方式,即使用 protues 仿真器仿真),然后對(duì)工程進(jìn)行相關(guān)設(shè)置;設(shè)置好工程后即可進(jìn)行編譯、鏈接。連接仿真器對(duì)軟件進(jìn)行調(diào)試。也可以生成下載到單片機(jī)存儲(chǔ)器上的.hex 文件。4、系統(tǒng)軟件調(diào)試系統(tǒng)的軟件調(diào)試借助于 protues,在進(jìn)行系統(tǒng)軟件的連續(xù)調(diào)試之前

29、要先進(jìn)行軟件的初調(diào),就是要使各個(gè)子程序模塊運(yùn)行正確,程序的運(yùn)行流程正確。功能子程序的調(diào)試。能子程序的調(diào)試包括運(yùn)算、采樣、數(shù)字濾波以及 pid 運(yùn)算等子程序的調(diào)試。在調(diào)試功能子程序時(shí),許多參數(shù)都是未知的,要根據(jù)其所需的條件,給出假定的數(shù)據(jù),使其運(yùn)行,如果能完成預(yù)定的處理功能或與手工計(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)的修改。其它子

30、程序的調(diào)試同理;程序流程的調(diào)試。序流程的調(diào)試主要是查看程序運(yùn)行的步驟是否正確,在某時(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)試;功能程序與算法程序的通調(diào)。完成整個(gè)程序流程的調(diào)試后,將 pid 等算法子程序加入,在算法子程序前或后設(shè)置斷點(diǎn),運(yùn)行整個(gè)程序。當(dāng)程序在斷點(diǎn)

31、處暫停時(shí),查看 pid 計(jì)算的控制量與手工計(jì)算的值是否相同。多運(yùn)行幾次,若每次的結(jié)果都正確,則說明程序各個(gè)部分互相沒有矛盾,反之,則說明算法子程序和其它子程序之間有影響,需要做相應(yīng)的修改后重新調(diào)。五、程序調(diào)試及結(jié)果分析五、程序調(diào)試及結(jié)果分析(一)總體設(shè)計(jì)程序(一)總體設(shè)計(jì)程序org 0000hajmp mainorg 0003hljmp int0org 0040hmain:setb easetb it0setb ex0s:mov p1,#00h ;南北紅,東西綠setb p1.0setb p1.4mov r5,#125acall delaymov r4,#6 ;南北紅,東西綠閃 3 次s1:

32、setb p1.0cpl p1.4mov r5,#13acall delaydjnz r4,s1mov p1,#00h ;南北紅,東西黃setb p1.0setb p1.5mov r5,#40acall delaymov p1,#00h ;南北綠,東西紅setb p1.1 setb p1.3mov r5,#25*5acall delaymov r4,#6 ;南北綠閃 3 次,東西紅s2: cpl p1.1setb p1.3mov r5,#13acall delaydjnz r4,s2mov p1,#00h;南北黃,東西紅setb p1.2setb p1.3mov r5,#40acall delayljmp sdelay: ;延時(shí)子程序,入口參數(shù)為 r5 mov r6,#100del1: mov r7,#200del2: djnz r7,del2 djnz r6,del1 djnz r5,delay retint0:;外部中斷服務(wù)程序,中斷后,全紅 5 秒push

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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)論