定時交通燈控制設(shè)計_第1頁
定時交通燈控制設(shè)計_第2頁
定時交通燈控制設(shè)計_第3頁
定時交通燈控制設(shè)計_第4頁
定時交通燈控制設(shè)計_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 單片機課程設(shè)計 題目:定時交通信號燈控制設(shè)計姓 名:張翠 學 號:20111310030103 專 業(yè):交通設(shè)備信息工程2011-1 小組成員: 張翠、翁瑜婕 指導(dǎo)老師:盧毓俊 2014年1月任 務(wù) 書(一) 課題:定時交通信號燈控制系統(tǒng)設(shè)計在雙干線路口上,交通信號燈的變化是定時的。假定: 1.放行線,綠燈亮放行25s,黃燈警告5s,然后紅燈亮禁止通行。 2.禁止線,紅燈亮禁止30s,然后綠燈亮放行。使兩條路線交替的成為放行線和禁止線,就可以實現(xiàn)定時交通控制。(二) 基本要求: 1.根據(jù)課題的要求規(guī)劃硬件和接線,畫出系統(tǒng)的硬件結(jié)構(gòu)圖。 2.編寫系統(tǒng)的用戶程序,譯成機器碼并在試驗儀上調(diào)試。 3

2、.完成課程設(shè)計報告。(三) 課程設(shè)計報告寫作要求 1.課程設(shè)計報告有封面、設(shè)計任務(wù)書、目錄、摘要、正文、參考文獻、附錄等部分組成。 2.封面可自行設(shè)計,應(yīng)包含課程設(shè)計名稱及設(shè)計題目、專業(yè)、班級、姓名、指導(dǎo)教師、設(shè)計日期等內(nèi)容。 3.正文是設(shè)計報告的核心部分。應(yīng)包含以下內(nèi)容:概述所做課題的意義、本人所做的工作及系統(tǒng)的主要功能;硬件電路設(shè)計及描述;軟件設(shè)計流程圖及描述;源程序代碼(要有注釋);體會和建議等。一 摘 要本設(shè)計是針對交通燈系統(tǒng)的設(shè)計,由單片機AT89C51、鍵盤、LED顯示、交通燈演示系統(tǒng)組成。單片機是把微型計算機的各功能部件集成在一塊芯片中,構(gòu)成的一個完整的微型計算機。89C51單片

3、機是MC-51中的子系列,是一組高性能兼容型單片機,AT89C51是一個低功耗高性能的CMOS 8位單片機,40個引腳,片內(nèi)含4KB Flash ROM和128B RAM,它是一個全雙工的串行通行口,既可以用常規(guī)編程,又可以在線編程。本設(shè)計中的數(shù)碼管的選通采用的方法是動態(tài)顯示,對每一位數(shù)碼分時輪流通電顯示,復(fù)位電路采用上電+按鈕電平復(fù)位,時鐘電路采用內(nèi)部時鐘脈沖產(chǎn)生方式。對特殊情況的處理采用中斷處理方式,在中斷處理程序中采用對管腳的狀態(tài)查詢掃描,已采取相應(yīng)情況的處理。對設(shè)計方案進行電路硬件設(shè)計,并將已編程的程序載入調(diào)試,可以得到理想的實驗效果。 系統(tǒng)包括人行道、左轉(zhuǎn)、右轉(zhuǎn)、以及基本的交通燈的功

4、能.具體功能是假如 A 道和B道上均有車輛要求通過時,A、B道輪流放行。A道放行 綠燈亮25秒,接著黃燈閃爍5秒,B道在該過程中亮紅燈30秒;同理交換為B道放行綠燈亮25秒,接著黃燈閃爍5秒,A道在該過程中亮紅燈30秒。 一道有車而另一道無車,交通燈控制系統(tǒng)能立即讓有車道放行。關(guān)鍵字:單片機AT89C51 交通信號燈控制 時間I目 錄一設(shè)計思路11.1引言11.2方案比較21.3硬件電路設(shè)計2 a)復(fù)位部分3 b)時鐘電路部分3 c)路口指示燈部分4 d)顯示部分41.4程序設(shè)計5 1.4.1程序流程圖5 1.4.2交通燈狀態(tài)圖6 1.4.3程序清單6二調(diào)試7三檢測評價8四心得體會9五元件清單

