基于51單片機的交通信號燈模擬控制系統(tǒng)設計_第1頁
基于51單片機的交通信號燈模擬控制系統(tǒng)設計_第2頁
基于51單片機的交通信號燈模擬控制系統(tǒng)設計_第3頁
基于51單片機的交通信號燈模擬控制系統(tǒng)設計_第4頁
基于51單片機的交通信號燈模擬控制系統(tǒng)設計_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

./WORD格式可編輯XXXX學院畢業(yè)設計〔論文課題名稱交通信號燈模擬控制系統(tǒng)學生姓名XXX學號XXXXXXXXXXXXX系別自動化工程系專業(yè)班級機電一體化X班指導教師XX技術職務講師XXXXXX學院教務處制.XXXXX學院畢業(yè)設計〔論文任務書學生姓名XXX學號XXXXXXXXXXX指導教師XXX技術職務講師課題名稱基于51單片機設計交通信號燈模擬控制系統(tǒng)課題內容用51單片機設計一個十字路口的紅、綠、黃交通信號燈控制系統(tǒng),要求如下:1、用紅、綠、黃三色發(fā)光二極管作信號燈。只考慮一條道路相對的兩個方向,每個方向有紅、綠、黃三個燈。紅燈亮禁止通行,綠燈亮允許通行,每隔30秒紅綠燈交替變化。在每次由綠燈亮變成紅燈亮或者由紅燈亮變成綠燈亮的交替變化轉換時要求黃燈閃爍5秒,給行駛中的車輛有時間??康浇芯€之外;2、能實現(xiàn)正常的計時顯示功能。用倒計時方法顯示紅燈、綠燈、黃燈還需亮的時間;3、能實現(xiàn)控制器總清零功能。按下某個鍵后,系統(tǒng)實現(xiàn)總清零,計數(shù)器由初始狀態(tài)開始計數(shù),對應狀態(tài)的指示燈亮。相關要求1有完整的硬件檢測電路2有必要的程序流程圖與單片機系統(tǒng)設計3上位機程序的編寫或規(guī)劃4要求格式正確,模塊完整進度安排第五學期第2周學生完成設計開題報告第五學期第3-5周學生完成畢業(yè)設計初稿,指導教師給予修改建議。第五學期第6--16周學生全部完成畢業(yè)設計,并上交給指導教師。第六學期第4周 指導教師完成畢業(yè)設計〔論文評閱,指導教師完成畢業(yè)設計評閱,第六學期7-11周各系對畢業(yè)設計進行抽答辯和評定成績。并將最后評定的成績登錄上網(wǎng)。指導教師:XXX2016年9月5日.XXXXX學院畢業(yè)設計〔論文開題報告學生姓名XXX學號XXXXXXXXXXX系別自動化工程系專業(yè)班級機電一體化技術X班指導教師XXX技術職務講師課題名稱基于51單片機設計交通信號燈模擬控制系統(tǒng)閱讀中外文獻資料情況[1]李亞伯等編著,數(shù)字電路與系統(tǒng),北京:電子工業(yè)出版社,2001年6月出版130-150[2]李雙慶等編著,常用半導體器件簡明手冊,北京:電子工業(yè)出版社,1989年6月出版53-84[3]徐建仁主編,數(shù)字集成電路應用與實驗,XX:國防科技大學出版社,1990年2月出版,66-123[4]郝鴻安編著,常用數(shù)字集成電路應用手冊,北京:中國計量出版社,1987年10月出版,153-197立題依據(jù)及主要內容在當今電子信息發(fā)達的時代,在各界領域都能發(fā)現(xiàn)各種單片機控制系統(tǒng)的應用,如:工廠、火車站、醫(yī)院可想而知單片機控制系統(tǒng)的實用性、廣泛性,單片機控制系統(tǒng)不僅成本低、體積小、應用簡便等優(yōu)點,而且便于更換?;贏T89C51單片機的性能參數(shù)和工作原理,應用Keil單片機編譯軟件的C語言編程以及使用該軟件開發(fā)單片機程序,說明設計的交通信號燈模擬控制系統(tǒng)的工作原理、程序流程和硬件結構等相關技術,指出該系統(tǒng)的特點。設計方案或論文提綱設計一種基于AT89C51超低功耗單片機的交通信號燈模擬控制系統(tǒng),詳細闡明交通信號燈模擬控制系統(tǒng)的工作原理,實現(xiàn)了一般交通信號燈控制系統(tǒng)的主要功能及要求,具有實用性。而以一般情況下的交叉十字路口的交通情況為背景,設計并介紹一種通用性很強的交通信號燈模擬控制系統(tǒng),最終完成系統(tǒng)的仿真達到了設計目標。畢業(yè)設計〔論文工作計劃2016年9月份確定選題、9月20號完成初稿、9月30號交給指導老師進行考核修正、10月下旬再將修改設計交給指導老師評定指導教師審核意見指導教師簽字:年月日.用51單片機設計交通信號燈模擬控制系統(tǒng)機電一體化X班XXX指導老師:XXX摘要:城市交通信號燈模擬控制系統(tǒng)模擬了能夠對信號燈進行遠程投時的城市十字路口控制系統(tǒng)功能。借助于單片機開發(fā)板上的已有資源,構建了模擬實際系統(tǒng)功能的單片機擴N82C55控制LED燈模塊、8位七段數(shù)碼管顯示控制模塊和板上擴展接線模塊。在分析實際系統(tǒng)工作流程的基礎上,給出了針對單片機開發(fā)板的模擬系統(tǒng)C51控制程序流程。用于實際系統(tǒng)時,只需要將代碼移植到現(xiàn)場設備并進行具體設置和適當修改即可,可以在滿足客戶需求的前提下最小化系統(tǒng)開發(fā)成本。交通信號燈模擬控制系統(tǒng)模擬了能夠對信號燈進行遠程授時的城市十字路口控制系統(tǒng)功能。基于AT89C51單片機的性能參數(shù)和工作原理,應用Keil單片機編譯軟件的C語言編程以及使用該軟件開發(fā)單片機程序,說明設計的交通信號燈模擬控制系統(tǒng)的工作原理、程序流程和硬件結構等相關技術,指出該系統(tǒng)的特點。設計一種基于AT89C51超低功耗單片機的交通信號燈模擬控制系統(tǒng),詳細闡明了交通信號燈模擬控制系統(tǒng)的工作原理,實現(xiàn)了一般交通信號燈控制系統(tǒng)的主要功能及要求,具有實用性。該系統(tǒng)充分利用了AT89C51單片機的特點,使用現(xiàn)今單片機廣泛采用的C語言編制了系統(tǒng)程序,并利用KeiluVision3軟件進行編譯運行,最終通過Proteus完成了模擬控制系統(tǒng)的仿真。關鍵詞:AT89C51單片機Keil單片機編譯軟件仿真軟件Proteus6C語言交通燈XXXXX學院畢業(yè)設計〔論文指導記錄表學生姓名XXX學號XXXXXXXXXXX系別自動化工程工程系專業(yè)班級2014級機電一體化X班指導教師XXX技術職務講師課題名稱基于51單片機設計交通信號燈模擬控制系統(tǒng)第一次指導情況指導教師簽字:年月日第二次指導情況指導教師簽字:年月日注:指導情況須填明學生在畢業(yè)設計〔論文撰寫過程中存在的問題,指導教師要求修改的內容或改進措施。指導情況填寫不包括下達任務書和開題報告意見。XXXXX學院畢業(yè)設計〔論文初評成績表學生姓名XXX學號XXXXXXXXXXX系別自動化工程系專業(yè)班級2014級機電一體化X班指導教師XXX技術職務講師課題名稱基于51單片機設計交通信號燈模擬控制系統(tǒng)指導教師意見評語:指導教師簽字:年月日初評成績:指導教師簽字:年月日XXXXX學院畢業(yè)設計〔論文成績評定表學生姓名XXX學號XXXXXXXXXXX系別自動化工程系專業(yè)班級2014級機電一體化X班指導教師XXX技術職務講師課題名稱基于51單片機設計交通信號燈模擬控制系統(tǒng)評閱教師意見評閱評語:評閱成績:評閱教師簽字:年月日答辯小組意見答辯評語:答辯成績:答辯小組成員簽字:年月日系畢業(yè)設計〔論文評審委員會意見評定成績系畢業(yè)設計〔論文評審委員會主任簽字:年月日.目錄20040引言1257671 AT89C51單片機的性能參數(shù)和工作原理245371.1 AT89C51單片機的簡要介紹2265311.1.18051單片機的基本結構 213951.1.251單片機管腳說明 4267631.1.3各端口工作原理講解 6307461.1.451單片機的時鐘及復位1050211.2 定時器、計數(shù)器的基本結構及工作原理13175252 基于Keil單片機編譯軟件的C語言編程以及使用該軟件開發(fā)單片機程序的方法14168902.1基于Keil單片機編譯軟件的C語言編程1427372.1.1Keil單片機編譯軟件的簡單介紹14226312.1.2Keil單片機編譯軟件的使用14298623 交通信號燈模擬控制系統(tǒng)的工作原理、程序流程和硬件結構介紹18227763.1 交通信號燈模擬控制系統(tǒng)的工作原理的講解18259273.2 交通信號燈模擬控制系統(tǒng)的硬件結構介紹18100424 交通信號燈模擬控制系統(tǒng)的工作測試仿真介紹20134854.1 仿真軟件Proteus6簡介20150064.2 交通信號燈模擬控制系統(tǒng)的工作測試仿真20259474.2.1控制系統(tǒng)程序分析206440結論2925764致謝: 301205參考文獻:31.引言2005年最新統(tǒng)計數(shù)據(jù)表明,在中國每5分鐘就有一人喪身車輪,每一分鐘都會有一人因為交通事故兒傷殘。每年因交通事故所造成的的經(jīng)濟損失達數(shù)百億元。為了減少交通事故,如今交通紅綠燈已經(jīng)安裝在各個交通路口上,已經(jīng)成為疏導交通車輛最常見和最有效的手段。但這一技術在19世紀就已出現(xiàn)了。1858年,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅,藍兩色的機械扳手式信號燈,用以指揮馬車通行。這是世界上最早的交通信號燈。1868年,英國機械工程師納伊特在倫敦威斯敏斯特區(qū)的議會大廈前的廣場上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩以旋轉式方形玻璃提燈組成,紅色表示"停止",綠色表示"注意"。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。電氣啟動的紅綠燈出現(xiàn)在美國,這種紅綠燈由紅綠黃三色圓形的投光器組成,1914年始安裝于紐約市5號大街的一座高塔上。紅燈亮表示"停止",綠燈亮表示"通行"。1918年,又出現(xiàn)了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把壓力探測器安在地下,車輛一接近紅燈便變?yōu)榫G燈;另一種是用擴音器來啟動紅綠燈,司機遇紅燈時按一下嗽叭,就使紅燈變?yōu)榫G燈。紅外線紅綠燈當行人踏上對壓力敏感的路面時,它就能察覺到有人要過馬路。紅外光束能把信號燈的紅燈延長一段時間,推遲汽車放行,以免發(fā)生交通事故本文以一般情況下的交叉十字路口的交通情況為背景,設計并介紹一種通用性很強的交通信號燈模擬控制系統(tǒng),最終完成系統(tǒng)的仿真達到了設計目標。系統(tǒng)的核心是AT89C51超低功耗單片機,利用Keil軟件進行控制程序的開發(fā)來對交通信號燈模擬控制系統(tǒng)的模擬及控制。文中詳細闡述了AT89C51單片機的性能參數(shù)和工作原理,并介紹了基于Keil單片機編譯軟件的C語言編程以及使用該軟件開發(fā)單片機程序的方法,說明了設計的交通信號燈模擬控制系統(tǒng)的工作原理、程序流程和硬件結構等相關技術,指出了該系統(tǒng)的特點。另外,文中還簡單介紹了電子仿真軟件Proteus6的特點及使用方法。1 AT89C51單片機的性能參數(shù)和工作原理1.1 AT89C51單片機的簡要介紹微控制器是交通信號燈模擬控制系統(tǒng)的核心,它完成對模擬信號的輸入接受處理和控制信號的輸出控制外部設備的功能。AT89系列單片機是通用性強、功耗小、使用廣泛、性能優(yōu)良的微處理芯片。考慮本設計的具體設計要求,選擇AT89C51單片機作為控制核心,它是高性能8位微處理芯片,兼容MCS-51,具有4KB的FLASH存儲空間,32個全雙工可編程I/O口,兩個16位的定時器/計數(shù)器以及6個中斷源等特點,大大的簡化了系統(tǒng)設計。1.1.18051單片機的基本結構在介紹單片機的內部結構之前,我們先了解下我們現(xiàn)在正在使用的計算機五個組成部分:運算器:用于實現(xiàn)算術和邏輯運算。計算機的運算和處理都在這里進行;控制器:是計算機的控制指揮部件,使計算機各部份能自動協(xié)調的工作;存儲器:用于存放程序和數(shù)據(jù);〔又分為內存儲器和外存儲器,內存儲器就如我們電腦的硬盤,外存儲器就如我們的U盤輸入設備:用于將程序和數(shù)據(jù)輸入到計算機〔例如我們電腦的鍵盤、掃描儀;輸出設備:輸出設備用于把計算機數(shù)據(jù)計算或加工的結果以用戶需要的形式顯示或保存〔例如我們的打印機。注:1、通常把運算器和控制器合在一起稱為中央處理器〔CentralProcessingUnit,簡稱CPU。

