十字路口智能交通燈的設(shè)計.doc_第1頁
十字路口智能交通燈的設(shè)計.doc_第2頁
十字路口智能交通燈的設(shè)計.doc_第3頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

濟(jì)源職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計題目 十字路口智能交通燈 系別 電氣工程系 專業(yè) 電氣自動化技術(shù) 班級 電氣0802 姓名 學(xué)號 08040224 指導(dǎo)教師 日期 2010年12月 30設(shè)計任務(wù)書設(shè)計題目:十字路口智能交通燈設(shè)計要求:1.在十字路口的兩個方向上各設(shè)一組紅綠黃燈,顯示順序為: 其中一個方向是綠燈、黃燈、紅燈,另一個方向是紅燈、綠燈、黃燈。2.設(shè)置一組數(shù)碼管,以倒計時的方式顯示允許通過或禁止通行的時間,其中左轉(zhuǎn)燈、綠燈、黃燈、紅燈的持續(xù)時間分別是15S、30S、3S、48S。3.當(dāng)各條路上常意一條出現(xiàn)特殊情況,例如消防車、救護(hù)車或其他需要優(yōu)先放行的車輛時,各方向上均是紅燈亮,倒計時停止,且顯示數(shù)字在閃爍,當(dāng)特殊運(yùn)行狀態(tài)結(jié)束后,控制器恢復(fù)原來狀態(tài),繼續(xù)正常運(yùn)行。設(shè)計進(jìn)度要求:第一周: 選定設(shè)計題目,查找、搜集相關(guān)資料。第二周:分析設(shè)計原理。第三周:項目硬件設(shè)計。第四周: 項目軟件設(shè)計。第五周: 利用實驗臺進(jìn)行模擬仿真。第六周:整理資料。第七周:撰寫畢業(yè)論文。第八周:畢業(yè)答辯。指導(dǎo)教師(簽名): 摘要近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷深入。在實時檢測和自動控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往作為一個核心部件來使用,僅單片機(jī)方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。交通信號燈控制方式很多。本系統(tǒng)采用MSC-51系列單片機(jī)ATSC51和可編程并行I/O接口芯片8255A為中心器件來設(shè)計交通燈控制器,實現(xiàn)了能根據(jù)實際車流量通過8051芯片的P1口設(shè)置紅、綠燈燃亮?xí)r間的功能;紅綠燈循環(huán)點(diǎn)亮,倒計時剩5秒時黃燈閃爍警示(交通燈信號通過PA口輸出,顯示時間直接通過8255的PC口輸出至雙位數(shù)碼管);車輛闖紅燈報警;綠燈時間可檢測車流量并可通過雙位數(shù)碼管顯示。本系統(tǒng)實用性強(qiáng)、操作簡單、擴(kuò)展功能強(qiáng)。 本設(shè)計是在熟練掌握單片機(jī)及其仿真系統(tǒng)使用方法基礎(chǔ)上,綜合應(yīng)用單片機(jī)原理、微機(jī)原理等課程方面的知識,設(shè)計一個采用89S51單片機(jī)控制的交通燈控制電路。該設(shè)計結(jié)合實際情況給出了一種簡單低成本城市交通燈控制系統(tǒng)的硬件及軟件設(shè)計方案、各個路口交通燈的狀態(tài)循環(huán)顯示,并對程序流程圖進(jìn)行詳細(xì)講解分析。硬件的設(shè)計采用89S51單片機(jī)為核心器件。并輔助復(fù)位電路,驅(qū)動電路,數(shù)碼管及晶體管顯示部分。通過中斷擴(kuò)展實現(xiàn)交通燈系統(tǒng)特殊情況的轉(zhuǎn)換。利用74LS244作為斷碼驅(qū)動器,74LS07作為位碼驅(qū)動,LED七斷數(shù)碼管作為計時顯示用,用發(fā)光二極管指示交通的通行,用按鍵進(jìn)行緊急事件的發(fā)生,使兩個方向都亮紅燈,綠燈亮通行,紅燈亮停止通行。本設(shè)計利用定時器進(jìn)行定時,使定時器工作于方式一定時50ms,配合軟件計數(shù)器,調(diào)用中斷程序使定時器定時20次,達(dá)到定時1S的目的,同時調(diào)用顯示程序,顯示倒計時的時間,用單片機(jī)Intel89S51作為核心部件,8路74ls244總線驅(qū)動器作為字形驅(qū)動芯片和6路驅(qū)動74ls07位選碼作為中心器件來設(shè)計交通燈控制器,實現(xiàn)了交通燈的控制,顯示時間直接通過89S51的P0、P1口輸出;交通燈信號通過P3口輸出;按件通過p3口輸入,本交通燈系統(tǒng)簡單,實用性強(qiáng),成本低,使用維護(hù)方便,軟件功能強(qiáng),運(yùn)行穩(wěn)定可靠等優(yōu)點(diǎn)。關(guān)鍵詞:單片機(jī),交通燈,位碼,段碼,顯示目 錄摘要II1 單片機(jī)的發(fā)展及應(yīng)用11.1 單片機(jī)的發(fā)展11.2 單片機(jī)的應(yīng)用12 芯片簡介32.1 MSC-51芯片簡介32.2 8255芯片簡介62.3 74LS373簡介73 系統(tǒng)硬件設(shè)計93.1交通管理的方案論證93.2系統(tǒng)硬件設(shè)計93.3 系統(tǒng)總框圖103.4交通燈硬件線路圖103.5 系統(tǒng)工作原理114 控制器的軟件設(shè)計134.1 每秒鐘的設(shè)定134.2 計數(shù)器初值計算134.3 計算公式134.4 秒的方法134.5相應(yīng)程序代碼144.6 軟件延時144.7 8051并行口的擴(kuò)展154.8顯示原理164.9 8255輸出信號與數(shù)碼管的連接164.10 8255與8051的連接175 程序設(shè)計185.1流程圖如圖5.1所示185.2 程序源代碼196 系統(tǒng)調(diào)試26結(jié) 論27致 謝28參考文獻(xiàn)291 單片機(jī)的發(fā)展及應(yīng)用1.1 單片機(jī)的發(fā)展單片微型計算機(jī)是微型計算機(jī)的一個重要分支,也是一種非常活躍和頗具有生命力的機(jī)種。單片微型計算機(jī)簡稱單片機(jī),特別適用于工業(yè)控制領(lǐng)域,因此又稱為微控器。1971年微處理器研制成功不久,就出現(xiàn)了單片微型計算機(jī)即單片機(jī),但最早的單片機(jī)是1位的,處理能力有限。單片機(jī)的發(fā)展分為4個階段:第一階段(197476年):單片機(jī)初級階段。因為受工藝限制,單片機(jī)采用單片的形式而且功能比較簡單。例如美國仙童公司生產(chǎn)的F8單片機(jī),實際上只包括了8位CPU,64個字節(jié)的RAM和2個并行接口第二階段(197678年):低性能單片機(jī)階段。以Intel公司生產(chǎn)的MCS48系列單片機(jī)為代表,該系列單片機(jī)片內(nèi)集成有8位CPU,8位定時器/計數(shù)器,并行I/O接口,RAM和ROM等,但是最大的缺點(diǎn)就是無串行接口,中斷處理比較簡單而且片內(nèi)RAM和ROM容量較小,且尋址范圍不大于4KB。第三階段(197883)高性能單片階段這個階段推出的單片機(jī)普遍帶有串行接口。多級中斷系統(tǒng),16位定時器/計數(shù)器,片內(nèi)ROM,RAM容量加大,且尋址范圍可達(dá)64KB,有的片內(nèi)還帶有A/D轉(zhuǎn)換器。第四階段(1983年至今)8位單片機(jī)鞏固發(fā)展以及16位單片機(jī),32 位單片機(jī)推出階段。此階段的主要特征是:一方面發(fā)展16位單片機(jī),32位單片機(jī)及專用型單片機(jī);另一方面不斷完善高檔8位單片機(jī),改善其結(jié)構(gòu),增加片內(nèi)器件,以滿足不同的客戶要求。1.2 單片機(jī)的應(yīng)用單片機(jī)的應(yīng)用很廣,分別在以下領(lǐng)域中得到了廣泛的應(yīng)用。工業(yè)自動化:在自動化技術(shù)中,無論是過程控制技術(shù)、數(shù)據(jù)采集技術(shù)還是測控技術(shù),都離不開單片機(jī)。在工業(yè)自動化的領(lǐng)域中,機(jī)電一體化技術(shù)將發(fā)揮愈來愈重要的作用,在這種機(jī)械、微電子和計算機(jī)技術(shù)為一體的綜合技術(shù)(例如機(jī)器人技術(shù)、數(shù)控技術(shù))中,單片機(jī)將發(fā)揮非常重要的作用特別是近些年來,隨著計算機(jī)技術(shù)的發(fā)展,工業(yè)自動化也發(fā)展到了一個新的高度,出現(xiàn)了無人工廠、機(jī)器人作業(yè)、網(wǎng)絡(luò)化工廠等,不僅將人從繁重、重復(fù)和危險的工業(yè)現(xiàn)場解放出來,還大大提高了生產(chǎn)效率,降低了生產(chǎn)成本。儀器儀表:目前對儀器儀表的自動化和智能化要求越來越高。在自動化測量儀器中,單片機(jī)應(yīng)用十分普及。單片機(jī)的使用有助于提高儀器儀表的精度和準(zhǔn)確度,簡化結(jié)構(gòu),減小體積,易于攜帶和使用,加速儀器儀表向數(shù)字化、智能化和多功能化方向發(fā)展。消費(fèi)類電子產(chǎn)品:該應(yīng)用主要反映在家電領(lǐng)域。目前家電產(chǎn)品的一個重要發(fā)展趨勢是不斷提高其智能化程度。例如,電子游戲、照相機(jī)、洗衣機(jī)、電冰箱、空調(diào)、電視機(jī)、微波爐、手機(jī)、IC卡、汽車電子設(shè)備等。在這些設(shè)備中使用了單片機(jī)后,其功能和性能大大提高,并實現(xiàn)了智能化、最優(yōu)化控制信方面:較高檔的單片機(jī)都具有通信接口,因而為單片機(jī)在通信設(shè)備中的應(yīng)用創(chuàng)造了很好的條件。例如,在微波通信、短波通信、載波通信、光纖通信、程控交換等通信設(shè)備和儀器中都能找到單片機(jī)的應(yīng)用。武器裝備:在現(xiàn)代化的武器裝備中, 如飛機(jī)、軍艦、坦克、導(dǎo)單、魚雷制導(dǎo)、智能武器設(shè)備、航天飛機(jī)導(dǎo)航系統(tǒng),都有單片機(jī)在其中發(fā)揮重要作用。終端及外部設(shè)備控制:計算機(jī)網(wǎng)絡(luò)終端設(shè)備,如銀行終端,以及計算機(jī)外部設(shè)備如打印機(jī)、硬盤驅(qū)動器、繪圖機(jī)、傳真機(jī)、復(fù)印機(jī)等,在這些設(shè)備中都使用了單片機(jī)。近年來隨著科技的飛速發(fā)展,同時帶動自動控制系統(tǒng)日新月異更新,單片機(jī)的應(yīng)用正在不斷地走向深入。2 芯片簡介2.1 MSC-51芯片簡介MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)8051是MCS-51系列單片機(jī)的典型產(chǎn)品,我們以這一代表性的機(jī)型進(jìn)行系統(tǒng)的講解。8051單片機(jī)包含中央處理器、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時/計數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以說明:1、中央處理器:中央處理器(CPU)是整個單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn)算和控制輸入輸出功能等操作。2、數(shù)據(jù)存儲器(RAM)8051內(nèi)部有128個8位用戶數(shù)據(jù)存儲單元和128個專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個,可存放讀寫的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶定義的字型表。圖2.1 8051結(jié)構(gòu)圖3、程序存儲器(ROM):8051共有4096個8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。4、定時/計數(shù)器(ROM):8051有兩個16位的可編程定時/計數(shù)器,以實現(xiàn)定時或計數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。5、并行輸入輸出(I/O)口:8051共有4組8位I/O口(P0、 P1、P2或P3),用于對外部數(shù)據(jù)的傳輸。6、全雙工串行口:8051內(nèi)置一個全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。7、中斷系統(tǒng)8051具備較完善的中斷功能,有兩個外中斷、兩個定時/計數(shù)器中斷和一個串行中斷,可滿足不同的控制要求,并具有2級的優(yōu)先級別選擇。8、時鐘電路8051內(nèi)置最高頻率達(dá)12MHz的時鐘電路,用于產(chǎn)生整個單片機(jī)運(yùn)行的脈沖時序,但8051單片機(jī)需外置振蕩電容。MCS-51系列單片機(jī)的內(nèi)部結(jié)構(gòu)如圖2.2所示。圖2.2 MCS-51內(nèi)部結(jié)構(gòu)示意圖 MCS-51的引腳說明:MCS-51系列單片機(jī)中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對這些引腳的功能加以說明:如圖2.3所示:圖2.3 管腳排列Pin9:RESET/Vpd復(fù)位信號復(fù)用腳,當(dāng)8051通電,時鐘電路開始工作,在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),8051的初始態(tài)。8051的復(fù)位方式可以是自動復(fù)位,也可以是手動復(fù)位,見下圖2.4。此外,RESET/Vpd還是一復(fù)用腳,Vcc掉電其間,此腳可接上備用電源,以保證單片機(jī)內(nèi)部RAM的數(shù)據(jù)不丟失。圖2.4 8051的復(fù)位方式Pin30:ALE/當(dāng)訪問外部程序器時,ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問內(nèi)部程序存儲器時,ALE端將有一個1/6時鐘頻率的正脈沖信號,這個信號可以用于識別單片機(jī)是否工作,也可以當(dāng)作一個時鐘向外輸出。更有一個特點(diǎn),當(dāng)訪問外部程序存儲器,ALE會跳過一個脈沖。如果單片機(jī)是EPROM,在編程其間,將用于輸入編程脈沖。Pin29:當(dāng)訪問外部程序存儲器時,此腳輸出負(fù)脈沖選通信號,PC的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行。Pin31:EA/Vpp程序存儲器的內(nèi)外部選通線,8051和8751單片機(jī),內(nèi)置有4kB的程序存儲器,當(dāng)EA為高電平并且程序地址小于4kB時,讀取內(nèi)部程序存儲器指令數(shù)據(jù),而超過4kB地址則讀取外部指令數(shù)據(jù)。如EA為低電平,則不管地址大小,一律讀取外部程序存儲器指令。顯然,對內(nèi)部無程序存儲器的8031,EA端必須接地。在編程時,EA/Vpp腳還需加上21V的編程電壓。2.2 8255芯片簡介8255可編程并行接口芯片簡介:8255可編程并行接口芯片有三個輸入輸出端口,即A口、B口和C口,對應(yīng)于引腳PA7PA0、PB7PB0和PC7PC0。其內(nèi)部還有一個控制寄存器,即控制口。通常A口、B口作為輸入輸出的數(shù)據(jù)端口。C口作為控制或狀態(tài)信息的端口,它在方式字的控制下,可以分成4位的端口,每個端口包含一個4位鎖存器。它們分別與端口A配合使用,可以用作控制信號輸出或作為狀態(tài)信號輸入。8255可編程并行接口芯片方式控制字格式說明:8255有兩種控制命令字;一個是方式選擇控制字;另一個是C口按位置位復(fù)位控制字。其中C口按位置位復(fù)位控制字方式使用較為繁難,說明也較冗長,故在此不作敘述,需要時用戶可自行查找有關(guān)資料。方式控制字格式說明:D7:設(shè)定工作方式標(biāo)志,1有效。D6、D5:A口方式選擇 0 0 方式0 0 1 方式1 1 方式2 D4:A口功能 (1=輸入,0=輸出) D3:C口高4位功能 (1=輸入,0=輸出) D2:B口方式選擇 (0=方式0,1=方式1) D1:B口功能 (1=輸入,0=輸出)D0:C口低4位功能 (1=輸入,0=輸出)8255可編程并行接口芯片工作方式說明:方式0:基本輸入輸出方式。適用于三個端口中的任何一個。每一個端口都可以用作輸入或輸出。輸出可被鎖存,輸入不能鎖存。方式1:選通輸入輸出方式。這時A口或B口的8位外設(shè)線用作輸入或輸出,C口的4條線中三條用作數(shù)據(jù)傳輸?shù)穆?lián)絡(luò)信號和中斷請求信號。方式2 :雙向總線方式。只有A口具備雙向總線方式,8位外設(shè)線用作輸入或輸出,此時C口的5條線用作通訊聯(lián)絡(luò)信號和中斷請求信號。2.3 74LS373簡介74LS373 是一種帶三態(tài)門的8D鎖存器,其管腳如圖2.5所示:圖2.5 74LS373管腳排列其中:1D-8D為8個輸入端。 1Q-8Q為8個輸出端。 LE為數(shù)據(jù)打入端:當(dāng)LE為“1”時,鎖存器輸出 狀態(tài)同輸入狀態(tài);當(dāng)LE由“1”變“0”時,數(shù)據(jù) 打入鎖存器 OE為輸出允許端:當(dāng)OE=0時,三態(tài)門打開; 當(dāng)OE=1時,三態(tài)門關(guān)閉,輸出高阻。3 系統(tǒng)硬件設(shè)計3.1交通管理的方案論證東西、南北兩干道交于一個十字路口,各干道有一組紅、黃、綠三色的指示燈,指揮車輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行。黃燈亮提示人們注意紅、綠燈的狀態(tài)即將切換,且黃燈燃亮?xí)r間為東西、南北兩干道的公共停車時間。設(shè)東西道比南北道的車流量大,指示燈燃亮的方案如表3.1所示。表3.1指示燈燃亮方案60S5S80S5S東西道紅燈亮黃燈亮綠燈亮黃燈亮南北道綠燈亮黃燈亮紅燈亮黃燈亮表格說明: (1)當(dāng)東西方向為紅燈,此道車輛禁止通行,東西道行人可通過;南北道為綠燈,此道車輛通過,行人禁止通行。時間為60秒。(2)黃燈閃爍5秒,警示車輛和行人紅、綠燈的狀態(tài)即將切換。 (3)當(dāng)東西方向為綠燈,此道車輛通行;南北方向為紅燈,南北道車輛禁止通過,行人通行。時間為80秒。 東西方向車流大 通行時間長。(4)這樣如上表的時間和紅、綠、黃出現(xiàn)的順序依次出現(xiàn)這樣行人和車輛就能安全暢通的通行。(5)此表可根據(jù)車流量動態(tài)設(shè)定紅綠燈初始值。3.2系統(tǒng)硬件設(shè)計選用設(shè)備8031單片機(jī)一片選用設(shè)備:8031彈片機(jī)一片,8255并行通用接口芯片一片,74LS07兩片,MAX692看門狗一片,共陰極的七段數(shù)碼管兩個雙向晶閘管若干,7805三端穩(wěn)壓電源一個,紅、黃、綠交通燈各兩個,開關(guān)鍵盤、連線若干。3.3 系統(tǒng)總框圖框圖如圖3.2所示:圖3.2 系統(tǒng)總框圖3.4交通燈硬件線路圖 圖3.3 交通燈硬件線路圖3.5 系統(tǒng)工作原理1、開關(guān)鍵盤輸入交通燈初始時間,通過8051單片機(jī)P1輸入到系統(tǒng)2、由8051單片機(jī)的定時器每秒鐘通過P0口向8255的數(shù)據(jù)口送信息,由8255的PA 口顯示紅、綠、黃燈的燃亮情況;由8255的PC口顯示每個燈的燃亮?xí)r間。3、8051通過 設(shè)置 各個信號等的燃亮?xí)r間、通過8031設(shè)置,綠、紅時間分別為60秒、80秒循環(huán)由8051的 P0口向8255的數(shù)據(jù)口輸出。4、通過8051單片機(jī)的P3.0位來控制系統(tǒng)是工作或設(shè)置初值,當(dāng).牌位0就對系統(tǒng)進(jìn)行初始化,為1系統(tǒng)就開始工作。5、紅燈倒計時時間,當(dāng)有車輛闖紅燈時,啟動蜂鳴器進(jìn)行報警,3S后然后恢復(fù)正常。6、增加每次綠燈時間車流量檢測的功能,并且通過查詢P2.0端口的電平是否為低,開關(guān)按下為低電平,雙位數(shù)碼管顯示車流量,直到下一次綠燈時間重新記入。7、綠燈時間倒計時完畢,重新循環(huán)。4 控制器的軟件設(shè)計4.1 每秒鐘的設(shè)定 延時方法可以有兩種一中是利用MCS-51內(nèi)部定時器才生溢出中斷來確定1秒的時間,另一種是采用軟延時的方法。4.2 計數(shù)器初值計算 定時器工作時必須給計數(shù)器送計數(shù)器初值,這個值是送到TH和TL中的。他是以加法記數(shù)的,并能從全1到全0時自動產(chǎn)生溢出中斷請求。因此,我們可以把計數(shù)器記滿為零所需的計數(shù)值設(shè)定為C和計數(shù)初值設(shè)定為TC 可得到如下計算通式: TC=M-C式中,M為計數(shù)器摸值,該值和計數(shù)器工作方式有關(guān)。在方式0時M為213 ;在方式1時M的值為216;在方式2和3為284.3 計算公式 T=(MTC)T計數(shù) 或T計數(shù)T計數(shù)是單片機(jī)時鐘周期的倍;為定時初值如單片機(jī)的主脈沖頻率為,經(jīng)過分頻方式213微秒毫秒方式216微秒毫秒顯然秒鐘已經(jīng)超過了計數(shù)器的最大定時間,所以我們只有采用定時器和軟件相結(jié)合的辦法才能解決這個問題4.4 秒的方法我們采用在主程序中設(shè)定一個初值為的軟件計數(shù)器和使定時毫秒這樣每當(dāng)?shù)胶撩霑r就響應(yīng)它的溢出中斷請求,進(jìn)入他的中斷服務(wù)子程序。在中斷服務(wù)子程序中,先使軟件計數(shù)器減,然后判斷它是否為零。為零表示秒已到可以返回到輸出時間顯示程序。4.5相應(yīng)程序代碼()主程序定時器需定時毫秒,故工作于方式。初值: T計數(shù)ms/1us=15536=3CBOH ORG 1000H START: MOV TMOD, #01H ; 令為定時器方式 MOV TH0, #3CH ;裝入定時器初值 MOV TL0, #BOH; MOV IE,#82H ;開中斷 SEBT TO;啟動計數(shù)器 MOV RO,#14H;軟件計數(shù)器賦初值LOOP:SJMP $;等待中斷()中斷服務(wù)子程序 :DJNZ ,AJMP TIME ; 跳轉(zhuǎn)到時間及信號燈顯示子程序 DJNZ:,;恢復(fù)值 MOV TH0, #3CH ;重裝入定時器初值 MOV TL0, #BOH; MOV IE,#82H 4.6 軟件延時 MCS-51的工作頻率為2-12MHZ,我們選用的8031單片機(jī)的工作頻率為6MHZ。機(jī)器周期與主頻有關(guān),機(jī)器周期是主頻的12倍,所以一個機(jī)器周期的時間為12*(1/6M)=2us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定1秒的時間。 具體的延時程序分析: DELAY:MOV R4,#08H 延時1秒子程序 DE2:LCALL DELAY1 DJNZ R4,DE2 RETDELAY1:MOV R6,#0 延時125ms 子程序 MOV R5,#0DE1: DJNZ R5,$ DJNZ R6,DE1 RET MOV RN,#DATA 字節(jié)數(shù)數(shù)為2 機(jī)器周期數(shù)為1,所以此指令的執(zhí)行時間為2ms ,DELAY1 為一個雙重循壞 循環(huán)次數(shù)為256*256=65536 所以延時時間=65536*2=131072us 約為125us ,DELAY R4設(shè)置的初值為8 主延時程序循環(huán)8次,所以125us*8= 1秒,由于單片機(jī)的運(yùn)行速度很快其他的指令執(zhí)行時間可以忽略不計。4.7 8051并行口的擴(kuò)展8051雖然有4個8位I/O端口,但真正能提供借用的只有P1口,因為P2和P0口通常用于傳送外部傳送地址和數(shù)據(jù),P3口也有它的第二功能。因此,8031通常需要擴(kuò)展。由于我們用外部輸入設(shè)定紅綠燈倒計時初值、數(shù)碼管的輸出顯示、紅綠黃信號燈的顯示都要用到一個I/O端口,顯然8031的端口是不夠,需要擴(kuò)展。擴(kuò)展的方法有兩種:(1)借用外部RAM地址來擴(kuò)展I/O端口;(2)采用I/O接口新片來擴(kuò)充。我們用8255并行接口信片來擴(kuò)展I/O端口。4.8顯示原理當(dāng)定時器定時為1秒,時程序跳轉(zhuǎn)到時間顯示及信號燈顯示子程序,它將依次顯示信號燈時間 ,同時一直顯示信號燈的顏色,這時在返回定時子程序定時一秒,在顯示黃燈的下一個時間,這樣依次把所有的燈色的時間顯示完后在重新給時間計數(shù)器賦初值 ,重新進(jìn)入循環(huán)。 由于發(fā)光二極管為共陽極接法,輸出端口為低電平,對應(yīng)的二極管發(fā)光,所以可以用置位方法點(diǎn)亮紅,綠,黃發(fā)光二極管。4.9 8255輸出信號與數(shù)碼管的連接LED 燈的顯示原理:通過同名管腳上所加電平的高低來控制發(fā)光二極管是否點(diǎn)量而顯示不同的字形如 SP,g,f,e,d,c,b,a 管角上加上所以上為伏,不亮其余為高電平,全亮則顯示為采用共陰級連接:其中 PC0PB0-a,PC1PB1-b, PC2PB2-c,PC3PB3-d,PC4PB4-e, PC5PB5-f,PC6PB6-gPC7PB7 -SP接地表 4.1驅(qū)動代碼表顯示數(shù)值dop g f e d c b a驅(qū)動代碼(16進(jìn)制)00 0 1 1 1 1 1 13FH10 0 0 0 0 1 1 006H20 1 0 1 1 0 1 15BH30 1 0 0 1 1 1 14FH40 1 1 0 0 1 1 066H50 1 1 0 1 1 0 06DH60 1 1 1 1 1 0 07DH70 0 0 0 0 1 1 107H80 1 1 1 1 1 1 17FH4.10 8255與8051的連接用8051的P0 口的 p0.7 連接8255的片選信號cs 我們用8031的地址采用全譯碼方式,當(dāng)p0.7 =0 時片選有效, 其他無效, p0.1 p0.1 用于選擇8255端口 P0.7 p0.6 p0.5 p0.4 p0.3 p0.2 P0.1 P0.0A7 A6 A5 A4 A3 A2 A1 A01 X X X X X 0 0 00H為8255 的PA口1 X X X X X 0 1 01H 為8255的PB口1 X X X X X 1 0 02H 為8255的PC口1 X X X X X 1 1 03H 為8255的控制口由于8051是分時對8255和儲存器進(jìn)行訪問所以8051的P0口不會發(fā)生沖突。5 程序設(shè)計5.1流程圖如圖5.1所示圖5.1程序流程圖5.2 程序源代碼 ORG 0000H ;主程序的入口地址 LJMP MAIN ;跳轉(zhuǎn)到主程序的開始處 ORG 0003H ;外部中斷0的中斷程序入口地址 ORG 000BH ;定時器0的中斷程序入口地址 LJMP T0_INT ;跳轉(zhuǎn)到中斷服務(wù)程序處 ORG 0013H ;外部中斷1的中斷程序入口地址 MAIN : MOV SP,#50HMOV IE,#8EH ;CPU開中斷,允許T0中斷,T1中斷和外部中斷1中斷MOV TMOD,#51H ;設(shè)置T1為計數(shù)方式,T0為定時方式,且都工作于模式1 MOV TH1,#00H ;T1計數(shù)器清零 MOV TL1,#00H SETB TR1 ;啟動T1計時器 SETB EX1 ;允許INT1中斷 SETB IT1 ;選擇邊沿觸發(fā)方式 MOV DPTR ,#0003H MOV A, #80H ;給8255賦初值,8255工作于方式0 MOVX DPTR, AAGAIN: JB P3.1,N0 ;判斷是否要設(shè)定東西方向紅綠燈時間的初值,若P3.1為1 則跳轉(zhuǎn) MOV A,P1 JB P1.7,RED ;判斷P1.7是否為1,若為1則設(shè)定紅燈時間,否則設(shè)定綠燈時間 MOV R0,#00H ;R0清零 MOV R0,A ;存入東西方向綠燈初始時間 MOV R3,A LCALL DISP1 LCALL DELAY AJMP AGAINRED: MOV A,P1 ANL A,#7FH ;P1.7置0 MOV R7,#00H ;R7清零 MOV R7,A ;存入東西方向紅燈初始時間 MOV R3,A LCALL DISP1 LCALL DELAY AJMP AGAIN;-N0: SETB TR0 ;啟動T0計時器 MOV 76H,R7 ;紅燈時間存入76HN00: MOV A,76H ;東西方向禁止,南北方向通行 MOV R3,A MOV DPTR,#0000H ;置8255A口,東西方向紅燈亮,南北方向綠燈亮 MOV A,#0DDH MOVX DPTR, AN01: JB P2.0,B0N02: SETB P3.0 CJNE R3,#00H,N01 ;比較R3中的值是否為0,不為0轉(zhuǎn)到當(dāng)前指令處執(zhí)行;-黃燈閃爍5秒程序-N1: SETB P3.0 MOV R3,#05H MOV DPTR,#0000H ;置8255A口,東西,南北方向黃燈亮 MOV A,#0D4H MOVX DPTR,AN11: MOV R4,#00HN12: CJNE R4,#7DH,$ ;黃燈持續(xù)亮0.5秒N13: MOV DPTR,#0000H ; 置8255A口,南北方向黃燈滅 MOV A,#0DDH MOVX DPTR,AN14: MOV R4,#00H CJNE R4,#7DH,$ ;黃燈持續(xù)滅0.5秒 CJNE R3,#00H,N1 ;閃爍時間達(dá)5秒則退出;-N2: MOV R7,#00H MOV A,R0 ;東西通行,南北禁止 MOV R3,A MOV DPTR,#0000H ; 置8255A口,東西方向綠燈亮,南北方向紅燈亮 MOV A,#0EBH MOVX DPTR,AN21: JB P2.0,T03 N22: CJNE R3,#00H,N21;-黃燈閃爍5秒程序-N3: MOV R3,#05H MOV DPTR,#0000H ;置8255A口,東西,南北方向黃燈亮 MOV A,#0E2H MOVX DPTR,AN31: MOV R4,#00H CJNE R4,#7DH,$ ;黃燈持續(xù)亮0.5秒N32: MOV DPTR,#0000H ; 置8255A口,南北方向黃燈滅 MOV A,#0EBH MOVX DPTR,AN33: MOV R4,#00H CJNE R4,#7DH,$ ;黃燈持續(xù)滅0.5秒 CJNE R3,#00H,N3 ;閃爍時間達(dá)5秒則退出 SJMP N00;-闖紅燈報警程序-B0: MOV R2,#03H ;報警持續(xù)時間3秒B01: MOV A,R3 JZ N1 ;若倒計時完畢,不再報警 CLR P3.0 ;報警 CJNE R2,#00H,B01 ;判斷3秒是否結(jié)束 SJMP N02;-1秒延時子程序-N7: RETIT0_INT:MOV TL0,#9AH ;給定時器T0送定時10ms的初值 MOV TH0,#0F1H INC R4 INC R5 CJNE R5,#0FAH,T01 ;判斷延時是否夠一秒,不夠則調(diào)用顯示子程序 MOV R5,#00H ;R5清零 DEC R3 ;倒計時初值減一 DEC R2 ;報警初值減一T01: ACALL DISP ;調(diào)用顯示子程序 RETI ;中斷返回;-顯示子程序-DISP: JNB P2.4,T02DISP1: MOV B,#0AH MOV A,R3 ;R3中值二轉(zhuǎn)十顯示轉(zhuǎn)換 DIV AB MOV 79H,A MOV 7AH,BDIS: MOV A,79H ;顯示十位 MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#0002H MOVX DPTR,A MOV DPTR,#0001H MOV A,#0F7H MOVX DPTR,A LCALL DELAYDS2: MOV A,7AH ;顯示個位 MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#0002H MOVX DPTR,A MOV DPTR,#0001H MOV A,#0FBH MOVX DPTR,A RET;-東西方向車流量檢測程序-T03: MOV A,R3 SUBB A,#00H ;若綠燈倒計時完畢,不再檢測車流量 JZ N3 JB P2.0,T03 INC R7 CJNE R7,#64H,E1 MOV R7,#00H ;中斷到100次則清零E1: SJMP N22;-東西方向車流量顯示程序-T02: MOV B,#0AHMOV A,R7 ;R7中值二轉(zhuǎn)十顯示轉(zhuǎn)換 DIV AB MOV 79H,A MOV 7AH,BDIS3: MOV A,79H ;顯示十位 MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#0002H MOVX DPTR,A MOV DPTR,#0001H MOV A,#0F7H MOVX DPTR,A LCALL DELAYDS4: MOV A,7AH ;顯示個位 MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#0002H MOVX DPTR,A MOV DPTR,#0001H MOV A,#0FBH MOVX DPTR,A LJMP N7;-延時4MS子程序-DELAY: MOV R1,#0AHLOOP: MOV R6,#64H NOPLOOP1: DJNZ R6,LOOP1 DJNZ R1,LOOP RET ;-字符表-TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END6 系統(tǒng)調(diào)試完成了硬件的設(shè)計、制作和軟件編程之后,要使系統(tǒng)能夠按設(shè)計意圖正常運(yùn)行,必須進(jìn)行系統(tǒng)調(diào)試。系統(tǒng)調(diào)試包括硬件調(diào)試和軟件調(diào)試兩個部分。不過,作為一個單片機(jī)系統(tǒng),其運(yùn)行是軟硬件相結(jié)合的,因此,軟硬件的調(diào)試也是絕對不可能分開的。程序的調(diào)式應(yīng)一個模塊一個模塊地進(jìn)行,單獨(dú)調(diào)試各功能子程序,檢驗程序是否能夠?qū)崿F(xiàn)預(yù)期的功能,接口電路的控制是否正常等;最后逐步將各個子程序連接起來總調(diào)。聯(lián)調(diào)需要注意的是,各程序模塊間能否正確傳遞參數(shù),特別要注意各子程序的現(xiàn)場保護(hù)與恢復(fù)。調(diào)試的基本步驟如下:將所要調(diào)試的程序輸入道偉福6000中,然后進(jìn)行編譯,根據(jù)系統(tǒng)的提示查找原因?qū)⒊鲥e的地方調(diào)整正確,例如:有的時標(biāo)號未定義,有的時少標(biāo)點(diǎn)符號等。最后以ASM擴(kuò)展名保存。將在偉福中調(diào)試好的程序方入keil內(nèi),將單片機(jī)實驗相與計算機(jī)連接,然后在keil中進(jìn)行編譯程序,運(yùn)行程序,根據(jù)單片機(jī)所顯示的結(jié)果分析程序,修改程序直到程序正常。在調(diào)試過程中出現(xiàn)的問題:(1)指示燈顯示不正常,經(jīng)分析原因在與燈的表格列的不對,指示燈輸出低電瓶時亮,結(jié)果程序中都是以高電瓶輸出,經(jīng)修改后正常(2)數(shù)碼管從15到計時,當(dāng)減到11時直接變成了9,而沒有經(jīng)過10,經(jīng)過對整個程序的分析也沒能夠找到問題,后經(jīng)老師的講解分析最后發(fā)現(xiàn)是程序設(shè)計的錯誤,在計時時間到時,必須先判斷個位是否為0,如果個位是0,判斷十位是不是0,如果十位也是0,判斷交通燈是否安黃、綠、紅的順序循環(huán)完必,如果沒循環(huán)完應(yīng)查下一組數(shù)據(jù)繼續(xù)循環(huán),如果循環(huán)完必,應(yīng)查表首地址,

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論