5、9六附錄9I定時交通燈信號控制設(shè)計編寫人:交通設(shè)備信息工程2011-1 張翠1 . 設(shè)計思路 個人摘要:根據(jù)AT89C51單片機的特點及交通燈在實際控制中的特點,本文提出一種用單片機自動控制交通燈及時間顯示的方法。同時給出了軟硬件設(shè)計方法,設(shè)計過程包括硬件電路設(shè)計和程序設(shè)計兩大步驟,對在單片機應(yīng)用中可能遇到的重要技術(shù)問題都有涉足。本文對十字路口狀態(tài)預(yù)設(shè)為兩種,一種是正常狀態(tài),另一種是故障或緊急狀態(tài),并分別用黃、紅、綠色燈的不同組合來表示。本文介紹了控制基本原理以及控制的表現(xiàn),同時也介紹了城市交通信息系統(tǒng)的設(shè)計目標, 開發(fā)途徑及其系統(tǒng)結(jié)構(gòu)與功能和數(shù)據(jù)地理編碼、建庫, 同時, 論述了系統(tǒng)中交通現(xiàn)狀

6、、交通管理、交通規(guī)劃及背景信息查詢模塊的建造及應(yīng)用。介紹了用于城市交叉路口的三色程控交通信號時間顯示器的研制方案,對其電源供電、發(fā)光二極管構(gòu)成的負載結(jié)構(gòu)、燈色時間檢測都給出了精巧合理的優(yōu)化結(jié)構(gòu),大幅度地提高了產(chǎn)品可靠性并降低了制造成本。1.1引言 隨著我國國民經(jīng)濟的快速發(fā)展,我國機動車輛發(fā)展迅速,而城鎮(zhèn)道路建設(shè)由于歷史等各種原因相對滯后,交通擁擠和堵塞現(xiàn)象時常出現(xiàn)。如何利用當今計算機和自動控制技術(shù),有效地疏導(dǎo)交通,提高城鎮(zhèn)交通路口的通行能力,減少交通事故是很值得研究的一個課題。目前,國內(nèi)的交通燈一般設(shè)在十字路口,在醒目位置用紅、綠、黃三種顏色的指示燈加上一個倒計時的顯示器來控制行車。 本設(shè)計是

7、單片機控制的交通燈控制系統(tǒng)設(shè)計隨著社會經(jīng)濟的發(fā)展,城市交通問題越來越引起人們的關(guān)注。人、車、路三者關(guān)系的協(xié)調(diào),已成為交通管理部門需要解決的重要問題之一。城市交通控制系統(tǒng)是用于城市交通數(shù)據(jù)監(jiān)測、交通信號燈控制與交通疏導(dǎo)的計算機綜合管理系統(tǒng),它是現(xiàn)代城市交通監(jiān)控指揮系統(tǒng)中最重要的組成部分。所以,如何采用合適的控制方法,最大限度利用好耗費巨資修建的城市高速道路,緩解主干道與匝道、城區(qū)同周邊地區(qū)的交通擁堵狀況,越來越成為交通運輸管理和城市規(guī)劃部門亟待解決的主要問題。關(guān)鍵詞:單片機、交通燈、控制1.2方案比較與確定 經(jīng)過一定的篩選,最終能有三個方案較為實際。1.2.1 方案一:通過數(shù)字電路達到實驗?zāi)康摹?/p>

8、狀態(tài)控制器主要用于記錄十字路口交通信號燈的工作狀態(tài)通過狀態(tài)譯碼器分別點亮相應(yīng)狀態(tài)的信號燈。秒信號發(fā)生器用以產(chǎn)生整個定時系統(tǒng)的時基脈沖,通過減法計數(shù)器對秒脈沖進行減計數(shù)達到控制每一種工作狀態(tài)的持續(xù)時間。減法計數(shù)器的回零脈沖使狀態(tài)控制器完成狀態(tài)轉(zhuǎn)換同時狀態(tài)譯碼器根據(jù)系統(tǒng)下一個工作狀態(tài)決定計數(shù)器下一此減計數(shù)的初始值。減法計數(shù)器的狀態(tài)由BCD譯碼器譯碼,由數(shù)碼管顯示。在黃燈亮期間,狀態(tài)譯碼器將秒脈沖引入紅燈控制電路使紅燈閃爍。1.2.1方案二:通過單片機達到實驗?zāi)康摹?AT89C51單片機具有定時器/計數(shù)器功能,只要外在接入一個時鐘脈沖,就可以完成紅燈、綠燈、黃燈所需的時間的計時。同時,用AT89C5