2、通常把外存儲器、輸入設備和輸出設備合在一起稱之為計算機的外部設備。典型系列單片機是由下圖所示的器件組成的:1中央處理器〔CPU:

剛剛講過,需要提醒的是MCS-51的CPU能處理8位二進制數(shù)或代碼;2內部數(shù)據(jù)存儲器〔RAM:

8051芯片共有256個RAM單元,其中后128單元被專用寄存器占用〔稍后我們詳解,能作為寄存器供用戶使用的只是前128單元,用于存放可讀寫的數(shù)據(jù)。因此通常所說的內部數(shù)據(jù)存儲器就是指前128單元,簡稱內部RAM。地址范圍為00H~FFH〔256B。是一個多用多功能數(shù)據(jù)存儲器,有數(shù)據(jù)存儲、通用工作寄存器、堆棧、位地址等空間。3內部程序存儲器〔ROM:

在前面也已講過,8051內部有4KB的ROM,用于存放程序、原始數(shù)據(jù)或表格。因此稱之為程序存儲器,簡稱內部RAM。地址范圍為0000H~FFFFH〔64KB。4定時器/計數(shù)器

8051共有2個16位的定時器/計數(shù)器,以實現(xiàn)定時或計數(shù)功能,并以其定時或計數(shù)結果對計算機進行控制。定時時靠內部分頻時鐘頻率計數(shù)實現(xiàn),做計數(shù)器時,對P3.4〔T0或P3.5〔T1端口的低電平脈沖計數(shù)。5并行I/O口

