




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 畢 業 論 文題 目: 基于單片機的交通燈設計 系 別: 姓 名: 指導教師: 單片機交通燈設計 摘 要:近年來隨著科技的飛速發展,一個以微電子技術、計算機技術和通信技術為先導的信息革命正在蓬勃發展。計算機技術作為三者之一,怎樣與實際應用更有效的結合并發揮其作用。單片機作為計算機技術的一個分支,正在不斷的應用到實際生活中,同時帶動傳統控制檢測的更新。在實時檢測和自動控制的應用系統中,單片機往往是作為一個核心部件使用,針對具體應用對象的特點,配以其它器件來加以完善。十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實現交通的井然秩序呢?靠的是交通信號燈的自動指揮系統,來實現
2、交通的井然有序。交通信號燈控制方式很多。本系統采用美國ATMEL公司生產的單片機AT89S51,以及其它芯片來設計交通燈控制。實現了通過AT89S51芯片的P1口設置紅、綠燈點亮的功能,通過AT89S51芯片的RXD、TXD輸入、輸出設置顯示時間。交通燈的點亮采用發光二極管實現,時間的顯示采用七段數碼管實現。單片機系統采用的直流供電。為了系統穩定可靠,系統內集成了“看門狗”芯片,避免了系統因為死機而停止工作的情況發生。系統實用性強、操作簡單、擴展性好。III 計算機科學與技術系畢業設計目 錄1 引言12 交通管理方案論證12.1 設計任務12.2 方案介紹23 交通燈系統硬件設計43.1 單片
3、機概述43.2 系統構成53.3芯片選擇與介紹53.3.1 AT89S51芯片53.3.2 74HC164芯片介紹73.3.3 74LS04輸出信號與信號燈83.3.4 交通燈控制線路圖94 交通燈軟件設計104.1 程序設計流程圖104.2延時的設定124.2.1 計數器初值計算124.2.2 相應程序代碼124.3 程序的主控制循環調用134.4 對現有程序的擴充145實驗平臺155.1實驗平臺155.2實驗步驟155.2.1 編寫程序代碼155.2.2 按照系統硬件連線圖連接好系統并調試15結論17致謝17參考文獻18程序實現代碼19單片機交通燈設計1 引言今天,紅綠燈安裝在各個道口上,
4、已經成為疏導交通車輛最常見和最有效的手段。但這一技術在19世紀就已出現了。1858年,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅,藍兩色的機械扳手式信號燈,用以指揮馬車通行。這是世界上最早的交通信號燈。1868年,英國機械工程師納伊特在倫敦威斯敏斯特區的議會大廈前的廣場上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩塊以旋轉式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。1914年,電氣啟動的紅綠燈出現在美國。這種紅綠燈由紅綠黃三色圓形的投光器組成,安裝在紐約市5號大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。1918年,又
5、出現了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把壓力探測器安在地下,當車輛接近時,紅燈便變為綠燈;另一種是用擴音器來啟動紅綠燈,司機遇紅燈時按一下喇叭,就使紅燈變為綠燈。紅外線紅綠燈當行人踏上對壓力敏感的路面時,它就能察覺到有人要過馬路。紅外光束能把信號燈的紅燈延長一段時間,推遲汽車放行,以免發生交通事故。信號燈的出現,使交通得以有效管制,對于疏導交通流量、提高道路通行能力,減少交通事故有明顯效果。1968年,聯合國道路交通和道路標志信號協定對各種信號燈的含義作了規定。綠燈是通行信號,面對綠燈的車輛可以直行,左轉彎和右轉彎,除非另一種標志禁止某一種轉向。左右轉彎車輛都必須讓合法地正
6、在路口內行駛的車輛和過人行橫道的行人優先通行。紅燈是禁行信號,面對紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號,面對黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時可以進入交叉路口。隨著經濟的發展,交通運輸中出現了一些傳統方法難以解決的問題。道路擁擠現象日趨嚴重,造成的經濟損失越來越大,并一直保持大比例的增長。現在交通系統已不能滿足經濟發展的需求。由于生活水平的提高,人們對交通運輸的安全性及服務水平提出了更高的要求。在交通中管理引入單片機交通燈控制代替交管人員在交叉路口服務,有助于提高交通運輸的安全性、提高交通管理的服務質量。并在一定程度上盡可能的降低由道路擁擠造成的
7、經濟損失,同時也減小了工作人員的勞動強度。 中國車輛數量不斷增加,交通控制在未來的交通管理中起著越來越重要的作用。智能交通燈的管理比重修一條馬路無論在經濟、交通運行速率上都有很好的效益、更加節約資源。使交管人員有更多的精力投入到管理整個城市交通控制,帶來更大的經濟和社會效益,為創造美好的城市交通形象發揮更多的作用。2 交通管理方案論證2.1 設計任務東西(A)、南北(B)兩干道交于一個十字路口,各干道有一組紅、左轉綠、綠三個指示燈,指揮車輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行。紅燈的設計時間為40秒,綠燈及左轉綠燈各為20秒。設A道和B道的車流量相同。2.2 方案介紹把設計任務細化為
8、四個狀態,其對應狀態:如圖1 A道為40秒紅燈,B道綠燈20秒A道為20秒紅燈,B道左轉20秒綠燈A道為20秒綠燈,B道為40秒紅燈A道左轉20秒綠燈,B道為20秒紅燈圖1 狀態轉換圖整個交通燈控制由四個狀態組成,可以用程序設計實現,也可用時序邏輯實現.以下方案就是分別用了這兩種方法。方案1設計思想:采用分模塊設計的思想,程序設計實現的基本思想是一個計數器 , 選擇一個單片機,其內部為一個計數,是十六進制計數器,模塊化后,通過設置或程序清除來實現狀態的轉換, 由于每一個模塊的計數多不是相同, 這里的各模塊是以預置數和計數器計數共同來實現的,所以要考慮增加一個置數模塊,其主要功能細分為,對不同的
9、狀態輸入要產生相應狀態的下一個狀態的預置數, 如圖中A道和B道,分別為次干道的置數選擇和主干道的置數選擇。以主干道為例,簡述其設計思想。如前分析,已經確定該系統有四個狀態,而置數子模塊可定要將下一狀態的預置數準備好,所以很容易得到主干道的置數表如:表1狀態主干道預置數次干道預置數004020012020(左轉)1020401120(左轉)20表1 置數表由該表,就可以通過程序循環的方法設計該模塊,主要思想是通過數據判斷指令、跳轉指令實現,由主控制器計時和中斷產生的四個狀態去譯碼,從而得到不同的輸出,即預置數,由上分析可用一個計數器和跳轉指令去完成的預置數。而紅綠燈的顯示也是一樣,由狀態分析可以
10、得出紅綠燈的變化表如:表2狀態主干道燈顯示次干道燈顯示00紅燈綠燈01紅燈左轉綠燈10綠燈紅燈11左轉綠燈紅燈表2 紅綠燈變化表通過這張表就可以用組合電路實現該功能了,可以用數據選擇器的思想,在本系統中,直接通過門電路的譯碼,接下來就是計數模塊了,其主要的功能細分為,要從預置數開始遞減計數,一個狀態結束,通過判斷,通知主控制模塊,使之進入下一模塊。還有一個必須考慮到的就是,預置數必須在下一個狀態來之前準備好,而紅綠燈的狀態變化,必須和計數狀態同步,于是引起預置數變化的程序要超前于系統本身的狀態變化,所以,系統中的兩個狀態轉換時,在上一狀態結束時設置預置數,而控制紅綠燈的是隨著系統本身狀態的變化
11、而變化,體現在本子電路中就是有兩組電路去判斷符合的狀態。方案2 設計思想:狀態轉換表如:表3狀態主干道燈顯示次干道燈顯示00(15S)紅燈綠燈01(05S)紅燈黃燈10(15S)綠燈紅燈11(05S)黃燈紅燈表3 狀態轉換表本方案分三步:(1)要建立三路信號燈的控制系統,本設計采用7408 芯片通過組合邏輯控制三路燈的顯示關系。(2)建立顯示控制系統,本設計采用74190 芯片倒計時控制,每個方向用兩片相連實現,另外用74153芯片,因為分析中設置的時間末位均為5,所以只要用一片74153 對高位置位,將低位的初值預置鎖定為5,而高位則根據需要由反饋部分提供預置值。(3)建立反饋和細節連接部分
12、,本部分主要解決顯示和燈控的同步問題本系統采用倒計時系統減為0,如當系統減為0 時通過兩個D觸發器得到兩個變量,即為開頭分析中的狀態,通過它的變化得到不同的邏輯關系,驅動74153 控制哪組燈亮(對應關系如表所示),另外他還要同步反饋到顯示系統的置數環節。注意:本實驗中若采用更復雜的四片74190控制主干道的兩組燈,再用八片74153分別對74190置數可實現任意數值的交通燈系統。另外對7408 片子的控制紅燈的端口用一個與門將一端再接一個頻率一定的方波,使一邊為黃燈時,另一邊的紅燈在閃爍。方案比較:方案1(以下稱1)用了模塊設計,而方案2(以下稱2)采用的是一般設計,相比之下1有較強的可讀性
13、和較強的可修改性,而2則在設計上顯得較簡單,設計純樸,便于測試,它的優勢則在于提供了一條較為便捷的解決方案。2首先將許多邏輯關系簡化到極點,而后將其一起集成用較少的芯片去完成所需功能。我們從中可以得出的是,我們最終的設計應該盡量使用模塊化設計。對工程設計人員來說,將來的產品無論從修改還是升級考慮對有好處,但另外我們又需將設計簡單化,因此我覺得在設計初期盡可能的簡單化設計,而一旦設計的各項測試通過了,在有可能的條件下將設計模塊化,所以本設計以第一方案為主進行。 3 交通燈系統硬件設計3.1 單片機概述單片機是由運算器、控制器、存儲器、輸入設備以及輸出設備共五個基本部分組成的。單片機是把包括運算器
14、、控制器、少量的存儲器、最基本的輸入輸出口電路、串行口電路、中斷和定時電路等都集成在一個尺寸有限的芯片上。通常,單片機由單個集成電路芯片構成,內部包含有計算機的基本功能部件:中央處理器、存儲器和I/O接口電路等。因此,單片機只需要和適當的軟件及外部設備相結合,便可成為一個單片機控制系統。單片機經過1、2、3、3代的發展,目前單片機正朝著高性能和多品種方向發展,它們的CPU功能在增強,內部資源在增多,引腳的多功能化,以及低電壓、低功耗。可以說,二十世紀跨越了三個“電”的時代,即電氣時代、電子時代和現已進入的電腦時代。不過,這種電腦,通常是指個人計算機,簡稱PC機。它由主機、鍵盤、顯示器等組成。還
15、有一類計算機,大多數人卻不怎么熟悉。這種計算機就是把智能賦予各種機械的單片機。顧名思義,這種計算機的最小系統只用了一片集成電路,即可進行簡單運算和控制。因為它體積小,通常都藏在被控機械的“肚子”里。它在整個裝置中,起著有如人類頭腦的作用,它出了毛病,整個裝置就癱瘓了。現在,這種單片機的使用領域已十分廣泛,如智能儀表、實時工控、通訊設備、導航系統、家用電器等。各種產品一旦用上了單片機,就能起到使產品升級換代的功效,常在產品名稱前冠以形容詞“智能型”,如智能型洗衣機等。現在有些工廠的技術人員或其它業余電子開發者搞出來的某些產品,不是電路太復雜,就是功能太簡單且極易被仿制。究其原因,可能就卡在產品未
16、使用單片機或其它可編程邏輯器件上。 目前單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網絡通訊與數據傳輸,工業自動化過程的實時控制和數據處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統,錄像機、攝像機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領域的機器人、智能儀表、醫療器械了。它主要是作為控制部分的核心部件。因此,單片機的學習、開發與應用將造就一批計算機應用與智能化控制的科學家、工程師。3.2 系統構成電路板一塊,AT89S51單片機一片,74HC164芯片八片,七段數碼
17、管八個。74LS04反向器一片,發光二極管13個(8個綠的,4個紅的用于交通控制,1個用于標識電源),7805三端穩壓電源一個,一個按鍵,一條數據下載線。系統結構框圖如:圖2鍵盤控制返回AT89S51單片機系統LCD顯示與LED倒計時模塊接口電路74HC164圖2 系統結構框圖系統各部分工作:(1)程序設置初始時間,通過AT89S51單片機內部相應寄存器來實現。(2) 由AT89S51單片機的定時器每秒鐘通過P3.0口向74HC164的數據端口送信息,由74HC164的輸出口顯示紅、綠、黃燈的點亮時間情況;由AT89S51的P1.0、P1.1、P1.2、P1.3口顯示每個燈的點亮情況。(3)
18、AT89S51通過程序設置各個信號燈的點亮時間,通過程序設置左轉綠、綠、紅時間依次為20秒、20秒、40秒循環,由AT89S51的 P3口向74HC164的數據口輸出。(4)通過AT89S51單片機的P3口來控制系統是工作。(5)74HC164的A、B口用于串行輸出時間位,經過串并轉換送到七段數碼管的八的引腳。而P1口用于輸出控制信號而通過74LS04反向器實現控制各個燈的情況它采用5V的直流電來驅動二極管。(6)AT89S51本身集成了看門狗指令,當系統出現異常看門狗將發出溢出中斷。通過專用端口輸出,引起RESET復位信號復位系統。3.3芯片選擇與介紹3.3.1 AT89S51芯片選用的AT
19、89S51與同系列的AT89C51在功能上有明顯的提高,最突出是的可以實現在線的編程。用于實現系統的總的控制。其主要功能列舉如下:1、為一般控制應用的 8 位單片機2、晶片內部具有時鐘振蕩器(傳統最高工作頻率可至 33MHz)3、內部程式存儲器(ROM)為 4KB4、內部數據存儲器(RAM)為 128B5、外部程序存儲器可擴充至 64KB6、外部數據存儲器可擴充至 64KB7、32 條雙向輸入輸出線,且每條均 可以單獨做 I/O 的控制8、5 個中斷向量源9、2 組獨立的 16 位定時器10、1 個全雙工串行通信端口11、8751 及 8752 單芯片具有數據保密的功能12、單芯片提供位邏輯運
20、算指令AT89S51各引腳功能介紹:如圖3圖3 AT89S51VCC:ATAT89S51 電源正端輸入,接+5V。VSS:電源地端。XTAL1:單芯片系統時鐘的反向放大器輸入端。XTAL2:系統時鐘的反向放大器輸出端,一般在設計上只要在 XTAL1 和 XTAL2 上接上一只石英振蕩晶體系統就可以動作了,此外可以在兩個引腳與地之間加入一個 20PF 的小電容,可以使系統更穩定, 避免噪聲干擾而死機。 RESET:AT89S51的重置引腳,高電平動作,當要對晶片重置時,只要對此引腳電平提升至高電平并保持兩個機器周期以上的時間,AT89S51便能完成系統重置的各項動作,使得內部特殊功能寄存器之內容
21、均被設成已知狀態,并且至地址0000H處開始讀入程序代碼而執行程序。EA/Vpp:"EA"為英文"External Access"的縮寫,表示存取外部程序代碼之意,低電平動作,也就是說當此引腳接低電平后,系統會取用外部的程序代碼(存于外部EPROM中)來執行程序。因此在8031及8032中,EA引腳必須接低電平,因為其內部無程序存儲器空間。如果是使用 8751 內部程序空間時,此引腳要接成高電平。此外,在將程序代碼燒錄至8751內部EPROM時,可以利用此引腳來輸入21V的燒錄高壓(Vpp)。ALE/PROG:ALE是英文"Address La
22、tch Enable"的縮寫,表示地址鎖存器啟用信號。ATAT89S51可以利用這個引腳來觸發外部的8位鎖存器(如74LS373),將端口0的地址總線(A0A7)鎖進鎖存器中,因為ATAT89S51是以多工的方式送出地址及數據。平時在程序執行時ALE引腳的輸出頻率約是系統工作頻率的1/6,因此可以用來驅動其他周邊晶片的時基輸入。此外在燒錄8751程序代碼時,此引腳會被當成程序規劃的特殊功能來使用。PSEN:此為"Program Store Enable"的縮寫,其意為程序儲存啟用,當8051被設成為讀取外部程序代碼工作模式時(EA=0),會送出此信號以便取得程序代
23、碼,通常這支腳是接到EPROM的OE腳。ATAT89S51可以利用PSEN及RD引腳分別啟用存在外部的RAM與EPROM,使得數據存儲器與程序存儲器可以合并在一起而共用64K的定址范圍。PORT0(P0.0P0.7):端口0是一個8位寬的開路電極(Open Drain)雙向輸出入端口,共有8個位,P0.0表示位0,P0.1表示位1,依此類推。其他三個I/O端口(P1、P2、P3)則不具有此電路組態,而是內部有一提升電路,P0在當作I/O用時可以推動8個LS的TTL負載。如果當EA引腳為低電平時(即取用外部程序代碼或數據存儲器),P0就以多工方式提供地址總線(A0A7)及數據總線(D0D7)。設
24、計者必須外加一個鎖存器將端口0送出的地址鎖住成為A0A7,再配合端口2所送出的A8A15合成一組完整的16位地址總線,而定位地址到64K的外部存儲器空間。PORT2(P2.0P2.7):端口2是具有內部提升電路的雙向I/O端口,每一個引腳可以推動4個LS的TTL負載,若將端口2的輸出設為高電平時,此端口便能當成輸入端口來使用。P2除了當作一般I/O端口使用外,若是在ATAT89S51擴充外接程序存儲器或數據存儲器時,也提供地址總線的高字節A8A15,這個時候P2便不能當作I/O來使用了。PORT1(P1.0P1.7):端口1也是具有內部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個LS T
25、TL負載,同樣地,若將端口1的輸出設為高電平,便是由此端口來輸入數據。如果是使用8052或是8032的話,P1.0又當作定時器2的外部脈沖輸入腳,而P1.1可以有T2EX功能,可以做外部中斷輸入的觸發引腳。PORT3(P3.0P3.7):端口3也具有內部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個TTL負載,同時還多工具有其他的額外特殊功能,包括串行通信、外部中斷控制、計時計數控制及外部數據存儲器內容的讀取或寫入控制等功能。其引腳分配如下:P3.0:RXD,串行通信輸入。P3.1:TXD,串行通信輸出。P3.2:INT0,外部中斷0輸入。P3.3:INT1,外部中斷1輸入。P3.4:T0
26、,計時計數器0輸入。P3.5:T1,計時計數器1輸入。P3.6:WR:外部數據存儲器的寫入信號。P3.7:RD,外部數據存儲器的讀取信號。3.3.2 74HC164芯片介紹74HC164為串行輸入、并行輸出移位寄存器,74HC164為單向總線驅動器。在串行口為方式0狀態,即工作在移位寄存器方式,波特率為振蕩頻率的十二分之一。器件執行任何一條將SBUF作為目的寄存器的命令時,數據便開始從RXD端發送。在寫信號有效時,相隔 一個機器周期后發送控制端SEND有效,即允許RXD發送數據,同時,允許從TXD端輸出移位脈沖。第一幀(8位)數據發送完畢時,各控制信號均恢復原狀態,只有TI保持高電平,呈中斷申
27、請狀態。第一個74HC164把第一幀數據并行輸出,LED1顯示該數據。然后,用軟件將TI清0,發送第二幀數據。第二幀數據發送完畢,LED1顯示第二幀數據,第一幀數據串行輸入給第二個74HC164,LED2顯示第一幀數據。依此類推,直到把數據區內所有數據發送出去。應該注意,數據全部發送完后,第一幀數據在最后一個LED顯示。由于TXD端最多可以驅動8個TTL門。注意:當LED顯示器超過8個時,我們采用74HC244芯片驅動。每個74HC244有8路驅動,每一路可驅動8個LED,即每增加一個74HC244,可增加64個LED驅動。七段數碼管,用于顯示09的數字。3.3.3 74LS04輸出信號與信號
28、燈要使行人能看見信號燈的情況,必須把P1口輸出的信號進行放大,這里我們用74LS04反向器,當極性為高電平時晶閘管導通,該支路指示燈亮;當極性為低電平時關斷,該支路指示燈滅。LED 燈的顯示原理:通過同名管腳上所加電平的高低來控制發光二極管是否點亮。 七段數碼管的顯示及與74HC164的連接顯示不同的數字如 SP,g,f,e,d,c,b,a 管角上加上0FE所以上為伏,不亮其余為高電平,全亮則顯示為。數字0-9與16進制的轉換驅動代碼表:如表5顯示數值a b c d e f g dop 驅動代碼(16進制)01 1 1 1 1 1 1 1 0FCH1 0 0 0 0 0 1 1 060H2 1
29、 1 0 1 1 0 1 00DAH3 1 1 1 1 0 0 1 00F2H4 0 1 1 0 0 1 1 066H5 1 0 1 1 0 1 1 00B6H6 1 0 1 1 1 1 1 00BEH7 1 1 1 0 0 0 0 00E0H8 1 1 1 1 1 1 1 00FEH9 1 1 1 1 0 1 1 00F6H表5 驅動代碼表74LS04(6反向器)主要對信號起了反向作用。其它器件的功能如:7805的功能,既提供穩定的+5V電壓。3.3.4 交通燈控制線路圖 4 交通燈軟件設計4.1 程序設計流程圖 (1) 程序設計總框圖:如圖4 開 始鍵盤事件處理等 待 鍵 盤 事 件初始化
30、顯示程序處理圖4 程序設計框圖(2)程序詳細流程圖:如圖5開始設置定時器開中斷賦初值F0=1R0,R1分別送A。調用計時程序并調用延時R2=011Flag0=1跳到SECR2=021Flag1=1跳到THR,F0=1R2=03Flag1=1跳到FOUR2=04標志位清0,跳到FIRR0=00R2加1,跳到DIAOYR1,R0分別送A。調用計時程序并調用延時圖5 程序詳細流程圖流程圖說明:圖中定時器在每50ms中斷一下,設置為循環20次(此時為1秒),每1秒以后,R0,R1自動減1。程序中的判斷在相等情況下從右邊出,不相同的情況往下走。4.2延時的設定延時方法可以有兩種一種是利用AT89S51內
31、部定時器的溢出中斷來確定1秒的時間,另一種是采用軟件延時的方法。4.2.1 計數器初值計算定時器工作時必須給計數器送計數器初值,這個值是送到TH和TL中的。他是以加法記數的,并能從全1到全0時自動產生溢出中斷請求。因此,我們可以把計數器記滿為零所需的計數值設定為C和計數初值設定為TC 可得到如下計算通式: TC=MC式中,M為計數器模值,該值和計數器工作方式有關。在方式0時M為213 ;在方式1時M的值為216;在方式2和3為28 ; 算法公式:T=(MTC)T計數 或TC=MT/T計數T計數是單片機時鐘周期的12倍;為定時初值如單片機的主脈沖頻率為12,經過分頻方式TMAX213×
32、微秒8.192毫秒方式TMAX216×微秒65.536毫秒顯然秒鐘已經超過了計數器的最大定時間,所以我們只有采用定時器和軟件相結合的辦法才能解決這個問題實現秒的方法:我們采用在主程序中設定一個初值為20的軟件計數器和使T1定時50毫秒。這樣每當T1到50毫秒時CPU就響應它的溢出中斷請求,進入他的中斷服務子程序。在中斷服務子程序中,CPU先使軟件計數器減,然后判斷它是否為零。為0表示秒已到可以返回到輸出時間顯示程序。4.2.2 相應程序代碼()定時器的設置定時器需定時毫秒,故1工作于方式。初值計算: TC=MT/T計數21650ms/1us=15536=3CBOH START: MO
33、V TMOD, #10H ;令為定時器方式 MOV TH0, #3CH ;裝入定時器初值 MOV TL0, #0BOH SETB EA ; 打開總中斷 SETB ET1 ;開1中斷SETB ER ;啟動1計數器CLR FLAG1 CLR FLAG2 CLR FLAG3 MOV R3,#20H ;軟件計數器賦初值()相應中斷服務子程序 ORG001B LJMPDSD ORG 0030H DSD: INC R3 MOV TH0, #3CH ;重裝入定時器初值 MOV TL0, #BOH CJNE R3,#20,FHDEC R0 DEC R1MOV R3,#00HFH: RETI程序的軟件延時:AT
34、89S51的工作頻率為033MHZ,我們選用的AT89S51單片機的工作頻率為12MHZ。機器周期與主頻有關,機器周期是主頻的12倍,所以一個機器周期的時間為12*(1/12M)=1us。我們可以知道具體每條指令的周期數,這樣我們就可以通過指令的執行條數來確定1秒的時間。具體的延時程序分析:DELAY: MOV R4,#08H 延時1秒主程序 DE2: LCALL DELAY1 DJNZ R4, DE2 RETDELAY1:MOV R4,#00H ;延時125us 子程序 D1: MOV R5,#00H D2: DJNE R5,DL2 DJNE R4,D1 RET DELAY1為一個雙重循壞
35、循環次數為256*256=65536 所以延時時間=65536*2=131072us 約為125us DELAY R4設置的初值為8 主延時程序循環8次,所以125us*8= 1秒由于單片機的運行速度很快其他的指令執行時間可以忽略不計。4.3 程序的主控制循環調用用來實現四個狀態之間的轉換,代碼如下:DIAOY:;循環控制子程序CJNE R2, #01H, AA;判斷不相等剛跳轉JB FLAG1, AA;FLAG1為1則跳轉LJMP SEC ;跳轉到SECAA:CJNE R2, #02H, AAAJB FLAG2, AAASETB F0LJMP THRAAA:CJNE R2, #03H, BB
36、JB FLAG3, BBLJMP FOUBB:CJNE R2, #04H, BBB;判斷不相等則跳轉CLR F0;F0位清0CLR FLAG1CLR FLAG2CLR FLAG3LJMP FIRBBB:CJNE R0, #00H, SGLINC R2;R2加1LJMP DIAOY4.4 對現有程序的擴充 當由于緊急需要對道路進行長時間通行時,就要保持該道路更長時間的通行。下面以東西方向為例進行緊急通行為例。緊急通行是平常通行的特例,只要將相應的代碼去掉就可以實現延長本車道的通行時間。設置通行時間為20秒。核心代碼如下:FIR:MOV P1, #00HSETB P1.0CLR P1.1CLR P
37、1.2CLR P1.3MOV R0, #20MOV R1, #20SGL: ;與原程序類同 CJNE R0, #00H, SGL LJMP FIR要實現東西方向的左轉通行時,只需要修改FIR中的代碼就可以了。時間顯示只要修改R0和R1就可以了。要實現南北方及左轉,只要把SGL換成SGL1、把FIR 中代碼進行相應的修改就可以了。由于時間緊張,程序有不完善的地方。原程序見程序實現代碼。5實驗平臺5.1實驗平臺我們采用的是Keil Software生產的Cx51編譯器。運行在Windows XP操作平臺下。 開啟計算機進入Keil C51編譯器介面。如圖6圖6 Keil C51編譯器介面5.2實驗
38、步驟5.2.1 編寫程序代碼程序代碼分為3個模塊:中斷模塊,循環模塊,算法模塊。(見程序實現代碼)5.2.2 按照系統硬件連線圖連接好系統并調試調試程序 打開Keil軟件,新建工程; 選擇芯片; 新建文檔,把編寫好代碼寫入文檔并保存了ASM文件; 把保存的文檔加載到Source Group;編譯程序;設置轉換成16進制;運行程序的結果;2. 把編譯好的16進制文件(jtd.hex) 輸入單片機AT89S51仿真器和對其進行初始化。3給實驗板進行通電,觀察運行結果,不一致則跳到第一步進行反復調試,直到與預定目的一致。以下是在程序調試過程中出現在情況:通電以后,把程序裝好,數碼管是的數字不變,按復
39、位鍵后重新開始還是如此。經過和同組人的共同分析后,發現是中斷系統在計時到了1秒以后,賦的初值R0,R1沒有減1,修改如下:DSD:INC R3MOV TH1, #3CHMOV TL1, #0B0HCJNE R3, #20, FH;判斷是否夠 1秒DEC R0DEC R1MOV R3, #00H;R3清0FH:RETI;中斷返回通電以后,東西、南北方向的時間均遞減,20秒以后,東西方向的20秒用完,變成東西左轉、南北各20秒,此后,時間顯示和紅綠燈不再變化,一直保持這一狀態。經過老師和同組人的共同努力,終于找到原因,問題出在循環控制過程中,當經過第一次20秒判斷后,寄存器R2加1,當再次運行到循
40、環控制處時,判斷R2與#01H相同,程序跳到SEC處執行,此后一直如此。解決方法如下:設置3個標記位:FLAG1 BIT 00H;標記00H位FLAG2 BIT 01HFLAG3 BIT 02H在循環控制中加入判斷如:DIAOY:CJNE R2, #01H, AA;判斷不相等剛跳轉JB FLAG1, AA;FLAG1為1則跳轉LJMP SEC ;跳到SEC在跳到SEC后,在運行到該程序后加給FLAG1置數,程序如下:SEC:CLR P1.0SETB P1.1CLR P1.2CLR P1.3MOV R0, #20MOV R1, #20SETB FLAG1LJMP SGL其它幾部分與之相同的處理。
41、結論本系統就是利用了AT89S51芯片的I/O引腳。系統采用美國ATMEL公司生產的單片機AT89S51,以及其它芯片(如:74HC164、74LS04六位反向器、L7805三端穩壓電源)來設計交通燈控制器,實現了紅燈亮40秒,綠燈和左轉綠燈各亮20秒。并通過AT89S51來控制74LS04芯片的輸出口設置紅、綠燈燃亮的功能和控制74HC164來實現在七段數碼管上的時間顯示;為了系統穩定可靠系統內集成了“看門狗”芯片,避免了系統因為死機而停止工作的情況發生。系統設計簡便、實用性強、操作簡單、程序設計簡便。 系統不足:時間設定中沒有黃燈的等待閃爍時間,以及自動根據車流改變紅綠燈時間,此外,還沒有
42、充分考慮的把現代管理、人工智能運用到交通的控制中,來計算交通控制點之間的距離,來更合理的安排紅、綠燈的持續時間,使城市的交通管理更加人性化。使人們遠離目前的交通擁塞的現象。致謝通過本次畢業設計,我在指導老師趙潤林副教授的精心指導和嚴格要求下,獲得了豐富的理論知識,極大地提高了實踐能力,并對當前電子領域的研究狀況和發展方向有了一定的了解,單片機領域這對我今后進一步學習計算機方面的知識有極大的幫助。另外,此次畢業設計還獲得了計科系各位領導和老師的大力支持。在此,我忠心感謝單片機組的其它同學以及計科系各位老師的指導和支持。在未來的工作和學習中,我將以更好的成績來回報各位領導、老師和同學。參考文獻1胡
43、漢才 單片機原理及其接口技術 M 清華大學出版,19962蔡美琴 MCS-51系列單片機系統及其應用 高等教育出版社 2004.23付家才 單片機控制工程實踐技術M 化學工業出版社,2004.54潘新民 微型計算機控制技術 M 人民郵電出版社,1999.95余錫存 單片機原理及接口技術M 西安電子科技大學出版社,2000.76雷麗文 等.微機原理與接口技術M 電子工業出版社,1997.27蔣萬君 在論循環時序電路的簡便設計J 機電一體化,2005 第5期8周立功 增強型80C51單片機速成與實戰 北京航空航天大學出版社2004.59何立民 單片機應用技術選編 北京航空航天大學出版社 2004.
44、310何立民 單片機應用技術選編 北京航空航天大學出版社 2004.311何立民 MCS-51系列單片機應用系統設計 北京航空航天大學出版社, 1995.12李華 MCS -51系列單片機實用接口技術M 北京航空航天大學出版社,199313周航慈 單片機應用程序設計技術M 北京航空航天大學出版社,1991. 14張志良等 單片機原理與控制技術M 機械工業出版社,2001 年7 月第1 版15陸坤 電子設計技術1 電子科技大學出版社, 199716梁文海 單片機AT89C2051構成的智能型頻率計J 現代電子技術,2002 17謝自美 電子線路設計·實驗·測試M 華中理工大學
45、出版社,2001 - 21 -程序實現代碼;此程序分為四個部分,循環運行。東西方向通行20S(南北方向、東西南北左拐彎停)一部分SETB P1.0;東西左拐彎20S(東西南北方向、南北左拐彎停)一部分SETB P1.1;南北通行20S(東西方向、東西南北左拐彎停)一部分11111;南北左轉彎20S(東西南北方向、東西左拐彎停)一部分SETB P1.3。;共設計12個發光二極管,4個紅的,8個綠的。;P1.0控制東西方向的2個紅燈和2個綠燈;P1.2控制南北方向的2個紅燈和2個綠燈;P1.1和P1.3控制東西南北左拐彎的4個綠燈。FLAG1 BIT 00H;標記00H位FLAG2 BIT 01HFLAG3 BIT 02HORG 0000H;程序執行起始處LJMP START;跳轉到標號START執行ORG 001BH;定時器1中斷程序入口地址LJMP DSDORG 0030HSTART: MOV TMOD, #10H;定時器1的選擇MOV TH1, #3CH;給定時器預置數MOV TL1, #0B0HSETB EA;打開總中斷SE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年上海河口海岸工程勘測設計有限公司招聘筆試參考題庫附帶答案詳解
- 2025年廣東廣州中科檢測技術服務有限公司招聘筆試參考題庫附帶答案詳解
- 2025年安徽和縣城市建設投資有限責任公司招聘筆試參考題庫附帶答案詳解
- 2025年安徽省蚌埠市工業設備安裝有限公司招聘筆試參考題庫含答案解析
- 2025年福建連城縣冠豸山汽車租賃有限公司招聘筆試參考題庫含答案解析
- 常見疾病防控措施探討試題及答案
- 深入反思的公共衛生執業醫師考試試題及答案
- 提升靈活性2025年稅務師備考動能試題及答案
- 2025年健康管理師職業技能試題及答案
- 醫學基礎知識學員經驗研究試題及答案
- 教育教學研究項目效果實踐檢驗報告
- 提升員工的團隊協作與溝通能力
- 辦學許可證續期申請書
- Cpk及Ppk計算電子表格模板
- 框架結構房屋的流水施工
- 第三章 裝配式混凝土預制構件生產工藝
- XX項目陽光分包試點工作方案參考方案
- (完整版)數字電子技術基礎教案
- 附九江學院第四屆教工男子乒乓球單打賽程表
- 積極心理學-完整版教學課件
- crystalball模擬基礎教程課件
評論
0/150
提交評論