9、2芯片的P2口(P2.0P2.5)分別接上兩組六位信號燈。通過中斷程序可以實現(xiàn)紅燈、綠燈、黃燈之間的轉(zhuǎn)換。1.2.2方案三:通過控制電路達到實驗?zāi)康摹?該控制機用于控制十字路的交通信號燈,查個電路采用七塊集成電路,組成程序式的定時電路,自動按三個程序循環(huán)控制東西南北方向的紅、黃、綠信號燈的亮與滅。定時電路器由IC1(555)、R1、C1及四雙開關(guān)向開關(guān)IC6控制的定時電阻RT、RG、RG1、RG2等組成,IC6采用CD4066、RT、RG是秒步進和十秒步進的波段開關(guān),其電阻均為6.2K,最大定時時間為10S。RG1、RG2是秒步進和十秒步進的波段開關(guān),秒步進開關(guān)的電阻為6.2K,十秒步進開關(guān)電

10、阻為6.2K,十秒步進開關(guān)電阻為6.2K,最大可設(shè)置時間為110S,時間長短要預(yù)置,六程序電路IC3采用十進制計數(shù)器/脈沖分配器CD4017,將5腳和復(fù)位端15腳相連,使之成為六進制計數(shù)分配器,加電源后,IC3的Q0-Q5依次,輸出高電平,至第六個定時器脈沖到來時,Q6(5腳)的高電平加至15腳,使IC3復(fù)位,然后又重復(fù)循環(huán),形成六程序控制。閃爍電器電器IC2和R2、R3、C3組成無穩(wěn)態(tài)多諧振蕩器,f=1.44/(R2+2R3)C3,它的輸出經(jīng)選通門IC4加至譯碼和驅(qū)動電路,矩陣電路由D1-D10組成,用來選擇每步程序的交通信號燈,并推動IC3、IC7為專用燈驅(qū)動電路MC1413,可接控制L1

11、-L5的通斷,點亮各色信號燈。綜上所述,單片機具有結(jié)構(gòu)簡單、編程方便、經(jīng)濟、易于連接等優(yōu)點, 特別是其內(nèi)部定時器計數(shù)器、中斷系統(tǒng)資源豐富, 可對交通燈進行精確的控制, 有應(yīng)用價值。本實驗使用單片機實現(xiàn)定時交通信號燈控制。1.3硬件電路設(shè)計1.3.1組成:AT89C51單片機、復(fù)位電路、振蕩電路、LED數(shù)碼管、交通燈。1.3.2各組成部分電路設(shè)計:a)復(fù)位部分復(fù)位電路采用上電+按鈕電平復(fù)位是上電復(fù)位與按鈕復(fù)位的組合,當振蕩頻率是6MHz時,電容C取22uf, R取1K,Rs取200左右。上電瞬間復(fù)位端(RST/Vpd)的電位與Vcc相同,隨著充電電路電流的減少,RST/Vpd的電位下降,最后為0

12、V,當按鈕按下后,電源Vcc通過電阻R,施加在單片機復(fù)位端RST/Vpd上實現(xiàn)復(fù)位,電路連接圖如圖(2): 復(fù)位電路(2)b)時鐘電路部分本系統(tǒng)采用內(nèi)部時鐘產(chǎn)生方式:在和兩端跨接陶瓷諧振器,與內(nèi)部反相器構(gòu)成穩(wěn)定的自激振蕩器采。晶振采用12MHz的振蕩頻率和兩個30Pf瓷片電容C1、C2,兩個電阻對頻率有微調(diào)作用。其電路如圖(3) C)路口指示燈部分采用紅黃綠三種顏色的發(fā)光二極管共12個分為4組代表路口的交通燈(電路圖中用兩組示意).其中每兩組控制一個路口,具體時序如表1:表1:方向燈色東西南北紅燈3030黃燈55綠燈2525d)顯示部分采用兩位一體共陽極數(shù)碼管,分別顯示南北和東西燈的剩余時間.