MCS-51共有4個8位的I/O口〔P0、P1、P2、P3以實現(xiàn)數(shù)據(jù)的輸入輸出。6串行口

MCS-51有一個全雙工的串行口,以實現(xiàn)單片機和其它設備之間的串行數(shù)據(jù)傳送。該串行口功能較強,既可作為全雙工異步通信收發(fā)器使用,也可作為移位器使用。RXD〔P3.0腳為接收端口,TXD〔P3.1腳為發(fā)送端口。7中斷控制系統(tǒng)

MCS-51單片機的中斷功能較強,以滿足不同控制應用的需要。共有5個中斷源,即外中斷2個,定時中斷2個,串行中斷1個,全部中斷分為高級和低級共二個優(yōu)先級別。8時鐘電路

MCS-51芯片的內部有時鐘電路,但石英晶體和微調電容需外接。時鐘電路為單片機產(chǎn)生時鐘脈沖序列。系統(tǒng)允許的晶振頻率為12MHZ。1.1.251單片機管腳說明MCS-51是標準的40引腳雙列直插式集成電路芯片,引腳分布請參照單片機引腳圖:lP0.0~P0.7P0口8位雙向口線〔在引腳的39~32號端子。lP1.0~P1.7P1口8位雙向口線〔在引腳的1~8號端子。lP2.0~P2.7P2口8位雙向口線〔在引腳的21~28號端子。lP3.0~P3.7P2口8位雙向口線〔在引腳的10~17號端子。這4個I/O口具有不完全相同的功能,需要不同等待。P0口有三個功能:1、外部擴展存儲器時,當做數(shù)據(jù)總線〔如圖1中的D0~D7為數(shù)據(jù)總線接口2、外部擴展存儲器時,當作地址總線〔如圖1中的A0~A7為地址總線接口3、不擴展時,可做一般的I/O使用,但內部無上拉電阻,作為輸入或輸出時應在外部接上拉電阻。P1口只做I/O口使用:其內部有上拉電阻。P2口有兩個功能:1、擴展外部存儲器時,當作地址總線使用2、做一般I/O口使用,其內部有上拉電阻;P3口有兩個功能:除了作為I/O使用外〔其內部有上拉電阻,還有一些特殊功能,由特殊寄存器來設置,具體功能請參考我們后面的引腳說明。有內部EPROM的單片機芯片〔例如8751,為寫入程序需提供專門的編程脈沖和編程電源,這些信號也是由信號引腳的形式提供的,即:編程脈沖:30腳〔ALE/PROG編程電壓〔25V:31腳〔EA/Vpp。ALE地址鎖存控制信號:在系統(tǒng)擴展時,ALE用于控制把P0口的輸出低8位地址送鎖存器鎖存起來,以實現(xiàn)低位地址和數(shù)據(jù)的隔離。參見圖2〔8051擴展2KBEEPROM電路,在圖中ALE與4LS373鎖存器的G相連接,當CPU對外部進行存取時,用以鎖住地址的低位地址,即P0口輸出。由于ALE是以晶振六分之一的固定頻率輸出的正脈沖,當系統(tǒng)中未使用外部存儲器時,ALE腳也會有六分之一的固定頻率輸出,因此可作為外部時鐘或外部定時脈沖使用PSEN外部程序存儲器讀選通信號:在讀外部ROM時PSEN低電平有效,以實現(xiàn)外部ROM單元的讀操作。1、內部ROM讀取時,PSEN不動作;2、外部ROM讀取時,在每個機器周期會動作兩次;3、外部RAM讀取時,兩個PSEN脈沖被跳過不會輸出;4、外接ROM時,與ROM的OE腳相接。EA/VPP訪問和序存儲器控制信號1、接高電平時:CPU讀取內部程序存儲器〔ROM擴展外部ROM:當讀取內部程序存儲器超過0FFFH〔80511FFFH〔8052時自動讀取外部ROM。2、接低電平時:CPU讀取外部程序存儲器〔ROM。3、8751燒寫內部EPROM時,利用此腳輸入21V的燒寫電壓。RST復位信號:當輸入的信號連續(xù)2個機器周期以上高電平時即為有效,用以完成單片機的復位初始化操作。XTAL1和XTAL2外接晶振引腳。當使用芯片內部時鐘時,此二引腳用于外接石英晶體和微調電容;當使用外部時鐘時,用于接外部時鐘脈沖信號。VCC:電源+5V輸入VSS:GND接地。1.1.3各端口工作原理講解P0端口:總線I/O端口,雙向,三態(tài),數(shù)據(jù)地址分時復用,該端口除用于數(shù)據(jù)的輸入/輸出外,在8031單片機外接程序存儲器時,還分時地輸出/輸入地址/指令。由Po端口輸出的信號無鎖存,輸入的信息有讀端口引腳和讀端口鎖存器之分。P0端口8位中的一位結構圖見下圖:PO口的結構及工作原理PO口的結構及工作原理由上圖可見,P0端口由鎖存器、輸入緩沖器、切換開關與相應控制電路、場效應管驅動電路構成。

