十字路口信號燈控制系統(tǒng)的設(shè)計
十字路口信號燈控制系統(tǒng)的設(shè)計,十字路口,信號燈,控制系統(tǒng),設(shè)計
摘 要
交通在人們的日常生活中占有重要的地位,隨著人們社會活動的日益頻繁,這點更是體現(xiàn)的淋漓盡致。交通信號燈的出現(xiàn),使交通得以有效管制,對于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。本系統(tǒng)采用單片機AT89C51為中心器件來設(shè)計交通燈控制器,系統(tǒng)實用性強、操作簡單、擴展性強。本設(shè)計就是采用單片機模擬十字路口交通燈的各種狀態(tài)顯示以及倒計時時間。軟件上采用Keil編程,主要編寫了主程序,BCD數(shù)碼管顯示程序,中斷程序延時程序等。經(jīng)過整機調(diào)試,實現(xiàn)了對十字路口交通燈的模擬
關(guān)鍵詞:交通燈;AT89C51單片機;多功能控制;仿真
I
黑龍江工程學(xué)院本科生畢業(yè)設(shè)計
ABSTRACT
Traffic in People's Daily life has important position, as people of social activities have become increasingly frequent, this is reflected the incisively and vividly. The emergence of the traffic lights, traffic is effectively controlled, for facilitating traffic flow, improve road capacity, reduce traffic accidents have obvious effect. The system USES AT89C51 single chip for center device to designing traffic light controller, system practical, simple operation and expandability. This design is simulated by single chip microcomputer intersection traffic lights to the various states display, and the countdown time.
Software is used on Keil programming, mainly to write the main program, LED digital tube show program, interruption program delay procedures, etc. After the commissioning, realize the intersection of traffic simulation.
Key words: Traffic lights; AT89C51 Microcontroller; AT89C51 single-chip microcomputer; Multi-function control
II
十字路口交通燈單片機控制系統(tǒng)設(shè)計與仿真
第1章 緒 論
1.1引言
隨著社會的發(fā)展和進步,路上的車輛越來越多,而道路建設(shè)往往跟不上城市發(fā)展的速度,因此城市交通問題日益突出,經(jīng)常在十字路口等交通繁忙的地方發(fā)生堵塞情況,出現(xiàn)交通混亂。為了解決車和路的矛盾,常用的有兩種方法:一是控制需求,最直接的辦法就是限制車輛的增加;二是增加供給,也就是修路。但是這兩個辦法都有其局限性。我國汽車工業(yè)正處在起步階段,限制車輛的增加不是解決問題的好方法。而采取增加供給,即大量修路,在資源、環(huán)境矛盾越來越突出的今天,有限的源和財力以及環(huán)境的壓力,也將受到限制。
由于我國經(jīng)濟的快速發(fā)展從而導(dǎo)致了汽車數(shù)量的猛增,大中型城市的城市交通,正面臨著嚴(yán)峻的考驗,從而導(dǎo)致交通問題日益嚴(yán)重,其主要表現(xiàn)如下:交通事故頻發(fā),對人類生命安全造成極大威脅;交通擁堵嚴(yán)重,導(dǎo)致出行時間增加,能源消耗加大;空氣污染和噪聲污染程度日益加深等。日常的交通堵塞成為人們司空見慣而又不得不忍受的問題,在這種背景下,結(jié)合我國城市道路交通的實際情況,開發(fā)出真正適合我們自身特點的智能信號燈控制系統(tǒng)已經(jīng)成為當(dāng)前的主要任務(wù)。隨著電子技術(shù)的發(fā)展,利用單片機技術(shù)對交通燈進行智能化管理,已成為目前廣泛采用的方法。
這就需要依靠除限制需求和提供道路設(shè)施之外的其他方法來滿足日益增長的交通需求。交通系統(tǒng)正是解決這一矛盾的途徑之一。
1.2 選題背景及研究的目的與意義
1.2.1 選題背景
近年來隨著科技的飛速發(fā)展,單片機的應(yīng)用正在不斷地走向深入,同時也帶動著傳統(tǒng)控制的日新月異更新。在自動控制的單片機應(yīng)用系統(tǒng)中,單片機往往是作為一個核心部件來使用,僅單片機方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象特點的軟件結(jié)合,加以完善。
十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實現(xiàn)這井然秩序呢?靠的是交通信號燈的自動指揮系統(tǒng)。交通信號燈控制方式很多。本系統(tǒng)采用MSC-51系列單片機AT89C51為中心器件來設(shè)計交通燈控制器,實現(xiàn)了通過單片機芯片的P0口設(shè)置紅、綠燈燃亮?xí)r間的功能;顯示時間直接通過單片機的P1口輸出,系統(tǒng)實用性強、操作簡單、擴展性強。
隨著電子技術(shù)的發(fā)展,電子設(shè)計的方式也不斷增多,proteus嵌入式虛擬開發(fā)系統(tǒng)與仿真平臺是一款可以實現(xiàn)數(shù)字電路,模擬電路,微控制系統(tǒng)仿真以及pcb設(shè)計等功能的eda軟件。電路的軟,硬的設(shè)計與調(diào)試都是在計算機模擬的環(huán)境下進行的。
基于這一設(shè)計思想開發(fā)的proteus軟件,可以在原理設(shè)計圖設(shè)計階段對設(shè)計的電路進行驗證,并可以通過改變原件參數(shù)使整個電路優(yōu)化。
當(dāng)今,紅綠燈安裝在各個道口上,已經(jīng)成為疏導(dǎo)交通車輛最常見和最有效的手段。但這一技術(shù)在19世紀(jì)就已出現(xiàn)了。
1858年,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅,藍(lán)兩色的機械扳手式信號燈,用以指揮馬車通行。這是世界上最早的交通信號燈。1868年,英國機械工程師納伊特在倫敦威斯敏斯特區(qū)的議會大廈前的廣場上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩以旋轉(zhuǎn)式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。
電氣啟動的紅綠燈出現(xiàn)在美國,這種紅綠燈由紅綠黃三色圓形的投光器組成,1914年始安裝于紐約市5號大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。
1918年,又出現(xiàn)了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把壓力探測器安在地下,車輛一接近紅燈便變?yōu)榫G燈;另一種是用擴音器來啟動紅綠燈,司機遇紅燈時按一下嗽叭,就使紅燈變?yōu)榫G燈。紅外線紅綠燈當(dāng)行人踏上對壓力敏感的路面時,它就能察覺到有人要過馬路。紅外光束能把信號燈的紅燈延長一段時間,推遲汽車放行,以免發(fā)生交通事故。
信號燈的出現(xiàn),使交通得以有效管制,對于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。
1968年,聯(lián)合國《道路交通和道路標(biāo)志信號協(xié)定》對各種信號燈的含義作了規(guī)定。綠燈是通行信號,面對綠燈的車輛可以直行,左轉(zhuǎn)彎和右轉(zhuǎn)彎,除非另一種標(biāo)志禁止某一種轉(zhuǎn)向。左右轉(zhuǎn)彎車輛都必須讓合法地正在路口內(nèi)行駛的車輛和過人行橫道的行人優(yōu)先通行。紅燈是禁行信號,面對紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號,面對黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時可以進入交叉路口。
1.2.2 研究的目的與意義
研究目的:交通是城市經(jīng)濟活動的命脈,對城市經(jīng)濟發(fā)展、人民生活水平的提高起著十分重要的作用。汽車現(xiàn)已成為人們?nèi)粘I畋夭豢缮俚慕煌üぞ?。汽車給人們帶來便利的同時,也帶來了一系列令人困惑的問題,如環(huán)境污染、交通擁擠、交通事故頻繁發(fā)生、給人們的生命財產(chǎn)帶來了很大的損失。城市交通問題困擾城市的發(fā)展、制約城市經(jīng)濟建設(shè)的重要因素、人們對于交通有效控制的意識越來越強烈。
城市交通信號控制是通過對交通的調(diào)節(jié)、警告和誘導(dǎo)以達(dá)到改善人和貨物的運輸安全,提高運輸效率。其目標(biāo)在于改善交通的流量,更好地利用現(xiàn)有運輸能力,提高交通流的安全性、快捷性和舒適性。
交叉口時組成城市道路網(wǎng)的基本單元,城市交通控制分為單交叉口控制和多交叉口協(xié)調(diào)控制,并非前者比后者控制效果好,他們各自有自己的適用范圍。單交叉口負(fù)擔(dān)著線控、面控制方案的落實。
我國城市建設(shè)資金短缺,而協(xié)調(diào)控制一般投資較大,這就限制了其使用。所以我國目前各城市的絕大多數(shù)交叉口都在使用單交叉口控制方式。如何賦予單路口控制方式一些新的策略,使之對于大量交叉口進行行之有效的控制,最大限度的提高其通行能力及安全對于我國目前城市交通有著非常現(xiàn)實的意義,也可為協(xié)調(diào)控制的研究提供幫助。
研究意義:在十字路口設(shè)置交通燈可以對交通進行有效的疏通,并為交通參與者的安全提供了強有力的保障。但是隨著社會、經(jīng)濟的快速發(fā)展,原先的交通燈控制系統(tǒng)已經(jīng)不能適應(yīng)現(xiàn)在日益繁忙的交通狀況。如何改善交通燈控制系統(tǒng),使其適應(yīng)現(xiàn)在的交通狀況,成為研究的課題。
傳統(tǒng)的十字路口交通控制燈,通常的做法是:事先經(jīng)過車輛流量的調(diào)查,運用統(tǒng)計的方法將兩個方向紅綠燈的延時預(yù)先設(shè)置好。然而,實際上車輛流量的變化往往是不確定的,有的路口在不同的時段甚至可能產(chǎn)生很大的差異。
即使是經(jīng)過長期運行、較適用的方案,仍然會發(fā)生這樣的現(xiàn)象:綠燈方向幾乎沒有什么車輛,而紅燈方向卻排著長隊等候通過。這種流量變化的偶然性是無法建立準(zhǔn)確模型的,統(tǒng)計的方法已不能適應(yīng)迅猛發(fā)展的交通現(xiàn)狀。更為現(xiàn)實的需要是能有一種能夠根據(jù)流量變化情況自適應(yīng)控制的交通燈?! ?
大部分城市中十字路口交通燈的控制普遍采用固定轉(zhuǎn)換時間間隔的控制法。由于十字路口不同時刻車輛的流量是復(fù)雜的、隨機的和不確定的,采用固定時間的控制方法,經(jīng)常造成道路有效利用時間的浪費,出現(xiàn)空等現(xiàn)象,影響了道路的暢通,還行成擁堵現(xiàn)象。采用不依賴數(shù)學(xué)模型的模糊控制方法設(shè)計交通燈控制器,能較好地解決這個問題。為保證交通控制的可靠、穩(wěn)定,選擇了能夠在惡劣的電磁干擾環(huán)境下正常工作的單片機是必要的。
8051單片機交通燈控制系統(tǒng)集成自動控制技術(shù)、計量技術(shù)、新傳感器技術(shù)、計算機管理技術(shù)于一體的機電一體化產(chǎn)品;充分利用計算機技術(shù)對生產(chǎn)過程進行集中監(jiān)視、控制管理和分散控制;充分吸收了分散式控制系統(tǒng)和集中控制系統(tǒng)的優(yōu)點,采用標(biāo)準(zhǔn)化、模塊化、系統(tǒng)化設(shè)計,配置靈活、組態(tài)方便。
1.3 研究內(nèi)容
本設(shè)計需研究的內(nèi)容為:單片機交通燈機系統(tǒng)的發(fā)展?fàn)顩r;單片機交通燈機控制系統(tǒng)的結(jié)構(gòu)及組成,即選擇系統(tǒng)設(shè)計的基本方案與硬件及軟件等方面的設(shè)計。在硬件方面,需研究整體硬件框圖以及各種器件的選型及連接方法;在軟件方面,要明確主程序及各個主要部分的流程以及相應(yīng)的程序控制清單。
1.4 單片機交通燈的國內(nèi)外的研究現(xiàn)狀及存在問題
當(dāng)今,紅綠燈安裝在各個道口上,已經(jīng)成為疏導(dǎo)交通車輛最常見和最有效的手段。但這一技術(shù)在19世紀(jì)就已出現(xiàn)了。
信號燈的出現(xiàn),使交通得以有效管制,對于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。1968年,聯(lián)合國《道路交通和道路標(biāo)志信號協(xié)定》對各種信號燈的含義作了規(guī)定。綠燈是通行信號,面對綠燈的車輛可以直行,左轉(zhuǎn)彎和右轉(zhuǎn)彎,除非另一種標(biāo)志禁止某一種轉(zhuǎn)向。左右轉(zhuǎn)彎車輛都必須讓合法地正在路口內(nèi)行駛的車輛和過人行橫道的行人優(yōu)先通行。紅燈是禁行信號,面對紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號,面對黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時可以進入交叉路口。
在國內(nèi),受客觀條件的制約,ITS起步比較晚,在20世紀(jì)90年代初,我國的相關(guān)學(xué)者開始意識到研究和開發(fā)ITS的重要性。到90年代中期,由于受到國外ITS研發(fā)的影響,政府部門也開始重視對ITS的研究,隨后,又得到中央部門和部分地方政府的支持。
1999年,我國成立了全國智能交通系統(tǒng)(ITS)協(xié)調(diào)指導(dǎo)小組及辦公室,同年,又成立了全國智能交通運輸系統(tǒng)(ITS)專家咨詢委員會,其中,同濟大學(xué)、清華大學(xué)、北方交通大學(xué)、北京航空航天大學(xué)、吉林工業(yè)大學(xué)、東南大學(xué)等高校的有關(guān)專家為咨詢委員,并啟動了國家“九五”科技攻關(guān)課題和國家“十五”科技攻關(guān)課題。目前在對一些大中型城市引入的國外ITS進行研究的基礎(chǔ)上已經(jīng)逐漸開始摸索開發(fā)設(shè)計適合自己國情的ITS系統(tǒng)。
電氣啟動的紅綠燈出現(xiàn)在美國,這種紅綠燈由紅綠黃三色圓形的投光器組成,1914年始安裝于紐約市5號大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。
1918年,又出現(xiàn)了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把壓力探測器安在地下,車輛一接近紅燈便變?yōu)榫G燈;另一種是用擴音器來啟動紅綠燈,司機遇紅燈時按一下嗽叭,就使紅燈變?yōu)榫G燈。紅外線紅綠燈當(dāng)行人踏上對壓力敏感的路面時,它就能察覺到有人要過馬路。紅外光束能把信號燈的紅燈延長一段時間,推遲汽車放行,以免發(fā)生交通事故。
從1868年英國倫敦首次使用燃汽色燈信號以來,城市交通信號機由手動到自動,交通信號由固定周期到可變周期,系統(tǒng)控制方式由點控到面控,從無車輛檢測器到有車輛檢測器,經(jīng)歷了近百年的歷史。到1963年加拿大多倫多市建立了一套使用IBM650型計算的集中協(xié)調(diào)感應(yīng)控制信號系統(tǒng)。之后,美國、英國、德國、日本、澳大利亞等多家相繼建成數(shù)字電子計算機區(qū)域交通控制系統(tǒng),這種系統(tǒng)一般還配備交通監(jiān)視系統(tǒng)組成交通管制中心。到80年代初,全世界建有交通管制中心的城市有300多個,代表了未來交通控制的發(fā)展方向。
表1.1交通信號系統(tǒng)發(fā)展?fàn)顩r
簡稱
時間
國別
城市
名稱
控制路口數(shù)
信號周期
檢測器
控制方式
點控
1868
英國
倫敦
燃?xì)馍珶?
單
無
無
無
1914
美國
克利夫蘭
電力色燈
單
無
無
無
1926
英國
各城市
單點定周期自動信號機
單
定
無
自動
1928
美國
各城市
感應(yīng)式自動信號機
單
定
氣壓式
自動
線控
1917
美國
鹽湖城
手控干道協(xié)調(diào)系統(tǒng)
6個
定
無
人工
線控
1922
美國
休斯頓
電子計時干道協(xié)調(diào)系統(tǒng)
12個
定
無
電動
1928
美國
各城市
步進式定時干道協(xié)調(diào)系統(tǒng)
多個(線)
變
無
電動
面控
1952
美國
丹佛市
模擬計算機交通信號控制系統(tǒng)
多個(網(wǎng))
變
氣壓式
計算機
在西方發(fā)達(dá)國家,交通控制系統(tǒng)基本上完成了由傳統(tǒng)的交通控制系統(tǒng)向智能交通控制系統(tǒng)ITS的轉(zhuǎn)變,而在我國,智能交通系統(tǒng)則剛剛處于起步階段。對于傳統(tǒng)的交通控制系統(tǒng)而言,對紅綠燈一般采用定時控制,無法對實際的交通流進行識別優(yōu)化,以至于不能適應(yīng)交通量的不確定性和隨機性的原因,往往造成交通資源的浪費和道路的梗阻。而智能交通控制系統(tǒng)則在不產(chǎn)生大的硬件改動的情況下有效的提高效率。
智能交通系統(tǒng)強調(diào)的是系統(tǒng)性、信息交流的交互性以及服務(wù)的廣泛性,其核心技術(shù)是電子技術(shù)、信息技術(shù)、通信技術(shù)、交通工程和系統(tǒng)工程。智能交通系統(tǒng)ITS是在較完善的道路設(shè)施基礎(chǔ)上,將先進的電子技術(shù)、信息技術(shù)、傳感器技術(shù)和系統(tǒng)工程技術(shù)集成運用于地面交通管理所建立的一種實時、準(zhǔn)確、高效、大范圍、全方位發(fā)揮作用的交通運輸管理系統(tǒng)。
第2章 單片機控制的交通燈總體設(shè)計方案
2.1 計算機控制系統(tǒng)的基本形式
計算機控制系統(tǒng)的種類繁多,但歸納起來,目前實現(xiàn)計算機控制的方式基本上屬于下面五種形式:
1、成套的計算機控制系統(tǒng)產(chǎn)品:
目前世界上已出現(xiàn)了許多與硬件產(chǎn)品配套的,具有不同特點、適用于不同控制對象的軟件產(chǎn)品,像HONEYWELL、WDPF等DCS(集散系統(tǒng))系統(tǒng)。
2、以實時操作系統(tǒng)為基礎(chǔ),由控制系統(tǒng)設(shè)計人員設(shè)計在操作系統(tǒng)上運行的實時應(yīng)用軟件:
目前通用有一大批IRMXRTOX,PSOS的實時操作系統(tǒng)。這類系統(tǒng)要求用戶自己編寫應(yīng)用程序,設(shè)計程序的流向,而由操作系統(tǒng)對應(yīng)用程序進行實時調(diào)度和占先,循環(huán)處理,因此減少了應(yīng)用軟件開發(fā)的難度。但要求程序員熟悉實時多任務(wù)編程技術(shù),而且圖形界面不太好。
3、集成的實時系統(tǒng)開發(fā)軟件:
例如:Citect,Intouch,由軟件制造商提供,是專門為實時服務(wù)的開發(fā)環(huán)境和運行環(huán)境。系統(tǒng)本身已經(jīng)構(gòu)建了實現(xiàn)不同功能的軟件包、程序模塊和控鍵。用戶只需要按照規(guī)定方式,根據(jù)實際對象要求,調(diào)用相應(yīng)模塊,即可構(gòu)成應(yīng)用程序。
4、在通用操作系統(tǒng)例了如DOS,WINDOWS環(huán)境下:
采用實時核實現(xiàn)程序的實時多任務(wù)特性。RTX, RTKERNEL,RTOS等都是應(yīng)用廣泛的實時核。
5、直接從系統(tǒng)的最底層采用高級語言或匯編語言編制實時應(yīng)用程序:
這種方法先把系統(tǒng)劃分層次,明確目標(biāo),任務(wù),對各個任務(wù)的子過程進行結(jié)構(gòu)化編程,然后還要另外編寫計時、中斷、調(diào)度等控制程序。程序設(shè)計的難度和工作量很大,但整個程序?qū)τ谠O(shè)計人員來說是完全透明的,適應(yīng)性強。
2.2 本設(shè)計的單片機的基本情況
8 位AT89C51 CHMOS 工藝單片機被設(shè)計用于處理高速計算和快速輸入/輸出。MCS51 單片機典型的應(yīng)用是高速事件控制系統(tǒng)。商業(yè)應(yīng)用包括調(diào)制解調(diào)器,電動機控制系統(tǒng),打印機,影印機,空調(diào)控制系統(tǒng),磁盤驅(qū)動器和醫(yī)療設(shè)備。汽車工業(yè)把MCS51 單片機用于發(fā)動機控制系統(tǒng),懸掛系統(tǒng)和反鎖制動系統(tǒng)。AT89C51 尤其很好適用于得益于它的處理速度和增強型片上外圍功能集,諸如:汽車動力控制,車輛動態(tài)懸掛,反鎖制動和穩(wěn)定性控制應(yīng)用。由于這些決定性應(yīng)用,市場需要一種可靠的具有低干擾潛伏響應(yīng)的費用-效能控制器,服務(wù)大量時間和事件驅(qū)動的在實時應(yīng)用需要的集成外圍的能力,具有在單一程序包中高出平均處理功率的中央處理器。擁有操作不可預(yù)測的設(shè)備的經(jīng)濟和法律風(fēng)險是很高的。一旦進入市場,尤其任務(wù)決定性應(yīng)用諸如自動駕駛儀或反鎖制動系統(tǒng),錯誤將是財力上所禁止的。重新設(shè)計的費用可以高達(dá)500K 美元,如果產(chǎn)品族享有同樣內(nèi)核或外圍設(shè)計缺陷的話,費用會更高。
另外,部件的替代品領(lǐng)域是極其昂貴的,因為設(shè)備要用來把模塊典型地焊接成一個總體的價值比各個部件高幾倍。為了緩和這些問題,在最壞的環(huán)境和電壓條件下對這些單片機進行無論在部件級別還是系統(tǒng)級別上的綜合測試是必需的。Intel Chandler 平臺工程組提供了各種單片機和處理器的系統(tǒng)驗證。這種系統(tǒng)的驗證處理可以被分解為三個主要部分。系統(tǒng)的類型和應(yīng)用需求決定了能夠在設(shè)備上執(zhí)行的測試類型。
2.3 系統(tǒng)總體方案
根據(jù)實際情況及系統(tǒng)技術(shù)要求,擬采用AT89C51微控器作為控制與數(shù)據(jù)處理的核心以構(gòu)成交通燈控制系統(tǒng)。
系統(tǒng)采用了AT89C51微控器構(gòu)成最小系統(tǒng),整個控制系統(tǒng)的系統(tǒng)框圖如圖2.1所示。下面是其主要組成部分的實施方案。
圖2.1 系統(tǒng)框圖
2.3.1 AT89C51微控器構(gòu)成的最小系統(tǒng)
根據(jù)本設(shè)計的技術(shù)要求來判斷是否需要對此微控器進行片外程序存儲器及數(shù)據(jù)存儲器的擴展。若需要,則對AT89C51微控器進行片外存儲器擴展,以構(gòu)成控制系統(tǒng)的最基本部分。若不需要,則單片機及其時鐘電路與復(fù)位電路等構(gòu)成最小系統(tǒng)。
1 顯示部分
顯示部分采用LED作為模擬的交通燈,采用七段數(shù)碼管來作為倒計時顯示。顯示部分可模擬顯示交通等的顏色變化于倒計時。
2 控制與執(zhí)行部分
開關(guān)控制交通燈的通行方式、時間的設(shè)定、模擬高峰和違章等情況。采用LED變色、七段數(shù)碼管顯示和蜂鳴器來執(zhí)行。
3 供電電源單元
供電電源一般由變壓器、整流濾波及穩(wěn)壓等電路組成,分別給以上各部分提供所需要的電壓,可以提供+5V, +12V, +40V的穩(wěn)定電壓。但由于本設(shè)計電壓源是現(xiàn)成的設(shè)備,可以在市場上訂制,所以不在涉及范圍內(nèi),不再予以講述。
2.4 本章小結(jié)
本章首先介紹了計算機控制系統(tǒng)的五種基本形式,經(jīng)查閱相關(guān)資料確定了本文所需要設(shè)計的單片機的類型——AT89C51。根據(jù)實際情況與技術(shù)要求,畫出了系統(tǒng)結(jié)構(gòu)框圖,并擬定了系統(tǒng)總體設(shè)計方案,包括顯示單元、控制與執(zhí)行單元、系統(tǒng)各部分所需電源等輸入與輸出通道,并對每一部分都進行了較詳細(xì)的敘述.
第3章 系統(tǒng)硬件設(shè)計
3.1 本系統(tǒng)的硬件設(shè)計概述
從總體上講,本系統(tǒng)硬件電路根據(jù)技術(shù)需求為了減小制作成本,本設(shè)計選用了價格低廉的AT89C51,性價比高,同時減少了外圍電路(如看門狗芯片、8255A等),僅用了晶體振蕩電路和復(fù)位電路。當(dāng)然這樣做增加了軟件代碼量。顯示方面使用了12發(fā)光二級管來模擬紅黃綠三色交通燈,選用了8個BCD數(shù)碼管來進行倒計時顯示。這樣使得硬件電路界面也變得十分整潔。
3.2 單片機的選擇及分析
本設(shè)計選擇了性價比較高的AT89C51單片機及其構(gòu)成的最下系統(tǒng),在能滿足技術(shù)要求的前提下最大限度的降低了成本。并且該單片機的指令簡單,易學(xué)易懂,同時外圍電路也簡單,硬件設(shè)計方便io口操作簡單,無方向寄存器,資源豐富,對應(yīng)一般的設(shè)計已經(jīng)足夠使用了,更重要的是價格便宜、容易購買,資料豐富容易查到,程序燒寫簡單。
3.2.1 單片機的定義和特點
所謂單片機就是把CPU、寄存器、RAM/ROM、I/O接口電路集成在一塊集成電路芯片上,構(gòu)成一個完整的微型計算機。單片機的主要特點有:
1、集成度高、功能強
微型計算機通常由中央處理器(CPU)、存儲器(RAM, ROM)以及I/O接口組成,其各部分分別集成在不同的芯片上。例如,大家熟悉的Z80微型計算機就是由Z80-CPU、存儲器(RAM, ROM), PIO等芯片組成的,單片機則不同,它把CPU, RAM, ROM, I/O接口,以及定時器/計數(shù)器都集成在一個芯片上。目前應(yīng)用得最多的是MCS-51系列單片機。
和微型計算機進行比較,單片機不僅體積大大減小,而且功能大為增強。MCS-51系列單片機內(nèi)的定時/計數(shù)器為16位,而Z80微型計算機只有8位,MCS-51系列單片機中不但有4個并行I/O接口,而且還有串行接口,且時鐘頻率可達(dá)12MHz。
2、結(jié)構(gòu)合理
目前單片機大多采用Harvard結(jié)構(gòu)。這是數(shù)據(jù)存儲器與程序存儲器相互獨立的一種結(jié)構(gòu)。而在許多微型計算機(如Z80, Inte18085, M6800等)中,大都采用兩類存儲器合二為一(即統(tǒng)一編址)的方式。單片機采用上述結(jié)構(gòu)主要有四點好處——存儲量大、速度快、抗干擾性、強指令豐富。
3.2.2 單片機的發(fā)展概況
自從1974年12月美國仙童(Fairchild )公司第一個推出8位單片機FS以來,單片機以驚人的速度發(fā)展,從4位機、8位機發(fā)展到16位機、32位機,集成度越來越高,功能越來越強,應(yīng)用范圍越來越廣。到目前為止,單片機的發(fā)展主要可分為以下四個階段:
第一階段:4位單片機。這種單片機的特點是價格便宜,控制功能強,片內(nèi)含有多種I/O接口,如并行I/O接口、串行I/O接口、定沖計數(shù)器接口、中斷功能接口等。根據(jù)不同用途,還配有許多專用接口,如打印機接口、鍵盤及顯示器接口,PLA(可編程邏輯陣列)譯碼輸出接口,有些甚至還包括A/D, D/A轉(zhuǎn)換,PLL(鎖相環(huán)),聲音合成等電路。豐富的I/O功能大大地增強了4位單片機的控制功能,從而使外部接口電路極為簡單。
第二階段:低、中檔8位機(1974-1978年)。這種8位機一般不帶有I/O接口,尋址范圍通常為4KB。它是8位機的早期產(chǎn)品,如Mostek公司的3870, Intel公司的8048等單片機即屬此類。
第三階段:高檔8位機階段(1978-1982年)。這一類單片機常有串行I/O接口,有多級中斷處理,定時/計數(shù)器為16位,片內(nèi)的RAM和ROM的容量相對增大,且尋址范圍可達(dá)64KB,有的片內(nèi)還帶有A/D轉(zhuǎn)換接口。這類單片機有Intel公司的MCS-51, Motorola公司的6801和Ziiog公司的Z8等。由于這類單片機應(yīng)用領(lǐng)域較廣,其結(jié)構(gòu)和性能還在不斷地改進和發(fā)展。
第四階段:16位單片機和超8位單片機(1982年至今)。此階段的主要特征是,一方面不斷完善高檔8位機,改善其結(jié)構(gòu),以滿足不同用戶的需要;另一方面發(fā)展16位單片機及專用單片機。16位單片機除了CPU為16位外,片內(nèi)RAM和ROM的容量也進一步增大,片內(nèi)RAM為232字節(jié),ROM為8KB,片內(nèi)帶有高速輸入輸出部件,多通道10位A/D轉(zhuǎn)換部件,中斷處理為8級,其實時處理能力更強。近來,32位單片機己進入實用階段,但還未引入國內(nèi)市場。
在今后單片機的發(fā)展趨勢將是:向著大容量、高性能化,小容量、低價格化和外圍電路內(nèi)裝化等幾個方面發(fā)展。
3.2.3本系統(tǒng)單片機的選擇
AT89C51是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機,片內(nèi)含4k bytes的反復(fù)擦寫的Flash只讀程序存儲器和128 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器(CPU)和Flash存儲單元可靈活應(yīng)用于各種控制領(lǐng)域。圖3.1為其引腳圖。
1、主要特性:
·與MCS-51完全兼容
·4K字節(jié)可編程FLASH存儲器
·壽命:1000寫/擦循環(huán)
·數(shù)據(jù)保留時間:10年
·全靜態(tài)工作:0Hz-24MHz
·三級程序存儲器鎖定
·128×8位內(nèi)部RAM
·32可編程I/O線
·兩個16位定時器/計數(shù)器
·5個中斷源
·可編程串行通道
·低功耗的閑置和掉電模式
·片內(nèi)振蕩器和時鐘電路
2、功能性概述:
AT89C51提供以下標(biāo)準(zhǔn)功能:4k字節(jié)Flash閃速存儲器,128字節(jié)內(nèi)部RAM,32個I/O口線,兩個16位定時/計數(shù)器,一個5向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。
3、AT89C51的內(nèi)部結(jié)構(gòu)介紹
單片機電路是系統(tǒng)控制的核心。單片機選用從ATMEL公司的低功耗、高性能的8位CMOS芯片AT89C51,其片內(nèi)帶有4K字節(jié)的閃速可編程及可擦除只讀存儲器(EPROM)。引腳功能說明如下:
圖3.1 AT89C51引腳圖
·VCC:電源電壓
·GND:地
·P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位能吸收電流的力式驅(qū)動8個TTL邏輯門電路,對端口寫“1”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。
在Flash編程時,P0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。
·Pl口:P1口是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級叫可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。
Flash編程和程序校驗期間,P1接收低8位地址。
·P2口:P2口是一個帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。
在訪問外部序程存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX@DPTR指令)時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX @RI指令)時,P2口線上的內(nèi)容(也即特殊功能寄存器區(qū)中R2寄存器的內(nèi)容),在整個訪問期間不改變。
Flash編程或校驗時,P2亦接收高位地址和其它控制信號。
·P3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。作輸入端時,被外部拉低的P3口將用上拉電阻輸出電流(IIL)。
P3口除了作為一般的I/0口線外,更重要的用途是它的第二功能,如下表3.1所示。P3口還接收一些用于Flash閃速存儲器編程和程序校驗的控制信號。
·RST:復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復(fù)位。
·ALE:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE仍以時鐘振蕩頻率的1/6輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。
表3.1 P3口第二功能
端口引腳
第二功能
P3.0
RXD(串行輸入口)
P3.1
TXD(串行輸出口)
P3.2
(外中斷0)
P3.3
(外中斷1)
P3.4
T0(定時/計數(shù)器0)
P3.5
T1(定時/計數(shù)器1)
P3.6
(外部數(shù)據(jù)存儲器寫選通)
P3.7
(外部數(shù)據(jù)存儲去讀選通)
對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(CS)。
PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT89C51由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,這兩次有效的PSEN信號不出現(xiàn)。
EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接VCC端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令。
Flash存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。
XTAL1:振蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。
XTAL2:振蕩器反相放大器的輸出端。
時鐘振蕩器:
圖3.2 外部振蕩電路
AT89C51中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器,振蕩電路參見圖3.2。
外接石英晶體(或陶瓷諧振器)及電容C1、C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對外接電容C1、C2雖然沒有十分嚴(yán)格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。采用外部時鐘的電路如圖3.2所示,這種情況下,外部時鐘脈沖接到XTAL1端,即內(nèi)部時鐘發(fā)生器的輸入端,XTAL2則懸空。
3.3 系統(tǒng)硬件總電路構(gòu)成及原理
實現(xiàn)本設(shè)計要求的具體功能,可以選用AT89S51單片機及外圍器件構(gòu)成最小控制系統(tǒng),12個發(fā)光二極管分成4組紅綠黃三色燈構(gòu)成信號燈指示模塊,8個LED東西南北各兩個構(gòu)成倒計時顯示模塊,若干按鍵組成時間設(shè)置和模式選擇按鈕和緊急按鈕等,以及用1個蜂鳴器進行報警。
3.3.1系統(tǒng)硬件電路構(gòu)成
本系統(tǒng)以單片機為核心,組成一個閉環(huán)控制系統(tǒng)。系統(tǒng)硬件電路由單片機,狀態(tài)燈,LED顯示,按鍵,蜂鳴器組成。其具體的硬件電路總圖如圖3.3所示。
3.3.2系統(tǒng)工作原理
系統(tǒng)上電或手動復(fù)位之后,初始時東西方向亮紅燈,南北方向亮綠燈。然后南北向路口綠燈亮38s后轉(zhuǎn)黃燈亮2s,再轉(zhuǎn)紅燈亮20s。相應(yīng)地東西向紅綠燈工作順序為紅燈亮40s后轉(zhuǎn)綠燈亮18s, 再轉(zhuǎn)黃燈亮2s, 以此進行循環(huán)。
如果發(fā)生緊急事件, 則按下按鈕, 此時東西、南北向都亮紅燈。還可以各個方向單獨通行。時鐘采用倒計時方式顯示, 即各燈亮?xí)r, 時鐘為點亮的最大時間, 以后每1s 顯示數(shù)據(jù)減1, 直到減為0 以后指示燈再進行變換。
高峰時,各方向通行時間縮短,南北方向30s,東西方向10s。所有的時間設(shè)置都可以根據(jù)車流量實際情況進行調(diào)整??梢宰詣訖z測違章闖紅燈。
總之,本設(shè)計所實現(xiàn)的功能除了典型的交通燈功能之外,只要功能還有:全部禁行、全部通行、南北方向通行、東西方向通行、高峰控制、警報提示、各方向各時段通行時間自定義、手動復(fù)位等。
注:“警報提示”是以一個開關(guān)模擬傳感器發(fā)現(xiàn)闖紅燈時所傳輸?shù)男盘?。?dāng)開關(guān)按下之后,可視為傳感器發(fā)現(xiàn)了闖紅燈的車輛,于是蜂鳴器發(fā)警示音。
圖3.3 硬件電路連接
3.4 其他硬件介紹及連接
3.4.1其他硬件介紹
LED(Light Emitting Diode),發(fā)光二極管,它是一種固態(tài)的半導(dǎo)體器件,可以直接把電轉(zhuǎn)化為光。LED的心臟是一個半導(dǎo)體的晶片,晶片的一端附在一個支架上,一端是負(fù)極,另一端連接電源的正極,使整個晶片被環(huán)氧樹脂封裝起來。半導(dǎo)體晶片由三部分組成,一部分是P型半導(dǎo)體,在它里面空穴占主導(dǎo)地位,另一端是N型半導(dǎo)體,在這邊主要是電子,中間通常是1至5個周期的量子阱。當(dāng)電流通過導(dǎo)線作用于這個晶片的時候,電子和空穴就會被推向量子阱,在量子阱內(nèi)電子跟空穴復(fù)合,然后就會以光子的形式發(fā)出能量,這就是LED發(fā)光的原理。而光的波長也就是光的顏色,是由形成P-N結(jié)的材料決定的。
LED顯示屏作為大型顯示設(shè)備的一種,具有亮度高、價格低、壽命長、維護簡便等優(yōu)點。LED數(shù)碼管的結(jié)構(gòu)簡單,分為七段和八段兩種形式,也有共陽和共陰之分。以八段共陰管為例,它有8個發(fā)光二極管(比七段多一個發(fā)光二極管,用來顯示sP,即點),每個發(fā)光二極管的陰極連在一起。這樣,一個LED數(shù)碼管就有I根位選線和8根段選線,要想顯示一個數(shù)值,就要分別對它們的高低電平來加以控制。為方便起見,本文主要討論共陰八段LED數(shù)碼顯示管,其他類形的顯示管與其類似。
·
圖3.4 LED數(shù)碼管
LED 燈的顯示原理:通過同名管腳上所加電平的高低來控制發(fā)光二極管是否點亮而顯示不同的字形,如 dp,g,f,e,d,c,b,a全亮顯示為8。
采用共陰極連接:
表3.1 驅(qū)動代碼表
顯示數(shù)值
a b c d e f g dop
驅(qū)動代碼(16進制)
0
1 1 1 1 1 1 1 1
0FCH
1
0 0 0 0 0 1 1 0
60H
2
1 1 0 1 1 0 1 0
0DAH
3
1 1 1 1 0 0 1 0
0F2H
4
0 1 1 0 0 1 1 0
66H
5
1 0 1 1 0 1 1 0
0B6H
6
1 0 1 1 1 1 1 0
0BEH
7
1 1 1 0 0 0 0 0
0E0H
8
1 1 1 1 1 1 1 0
0FEH
9
1 1 1 1 0 1 1 0
0F6H
相應(yīng)在程序軟件上,可以通過調(diào)用程序給定的秒值經(jīng)過特定計算算出需要顯示的個位和十位,然后用DPTR調(diào)取LEDMAP的代碼。
3.4.2其他器件
(1)發(fā)光二極管
根據(jù)本設(shè)計的特點,紅綠燈的顯示不可少,紅綠燈的顯示采用普通的發(fā)光二極管。每個方向上設(shè)置紅綠黃燈,總共4組。如果東西紅燈亮,那南北方向就是綠燈亮,反之亦然,所以在硬件上連接圖上也是對稱分布的,如下圖3.5所示。在本設(shè)計中,實際控制的燈只有6個,即:東西紅燈,東西綠燈,東西黃燈,南北紅燈,南北綠燈,南北黃燈,其中均是低電平有效。
共有4鐘狀態(tài):東西紅燈亮,南北綠燈亮(11011101/DDH);東西紅燈亮,南北黃燈亮(10111101/BDH);東西綠燈亮,南北紅燈亮(11101101/EDH);東西黃燈亮,南北紅燈亮(11100111/E7H)。
圖3.5 信號燈的連接
括號中是P1端口8個引腳值P1.7,P1.6,P1.5,P1.4,P1.3,P1.2,P1.1,P1.0以及對應(yīng)的十六進制碼。
在用于顯示發(fā)光二極管時,直接由MOV指令將十六進制碼送入P1口。剛才的4個狀態(tài)是依次變換的,這就要涉及到狀態(tài)的判斷和銜接了。先把P1端口的值與所有的4個狀態(tài)碼比較,若相同則判斷成功當(dāng)前狀態(tài),再把下一狀態(tài)的狀態(tài)碼送顯P1即可。
(2)蜂鳴器
本設(shè)計采用一般蜂鳴器,蜂鳴器使用PNP三極管進行驅(qū)動控制,當(dāng)連接到單片機上的引腳輸出為低電平,PNP導(dǎo)通,蜂鳴器蜂鳴;當(dāng)連接到單片機上的引腳輸出高電平時,PNP截止,蜂鳴器停止蜂鳴。如下圖3.6所示
圖3.6 蜂鳴器連接
緊停按鍵和違規(guī)信號傳感器連接到外部中斷引腳INT1,P3.6捕獲到一個低電平,則進入該中斷,中斷程序中先把蜂鳴器P3.7端口置0,啟動蜂鳴。并且等待恢復(fù)鍵F鍵按下,然后關(guān)閉蜂鳴返回。
(3) 電源電路設(shè)計
由于單片機工作時需要的+5V電壓,所以在設(shè)計電源電路時,需要一個電子元件能提供+5V電壓,由于7805能夠提供5V電壓的三端穩(wěn)壓電源,在實際的電路控制中應(yīng)用其作為電源電路較為廣泛,在普通的電子元器件商場都有銷售易于購買,并且技術(shù)相對成熟.7805一腳為電源輸入端,二腳為公共接地端,三腳即為我們所需要的+5V電壓輸出端.本文采用最典型的7805提供電壓的電路,即在7805的1腳和公共接地端(即2腳)之間接入0.3μF的電容,在公共接地端和三腳+5V電壓輸出端之間接入0.1μF的電容.
圖3.7 +5V電源電路
3.5 本章小結(jié)
本章主要敘述了控制系統(tǒng)的硬件電路的設(shè)計過程。首先,對本系統(tǒng)硬件部分先進行了總體概述并選擇出單片機型號,除單片機的最小系統(tǒng)外,將其它需設(shè)計的電路歸為輸入與輸出通道的設(shè)計。在其他硬件方面也做了相關(guān)闡述。
第4章 系統(tǒng)軟件設(shè)計
4.1 系統(tǒng)功能要求
交通管理方案:南北、東西兩干道交于一個十字路口,各干道有一組紅、黃、綠三色的指示燈,指揮車輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行。黃燈亮提示人們注意紅、綠燈的狀態(tài)即將切換,且黃燈燃亮?xí)r間為南北、東西兩干道的公共停車時間。設(shè)南北道比東西道的車流量大。
十字路口的東西向、南北向各有一組紅綠燈和一個時鐘系統(tǒng), 時鐘系統(tǒng)由兩個LED 組成, 用于顯示紅綠燈的時間, 具體要求如下:
1 初始時東西方向亮紅燈,南北方向亮綠燈。
2 然后南北向路口綠燈亮38s后轉(zhuǎn)黃燈亮2s,再轉(zhuǎn)紅燈亮20s。
3 相應(yīng)地東西向紅綠燈工作順序為紅燈亮40s后轉(zhuǎn)綠燈亮18s, 再轉(zhuǎn)黃燈亮2s, 以此進行循環(huán)。
4 如果發(fā)生緊急事件, 則按下按鈕, 此時東西、南北向都亮紅燈。還可以各個方向單獨通行。
5 時鐘采用倒計時方式顯示, 即各燈亮?xí)r, 時鐘為點亮的最大時間, 以后每1s 顯示數(shù)據(jù)減1, 直到減為0 以后指示燈再進行變換。
6 高峰時,各方向通行時間縮短,南北方向30s,東西方向10s。
7 所有的時間設(shè)置都可以根據(jù)車流量實際情況進行調(diào)整。
8 可以自動檢測違章闖紅燈。
總之,本設(shè)計所實現(xiàn)的功能除了典型的交通燈功能之外,只要功能還有:
全部禁行、全部通行、南北方向通行、東西方向通行、高峰控制、警報提示、各方向各時段通行時間自定義、手動復(fù)位等。
注:“警報提示”是以一個開關(guān)模擬傳感器發(fā)現(xiàn)闖紅燈時所傳輸?shù)男盘枴?
首先是按鍵處理程序,AT89C51通過對IO掃描,確定是否有鍵按下,再判斷具體是那個鍵按下,根據(jù)鍵值跳轉(zhuǎn)到按鍵處理程序。
4.1.1 定時器原理
定時器工作的基本原理其實就是給初值,讓它不斷加1直至減完為模值,這個初值是送到TH和TL中的。它是以加法記數(shù)的,并能從全1到全0時自動產(chǎn)生溢出中斷請求。
4.1.2程序流程圖
圖4.1程序流程圖
因此,我們可以把計數(shù)器記滿為零所需的計數(shù)值,即所要求的計數(shù)值設(shè)定為C,把計數(shù)初值設(shè)定為TC 可得到如下計算通式:
TC=M-C (4.1)
式中,M為計數(shù)器模值。計數(shù)值并不是目的,目的是時間值,設(shè)計1次的時間,即定時器計數(shù)脈沖的周期為T0,它是單片機系統(tǒng)主頻周期的12倍,設(shè)要求的時間值為T,則有C=T/T0。計算通式變?yōu)椋?
T=(M-TC)T0 (4.2)
模值和計數(shù)器工作方式有關(guān)。在方式0時M為8192;在方式1時M的值為65536;在方式2和3為256。就此可以算出各種方式的最大延時。如單片機的主脈沖頻率為12MHZ,經(jīng)過12分頻后,若采用方式0最大延時只有8.129毫秒,采用方式1最大延時也只有65.536毫秒。這就是為什么掃描周期為50ms的原因,
若使用軟件則會耽擱程序流程,顯然不可行。相反,時間計時方面卻不可能只用計數(shù)器,因為顯然1秒鐘已經(jīng)超過了計數(shù)器的最大定時間,所以我們還必須采用定時器和軟件相結(jié)合的辦法才能解決這個問題。
4.1.3 軟件延時原理
MCS-51的工作頻率為12MHZ,機器周期與主頻有關(guān),機器周期是主頻的12倍,所以一個機器周期的時間為12*(1/12MHZ)=1us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定1秒的時間,但同時由于單片機的運行速度很快其他的指令執(zhí)行時間可以忽略不計。
我們設(shè)定一個初值為20的軟件計數(shù)器和使T0定時50毫秒。這樣每當(dāng)T0到50毫秒時CPU就響應(yīng)它的溢出中斷請求,進入他的中斷服務(wù)子程序。在中斷服務(wù)子程序中,CPU先使軟件計數(shù)器減1,然后判斷它是否為零。為零表示1秒已到。設(shè)定定時器需要定時50毫T0必須工作于方式1。要求初值:TC=M-T*T0=216-50ms/1us=15536=3CBOH.
4.1.4 中斷原理
本系統(tǒng)主要使用了外部中斷,中斷信號有引腳INT0和INT1輸入,低電平有效,CPU每個時鐘周期都會檢測INT0和INT1上的信號,89C51允許外部中斷以電平方式或負(fù)邊沿方式兩種中斷方式輸入中斷請求信號,可由用戶通過設(shè)置TCON中IT0和IT1位的狀態(tài)來實現(xiàn)。以IT0為例,IT0=0,為電平觸發(fā)方式,IT0=1,為負(fù)邊沿觸發(fā)方式,本設(shè)計采用電平方式,IE0為其中斷標(biāo)志位,有中斷信號則置位,中斷服務(wù)子程序響應(yīng)后,IE0自動清零。IE中的EA為允許中斷的總控制位,為1開啟,EX0為外部中斷允許控制位,為1開啟。
在優(yōu)先級的允許下,一旦有外部中斷信號產(chǎn)生,單片機CPU首先保護斷點,PC值進棧,然后執(zhí)行相應(yīng)的中斷服務(wù)子程序,執(zhí)行完后,用RETI指令返回,此時CPU會從堆棧中取保存的斷點地址,送回PC,程序再正常執(zhí)行。
4.2 模擬仿真
4.2.1 仿真軟件介紹
Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。
雖然目前國內(nèi)推廣剛起步,但已受到單片機愛好者、從事單片機教學(xué)的教師、致力于單片機開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計,真正實現(xiàn)了從概念到產(chǎn)品的完整設(shè)計。是目前世界上唯一將電路仿真軟件、PCB設(shè)計軟件和虛擬模型仿真軟件三合一的設(shè)計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器
功能特點:
Proteus軟件具有其它EDA工具軟件(例:multisim)的功能。這些功能是:
1.原理布圖
2.PCB自動或人工布線
3.SPICE電路仿真
革命性的特點
1.互動的電路仿真
用戶甚至可以實時采用諸如RAM,ROM,鍵盤,馬達(dá),LED,LCD,AD/DA,部分SPI器件,部分IIC器件。
2.仿真處理器及其外圍電路
可以仿真51系列、AVR、PIC、ARM、等常用主流單片機。還可以直接在基于原理圖的虛擬原型
上編程,再配合顯示及輸出,能看到運行后輸入輸出的效果。配合系統(tǒng)配置的虛擬邏輯分析儀、示波器等,Proteus建立了完備的電子設(shè)計開發(fā)環(huán)境。
功能模塊:
1.智能原理圖設(shè)計
豐富的器件庫:超過27000種元器件,可方便地創(chuàng)建新元件;
智能的器件搜索:通過模糊搜索可以快速定位所需要的器件;
智能化的連線功能:自動連線功能使連接導(dǎo)線簡單快捷,大大縮短繪圖時間;
支持總線結(jié)構(gòu):使用總線器件和總線布線使電路設(shè)計簡明清晰;
可輸出高質(zhì)量圖紙:通過個性化設(shè)置,可以生成印刷質(zhì)量的BMP圖紙,可以方便地供WORD、POWERPOINT等多種文檔使用。
2.完善的電路仿真功能
ProSPICE混合仿真:基于工業(yè)標(biāo)準(zhǔn)SPICE3F5,實現(xiàn)數(shù)字/模擬電路的混合仿真;
超過27000個仿真器件:可以通過內(nèi)部原型或使用廠家的SPICE文件自行設(shè)計仿真器件,Labcenter也在不斷地發(fā)布新的仿真器件,還可導(dǎo)入第三方發(fā)布的仿真器件;
多樣的激勵源:包括直流、正弦、脈沖、分段線性脈沖、音頻(使用wav文件)、指數(shù)信號、單頻FM、數(shù)字時鐘和碼流,還支持文件形式的信號輸入;
豐富的虛擬儀器:13種虛擬儀器,面板操作逼真,如示波器、邏輯分析儀、信號發(fā)生器、直流電壓/電流表、交流電壓/電流表、數(shù)字圖案發(fā)生器、頻率計/計數(shù)器、邏輯探頭、虛擬終端、SPI調(diào)試器、I2C調(diào)試器等;
生動的仿真顯示:用色點顯示引腳的數(shù)字電平,導(dǎo)線以不同顏色表示其對地電壓大小,結(jié)合動態(tài)器件(如電機、顯示器件、按鈕)的使用可以使仿真更加直觀、生動;
高級圖形仿真功能(ASF):基于圖標(biāo)的分析可以精確分析電路的多項指標(biāo),包括工作點、瞬態(tài)特性、頻率特性、傳輸特性、噪聲、失真、傅立葉頻譜分析等,還可以進行一致性分析。
獨特的單片機協(xié)同仿真功能
支持主流的CPU類型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU類型隨著版本升級還在繼續(xù)增加,如即將支持CORTEX、DSP處理器;
支持通用外設(shè)模型:如字符LCD模塊、圖形LCD模塊、LED點陣、LED七段顯示模塊、鍵盤/按鍵、直流/步進/伺服電機、RS232虛擬終端、電子溫度計等等,其COMPIM(COM口物理接口模型)還可以使仿真電路通過PC機串口和外部電路實現(xiàn)雙向異步串行通信;
實時仿真:支持UART/USART/EUSARTs仿真、中斷仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真;
編譯及調(diào)試:支持單片機匯編語言的編輯/編譯/源碼級仿真,內(nèi)帶8051、AVR、PIC的匯編編譯器,也可以與第三方集成編譯環(huán)境(如IAR、Keil和Hitech)結(jié)合,進行高級語言的源碼級仿真和調(diào)試;
3.實用的PCB設(shè)計平臺
原理圖到PCB的快速通道: 原理圖設(shè)計完成后,一鍵便可進入ARES的PCB設(shè)計環(huán)境,實現(xiàn)從概念到產(chǎn)品的完整設(shè)計;
先進的自動布局/布線功能:支持器件的自動/人工布局;支持無網(wǎng)格自動布線或人工布線;支持引腳交換/門交換功能使PCB設(shè)計更為合理;
完整的PCB設(shè)計功能:最多可設(shè)計16個銅箔層,2個絲印層,4個機械層(含板邊),靈活的布線策略供用戶設(shè)置,自動設(shè)計規(guī)則檢查,3D 可視化預(yù)覽;
多種輸出格式的支持:可以輸出多種格式文件,包括Gerber文件的導(dǎo)入或?qū)С?,便利與其它PCB設(shè)計工具的互轉(zhuǎn)(如protel)和PCB板的設(shè)計和加工。
4.2.2仿真過程
首先使用Proteus軟件繪制出仿真所需的電路圖,如圖4.2所示。
圖4.2硬件電路圖
然后打開Keil軟件軟件界面如圖4.3所示。
該軟件是預(yù)先安裝在電腦上的,運用該軟件可以將預(yù)先寫好的源程序輸?shù)絾纹瑱C中,并且具有編譯等強大的功能。Keil公司是一家業(yè)界領(lǐng)先的微控制器(MCU)軟件開發(fā)工具的獨立供應(yīng)商。Keil公司制造和銷售種類廣泛的開發(fā)工具,包括ANSI C編譯器、宏匯編程序、調(diào)試器、連接器、庫管理器、固件和實時操作系統(tǒng)核心(real-time kernel)。有超過10萬名微控制器開發(fā)人員在使用這種得到業(yè)界認(rèn)可的解決方案。其Keil C51編譯器自1988年引入市場以來成為事實上的行業(yè)標(biāo)準(zhǔn),并支持超過500種8051變種。
Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。
圖4.3 Keil軟件界面
使用菜單“File >New”或者點擊工具欄的新建文件按鈕,即可在項目窗口的右側(cè)打開一個新的文本編輯窗口,在該窗口中輸入我們的匯編語言源程序。如圖4.4所示。保存該文件,注意必須加上擴展名(匯編語言源程序一般使用asm或者51為擴展名)。
文件保存為jiaotongdeng.asm。
圖4.4 建立源文件
然后就可以建立工程文件了,在項目開發(fā)中,并不是僅有一個源程序就行了,還要為這個項目選擇CPU(Keil支持?jǐn)?shù)百種CPU,而這些CPU的特性不不是完全相同),確定編譯、編繪、連接的參數(shù),指定調(diào)試的的方式,將這些參數(shù)設(shè)置和所需的文件都加載一個工程中。點擊“Project>New Project”菜單,出現(xiàn)一個對話框,要求給將要機那里的工程起一個名字jiaotongdeng,不需要擴展名。點擊“保存”按鈕,出現(xiàn)第二個對話框,如圖4.4所示,這個對話框要求選擇目標(biāo)CPU(即你所選的芯片型號),Keil支持的CPU很多,我們選擇Atmel公司的89C51芯片。點擊ATMEL前面的“+”號,展開該層,點擊其中的89C51,然后再點擊“確定”按鈕,回到主界面,此時,
收藏