13、片選部分和數(shù)碼段顯示部分,分別接單片機管腳的P2口和P0口,具體的共陰數(shù)碼管管腳分布位置見圖(4). 1.4程序設(shè)計開始初始化AT89C51東西方向紅燈亮,南北方向綠燈亮,延時南北方向剩余時間1S?東西方向紅燈亮,南北方向黃燈閃亮,延時南北方向剩余時間0S?東西方向綠燈亮,南北方向紅燈亮,延時東西方向剩余時間1S?東西方向黃燈閃亮,南北方向紅燈亮,延時東西方向剩余時間0S?圖(5)主程序流程圖1.4.1流程圖1.4.2交通燈狀態(tài)表:狀態(tài)北西南東綠黃紅綠黃紅綠黃紅綠黃紅0001001001001100110000110020010100010103100001100001401000101000

14、11.4.3程序清單:主程序ORG 0000H MAIN:MOV DPTR,#0FF20H 初始化MOV A,#03H MOVX DPTR,A MOV 2AH,#1FH 設(shè)置時間顯示初始值31s四種狀態(tài)MOV P1,#0CH A線放行B線禁止MOV R7,#19H 延時秒數(shù) 25PRG1: LCALL DELAY1 調(diào)用延時子程序DJNZ R7,PRG1 MOV P1,#0AH A線警告B線禁止MOV R7,#05H 延時秒數(shù)5PRG2: LCALL DELAY1 調(diào)用延時子程序DJNZ R7, PRG2 MOV P1,#21H A線禁行B線放行MOV 2AH,#1FH 設(shè)置時間顯示初值31s

15、MOV R7, #19H 延時秒數(shù) 25PGR3: LCALL DELAY1 調(diào)用延時子程序DJNZ R7,PGR3 MOV P1,#11H A線禁行B線警告MOV R7,#05H 延時秒數(shù)5PGR4: LCALL DELAY1 調(diào)用延時子程序DJNZ R7, PGR4 AJMP MAIN DELAY1延時子程序DELAY1:DEC 2AH MOV A,2AH 顯示秒數(shù)減一MOV B,#0AH 循環(huán)控制子程序LOOP: MOV A,R2 MOV R4,#02H LCALL DISPLAY MOV A,R1 MOV R4,#01H LCALL DISPLAY DJNZ R6,LOOP二調(diào)試硬件調(diào)

16、試是利用開發(fā)系統(tǒng)、基本測試儀器(萬用表、示波器等),檢查用戶系統(tǒng)硬件中存在的故障。硬件調(diào)試可分為靜態(tài)調(diào)試與動態(tài)調(diào)試兩步進行。a)靜態(tài)調(diào)試:靜態(tài)調(diào)試是在用戶系統(tǒng)未工作時的一種硬件檢測。 第一步:目測。檢查外部的各種元件或者是電路是否有斷點。 第二步:用萬用表測試。先用萬用表復(fù)核目測中有疑問的連接點,再檢測各種電源線與地線之間是否有短路現(xiàn)象。 第三步:加電檢測。給板加電,檢測所有的插座或是器件的電源端是否符合要求的值。第四步:是聯(lián)機檢查。因為只有用單片機開發(fā)系統(tǒng)才能完成對用戶系統(tǒng)的調(diào)試。 b)動態(tài)調(diào)試: 動態(tài)調(diào)試是在用戶系統(tǒng)工作的情況下發(fā)現(xiàn)和排除用戶系統(tǒng)硬件中存在的器件內(nèi)部故障、器件連接邏輯錯誤等

17、的一種硬件檢查。動態(tài)調(diào)試的一般方法是由近及遠、由分到合。 由分到合是指首先按邏輯功能將用戶系統(tǒng)硬件電路分為若干塊,當調(diào)試電路時,與該元件無關(guān)的 器件全部從用戶系統(tǒng)中去掉,這樣可以將故障范圍限定在某個局部的電路上。當各塊電路無故障后,將各電路逐塊加入系統(tǒng)中,在對各塊電路功能及各電路間可能存在的相互聯(lián)系進行調(diào)試。由分到合的調(diào)試既告完成。 由近及遠是將信號流經(jīng)的各器件按照距離單片機的邏輯距離進行由近及遠的分層,然后分層調(diào)試。調(diào)試時,仍采用去掉無關(guān)元件的方法,逐層調(diào)試下去,就會定位故障元件了。 軟件調(diào)試是通過對擁護程序的匯編、連接、執(zhí)行來發(fā)現(xiàn)程序中存在的語法錯誤與邏輯錯誤并加以排除糾正的過程。程序后,