在輸出狀態(tài)下,當切換開關MUX向下時,從內部總線來的數(shù)據(jù)經(jīng)鎖存器反相和場效應管T2反相,輸出到端口引腳線上。此時,場效應管T1關斷,因而這種輸出方式應為外接上拉電阻的漏極開路式。當切換開關MUX向上時,一位地址/數(shù)據(jù)信號分時地輸出到端口線上。此外,由T1、T2的通斷組合,形成高電平、低電平與高阻浮動三態(tài)的輸出。

在輸入狀態(tài)下,從鎖存器和從引腳上讀來的信號一般是一致的,但也有例外。例如,當從內部總線輸出低電平后,鎖存器Q=0,Q=1,場效應管T2開通,端口線呈低電平狀態(tài)。此時無論端口線上外接的信號是低電乎還是高電平,從引腳讀入單片機的信號都是低電平,因而不能正確地讀入端口引腳上的信號。又如,當從內部總線輸出高電平后,鎖存器Q=1,Q=0,場效應管T2截止。如外接引腳信號為低電平,從引腳上讀入的信號就與從鎖存器讀入的信號不同。為此,8031單片機在對端口P0一P3的輸入操作上,有如下約定:為此,8051單片機在對端口P0一P3的輸入操作上,有如下約定:凡屬于讀-修改-寫方式的指令,從鎖存器讀入信號,其它指令則從端口引腳線上讀入信號。P1端口:通用I/0端口,準雙向靜態(tài)口。輸出的信息有鎖存,輸入有讀引腳和讀鎖存器之分。P1端口的一位結構見下圖.由圖可見,P1端口與P0端口的主要差別在于,P1端口用內部上拉電阻R代替了P0端口的場效應管T1,并且輸出的信息僅來自內部總線。由內部總線輸出的數(shù)據(jù)經(jīng)鎖存器反相和場效應管反相后,鎖存在端口線上,所以,P1端口是具有輸出鎖存的靜態(tài)口。