18、編輯,查看程序是否有邏輯的錯誤。三檢測評價 經(jīng)過檢測,該程序設(shè)計合理正確,調(diào)試后能夠正常運行,基本能夠?qū)崿F(xiàn)要求。能夠?qū)崿F(xiàn):紅綠燈循環(huán)點亮,倒計時剩5秒時黃燈閃爍警示,然后變?yōu)榧t燈,并且能夠顯示時間。系統(tǒng)穩(wěn)定可靠,易于修改。能夠在現(xiàn)實中起到一定作用。四心得體會 一周的單片機課程設(shè)計很快就結(jié)束了,在課程設(shè)計的這段時間里,我不僅學到了許多新的知識,而且加深了我對以前學習的理論知識的掌握。 以前我們學的東西僅限于課本,對實實在在的應(yīng)用還比較模糊,這次課程設(shè)計有利于同學們學習目的的明確性和主動性。通過這次課程設(shè)計,我們知道了哪些東西是應(yīng)該確實掌握的。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是

19、很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正掌握所學知識。從而提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程中遇到問題,可以說是困難重重,這畢竟第一次嘗試,難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,比如說不懂一些元器件的使用方法,對單片機匯編語言掌握得不好通過這次課程設(shè)計之后,把以前所學過的知識重新溫故。這次課程設(shè)計終于順利完成了,在寫報告時遇到了許多的問題,最后在老師的指導(dǎo)下,正確完成。當然這次課程設(shè)計之中存在了許多的不足,比如我們這次設(shè)計之中東南西北四個

20、方向的倒計時的數(shù)碼管只采用了一個兩位的數(shù)碼管(現(xiàn)實中應(yīng)該是每個方向都有一個倒計時的數(shù)碼管)等等問題。希望在以后的學習和工作中,能得到更多的實踐經(jīng)驗,尤其是鍛煉自我意識,無論做什么事,都要自己去嘗試并努力完成,是享受其過程而不是結(jié)果。 五元件清單(見附錄2)六附錄 附錄1.仿真電路圖 圖上為 東西方向變黃燈,南北方向禁行 圖上為 南北方向通車,東西方向禁行圖上為 東西方向通車,南北方向禁行附錄2.元件清單器件名稱型號大小數(shù)量晶振12MHz1電阻4701LED數(shù)碼管二聯(lián)共陽3單片機AT89C511電解電容22uF1瓷片電容30pF2排阻4701LED數(shù)碼管二聯(lián)共陽3發(fā)光二極管紅4黃4綠4開關(guān)按鍵式

21、4上拉電阻10K6電源5V/0.5A1集成塊74LS2451附錄3.程序源代碼:; 交通燈 ;TIME EQU 50H ;秒計數(shù)用TIMESFR EQU 51H ;臨時寄存器CONR5 EQU 52H ;T11秒定時計數(shù)用TIMED0 EQU 55H ;單向最大定時時間,直行開始,人行開始 120TIMED1 EQU 56H ; 各路右轉(zhuǎn)開始時間 110TIMED2 EQU 57H ; 前行結(jié)束提醒 70TIMED3 EQU 58H ; 前行結(jié)束,人行結(jié)束,左轉(zhuǎn)開始 60TIMED4 EQU 59H ; 左轉(zhuǎn)結(jié)束提醒TIMED5 EQU 5AH ; 左轉(zhuǎn)結(jié)束TIMED6 EQU 5BH TIM

22、ED7 EQU 5CH SN EQU P1 ; 南北口EW EQU P2 ; 東西口SCAN EQU P3 ;掃描口LEDOUT EQU P0 ;段碼口SNEWFLAG BIT 09H ;東西口與南北口轉(zhuǎn)換標志按鍵在掃描口的最高位,按一下,全紅燈,再按一下,恢復(fù)原狀態(tài)定時器T0、T1溢出周期為50MS,T0為秒計數(shù)用. ; 中斷入口程序 ;ORG 0000H ;程序執(zhí)行開始地址LJMP START ;跳到標號START執(zhí)行ORG 0003H ;外中斷0中斷程序入口RETI ;外中斷0中斷返回ORG 000BH ;定時器T0中斷程序入口LJMP INTT0 ;跳至INTTO執(zhí)行ORG 0013H

23、 ;外中斷1中斷程序入口LJMP INT11 ;外中斷1中斷返回,119.120中斷ORG 001BH ;定時器T1中斷程序入口LJMP INTT1ORG 0023H ;串行中斷程序入口地址RETI ;串行中斷程序返回 ; 主 程 序 ;START: MOV SP,#80HMOV R0,#00H ;清70H-7AH共11個內(nèi)存單元MOV R7,#8FH CLEARDISP: MOV R0,#00H INC R0 DJNZ R7,CLEARDISP MOV TIMED0,#78H ;單向最大定時時間,直行開始,人行開始 120MOV TIMED1,#6EH ; 各路右轉(zhuǎn)開始時間 110MOV T

24、IMED2,#46H ; 前行結(jié)束提醒 70MOV TIMED3,#3CH ; 前行結(jié)束,人行結(jié)束,左轉(zhuǎn)開始 60MOV TIMED4,#0AH ; 左轉(zhuǎn)結(jié)CLR SNEWFLAG ;南北先通行標志位MOV TMOD,#11H ;設(shè)T0、T1為16位定時器MOV TL0,#0B0H ;50MS定時初值(T0計時用)MOV TH0,#3CH ;50MS定時初值MOV TL1,#0B0H ;50MS定時初值(T1閃爍定時用)MOV TH1,#3CH ;50MS定時初值JB SCAN.7,SSST ;120秒管理以下為60秒管理LCALL DL1MSLCALL DL1MSLCALL DL1MSJB

25、SCAN.7,SSST ;干擾MOV TIMED0,#60 ;單向最大定時時間,直行開始,人行開始60MOV TIMED1,#55 ; 各路右轉(zhuǎn)開始時間 55MOV TIMED2,#35 ; 前行結(jié)束提醒 35MOV TIMED3,#30 ; 前行結(jié)束,人行結(jié)束,左轉(zhuǎn)開始 30MOV TIMED4,#05 ; 左轉(zhuǎn)結(jié)束提醒SSWAIT: JNB SCAN.7,SSWAITLCALL DL1MSLCALL DL1MSLCALL JNB SCAN.7,SSWAITSSST: MOV TIME,TIMED0 ;120秒LCALL TUNBCDMOV SN,#66H MOV EW,#55H SETB

26、EA ;總中斷開SETB PX1SETB EX1SETB ET0 ;允許T0中斷SETB TR0 ;開啟T0定時器MOV R4,#14H ;1秒定時用初值(50MS×20)MOV CONR5,#20START1: LCALL DISPLAY ;調(diào)用顯示子程序JNB SCAN.7,KEYFUN ;手動狀態(tài)SJMP START1 ;P1.0口為1時跳回START1KEYFUN: LCALL DISPLAYLCALL DISPLAYJB SCAN.7,START1CLR ET0CLR TR0MOV SN,#056H ;全車道停,行人通MOV EW,#056H MOV TIME,#00H ;

27、時間顯示LCALL TUNBCDKEYWAIT: LCALL DISPLAY JNB SCAN.7,KEYWAIT ;KEYY: LCALL DISPLAY ;等待按鍵按下JB SCAN.7,KEYYLCALL DISPLAYJB SCAN.7,KEYYKEYWAIT1: LCALL DISPLAY JNB SCAN.7,KEYWAIT1 MOV TIME,TIMED0 ;從新開始計時初值LCALL TUNBCDCLR SNEWFLAG ;南北先通行標志位SETB TR0SETB ET0AJMP START1; 1秒計時程序 ;T0中斷服務(wù)程序INTT0: PUSH ACC ;累加器入棧保護P

28、USH PSW ;狀態(tài)字入棧保護CLR ET0 ;關(guān)T0中斷允許CLR TR0 ;關(guān)閉定時器T0MOV A,#0B7H ;中斷響應(yīng)時間同步修正ADD A,TL0 ;低8位初值修正MOV TL0,A ;重裝初值(低8位修正值)MOV A,#3CH ;高8位初值修正ADDC A,TH0 MOV TH0,A ;重裝初值(高8位修正值)SETB TR0 ;開啟定時器T0DJNZ R4, OUTT00 ;20次中斷未到中斷退出MOV R4,#14H ;20次中斷到(1秒)重賦初值JB SNEWFLAG, INT22DEC TIMEMOV A,TIMECJNE A,TIMED1,LOOP11 ; 判斷是否

29、小于110秒LOOP11: JC LOOP22 ; 120-110MOV SN,#66H ; IMOV EW,#55H ; ILJMP OUTT0 ; 120-110LOOP22: MOV A,TIMECJNE A,TIMED2,LOOP33 ; 判斷是否小于70秒LOOP33: JC LOOP44 ; 110-70MOV SN,#6AH ; IMOV EW,#59H ; ILJMP OUTT0 ; 110-70LOOP44: MOV A,TIMECJNE A,TIMED3,LOOP55 ; 判斷是否小于60秒LOOP55: JC LOOP66 ; 70-60MOV 20H,SN CPL 04