由下圖可見,要正確地從引腳上讀入外部信息,必須先使場效應管關斷,以便由外部輸入的信息確定引腳的狀態(tài)。為此,在作引腳讀入前,必須先對該端口寫入l。具有這種操作特點的輸入/輸出端口,稱為準雙向I/O口。8031單片機的P1、P2、P3都是準雙向口。P0端口由于輸出有三態(tài)功能,輸入前,端口線已處于高阻態(tài),無需先寫入l后再作讀操作。P1口功能結構圖P1口功能結構圖

單片機復位后,各個端口已自動地被寫入了1,此時,可直接作輸入操作。如果在應用端口的過程中,已向P1一P3端口線輸出過0,則再要輸入時,必須先寫1后再讀引腳,才能得到正確的信息。此外,隨輸入指令的不同,H端口也有讀鎖存器與讀引腳之分。

Pl端口是803l單片機中唯一僅有的單功能I/O端口,并且沒有特定的專用功能,輸出信號鎖存在引腳上,故又稱為通用靜態(tài)口。P2端口:P2端口的一位結構見下圖:P2端口功能結構圖P2端口功能結構圖由圖可見,P2端口在片內既有上拉電阻,又有切換開關MUX,所以P2端口在功能上兼有P0端口和P1端口的特點。這主要表現(xiàn)在輸出功能上,當切換開關MUX向左時,從內部總線輸出的一位數(shù)據(jù)經(jīng)反相器和場效應管反相后,輸出在端口引腳線上;當MUX向右時,輸出的一位地址信號也經(jīng)反相器和場效應管反相后,輸出在端口引腳線上。由于8031單片機必須外接程序存儲器才能構成應用電路,而P2端口就是用來周期性地輸出從外存中取指令的地址<高8位地址>,因此,P2端口的切換開關MUX總是在進行切換,分時地輸出從內部總線來的數(shù)據(jù)和從地址信號線上來的地址。因此P2端口是動態(tài)的I/O端口。輸出數(shù)據(jù)雖被鎖存,但不是穩(wěn)定地出現(xiàn)在端口線上。其實,這里輸出的數(shù)據(jù)往往也是一種地址,只不過是外部RAM的高8位址。在輸入功能方面,P2端口與P0和H端口相同,有讀引腳和讀鎖存器之分,并P2端口也是準雙向口。P3端口:雙功能靜態(tài)I/O口P3端口的一位結構見下圖:P3口功能結構圖P3口功能結構圖由上圖可見,P3端口和Pl端口的結構相似,區(qū)別僅在于P3端口的各端口線有兩種功能選擇。當處于第一功能時,第二輸出功能線為1,此時,內部總線信號經(jīng)鎖存器和場效應管輸入/輸出,其作用與P1端口作用相同,也是靜態(tài)準雙向I/O端口。當處于第二功能時,鎖存器輸出1,通過第二輸出功能線輸出特定的內含信號,在輸入方面,即可以通過緩沖器讀入引腳信號,還可以通過替代輸入功能讀入片內的特定第二功能信號。由于輸出信號鎖存并且有雙重功能,故P3端口為靜態(tài)雙功能端口。P3口的特殊功能〔即第二功能:口線第二功能信號名稱P3.0RXD串行數(shù)據(jù)接收P3.1TXD串行數(shù)據(jù)發(fā)送P3.2INT0外部中斷0申請P3.3INT1外部中斷1申請P3.4T0定時器/計數(shù)器0計數(shù)輸入P3.5T1定時器/計數(shù)器1計數(shù)輸入P3.6WR外部RAM寫選通P3.7RD外部RAM讀選通使P3端品各線處于第二功能的條件是:1\串行I/O處于運行狀態(tài)<RXD,TXD>;2\打開了處部中斷<INT0,INT1>;3\定時器/計數(shù)器處于外部計數(shù)狀態(tài)<T0,T1>4\執(zhí)行讀寫外部RAM的指令<RD,WR>在應用中,如不設定P3端口各位的第二功能<WR,RD信叼的產(chǎn)生不用設置>,則P3端口線自動處于第一功能狀態(tài),也就是靜態(tài)I/O端口的工作狀態(tài)。在更多的場合是根據(jù)應用的需要,把幾條端口線設置為第二功能,而另外幾條端口線處于第一功能運行狀態(tài)。在這種情況下,不宜對P3端口作字節(jié)操作,需采用位操作的形式。1.1.451單片機的時鐘及復位單片機的時鐘信號用來提供單片機片內各種微操作的時間基準,復位操作則使單片機的片內電路初始化,使單片機從一種確定的初態(tài)開始運行。時鐘電路:

8051單片機的時鐘信號通常用兩種電路形式得到:內部振蕩方式和外部振蕩方式。

在引腳XTAL1和XTAL2外接晶體振蕩器<簡稱晶振>或陶瓷諧振器,就構成了內部振蕩方式。由于單片機內部有一個高增益反相放大器,當外接晶振后,就構成了自激振蕩器并產(chǎn)生振蕩時鐘脈沖。內部振蕩方式的外部電路如下圖所示。

圖中,電容器Col,C02起穩(wěn)定振蕩頻率、快速起振的作用,其電容值一般在5-30pF。晶振頻率的典型值為12MH2,采用6MHz的情況也比較多。內部振蕩方式所得的時鐘情號比較穩(wěn)定,實用電路中使用較多。