30、H CPL 00HMOV SN,20H ; IMOV EW,#59H ; ILJMP OUTT0 ; 70-60 LOOP66: MOV A,TIMECJNE A,TIMED4,LOOP77 ; 判斷是否小于10秒LOOP77: JC LOOP88 ; 60-10MOV SN,#99H ; I MOV EW,#59H ; ILJMP OUTT0 ; 60-10LOOP88: MOV A,TIMEJZ OUT88MOV 20H,SN CPL 06H CPL 02HMOV SN,20H MOV 20H,EWCPL 02HMOV EW,20H ; ILJMP OUTT0 ; 70-60OUT88:

31、MOV TIME,TIMED0 ;120秒初值CPL SNEWFLAGOUTT0: LCALL TUNBCD OUTT00: POP PSW ;恢復(fù)狀態(tài)字(出棧)POP ACC ;恢復(fù)累加器SETB ET0 ;開放T0中斷RETI ;中斷返回INT22: DEC TIMEMOV A,TIME CJNE A,TIMED1,LOOP111 ; 判斷是否小于110秒LOOP111: JC LOOP221 ; 120-110MOV EW,#66H ; IMOV SN,#55H ; ILJMP OUTT01 ; 120-110LOOP221: MOV A,TIMECJNE A,TIMED2,LOOP33

32、1 ; 判斷是否小于70秒LOOP331: JC LOOP441 ; 110-70MOV EW,#6AH ; IMOV SN,#59H ; ILJMP OUTT01 ; 110-70LOOP441: MOV A,TIMECJNE A,TIMED3,LOOP551 ; 判斷是否小于60秒LOOP551: JC LOOP661 ; 70-60MOV 20H,EW CPL 04H CPL 00HMOV EW,20H ; IMOV SN,#59H ; ILJMP OUTT01 ; 70-60LOOP661: MOV A,TIMEJNE A,TIMED4,LOOP771 ; 判斷是否小于10秒LOOP7

33、71: JC LOOP881 ; 60-10MOV EW,#99H ; IMOV SN,#59H ; ILJMP OUTT01 ; 60-10LOOP881: MOV A,TIMEJZ OUT881MOV 20H,EW CPL 06H CPL 02HMOV EW,20H MOV 20H,SNCPL 02HMOV SN,20H ; ILJMP OUTT01 ; 70-60OUT881: MOV TIME,TIMED0 ;120秒初值CPL SNEWFLAGOUTT01: LCALL TUNBCD POP PSW ;恢復(fù)狀態(tài)字(出棧)POP ACC ;恢復(fù)累加器SETB ET0 ;開放T0中斷RE

34、TI ;中斷返回; 顯示程序 ; 顯示數(shù)據(jù)在70H-75H單元內(nèi),用六位LED共陽數(shù)碼管顯示,P0口輸出段碼數(shù)據(jù),P2口作掃描控制,每個LED數(shù)碼管亮1MS時間再逐位循環(huán)。DISPLAY: MOV R1,#70H ;指向顯示數(shù)據(jù)首址MOV R5,#0FEH ;掃描控制字初值PLAY: MOV A,R5 ;掃描字放入AMOV SCAN,A ;從P2口輸出MOV A,R1 ;取顯示數(shù)據(jù)到AMOV DPTR,#TAB ;取段碼表地址MOVCA,A+DPTR ;查顯示數(shù)據(jù)對應(yīng)段碼MOV LEDOUT,A ;段碼放入P0口LOOP6: LCALL DL1MS ;顯示1MSINC R1 ;指向下一地址MO

35、V A,R5 ;掃描控制字放入AJNB ACC.2,ENDOUT ;ACC.5=0時一次顯示結(jié)束RL A ;A中數(shù)據(jù)循環(huán)左移MOV R5,A ;放回R5內(nèi)MOV LEDOUT,#0FFHAJMP PLAY ;跳回PLAY循環(huán)ENDOUT: MOV LEDOUT,#0FFH ;一次顯示結(jié)束,P2口復(fù)位MOV SCAN,#0FFH ;P0口復(fù)位RET ;子程序返回TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH共陽段碼表 "0""1""2" "3""4""5""6"

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論