外部振蕩方式是把外部已有的時鐘信號引入單片機內。這種方式適宜用來使單片機的時鐘與外部信號保持同步。外部振蕩方式的外部電路如下圖所示。內部振蕩方式外部振蕩方式內部振蕩方式外部振蕩方式由上圖可見,外部振蕩信號由XTAL2引入,XTAL1接地。為了提高輸入電路的驅勸能力,通常使外部信號經(jīng)過一個帶有上拉電阻的TTL反相門后接入XTAL2。基本時序單位:單片機以晶體振蕩器的振蕩周期<或外部引入的時鐘周期>為最小的時序單位,片內的各種微操作都以此周期為時序基準。

振蕩頻率二分頻后形成狀態(tài)周期或稱s周期,所以,1個狀態(tài)周期包含有2個振蕩周期。振蕩頻率foscl2分頻后形成機器周期MC。所以,1個機器周期包含有6個狀態(tài)周期或12個振蕩周期。1個到4個機器周期確定一條指令的執(zhí)行時間,這個時間就是指令周期。8031單片機指令系統(tǒng)中,各條指令的執(zhí)行時間都在1個到4個機器周期之間。4種時序單位中,振蕩周期和機器周期是單片機內計算其它時間值<例如,波特率、定時器的定時時間等>的基本時序單位。下面是單片機外接晶振頻率12MHZ時的各種時序單位的大?。?/p>

振蕩周期=1/fosc=1/12MHZ=0.0833us復位電路:當MCS-5l系列單片機的復位引腳RST<全稱RESET>出現(xiàn)2個機器周期以上的高電平時,單片機就執(zhí)行復位操作。如果RST持續(xù)為高電平,單片機就處于循環(huán)復位狀態(tài)。

根據(jù)應用的要求,復位操作通常有兩種基本形式:上電復位和上電或開關復位。

上電復位要求接通電源后,自動實現(xiàn)復位操作。常用的上電復位電路如下圖A中左圖所示。圖中電容C1和電阻R1對電源十5V來說構成微分電路。上電后,保持RST一段高電平時間,由于單片機內的等效電阻的作用,不用圖中電阻R1,也能達到上電復位的操作功能,如下圖<A>中右圖所示。單片機的復位電路A:上電復位B:上電或開關復位電路單片機的復位電路A:上電復位B:上電或開關復位電路上電或開關復位要求電源接通后,單片機自動復位,并且在單片機運行期間,用開關操作也能使單片機復位。常用的上電或開關復位電路如上圖<B>所示。上電后,由于電容C3的充電和反相門的作用,使RST持續(xù)一段時間的高電平。當單片機已在運行當中時,按下復位鍵K后松開,也能使RST為一段時間的高電平,從而實現(xiàn)上電或開關復位的操作。

根據(jù)實際操作的經(jīng)驗,下面給出這兩種復位電路的電容、電阻參考值。

上圖<A>中:Cl=10-30uF,R1=1kO

上圖1.27<B>中:C:=1uF,Rl=lkO,R2=10kO單片機復位后的狀態(tài):單片機的復位操作使單片機進入初始化狀態(tài),其中包括使程序計數(shù)器PC=0000H,這表明程序從0000H地址單元開始執(zhí)行。單片機冷啟動后,片內RAM為隨機值,運行中的復位操作不改變片內RAM區(qū)中的內容,21個特殊功能寄存器復位后的狀態(tài)為確定值。1.2 定時器、計數(shù)器的基本結構及工作原理本設計中應用了定時器0〔T0用于計時,因此這里有必要介紹一下定時器、計數(shù)器的基本結構及工作原理。定時器、計數(shù)器定時器/計數(shù)器簡稱定時器,其作用主要包括產(chǎn)生各種時標間隔、記錄外部事件的數(shù)量等,是微機中最常用、最基本的部件之一。803l單片機有2個16位的定時器/計數(shù)器:定時器0<T0>和定時器1<T1>。

T0由2個定時寄存器TH0和TL0構成,T1則由TH1和TL1構成,它們都分別映射在特殊功能寄存器中,從而可以通過對特殊功能寄存器中這些寄存器的讀寫來實現(xiàn)對這兩個定時器的操作。作定時器時,每一個機器周期定時寄存器自動加l,所以定時器也可看作是計量機器周期的計數(shù)器。由于每個機器周期為12個時鐘振蕩周期,所以定時的分辨率是時鐘振蕩頻率的1/12。作計數(shù)器時,只要在單片機外部引腳T0<或T1>有從1到0電平的負跳變,計數(shù)器就自動加1。計數(shù)的最高頻率一般為振蕩頻率的l/24。2 基于Keil單片機編譯軟件的C語言編程以及使用該軟件開發(fā)單片機程序的方法2.1基于Keil單片機編譯軟件的C語言編程2.1.1Keil單片機編譯軟件的簡單介紹基于8051的編程語言通常有兩種:一種是匯編語言,另一種就是C語言了。匯編語言生成的機器代碼效率很高但是可讀性不強,復雜一點的程序更是難讀,而C語言在大多數(shù)情況下其機器代碼效率和匯編語言相當,但可讀性和可移植性卻遠遠超過匯編語言,而且C語言還允許嵌入?yún)R編語言代碼來解決少數(shù)的高時效性代碼編寫問題。因此,本設計中采用C語言來進行系統(tǒng)控制程序代碼的編寫。使用C語言肯定要使用到C語言編譯器了,以便把寫好的C程序編譯生成為可執(zhí)行的機器碼。本設計所采用的KeiluVision3是眾多單片機應用開發(fā)軟件當中的優(yōu)秀軟件之一,在國內外有廣泛的使用范圍,它支持眾多不同公司的MCS51架構芯片,集編輯、編譯和仿真等于一體,同時還支持PLM、匯編和C語言的程序設計,它的界面友好,易學易用,在調試仿真各方面都擁有強大的功能。2.1.2Keil單片機編譯軟件的使用按以下步驟可以建立基于89C51的C語言程序項目:第一步:打開運行KeiluVision3軟件,點擊Project菜單,選擇NewProject,接著彈出創(chuàng)建新項目對話框,輸入項目名稱后點擊保存即可,如下圖所示:第二步:選取芯片。在彈出對話框中選取所要的芯片,這里選擇Ateml公司的AT89C51單片機。如下圖所示:第三步:在項目中加入程序文件,這里是加入C語言〔.c文件,如果沒有現(xiàn)有的文件則可以選擇新建。如下圖所示:第四步:現(xiàn)在在項目中如果已經(jīng)是寫好的程序就可以開始編譯了,編譯之前還要配置一下輸出文件的格式〔.hex。如下圖所示:第五步:最終生成的HEX文件就可以燒寫到芯片內用做控制使用了。3 交通信號燈模擬控制系統(tǒng)的工作原理、程序流程和硬件結構介紹3.1 交通信號燈模擬控制系統(tǒng)的工作原理的講解現(xiàn)今的社會快速發(fā)展,隨著我國改革開放的不斷深入,我國的經(jīng)濟迅猛發(fā)展,人民的生活水平持續(xù)提高,現(xiàn)代的交通工具越來越多尤其是機動車輛的數(shù)量急劇增長,由此帶來了我國城市交通情況惡化,大一點的城市交通堵塞、交通事故頻有發(fā)生,因此,改善城市交通情況是我們面臨的一項嚴峻而由緊迫的問題。采用現(xiàn)代的交通信號指示系統(tǒng)對于改善交通問題有很大的幫助,這套系統(tǒng)由于長期的使用而不斷得到完善技術方面已經(jīng)相當成熟了,它在各國的道路交通系統(tǒng)上都有著廣泛的應用。我國建立起現(xiàn)代的交通系統(tǒng)較晚,在有的方面還是不夠完善和成熟,所以,對于交通信號指示系統(tǒng)的試驗和改進是有一定的必要性的,這將對我國的城市交通情況持續(xù)改善有極大裨益。本設計要求使用8051單片機設計一交通信號燈模擬控制系統(tǒng),通過建立模擬系統(tǒng)可以在低廉的成本、直接的觀測性和極大的靈活性基礎上對交通系統(tǒng)進行持續(xù)的模擬試驗和改進,使實際的道路交通指示系統(tǒng)不斷完善。本文中,筆者是按最常見的A、B道交叉組成十字路口〔A是主道,B是支道紅黃綠指示燈系統(tǒng)來建立模型的,并且根據(jù)實際情況對該模型賦予如下的特點:〔1正常情況下A、B道〔A、B道交叉組成十字路口,A是主道,B是支道輪流放行,A道放行1分鐘〔其中5秒用于警告,B道放行30秒〔其中5秒用于警告?!?一道有車而另一道無車〔用按鍵開關K1、K2模擬時,使有車車道放行。〔3有緊急車輛通過〔用按鍵開關K0模擬時,A、B道均為紅燈。以上也可認為是該設計的設計要求,所設計的模擬系統(tǒng)就必須嚴格按照這些要求來工作運行。3.2 交通信號燈模擬控制系統(tǒng)的硬件結構介紹本設計采用AT89C51作為系統(tǒng)控制核心,外接12M的晶振電路,使用3組按鍵開關K0、K1和K2分別模擬作為緊急車輛通過指示開關、主道狀態(tài)指示開關和支道狀態(tài)指示開關,具體硬件結構圖如下圖所示。在本設計中,由P1.0、P1.1和P1.2來分別接3組按鍵開關K0、K1和K2用來檢測模擬信號的輸入,使用P3.0、P3.1和P3.2分別來輸出控制信號控制主道信號的各組指示燈,用P2.0、P2.1和P2.2分別來輸出控制信號控制支道信號的各組指示燈。在結構圖中,還另外接入了時間指示表來用來計時。4 交通信號燈模擬控制系統(tǒng)的工作測試仿真介紹4.1 仿真軟件Proteus6簡介PROTEUS系統(tǒng)包括ISIS.EXE〔電路原理圖設計、電路原理仿真,ARES.EXE〔印刷電路板設計兩大主要程序三大基本功能。其中最令人稱贊的是電路原理仿真功能,除了普通分離器件、小規(guī)模集成器件的仿真功能以外,還具有多種帶有CPU的可編程序器件的仿真功能,如51系列、68系列、PIC系列等;具有多種總線、儲存器、RS232終端仿真功能;具有電動機、液晶顯示器等特殊器件的仿真功能;對可編程序器件可以靈活地外掛各種編譯、編輯工具,使用非常方便。具有多種虛擬儀器幫助完成實時仿真調試;具有傳輸特性、頻率特性、電壓波動分析、噪聲分析等多種圖形分析工具、可以完成電路參數(shù)和可靠性分析??梢酝瓿桑弘娐吩韺嶒灐搽娮琛㈦娙?、電感、開關、繼電器、電機、指示燈等 模擬電子技術實驗〔二極管、三極管、場效應管、晶閘管、光電管、運算放大器等數(shù)字電子技術實驗〔4000系列、74系列、ECL10000系列邏輯器件、PLD器件等單片機與接口實驗〔51系列、68系列、PIC系列、儲存器、ADC、DAC器件等本文中設計是采用PROTEUS系統(tǒng)對已經(jīng)設計的交通信號燈模擬控制系統(tǒng)進行仿真和調試來得到所要求的結果,采用這種方式的優(yōu)點是顯而易見的。4.2 交通信號燈模擬控制系統(tǒng)的工作測試仿真4.2.1控制系統(tǒng)程序分析按照上一節(jié)的程序流程圖可以編寫出控制系統(tǒng)的C程序,具體程序如下:#include<reg52.h>sbitmain_red=P3^0; //定義兩組交通燈〔主、支道sbitmain_yel=P3^1;sbitmain_gre=P3^2;sbitsub_red=P2^0;sbitsub_yel=P2^1;sbitsub_gre=P2^2;sbitbutton1=P1^0; //K0緊急車輛通過指示開關 sbitbutton2=P1^1; //K1支道狀態(tài)指示開關sbitbutton3=P1^2; //K2主道狀態(tài)指示開關unsignedintnum0;voidtime0_int<unsignedinttime0_num>;voidini<> { P3=0xff; P1=0xff; P2=0xff; main_yel=0; main_gre=0; main_red=1; sub_yel=0; sub_gre=0; sub_red=1; }voidmain<>{ ini<>;while<1>{ while<<button1!=0>&&<button2!=0>&&<button3!=0>> { if<<button1!=0>&&<button2!=0>&&<button3!=0>> { main_yel=1; //主道順序 main_gre=0; main_red=0; time0_int<5000>; main_yel=0; main_gre=1; main_red=0; time0_int<55000>; main_yel=0; main_gre=0; main_red=1; } if<<button1!=0>&&<button2!=0>&&<button3!=0>> { sub_yel=1; //支道順序 sub_gre=0; sub_red=0; time0_int<5000>; sub_yel=0; sub_gre=1; sub_red=0; time0_int<25000>; sub_yel=0; sub_gre=0; sub_red=1; } } while<<button1==0>> //緊急車輛通過時,兩道均不放行 { main_yel=0; main_gre=0; main_red=1; sub_yel=0; sub_gre=0; sub_red=1; } while<<button1!=0>&&<button2!=0>&&<button3==0>> //主道有車,支道無車時,主道放行 { main_yel=0; main_gre=1; main_red=0; sub_yel=0; sub_gre=0; sub_red=1; } while<<button1!=0>&&<button2==0>&&<button3!=0>> //支道有車,主道無車時,支道放行 { main_yel=0; main_gre=0; main_red=1; sub_yel=0; sub_gre=1; sub_red=0; } } }voidtime0_int<unsignedinttime0_num> //計時器0計時函數(shù),time0_num為計時變量,單位為ms{ num0=0; TMOD=0x11;//設置定時器0為工作方式1 TH0=<64536>/256; TL0=<64536>%256; EA=1;//開總中斷 ET0=1;//開定時器0中斷 TR0=1;//啟動定時器0 while<num0<time0_num> {;} TR0=0; ET0=0; }voidtime0<>interrupt1 //計時器0中斷響應函數(shù){ TH0=<64536>/256; //計時器計時1ms,寫入初值 TL0=<64536>%256; num0++;}現(xiàn)對以上程序進行具體分析并示意仿真情況。程序開始使用#include<reg52.h>語句進行預處理,把頭文件reg52.h包含在內,之后對單片機的各個端口就可以按定義來訪問了;接著,采用sbit關鍵詞預定義了各個指示燈和狀態(tài)開關所對應的端口;unsignedintnum0語句是定義了一個無符號整型的全局變量num0;voidtime0_int<unsignedinttime0_num>是對后文計時函數(shù)的聲明以便在主程序中調用;接下來定義了初始化函數(shù)ini<>可以在開始執(zhí)行程序的時候對整個系統(tǒng)進行初始化〔見下圖。主函數(shù)main<>開始先調用了ini<>進行初始化,然后以while<1>大循環(huán)進入控制程序,循環(huán)語句while<<button1!=0>&&<button2!=0>&&<button3!=0>>對三組狀態(tài)開關檢測來確定是否為正常情況,如果是則執(zhí)行正常情況下控制主支道輪流放行:按要求主道指示燈黃燈先亮5秒以示警,接著主道綠燈亮55秒放行,最后主道紅燈亮禁止通行;同時,支道指示燈黃燈先亮5秒以示警,接著支道綠燈亮25秒放行,最后支道紅燈亮禁止通行輪到主道開始放行〔見下圖。如果不是則向下執(zhí)行開始檢測是否為緊急車輛通過的情況,若緊急車輛通過則兩道均不放行〔見下圖。如果不是則向下執(zhí)行開始檢測是否為主道有車,支道無車的情況,是則主道放行,支道禁止〔見下圖。如果不是則向下執(zhí)行開始檢測是否為支道有車,主道無車的情況,是則支道道放行,主道禁止〔見下圖。至此程序執(zhí)行了完整一個周期,之后循環(huán)執(zhí)行,系統(tǒng)運行正確。結論本文通過對基于8051系列單片機的交通信號燈模擬控制系統(tǒng)的設計及仿真,取得了如下結果:=1\*GB3①提出了一種以AT89C51超低功耗單片機作為控制核心,獲得符合理想設計要求的技術方案;=2\*GB3②取得了使用Proteus6軟件進行仿真實驗調試來得到最終方案結果的低成本、高效率、不同于以往的設計方法,具有具有一定的新穎性;=3\*GB3③設計了一種價格低廉、通用性強的交通信號燈模擬控制系統(tǒng),對后續(xù)的交通模擬實驗

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論